diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-12-09 12:08:24 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-12-09 12:08:29 +0100 |
commit | 92d47e2aa3912fc9018ef10fb6272b288401ee47 (patch) | |
tree | 5ea5fd0286881800f50c93e6fbef774afb4645f1 | |
parent | 16e65419ed3e654a04091616bd81b8c96c79c268 (diff) | |
parent | 780cd20b00a69e26bbfffbb8eec16fbe999ea793 (diff) | |
download | ffmpeg-92d47e2aa3912fc9018ef10fb6272b288401ee47.tar.gz |
Merge commit '780cd20b00a69e26bbfffbb8eec16fbe999ea793'
* commit '780cd20b00a69e26bbfffbb8eec16fbe999ea793':
aarch64: Use .data.rel.ro for const data with relocations
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/aarch64/fft_neon.S | 35 | ||||
-rw-r--r-- | libavcodec/aarch64/opus_imdct_neon.S | 20 | ||||
-rw-r--r-- | libavutil/aarch64/asm.S | 10 |
3 files changed, 35 insertions, 30 deletions
diff --git a/libavcodec/aarch64/fft_neon.S b/libavcodec/aarch64/fft_neon.S index 30f24dd73a..862039f97d 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,22 +415,22 @@ 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 +const fft_tab_neon, relocate=1 + .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 endconst const pmmp, align=4 diff --git a/libavcodec/aarch64/opus_imdct_neon.S b/libavcodec/aarch64/opus_imdct_neon.S index c2422617dd..97e1442ccc 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,14 +451,14 @@ 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 +const fft_tab_neon, relocate=1 + .quad fft15_neon + .quad fft30_neon + .quad fft60_neon + .quad fft120_neon + .quad fft240_neon + .quad fft480_neon + .quad fft960_neon endconst function ff_celt_imdct_half_neon, export=1 diff --git a/libavutil/aarch64/asm.S b/libavutil/aarch64/asm.S index c6adf6e112..ff34e7a5e5 100644 --- a/libavutil/aarch64/asm.S +++ b/libavutil/aarch64/asm.S @@ -52,12 +52,18 @@ FUNC .func \name .endif .endm -.macro const name, align=2 +.macro const name, align=2, relocate=0 .macro endconst ELF .size \name, . - \name .purgem endconst .endm -#ifndef __MACH__ +#if HAVE_SECTION_DATA_REL_RO +.if \relocate + .section .data.rel.ro +.else + .section .rodata +.endif +#elif !defined(__MACH__) .section .rodata #else .const_data |