|
|
|
@ -176,38 +176,6 @@ typedef struct RL_VLC_ELEM { |
|
|
|
|
#define UNALIGNED_STORES_ARE_BAD |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
/* used to avoid misaligned exceptions on some archs (alpha, ...) */ |
|
|
|
|
#if defined(ARCH_X86) |
|
|
|
|
# define unaligned16(a) (*(const uint16_t*)(a)) |
|
|
|
|
# define unaligned32(a) (*(const uint32_t*)(a)) |
|
|
|
|
# define unaligned64(a) (*(const uint64_t*)(a)) |
|
|
|
|
#else |
|
|
|
|
# ifdef __GNUC__ |
|
|
|
|
# define unaligned(x) \ |
|
|
|
|
static inline uint##x##_t unaligned##x(const void *v) { \
|
|
|
|
|
struct Unaligned { \
|
|
|
|
|
uint##x##_t i; \
|
|
|
|
|
} __attribute__((packed)); \
|
|
|
|
|
\
|
|
|
|
|
return ((const struct Unaligned *) v)->i; \
|
|
|
|
|
} |
|
|
|
|
# elif defined(__DECC) |
|
|
|
|
# define unaligned(x) \ |
|
|
|
|
static inline uint##x##_t unaligned##x(const void *v) { \
|
|
|
|
|
return *(const __unaligned uint##x##_t *) v; \
|
|
|
|
|
} |
|
|
|
|
# else |
|
|
|
|
# define unaligned(x) \ |
|
|
|
|
static inline uint##x##_t unaligned##x(const void *v) { \
|
|
|
|
|
return *(const uint##x##_t *) v; \
|
|
|
|
|
} |
|
|
|
|
# endif |
|
|
|
|
unaligned(16) |
|
|
|
|
unaligned(32) |
|
|
|
|
unaligned(64) |
|
|
|
|
#undef unaligned |
|
|
|
|
#endif /* defined(ARCH_X86) */ |
|
|
|
|
|
|
|
|
|
#ifndef ALT_BITSTREAM_WRITER |
|
|
|
|
static inline void put_bits(PutBitContext *s, int n, unsigned int value) |
|
|
|
|
{ |
|
|
|
|