diff options
Diffstat (limited to 'chromium/third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/subtract_neon.asm')
-rw-r--r-- | chromium/third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/subtract_neon.asm | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/subtract_neon.asm b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/subtract_neon.asm index 5bda78678db..840cb33d957 100644 --- a/chromium/third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/subtract_neon.asm +++ b/chromium/third_party/libvpx/source/libvpx/vp8/encoder/arm/neon/subtract_neon.asm @@ -65,8 +65,10 @@ ; unsigned char *pred, int pred_stride) |vp8_subtract_mby_neon| PROC push {r4-r7} + vpush {d8-d15} + mov r12, #4 - ldr r4, [sp, #16] ; pred_stride + ldr r4, [sp, #80] ; pred_stride mov r6, #32 ; "diff" stride x2 add r5, r0, #16 ; second diff pointer @@ -101,6 +103,7 @@ subtract_mby_loop subs r12, r12, #1 bne subtract_mby_loop + vpop {d8-d15} pop {r4-r7} bx lr ENDP @@ -112,9 +115,11 @@ subtract_mby_loop |vp8_subtract_mbuv_neon| PROC push {r4-r7} - ldr r4, [sp, #16] ; upred - ldr r5, [sp, #20] ; vpred - ldr r6, [sp, #24] ; pred_stride + vpush {d8-d15} + + ldr r4, [sp, #80] ; upred + ldr r5, [sp, #84] ; vpred + ldr r6, [sp, #88] ; pred_stride add r0, r0, #512 ; short *udiff = diff + 256; mov r12, #32 ; "diff" stride x2 add r7, r0, #16 ; second diff pointer @@ -191,6 +196,7 @@ subtract_mby_loop vst1.16 {q14}, [r0], r12 vst1.16 {q15}, [r7], r12 + vpop {d8-d15} pop {r4-r7} bx lr |