ARM: add some compatibility macros
authorMans Rullgard <mans@mansr.com>
Tue, 20 Mar 2012 17:04:54 +0000 (17:04 +0000)
committerMans Rullgard <mans@mansr.com>
Wed, 25 Apr 2012 20:41:39 +0000 (21:41 +0100)
This adds some macros simplifying Thumb and pre-v6T2 compatibility.

Signed-off-by: Mans Rullgard <mans@mansr.com>
libavcodec/arm/asm.S

index 3b495a2..6038a63 100644 (file)
@@ -88,6 +88,13 @@ ELF     .size   \name, . - \name
 \name:
 .endm
 
+#if !HAVE_ARMV6T2
+.macro  movw    rd, val
+        mov     \rd, \val &  255
+        orr     \rd, \val & ~255
+.endm
+#endif
+
 .macro  mov32   rd, val
 #if HAVE_ARMV6T2
         movw            \rd, #(\val) & 0xffff
@@ -120,6 +127,12 @@ T       sub             \rn, \rn, \rm
 T       ldr             \rt, [\rn]
 .endm
 
+.macro  ldr_nreg        rt,  rn,  rm:vararg
+A       ldr             \rt, [\rn, -\rm]
+T       sub             \rt, \rn, \rm
+T       ldr             \rt, [\rt]
+.endm
+
 .macro  ldr_post        rt,  rn,  rm:vararg
 A       ldr             \rt, [\rn], \rm
 T       ldr             \rt, [\rn]
@@ -156,6 +169,12 @@ T       ldrh            \rt, [\rn]
 T       add             \rn, \rn, \rm
 .endm
 
+.macro  ldrb_post       rt,  rn,  rm
+A       ldrb            \rt, [\rn], \rm
+T       ldrb            \rt, [\rn]
+T       add             \rn, \rn, \rm
+.endm
+
 .macro  str_post       rt,  rn,  rm:vararg
 A       str             \rt, [\rn], \rm
 T       str             \rt, [\rn]