21 #ifndef AVUTIL_PPC_INTREADWRITE_H
22 #define AVUTIL_PPC_INTREADWRITE_H
32 #define AV_RB64(p) (*(const uint64_t *)(p))
33 #define AV_WB64(p, v) (*(uint64_t *)(p) = (v))
36 #define AV_RL64(p) (*(const uint64_t *)(p))
37 #define AV_WL64(p, v) (*(uint64_t *)(p) = (v))
44 #define AV_RL16 av_read_bswap16
45 #define AV_WL16 av_write_bswap16
46 #define AV_RL32 av_read_bswap32
47 #define AV_WL32 av_write_bswap32
48 #define AV_RL64 av_read_bswap64
49 #define AV_WL64 av_write_bswap64
52 #define AV_RB16 av_read_bswap16
53 #define AV_WB16 av_write_bswap16
54 #define AV_RB32 av_read_bswap32
55 #define AV_WB32 av_write_bswap32
56 #define AV_RB64 av_read_bswap64
57 #define AV_WB64 av_write_bswap64
64 __asm__ (
"lhbrx %0, %y1" :
"=r"(v) :
"Z"(*(
const uint16_t*)p));
70 __asm__ (
"sthbrx %1, %y0" :
"=Z"(*(uint16_t*)p) :
"r"(v));
76 __asm__ (
"lwbrx %0, %y1" :
"=r"(v) :
"Z"(*(
const uint32_t*)p));
82 __asm__ (
"stwbrx %1, %y0" :
"=Z"(*(uint32_t*)p) :
"r"(v));
90 __asm__ (
"ldbrx %0, %y1" :
"=r"(v) :
"Z"(*(
const uint64_t*)p));
96 __asm__ (
"stdbrx %1, %y0" :
"=Z"(*(uint64_t*)p) :
"r"(v));
103 union { uint64_t
v; uint32_t hl[2]; }
v;
104 __asm__ (
"lwbrx %0, %y2 \n\t"
106 :
"=&r"(v.hl[1]),
"=r"(v.hl[0])
107 :
"Z"(*(
const uint32_t*)p),
"Z"(*((
const uint32_t*)p+1)));
113 union { uint64_t
v; uint32_t hl[2]; } vv = { v };
114 __asm__ (
"stwbrx %2, %y0 \n\t"
115 "stwbrx %3, %y1 \n\t"
116 :
"=Z"(*(uint32_t*)p),
"=Z"(*((uint32_t*)p+1))
117 :
"r"(vv.hl[1]),
"r"(vv.hl[0]));