On Fri, 18 Nov 2016, Janne Grunau wrote:

On 2016-11-18 10:06:39 +0200, Martin Storsjö wrote:
---
The uses of cmp rX, #0, beq in the vp9 loop filter can't be converted
to cbz, since the branch targets are too far away.
---
 libavcodec/arm/vp9itxfm_neon.S | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/libavcodec/arm/vp9itxfm_neon.S b/libavcodec/arm/vp9itxfm_neon.S
index 46d91b7..17db69b 100644
--- a/libavcodec/arm/vp9itxfm_neon.S
+++ b/libavcodec/arm/vp9itxfm_neon.S
@@ -724,8 +724,7 @@ function \txfm\()16_1d_4x16_pass2_neon
 .irp i, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27
         vld1.16         {d\i}, [r2,:64], r12
 .endr
-        cmp             r3,  #0
-        beq             1f
+        cbz             r3,  1f

change the 'mov r3, #\i' into 'movs r3, #\i'. Since
\txfm\()16_1d_4x16_pass2_neon are not public we can pass arguments in
CPSR bits

Thanks for the pointer. I've got some other changes potentially coming up that touch the same area, which might clobber the CPSR bits though, so I'll hold off this part for now, at least until after I'm done with those parts.

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

Reply via email to