summaryrefslogtreecommitdiff
path: root/libavcodec/arm/mpegvideo_armv5te_s.S
diff options
context:
space:
mode:
authorMans Rullgard <mans@mansr.com>2011-06-14 11:29:48 +0100
committerMans Rullgard <mans@mansr.com>2011-06-23 07:31:54 +0100
commit8986fddc2bab92bd7d77a123ac70c4fb70c96c7c (patch)
tree73b8c4a57c98be10d4403dc69ec3019a1665b3f0 /libavcodec/arm/mpegvideo_armv5te_s.S
parent9cd7b8549b71bcfced2062596fd9eecba092aeb1 (diff)
ARM: allow building in Thumb2 mode
Signed-off-by: Mans Rullgard <mans@mansr.com>
Diffstat (limited to 'libavcodec/arm/mpegvideo_armv5te_s.S')
-rw-r--r--libavcodec/arm/mpegvideo_armv5te_s.S12
1 files changed, 12 insertions, 0 deletions
diff --git a/libavcodec/arm/mpegvideo_armv5te_s.S b/libavcodec/arm/mpegvideo_armv5te_s.S
index e3461601d5..952c8d74cb 100644
--- a/libavcodec/arm/mpegvideo_armv5te_s.S
+++ b/libavcodec/arm/mpegvideo_armv5te_s.S
@@ -38,15 +38,21 @@
.macro dequant_t dst, src, mul, add, tmp
rsbs \tmp, ip, \src, asr #16
+ it gt
addgt \tmp, \add, #0
+ it lt
rsblt \tmp, \add, #0
+ it ne
smlatbne \dst, \src, \mul, \tmp
.endm
.macro dequant_b dst, src, mul, add, tmp
rsbs \tmp, ip, \src, lsl #16
+ it gt
addgt \tmp, \add, #0
+ it lt
rsblt \tmp, \add, #0
+ it ne
smlabbne \dst, \src, \mul, \tmp
.endm
@@ -80,21 +86,27 @@ function ff_dct_unquantize_h263_armv5te, export=1
strh lr, [r0], #2
subs r3, r3, #8
+ it gt
ldrdgt r4, [r0, #0] /* load data early to avoid load/use pipeline stall */
bgt 1b
adds r3, r3, #2
+ it le
pople {r4-r9,pc}
2:
ldrsh r9, [r0, #0]
ldrsh lr, [r0, #2]
mov r8, r2
cmp r9, #0
+ it lt
rsblt r8, r2, #0
+ it ne
smlabbne r9, r9, r1, r8
mov r8, r2
cmp lr, #0
+ it lt
rsblt r8, r2, #0
+ it ne
smlabbne lr, lr, r1, r8
strh r9, [r0], #2
strh lr, [r0], #2