- fix access to pointers as part of FFTContext - dispatch_tab using 32bit pointers on x32
Signed-off-by: Matthias Räncker <[email protected]> --- libavcodec/x86/fft.asm | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/libavcodec/x86/fft.asm b/libavcodec/x86/fft.asm index c87752b..4ea6358 100644 --- a/libavcodec/x86/fft.asm +++ b/libavcodec/x86/fft.asm @@ -30,7 +30,7 @@ %include "libavutil/x86/x86util.asm" -%if ARCH_X86_64 +%if ARCH_X86_64_X64 %define pointer resq %else %define pointer resd @@ -78,7 +78,7 @@ cextern cos_ %+ i %assign i i<<1 %endrep -%if ARCH_X86_64 +%if ARCH_X86_64_X64 %define pointer dq %else %define pointer dd @@ -527,7 +527,7 @@ DEFINE_ARGS zc, w, n, o1, o3 %macro FFT_DISPATCH 2; clobbers 5 GPRs, 8 XMMs lea r2, [dispatch_tab%1] - mov r2, [r2 + (%2q-2)*gprsize] + mov r2p, [r2 + (%2q-2)*ptrsize] %ifdef PIC lea r3, [$$] add r2, r3 @@ -623,8 +623,8 @@ INIT_XMM sse FFT_CALC_FUNC cglobal fft_permute, 2,7,1 - mov r4, [r0 + FFTContext.revtab] - mov r5, [r0 + FFTContext.tmpbuf] + mov r4p, [r0 + FFTContext.revtab] + mov r5p, [r0 + FFTContext.tmpbuf] mov ecx, [r0 + FFTContext.nbits] mov r2, 1 shl r2, cl @@ -658,7 +658,7 @@ cglobal fft_permute, 2,7,1 %macro IMDCT_CALC_FUNC 0 cglobal imdct_calc, 3,5,3 mov r3d, [r0 + FFTContext.mdctsize] - mov r4, [r0 + FFTContext.imdcthalf] + mov r4p, [r0 + FFTContext.imdcthalf] add r1, r3 PUSH r3 PUSH r1 @@ -959,16 +959,22 @@ cglobal imdct_half, 3,12,8; FFTContext *s, FFTSample *output, const FFTSample *i %define rrevtab r7 %define rtcos r8 %define rtsin r9 +%define rrevtabp r7p +%define rtcosp r8p +%define rtsinp r9p %else %define rrevtab r6 %define rtsin r6 %define rtcos r5 +%define rrevtabp r6p +%define rtsinp r6p +%define rtcosp r5p %endif mov r3d, [r0+FFTContext.mdctsize] add r2, r3 shr r3, 1 - mov rtcos, [r0+FFTContext.tcos] - mov rtsin, [r0+FFTContext.tsin] + mov rtcosp, [r0+FFTContext.tcos] + mov rtsinp, [r0+FFTContext.tsin] add rtcos, r3 add rtsin, r3 %if ARCH_X86_64 == 0 @@ -976,7 +982,7 @@ cglobal imdct_half, 3,12,8; FFTContext *s, FFTSample *output, const FFTSample *i push rtsin %endif shr r3, 1 - mov rrevtab, [r0+FFTContext.revtab] + mov rrevtabp, [r0+FFTContext.revtab] add rrevtab, r3 %if ARCH_X86_64 == 0 push rrevtab -- 1.8.1.1 _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
