OSDN Git Service

fixing alignment for alignment picky cpus
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 19 May 2002 01:49:53 +0000 (01:49 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 19 May 2002 01:49:53 +0000 (01:49 +0000)
Originally committed as revision 535 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/dsputil.c

index 7e389f0..51aaa28 100644 (file)
@@ -249,11 +249,21 @@ void add_pixels_clamped_c(const DCTELEM *block, UINT8 *pixels, int line_size)
     }
 }
 
-//FIXME someone with a alignemtent picky cpu should change these
+#ifdef __GNUC__
+
+struct unaligned_64 { uint64_t l; } __attribute__((packed));
+struct unaligned_32 { uint32_t l; } __attribute__((packed));
+
+#define LD32(a) (((const struct unaligned_32 *) (a))->l)
+#define LD64(a) (((const struct unaligned_64 *) (a))->l)
+
+#else /* __GNUC__ */
 
 #define LD32(a) (*((uint32_t*)(a)))
 #define LD64(a) (*((uint64_t*)(a)))
 
+#endif /* !__GNUC__ */
+
 #if 0
 
 #define PIXOP2(OPNAME, OP) \