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]));