aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2017-11-11 13:44:07 -0300
committerJames Almer <jamrial@gmail.com>2017-11-11 13:44:07 -0300
commit640073ecebc46040f966fe3b52c10f3c5b11d66f (patch)
treedd28fa07dfe8ba2ae0454caa927549fa379d48d7
parent2d263188ba87b0d1e1120f00eecae4bb0e163f47 (diff)
parent9dde6ab06c48f9447cd16f39bee33569cddb7be4 (diff)
downloadffmpeg-640073ecebc46040f966fe3b52c10f3c5b11d66f.tar.gz
Merge commit '9dde6ab06c48f9447cd16f39bee33569cddb7be4'
* commit '9dde6ab06c48f9447cd16f39bee33569cddb7be4': arm: Fix SIGBUS on ARM when compiled with binutils 2.29 Merged-by: James Almer <jamrial@gmail.com>
-rw-r--r--libavcodec/arm/h264idct_neon.S20
1 files changed, 12 insertions, 8 deletions
diff --git a/libavcodec/arm/h264idct_neon.S b/libavcodec/arm/h264idct_neon.S
index 4f68bdb9f5..93859db880 100644
--- a/libavcodec/arm/h264idct_neon.S
+++ b/libavcodec/arm/h264idct_neon.S
@@ -21,6 +21,7 @@
#include "libavutil/arm/asm.S"
function ff_h264_idct_add_neon, export=1
+h264_idct_add_neon_nothumb:
vld1.64 {d0-d3}, [r1,:128]
vmov.i16 q15, #0
@@ -73,6 +74,7 @@ function ff_h264_idct_add_neon, export=1
endfunc
function ff_h264_idct_dc_add_neon, export=1
+h264_idct_dc_add_neon_nothumb:
mov r3, #0
vld1.16 {d2[],d3[]}, [r1,:16]
strh r3, [r1]
@@ -113,8 +115,8 @@ function ff_h264_idct_add16_neon, export=1
movne lr, #0
cmp lr, #0
ite ne
- adrne lr, X(ff_h264_idct_dc_add_neon) + CONFIG_THUMB
- adreq lr, X(ff_h264_idct_add_neon) + CONFIG_THUMB
+ adrne lr, h264_idct_dc_add_neon_nothumb + CONFIG_THUMB
+ adreq lr, h264_idct_add_neon_nothumb + CONFIG_THUMB
blx lr
2: subs ip, ip, #1
add r1, r1, #32
@@ -138,8 +140,8 @@ function ff_h264_idct_add16intra_neon, export=1
cmp r8, #0
ldrsh r8, [r1]
iteet ne
- adrne lr, X(ff_h264_idct_add_neon) + CONFIG_THUMB
- adreq lr, X(ff_h264_idct_dc_add_neon) + CONFIG_THUMB
+ adrne lr, h264_idct_add_neon_nothumb + CONFIG_THUMB
+ adreq lr, h264_idct_dc_add_neon_nothumb + CONFIG_THUMB
cmpeq r8, #0
blxne lr
subs ip, ip, #1
@@ -166,8 +168,8 @@ function ff_h264_idct_add8_neon, export=1
cmp r8, #0
ldrsh r8, [r1]
iteet ne
- adrne lr, X(ff_h264_idct_add_neon) + CONFIG_THUMB
- adreq lr, X(ff_h264_idct_dc_add_neon) + CONFIG_THUMB
+ adrne lr, h264_idct_add_neon_nothumb + CONFIG_THUMB
+ adreq lr, h264_idct_dc_add_neon_nothumb + CONFIG_THUMB
cmpeq r8, #0
blxne lr
add r12, r12, #1
@@ -267,6 +269,7 @@ endfunc
.endm
function ff_h264_idct8_add_neon, export=1
+h264_idct8_add_neon_nothumb:
vmov.i16 q3, #0
vld1.16 {q8-q9}, [r1,:128]
vst1.16 {q3}, [r1,:128]!
@@ -328,6 +331,7 @@ function ff_h264_idct8_add_neon, export=1
endfunc
function ff_h264_idct8_dc_add_neon, export=1
+h264_idct8_dc_add_neon_nothumb:
mov r3, #0
vld1.16 {d30[],d31[]},[r1,:16]
strh r3, [r1]
@@ -388,8 +392,8 @@ function ff_h264_idct8_add4_neon, export=1
movne lr, #0
cmp lr, #0
ite ne
- adrne lr, X(ff_h264_idct8_dc_add_neon) + CONFIG_THUMB
- adreq lr, X(ff_h264_idct8_add_neon) + CONFIG_THUMB
+ adrne lr, h264_idct8_dc_add_neon_nothumb + CONFIG_THUMB
+ adreq lr, h264_idct8_add_neon_nothumb + CONFIG_THUMB
blx lr
2: subs r12, r12, #4
add r1, r1, #128