ref: 6892127a3260b959e9092f0a3c5938dd1c70fa26
parent: 8e57c926a36ded5ca064a2ae500922f9e9837f41
parent: 29a0c77acf4b33a41f4ba0909cc535ee3ca67ecc
author: volvet <[email protected]>
date: Tue Mar 18 05:28:51 EDT 2014
Merge pull request #521 from mstorsjo/neon-register-backup Don't clobber q4-q7 in WelsIntra16x16Combined3Satd_neon
--- a/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S
+++ b/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S
@@ -154,6 +154,7 @@
WELS_ASM_FUNC_BEGIN WelsIntra16x16Combined3Satd_neon
stmdb sp!, {r4-r7, lr}
+ vpush {q4-q7}
//Get the top line data to 'q15'(16 bytes)
sub r7, r0, r1
@@ -258,8 +259,8 @@
HDM_TRANSFORM_4X4_L0 d9, d13, d23, d19, d27, d15, d16, d17, d14
//Get the data from stack
- ldr r5, [sp, #20] //the addr of Best_mode
- ldr r6, [sp, #24] //the value of i_lambda
+ ldr r5, [sp, #84] //the addr of Best_mode
+ ldr r6, [sp, #88] //the value of i_lambda
//vadd.u16 d24, d25
vrshr.u16 d15, #1
@@ -291,6 +292,7 @@
str r4, [r5]
+ vpop {q4-q7}
ldmia sp!, {r4-r7, lr}
WELS_ASM_FUNC_END