This reverts commit c00365b46d464ce47716315c1801818d811bdb9a
in addition to using a different section.
---
Not sure if the ifdef __linux__ is necessary, we don't support
aarch64 on any other OSes than linux and iOS yet.
---
libavcodec/aarch64/fft_neon.S | 37 ++++++++++++++++++------------------
libavcodec/aarch64/opus_imdct_neon.S | 22 ++++++++++-----------
libavutil/aarch64/asm.S | 16 ++++++++++++++++
3 files changed, 45 insertions(+), 30 deletions(-)
diff --git a/libavcodec/aarch64/fft_neon.S b/libavcodec/aarch64/fft_neon.S
index ae9e1c6..cab08b3 100644
--- a/libavcodec/aarch64/fft_neon.S
+++ b/libavcodec/aarch64/fft_neon.S
@@ -376,8 +376,7 @@ function ff_fft_calc_neon, export=1
ld1 {v30.16b}, [x10]
mov x7, #-8
movrel x12, pmmp
- ldr x4, [x3, x2, lsl #3]
- add x3, x3, x4
+ ldr x3, [x3, x2, lsl #3]
movrel x13, mppm
movrel x14, X(ff_cos_16)
ld1 {v31.16b}, [x11]
@@ -416,23 +415,23 @@ function ff_fft_permute_neon, export=1
ret
endfunc
-const fft_tab_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
+constrel 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
+endconstrel
const pmmp, align=4
.float +1.0, -1.0, -1.0, +1.0
diff --git a/libavcodec/aarch64/opus_imdct_neon.S
b/libavcodec/aarch64/opus_imdct_neon.S
index c98931c..1a68b63 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
- ldr x6, [x5, x3, lsl #3]
- add x5, x5, x6
+ add x5, x5, x3, lsl #3
+ ldr x5, [x5]
mov x10, x0
blr x5
ldp x20, x30, [sp]
@@ -451,15 +451,15 @@ function fft_b15_calc_neon
ret
endfunc
-const fft_tab_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
+constrel fft_tab_neon
+ .quad fft15_neon
+ .quad fft30_neon
+ .quad fft60_neon
+ .quad fft120_neon
+ .quad fft240_neon
+ .quad fft480_neon
+ .quad fft960_neon
+endconstrel
function ff_celt_imdct_half_neon, export=1
sub sp, sp, #0x20
diff --git a/libavutil/aarch64/asm.S b/libavutil/aarch64/asm.S
index b766e67..0bd2966 100644
--- a/libavutil/aarch64/asm.S
+++ b/libavutil/aarch64/asm.S
@@ -66,6 +66,22 @@ ELF .size \name, . - \name
\name:
.endm
+.macro constrel name, align=2
+ .macro endconstrel
+ELF .size \name, . - \name
+ .purgem endconstrel
+ .endm
+#ifdef __linux__
+ .section .data.rel.ro
+#elif defined(__MACH__)
+ .const_data
+#else
+ .section .rodata
+#endif
+ .align \align
+\name:
+.endm
+
.macro movrel rd, val
#if CONFIG_PIC && defined(__APPLE__)
adrp \rd, \val@PAGE
--
1.9.3 (Apple Git-50)
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel