This allows using the cbz/cbnz instruction in thumb mode, for the
cases where the branch target is close enough.
---
 libavutil/arm/asm.S | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/libavutil/arm/asm.S b/libavutil/arm/asm.S
index 4ac0ea2..e66c34c 100644
--- a/libavutil/arm/asm.S
+++ b/libavutil/arm/asm.S
@@ -326,6 +326,18 @@ T       strh            \rt, [\rn]
 T       sub             \rn, \rn, \rm
 .endm
 
+#if !CONFIG_THUMB
+.macro  cbz     rd, target
+        cmp     \rd, #0
+        beq     \target
+.endm
+
+.macro  cbnz    rd, target
+        cmp     \rd, #0
+        bne     \target
+.endm
+#endif
+
 #if HAVE_VFP_ARGS
 ELF     .eabi_attribute 28, 1
 #   define VFP
-- 
2.7.4

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to