You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
diff -up ffmpeg-20100116/libavcodec/x86/fft_mmx.asm.textrel ffmpeg-20100116/libavcodec/x86/fft_mmx.asm
|
|
--- ffmpeg-20100116/libavcodec/x86/fft_mmx.asm.textrel 2010-01-16 14:24:37.000000000 +0100
|
|
+++ ffmpeg-20100116/libavcodec/x86/fft_mmx.asm 2010-01-16 15:36:17.000000000 +0100
|
|
@@ -419,18 +419,23 @@ DECL_PASS pass_interleave_3dn, PASS_BIG
|
|
%define pass_3dn2 pass_3dn
|
|
%define pass_interleave_3dn2 pass_interleave_3dn
|
|
|
|
+%ifdef PIC
|
|
+%define SECTION_REL - $$
|
|
+%else
|
|
+%define SECTION_REL
|
|
+%endif
|
|
|
|
%macro DECL_FFT 2-3 ; nbits, cpu, suffix
|
|
-%xdefine list_of_fft fft4%2, fft8%2
|
|
+%xdefine list_of_fft fft4%2 SECTION_REL, fft8%2 SECTION_REL
|
|
%if %1==5
|
|
-%xdefine list_of_fft list_of_fft, fft16%2
|
|
+%xdefine list_of_fft list_of_fft, fft16%2 SECTION_REL
|
|
%endif
|
|
|
|
%assign n 1<<%1
|
|
%rep 17-%1
|
|
%assign n2 n/2
|
|
%assign n4 n/4
|
|
-%xdefine list_of_fft list_of_fft, fft %+ n %+ %3%2
|
|
+%xdefine list_of_fft list_of_fft, fft %+ n %+ %3%2 SECTION_REL
|
|
|
|
align 16
|
|
fft %+ n %+ %3%2:
|
|
@@ -462,6 +467,10 @@ section .text
|
|
cglobal fft_dispatch%3%2, 2,5,8, z, nbits
|
|
lea r2, [dispatch_tab%3%2 GLOBAL]
|
|
mov r2, [r2 + (nbitsq-2)*gprsize]
|
|
+%ifdef PIC
|
|
+ lea r3, [$$ GLOBAL]
|
|
+ add r2, r3
|
|
+%endif
|
|
call r2
|
|
RET
|
|
%endmacro ; DECL_FFT
|