Go to the documentation of this file.
19 #ifndef AVUTIL_ARM_INTREADWRITE_H
20 #define AVUTIL_ARM_INTREADWRITE_H
25 #if HAVE_FAST_UNALIGNED && HAVE_INLINE_ASM
27 #define AV_RN16 AV_RN16
31 __asm__ (
"ldrh %0, %1" :
"=r"(v) :
"m"(*(
const uint16_t *)p));
35 #define AV_WN16 AV_WN16
38 __asm__ (
"strh %1, %0" :
"=m"(*(uint16_t *)p) :
"r"(v));
41 #define AV_RN32 AV_RN32
45 __asm__ (
"ldr %0, %1" :
"=r"(v) :
"m"(*(
const uint32_t *)p));
49 #define AV_WN32 AV_WN32
52 __asm__ (
"str %1, %0" :
"=m"(*(uint32_t *)p) :
"r"(v));
55 #define AV_RN64 AV_RN64
59 __asm__ (
"ldr %Q0, %1 \n\t"
62 :
"m"(*(
const uint32_t*)p),
"m"(*((
const uint32_t*)p+1)));
66 #define AV_WN64 AV_WN64
69 __asm__ (
"str %Q2, %0 \n\t"
71 :
"=m"(*(uint32_t*)p),
"=m"(*((uint32_t*)p+1))