21 #ifndef AVUTIL_PPC_INTREADWRITE_H
22 #define AVUTIL_PPC_INTREADWRITE_H
30 #define AV_RL16 av_read_bswap16
31 #define AV_WL16 av_write_bswap16
32 #define AV_RL32 av_read_bswap32
33 #define AV_WL32 av_write_bswap32
34 #define AV_RL64 av_read_bswap64
35 #define AV_WL64 av_write_bswap64
38 #define AV_RB16 av_read_bswap16
39 #define AV_WB16 av_write_bswap16
40 #define AV_RB32 av_read_bswap32
41 #define AV_WB32 av_write_bswap32
42 #define AV_RB64 av_read_bswap64
43 #define AV_WB64 av_write_bswap64
50 __asm__ (
"lhbrx %0, %y1" :
"=r"(v) :
"Z"(*(
const uint16_t*)p));
56 __asm__ (
"sthbrx %1, %y0" :
"=Z"(*(uint16_t*)p) :
"r"(v));
62 __asm__ (
"lwbrx %0, %y1" :
"=r"(v) :
"Z"(*(
const uint32_t*)p));
68 __asm__ (
"stwbrx %1, %y0" :
"=Z"(*(uint32_t*)p) :
"r"(v));
76 __asm__ (
"ldbrx %0, %y1" :
"=r"(v) :
"Z"(*(
const uint64_t*)p));
82 __asm__ (
"stdbrx %1, %y0" :
"=Z"(*(uint64_t*)p) :
"r"(v));
89 union { uint64_t
v; uint32_t hl[2]; }
v;
90 __asm__ (
"lwbrx %0, %y2 \n\t"
92 :
"=&r"(v.hl[1]),
"=r"(v.hl[0])
93 :
"Z"(*(
const uint32_t*)p),
"Z"(*((
const uint32_t*)p+1)));
99 union { uint64_t
v; uint32_t hl[2]; } vv = { v };
100 __asm__ (
"stwbrx %2, %y0 \n\t"
101 "stwbrx %3, %y1 \n\t"
102 :
"=Z"(*(uint32_t*)p),
"=Z"(*((uint32_t*)p+1))
103 :
"r"(vv.hl[1]),
"r"(vv.hl[0]));