aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-11-16 00:52:31 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-11-16 01:05:31 +0100
commitf3cba01ccefebd23c1f095170f7726896e3974a6 (patch)
treed3da5951d740715fc02a639bc89f9158bfa1e0a6
parent77204f7366d4d3db9ce4a9384092dab82fd74ac8 (diff)
parentc00365b46d464ce47716315c1801818d811bdb9a (diff)
downloadffmpeg-f3cba01ccefebd23c1f095170f7726896e3974a6.tar.gz
Merge commit 'c00365b46d464ce47716315c1801818d811bdb9a'
* commit 'c00365b46d464ce47716315c1801818d811bdb9a': aarch64: Make the function pointer tables position independent Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/aarch64/fft_neon.S33
-rw-r--r--libavcodec/aarch64/opus_imdct_neon.S18
2 files changed, 26 insertions, 25 deletions
diff --git a/libavcodec/aarch64/fft_neon.S b/libavcodec/aarch64/fft_neon.S
index 54c13a4fda..30f24dd73a 100644
--- a/libavcodec/aarch64/fft_neon.S
+++ b/libavcodec/aarch64/fft_neon.S
@@ -376,7 +376,8 @@ function ff_fft_calc_neon, export=1
ld1 {v30.16b}, [x10]
mov x7, #-8
movrel x12, pmmp
- ldr x3, [x3, x2, lsl #3]
+ ldr x4, [x3, x2, lsl #3]
+ add x3, x3, x4
movrel x13, mppm
movrel x14, X(ff_cos_16)
ld1 {v31.16b}, [x11]
@@ -416,21 +417,21 @@ function ff_fft_permute_neon, export=1
endfunc
const fft_tab_neon
- .quad fft4_neon
- .quad fft8_neon
- .quad fft16_neon
- .quad fft32_neon
- .quad fft64_neon
- .quad fft128_neon
- .quad fft256_neon
- .quad fft512_neon
- .quad fft1024_neon
- .quad fft2048_neon
- .quad fft4096_neon
- .quad fft8192_neon
- .quad fft16384_neon
- .quad fft32768_neon
- .quad fft65536_neon
+ .quad fft4_neon - fft_tab_neon
+ .quad fft8_neon - fft_tab_neon
+ .quad fft16_neon - fft_tab_neon
+ .quad fft32_neon - fft_tab_neon
+ .quad fft64_neon - fft_tab_neon
+ .quad fft128_neon - fft_tab_neon
+ .quad fft256_neon - fft_tab_neon
+ .quad fft512_neon - fft_tab_neon
+ .quad fft1024_neon - fft_tab_neon
+ .quad fft2048_neon - fft_tab_neon
+ .quad fft4096_neon - fft_tab_neon
+ .quad fft8192_neon - fft_tab_neon
+ .quad fft16384_neon - fft_tab_neon
+ .quad fft32768_neon - fft_tab_neon
+ .quad fft65536_neon - fft_tab_neon
endconst
const pmmp, align=4
diff --git a/libavcodec/aarch64/opus_imdct_neon.S b/libavcodec/aarch64/opus_imdct_neon.S
index 6234309616..c2422617dd 100644
--- a/libavcodec/aarch64/opus_imdct_neon.S
+++ b/libavcodec/aarch64/opus_imdct_neon.S
@@ -438,8 +438,8 @@ function fft_b15_calc_neon
uzp1 v12.4s, v4.4s, v5.4s // exp[11 - 14].re
uzp2 v13.4s, v4.4s, v5.4s // exp[11 - 14].im
zip1 v14.4s, v6.4s, v7.4s // exp[5,10].re/exp[5,10].im
- add x5, x5, x3, lsl #3
- ldr x5, [x5]
+ ldr x6, [x5, x3, lsl #3]
+ add x5, x5, x6
mov x10, x0
blr x5
ldp x20, x30, [sp]
@@ -452,13 +452,13 @@ function fft_b15_calc_neon
endfunc
const fft_tab_neon
- .quad fft15_neon
- .quad fft30_neon
- .quad fft60_neon
- .quad fft120_neon
- .quad fft240_neon
- .quad fft480_neon
- .quad fft960_neon
+ .quad fft15_neon - fft_tab_neon
+ .quad fft30_neon - fft_tab_neon
+ .quad fft60_neon - fft_tab_neon
+ .quad fft120_neon - fft_tab_neon
+ .quad fft240_neon - fft_tab_neon
+ .quad fft480_neon - fft_tab_neon
+ .quad fft960_neon - fft_tab_neon
endconst
function ff_celt_imdct_half_neon, export=1