arm: vp9mc: Use a different helper register for PIC loads
authorMartin Storsjö <martin@martin.st>
Thu, 10 Nov 2016 11:25:36 +0000 (13:25 +0200)
committerMartin Storsjö <martin@martin.st>
Thu, 10 Nov 2016 12:01:04 +0000 (14:01 +0200)
This fixes crashes since 557c1675cf in linux PIC builds.

Previously, movrelx silently used r12 as helper register, which
doesn't work when r12 is the destination register.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavcodec/arm/vp9mc_neon.S

index 9deb656..d3d2c7f 100644 (file)
@@ -404,7 +404,7 @@ function ff_vp9_\type\()_\filter\()\size\()_h_neon, export=1
         ldr             r4,  [sp, #16]
         ldr             r5,  [sp, #20]
 .endif
-        movrelx         r12, X(ff_vp9_subpel_filters)
+        movrelx         r12, X(ff_vp9_subpel_filters), r6
         add             r12, r12, 120*\offset - 8
         cmp             r5,  #8
         add             r12, r12, r5, lsl #3
@@ -680,8 +680,8 @@ function ff_vp9_\type\()_\filter\()\size\()_v_neon, export=1
         push            {r4-r5}
         vpush           {q4-q7}
         ldr             r4,  [sp, #72]
+        movrelx         r12, X(ff_vp9_subpel_filters), r5
         ldr             r5,  [sp, #80]
-        movrelx         r12, X(ff_vp9_subpel_filters)
         add             r12, r12, 120*\offset - 8
         add             r12, r12, r5, lsl #3
         cmp             r5,  #8