[6/9] armv7: Use aligned memory writes in both copies of bilinear code

Submitted by Ben Avison on April 11, 2016, 12:26 p.m.

Details

Message ID 1460377590-23285-7-git-send-email-bavison@riscosopen.org
State New
Series "Changes to existing ARMv7 routines"
Headers show

Commit Message

Ben Avison April 11, 2016, 12:26 p.m.
pixman-arm-neon-asm-bilinear.S contains duplicates of some macro
definitions from pixman-arm-neon-asm.S, but they were taken before
commit 9638af9 added the aligns and they have never been brought back
into line.

An equivalent macro to load from the destination buffer (not applicable
to the operations implemented in pixman-arm-neon-asm.S) benefits from
the same alignent hints.

Verified that the aligned versions don't cause memory faults for the
fast paths defined in pixman-arm-neon-asm-bilinear.S.

Signed-off-by: Ben Avison <bavison@riscosopen.org>
---
 pixman/pixman-arm-neon-asm-bilinear.S |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

Patch hide | download patch | download mbox

diff --git a/pixman/pixman-arm-neon-asm-bilinear.S b/pixman/pixman-arm-neon-asm-bilinear.S
index 0fd92d6..aba8d00 100644
--- a/pixman/pixman-arm-neon-asm-bilinear.S
+++ b/pixman/pixman-arm-neon-asm-bilinear.S
@@ -186,9 +186,9 @@ 
 
 .macro bilinear_store_8888 numpix, tmp1, tmp2
 .if numpix == 4
-    vst1.32   {d0, d1}, [OUT]!
+    vst1.32   {d0, d1}, [OUT, :128]!
 .elseif numpix == 2
-    vst1.32   {d0}, [OUT]!
+    vst1.32   {d0}, [OUT, :64]!
 .elseif numpix == 1
     vst1.32   {d0[0]}, [OUT, :32]!
 .else
@@ -203,11 +203,11 @@ 
     vuzp.u8 d0, d2
     convert_8888_to_0565 d2, d1, d0, q1, tmp1, tmp2
 .if numpix == 4
-    vst1.16   {d2}, [OUT]!
+    vst1.16   {d2}, [OUT, :64]!
 .elseif numpix == 2
-    vst1.32   {d2[0]}, [OUT]!
+    vst1.32   {d2[0]}, [OUT, :32]!
 .elseif numpix == 1
-    vst1.16   {d2[0]}, [OUT]!
+    vst1.16   {d2[0]}, [OUT, :16]!
 .else
     .error bilinear_store_0565 numpix is unsupported
 .endif
@@ -251,11 +251,11 @@ 
 
 .macro bilinear_load_dst_8888 numpix, dst0, dst1, dst01
 .if numpix == 4
-    vld1.32     {dst0, dst1}, [OUT]
+    vld1.32     {dst0, dst1}, [OUT, :128]
 .elseif numpix == 2
-    vld1.32     {dst0}, [OUT]
+    vld1.32     {dst0}, [OUT, :64]
 .elseif numpix == 1
-    vld1.32     {dst0[0]}, [OUT]
+    vld1.32     {dst0[0]}, [OUT, :32]
 .else
     .error bilinear_load_dst_8888 numpix is unsupported
 .endif