123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- --- ffmpeg-3.4.1.orig/libavcodec/arm/synth_filter_vfp.S 2016-03-29 04:25:11.000000000 +0200
- +++ ffmpeg-3.4.1/libavcodec/arm/synth_filter_vfp.S 2017-07-27 02:09:00.326946211 +0200
- @@ -1,6 +1,5 @@
- /*
- * Copyright (c) 2013 RISC OS Open Ltd
- - * Author: Ben Avison <bavison@riscosopen.org>
- *
- * This file is part of FFmpeg.
- *
- @@ -17,6 +16,8 @@
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- + *
- + * Author: Ben Avison <bavison@riscosopen.org>
- */
-
- #include "libavutil/arm/asm.S"
- @@ -124,7 +125,7 @@ function ff_synth_filter_float_vfp, expo
- push {r3-r7,lr}
- vpush {s16-s31}
- ldr lr, [P_SB_OFF]
- - add a2, ORIG_P_SB, lr, lsl #2 @ calculate synth_buf to pass to imdct_half
- + add a2, ORIG_P_SB, lr, LSL #2 @ calculate synth_buf to pass to imdct_half
- mov P_SB, a2 @ and keep a copy for ourselves
- bic J_WRAP, lr, #63 @ mangled to make testing for wrap easier in inner loop
- sub lr, lr, #32
- @@ -132,12 +133,12 @@ function ff_synth_filter_float_vfp, expo
- str lr, [P_SB_OFF] @ rotate offset, modulo buffer size, ready for next call
- ldr a3, [sp, #(16+6+2)*4] @ fetch in from stack, to pass to imdct_half
- VFP vmov s16, SCALE @ imdct_half is free to corrupt s0, but it contains one of our arguments in hardfp case
- - bl X(ff_imdct_half_vfp)
- + bl ff_imdct_half_c
- VFP vmov SCALE, s16
-
- - fmrx OLDFPSCR, FPSCR
- + vmrs OLDFPSCR, FPSCR
- ldr lr, =0x03030000 @ RunFast mode, short vectors of length 4, stride 1
- - fmxr FPSCR, lr
- + vmsr FPSCR, lr
- ldr P_SB2_DN, [sp, #16*4]
- ldr P_WIN_DN, [sp, #(16+6+0)*4]
- ldr P_OUT_DN, [sp, #(16+6+1)*4]
- @@ -196,48 +197,10 @@ NOVFP vldr SCALE, [sp, #(16+6+3)*4]
- vstmdb P_SB2_DN!, {VD0-VD3}
- bne 1b
-
- - fmxr FPSCR, OLDFPSCR
- + vmsr FPSCR, OLDFPSCR
- vpop {s16-s31}
- pop {r3-r7,pc}
- endfunc
-
- - .unreq IMDCT
- - .unreq ORIG_P_SB
- - .unreq P_SB_OFF
- - .unreq I
- - .unreq P_SB2_UP
- - .unreq OLDFPSCR
- - .unreq P_SB2_DN
- - .unreq P_WIN_DN
- - .unreq P_OUT_DN
- - .unreq P_SB
- - .unreq J_WRAP
- - .unreq P_WIN_UP
- - .unreq P_OUT_UP
- -
- - .unreq SCALE
- - .unreq SBUF_DAT_REV0
- - .unreq SBUF_DAT_REV1
- - .unreq SBUF_DAT_REV2
- - .unreq SBUF_DAT_REV3
- - .unreq VA0
- - .unreq VA3
- - .unreq VB0
- - .unreq VB3
- - .unreq VC0
- - .unreq VC3
- - .unreq VD0
- - .unreq VD3
- - .unreq SBUF_DAT0
- - .unreq SBUF_DAT1
- - .unreq SBUF_DAT2
- - .unreq SBUF_DAT3
- - .unreq SBUF_DAT_ALT0
- - .unreq SBUF_DAT_ALT1
- - .unreq SBUF_DAT_ALT2
- - .unreq SBUF_DAT_ALT3
- - .unreq WIN_DN_DAT0
- - .unreq WIN_UP_DAT0
- -
- .align 3
- zero: .word 0, 0
|