[x264-devel] arm: do not use aligned stores in mc_weight_w4_*neon

Janne Grunau git at videolan.org
Tue Aug 26 18:23:11 CEST 2014


x264 | branch: master | Janne Grunau <janne-x264 at jannau.net> | Sun Jul 20 18:24:57 2014 +0200| [0a05b3f9aa8c524a67119ec5eb6bcc24eb8f2f3b] | committer: Fiona Glaser

arm: do not use aligned stores in mc_weight_w4_*neon

mc_weight_w4_*neon is also used for width 2 which does not guarantee
4-byte aligned destination. Fixes crashes caused by random memory
corruption.

> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=0a05b3f9aa8c524a67119ec5eb6bcc24eb8f2f3b
---

 common/arm/mc-a.S |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/common/arm/mc-a.S b/common/arm/mc-a.S
index cd57920..2b7acda 100644
--- a/common/arm/mc-a.S
+++ b/common/arm/mc-a.S
@@ -567,8 +567,8 @@ weight4_loop:
     vrshl.s16   q8,  q8,  q2
     vadd.s16    q8,  q8,  q1
     vqmovun.s16 d16, q8
-    vst1.32     {d16[0]}, [r0,:32], r1
-    vst1.32     {d16[1]}, [r0,:32], r1
+    vst1.32     {d16[0]}, [r0], r1
+    vst1.32     {d16[1]}, [r0], r1
     bgt         weight4_loop
     pop         {r4-r5,pc}
 endfunc
@@ -670,8 +670,8 @@ weight4_nodenom_loop:
     vmla.s16    d20, d16, d0
     vmla.s16    d21, d18, d0
     vqmovun.s16 d16, q10
-    vst1.32     {d16[0]}, [r0,:32], r1
-    vst1.32     {d16[1]}, [r0,:32], r1
+    vst1.32     {d16[0]}, [r0], r1
+    vst1.32     {d16[1]}, [r0], r1
     bgt         weight4_nodenom_loop
     pop         {r4-r5,pc}
 endfunc
@@ -734,8 +734,8 @@ weight4_\name\()_loop:
     vld1.32     {d16[]}, [r2], r3
     vld1.32     {d17[]}, [r2], r3
     \op         q8,  q8,  q1
-    vst1.32     {d16[0]}, [r0,:32], r1
-    vst1.32     {d17[0]}, [r0,:32], r1
+    vst1.32     {d16[0]}, [r0], r1
+    vst1.32     {d17[0]}, [r0], r1
     bgt         weight4_\name\()_loop
     pop         {pc}
 endfunc



More information about the x264-devel mailing list