21 #ifndef AVUTIL_MIPS_INTREADWRITE_H
22 #define AVUTIL_MIPS_INTREADWRITE_H
29 #define AV_RN32 AV_RN32
33 __asm__ (
"lwl %0, %1 \n\t"
36 :
"m"(*(
const uint32_t *)((
const uint8_t *)p+3*!HAVE_BIGENDIAN)),
37 "m"(*(
const uint32_t *)((
const uint8_t *)p+3*HAVE_BIGENDIAN)));
41 #define AV_WN32 AV_WN32
44 __asm__ (
"swl %2, %0 \n\t"
46 :
"=m"(*(uint32_t *)((uint8_t *)p+3*!HAVE_BIGENDIAN)),
47 "=m"(*(uint32_t *)((uint8_t *)p+3*HAVE_BIGENDIAN))
53 #define AV_RN64 AV_RN64
57 __asm__ (
"ldl %0, %1 \n\t"
60 :
"m"(*(
const uint64_t *)((
const uint8_t *)p+7*!HAVE_BIGENDIAN)),
61 "m"(*(
const uint64_t *)((
const uint8_t *)p+7*HAVE_BIGENDIAN)));
65 #define AV_WN64 AV_WN64
68 __asm__ (
"sdl %2, %0 \n\t"
70 :
"=m"(*(uint64_t *)((uint8_t *)p+7*!HAVE_BIGENDIAN)),
71 "=m"(*(uint64_t *)((uint8_t *)p+7*HAVE_BIGENDIAN))
77 #define AV_RN64 AV_RN64
80 union { uint64_t
v; uint32_t hl[2]; }
v;
82 v.hl[1] =
AV_RN32((
const uint8_t *)p + 4);
86 #define AV_WN64 AV_WN64
89 union { uint64_t
v; uint32_t hl[2]; } vv = { v };
91 AV_WN32((uint8_t *)p + 4, vv.hl[1]);