--- a/libavutil/arm/intreadwrite.h
+++ b/libavutil/arm/intreadwrite.h
@@ -58,7 +58,7 @@
     union { uint64_t v; uint32_t hl[2]; } v;
     __asm__ ("ldr   %0, %2  \n\t"
              "ldr   %1, %3  \n\t"
-             : "=r"(v.hl[0]), "=r"(v.hl[1])
+             : "=&r"(v.hl[0]), "=r"(v.hl[1])
              : "m"(*(const uint32_t*)p), "m"(*((const uint32_t*)p+1)));
     return v.v;
 }