|
|
@@ -1,93 +0,0 @@
|
|
|
---- 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
|