- 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

Reply via email to