diff --git a/libavcodec/arm/asm.S b/libavcodec/arm/asm.S
index 9eea433acb05b1f110f9d8bb79efba9ea21e059d..724e7a00eac643a6d22568837f8e1f3e2870b910 100644
--- a/libavcodec/arm/asm.S
+++ b/libavcodec/arm/asm.S
@@ -49,6 +49,17 @@ ELF     .type   \name, %function
 \name:
 .endm
 
+.macro  mov32   rd, val
+#if HAVE_ARMV6T2
+        movw            \rd, #(\val) & 0xffff
+    .if (\val) >> 16
+        movt            \rd, #(\val) >> 16
+    .endif
+#else
+        ldr             \rd, =\val
+#endif
+.endm
+
 .macro  movrel rd, val
 #if HAVE_ARMV6T2 && !CONFIG_PIC
         movw            \rd, #:lower16:\val