21 #ifndef AVUTIL_AVR32_INTREADWRITE_H 
   22 #define AVUTIL_AVR32_INTREADWRITE_H 
   42 #define AV_RL16 AV_RL16 
   47              "ldins.b  %0:l, %2  \n\t" 
   49              : 
"m"(*(
const uint8_t*)p), 
"RKs12"(*((
const uint8_t*)p+1)));
 
   53 #define AV_RB16 AV_RB16 
   58              "ldins.b  %0:l, %1  \n\t" 
   60              : 
"RKs12"(*(
const uint8_t*)p), 
"m"(*((
const uint8_t*)p+1)));
 
   64 #define AV_RB24 AV_RB24 
   69              "ldins.b  %0:l, %2  \n\t" 
   70              "ldins.b  %0:u, %1  \n\t" 
   72              : 
"RKs12"(* (
const uint8_t*)p),
 
   73                "RKs12"(*((
const uint8_t*)p+1)),
 
   74                "m"    (*((
const uint8_t*)p+2)));
 
   78 #define AV_RL24 AV_RL24 
   83              "ldins.b  %0:l, %2  \n\t" 
   84              "ldins.b  %0:u, %3  \n\t" 
   86              : 
"m"    (* (
const uint8_t*)p),
 
   87                "RKs12"(*((
const uint8_t*)p+1)),
 
   88                "RKs12"(*((
const uint8_t*)p+2)));
 
   94 #define AV_RB32 AV_RB32 
   98     __asm__ (
"ld.w %0, %1" : 
"=r"(v) : 
"m"(*(
const uint32_t*)p));
 
  102 #define AV_WB32 AV_WB32 
  105     __asm__ (
"st.w %0, %1" : 
"=m"(*(uint32_t*)p) : 
"r"(v));
 
  109 #define AV_RL32(p)    av_bswap32(AV_RB32(p)) 
  110 #define AV_WL32(p, v) AV_WB32(p, av_bswap32(v)) 
  112 #define AV_WB64 AV_WB64 
  115     union { uint64_t v; uint32_t hl[2]; } vv = { v };
 
  117     AV_WB32((uint32_t*)p+1, vv.hl[1]);
 
  120 #define AV_WL64 AV_WL64 
  123     union { uint64_t v; uint32_t hl[2]; } vv = { v };
 
  125     AV_WL32((uint32_t*)p+1, vv.hl[0]);
 
  130 #define AV_RB32 AV_RB32 
  135              "ldins.b  %0:l, %3  \n\t" 
  136              "ldins.b  %0:u, %2  \n\t" 
  137              "ldins.b  %0:t, %1  \n\t" 
  139              : 
"RKs12"(* (
const uint8_t*)p),
 
  140                "RKs12"(*((
const uint8_t*)p+1)),
 
  141                "RKs12"(*((
const uint8_t*)p+2)),
 
  142                "m"    (*((
const uint8_t*)p+3)));
 
  146 #define AV_RL32 AV_RL32 
  151              "ldins.b  %0:l, %2  \n\t" 
  152              "ldins.b  %0:u, %3  \n\t" 
  153              "ldins.b  %0:t, %4  \n\t" 
  155              : 
"m"    (* (
const uint8_t*)p),
 
  156                "RKs12"(*((
const uint8_t*)p+1)),
 
  157                "RKs12"(*((
const uint8_t*)p+2)),
 
  158                "RKs12"(*((
const uint8_t*)p+3)));
 
  164 #define AV_RB64 AV_RB64 
  167     union { uint64_t v; uint32_t hl[2]; } v;
 
  169     v.hl[1] = 
AV_RB32((
const uint32_t*)p+1);
 
  173 #define AV_RL64 AV_RL64 
  176     union { uint64_t v; uint32_t hl[2]; } v;
 
  178     v.hl[0] = 
AV_RL32((
const uint32_t*)p+1);