summaryrefslogtreecommitdiffstats
path: root/libavcodec/aarch64
diff options
context:
space:
mode:
authorManoj Gupta <manojgupta@chromium.org>2018-12-28 15:12:53 -0800
committerMichael Niedermayer <michael@niedermayer.cc>2019-01-03 20:12:07 +0100
commit6fcf813110fe390e835d14865d9f62cc3a7f23e5 (patch)
tree8dcbe897fe1990096025060bca1ffe72386c6b49 /libavcodec/aarch64
parentbf96937a961baeef75236ad0b986a1bb17906143 (diff)
downloadffmpeg-streaming-6fcf813110fe390e835d14865d9f62cc3a7f23e5.zip
ffmpeg-streaming-6fcf813110fe390e835d14865d9f62cc3a7f23e5.tar.gz
libavcodec: Remove dynamic relocs from aarch64/h264idct_neon.S
Some of the assembly functions e.g. ff_h264_idct_dc_add_neon has code like: movrel x14, X(ff_h264_idct_add_neon) Linker cannot resolve them fully at link time and emits dynamic relocations. Use explicit labels instead so that no dynamic relocations are needed at all. This avoids lld complains about text relocations. For background, see https://crbug.com/917919 Signed-off-by: Manoj Gupta <manojgupta@chromium.org> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/aarch64')
-rw-r--r--libavcodec/aarch64/h264idct_neon.S20
1 files changed, 12 insertions, 8 deletions
diff --git a/libavcodec/aarch64/h264idct_neon.S b/libavcodec/aarch64/h264idct_neon.S
index 825ec49..7de4420 100644
--- a/libavcodec/aarch64/h264idct_neon.S
+++ b/libavcodec/aarch64/h264idct_neon.S
@@ -23,6 +23,7 @@
#include "neon.S"
function ff_h264_idct_add_neon, export=1
+.L_ff_h264_idct_add_neon:
ld1 {v0.4H, v1.4H, v2.4H, v3.4H}, [x1]
sxtw x2, w2
movi v30.8H, #0
@@ -77,6 +78,7 @@ function ff_h264_idct_add_neon, export=1
endfunc
function ff_h264_idct_dc_add_neon, export=1
+.L_ff_h264_idct_dc_add_neon:
sxtw x2, w2
mov w3, #0
ld1r {v2.8H}, [x1]
@@ -106,8 +108,8 @@ function ff_h264_idct_add16_neon, export=1
mov w9, w3 // stride
movrel x7, scan8
mov x10, #16
- movrel x13, X(ff_h264_idct_dc_add_neon)
- movrel x14, X(ff_h264_idct_add_neon)
+ movrel x13, .L_ff_h264_idct_dc_add_neon
+ movrel x14, .L_ff_h264_idct_add_neon
1: mov w2, w9
ldrb w3, [x7], #1
ldrsw x0, [x5], #4
@@ -133,8 +135,8 @@ function ff_h264_idct_add16intra_neon, export=1
mov w9, w3 // stride
movrel x7, scan8
mov x10, #16
- movrel x13, X(ff_h264_idct_dc_add_neon)
- movrel x14, X(ff_h264_idct_add_neon)
+ movrel x13, .L_ff_h264_idct_dc_add_neon
+ movrel x14, .L_ff_h264_idct_add_neon
1: mov w2, w9
ldrb w3, [x7], #1
ldrsw x0, [x5], #4
@@ -160,8 +162,8 @@ function ff_h264_idct_add8_neon, export=1
add x5, x1, #16*4 // block_offset
add x9, x2, #16*32 // block
mov w19, w3 // stride
- movrel x13, X(ff_h264_idct_dc_add_neon)
- movrel x14, X(ff_h264_idct_add_neon)
+ movrel x13, .L_ff_h264_idct_dc_add_neon
+ movrel x14, .L_ff_h264_idct_add_neon
movrel x7, scan8, 16
mov x10, #0
mov x11, #16
@@ -263,6 +265,7 @@ endfunc
.endm
function ff_h264_idct8_add_neon, export=1
+.L_ff_h264_idct8_add_neon:
movi v19.8H, #0
sxtw x2, w2
ld1 {v24.8H, v25.8H}, [x1]
@@ -326,6 +329,7 @@ function ff_h264_idct8_add_neon, export=1
endfunc
function ff_h264_idct8_dc_add_neon, export=1
+.L_ff_h264_idct8_dc_add_neon:
mov w3, #0
sxtw x2, w2
ld1r {v31.8H}, [x1]
@@ -375,8 +379,8 @@ function ff_h264_idct8_add4_neon, export=1
mov w2, w3
movrel x7, scan8
mov w10, #16
- movrel x13, X(ff_h264_idct8_dc_add_neon)
- movrel x14, X(ff_h264_idct8_add_neon)
+ movrel x13, .L_ff_h264_idct8_dc_add_neon
+ movrel x14, .L_ff_h264_idct8_add_neon
1: ldrb w9, [x7], #4
ldrsw x0, [x5], #16
ldrb w9, [x4, w9, UXTW]
OpenPOWER on IntegriCloud