summaryrefslogtreecommitdiff
path: root/libavcodec/arm/cabac.h
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-03-15 01:08:45 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-03-15 01:08:45 +0100
commit41d08ca57564e1b9d8a4a12cfafe67a2a85914aa (patch)
treeacd1e6831d5699c7adf0f6db59ed8fcf2764c954 /libavcodec/arm/cabac.h
parent2b8d28439b6e0d368d31cecedb2edbc64375b3bf (diff)
avcodec/arm/cabac: fix inline cabac reader with the UNCHECKED bitstream reader
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/arm/cabac.h')
-rw-r--r--libavcodec/arm/cabac.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/arm/cabac.h b/libavcodec/arm/cabac.h
index f581d86e70..fdbf86b45e 100644
--- a/libavcodec/arm/cabac.h
+++ b/libavcodec/arm/cabac.h
@@ -59,12 +59,18 @@ static av_always_inline int get_cabac_inline_arm(CABACContext *c,
"tst %[r_c] , %[r_c] \n\t"
"bne 2f \n\t"
"ldr %[r_c] , [%[c], %[byte]] \n\t"
+#if UNCHECKED_BITSTREAM_READER
+ "ldrh %[tmp] , [%[r_c]] \n\t"
+ "add %[r_c] , %[r_c] , #2 \n\t"
+ "str %[r_c] , [%[c], %[byte]] \n\t"
+#else
"ldr %[r_b] , [%[c], %[end]] \n\t"
"ldrh %[tmp] , [%[r_c]] \n\t"
"cmp %[r_c] , %[r_b] \n\t"
"itt lt \n\t"
"addlt %[r_c] , %[r_c] , #2 \n\t"
"strlt %[r_c] , [%[c], %[byte]] \n\t"
+#endif
"sub %[r_c] , %[low] , #1 \n\t"
"add %[r_b] , %[tables] , %[norm_off] \n\t"
"eor %[r_c] , %[low] , %[r_c] \n\t"