summaryrefslogtreecommitdiffstats
path: root/encoder
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2015-06-16 07:32:52 +0200
committerMarco Nelissen <marcone@google.com>2015-06-25 08:25:47 -0700
commit3e4b6559bcb900eb20e4eafd0779a1f1641f31ac (patch)
treeada6c98692f8463eab9d8804ffdd6c98fcc2e6cf /encoder
parent0ce73fe55837e85d9d9586c42e8fa3cb73b2621d (diff)
downloadandroid_external_libavc-3e4b6559bcb900eb20e4eafd0779a1f1641f31ac.tar.gz
android_external_libavc-3e4b6559bcb900eb20e4eafd0779a1f1641f31ac.tar.bz2
android_external_libavc-3e4b6559bcb900eb20e4eafd0779a1f1641f31ac.zip
armv8: Don't accidentally write 8 bytes instead of 4
This fixes running when built with clang - by pure luck the out of bounds writes didn't cause any harm when the calling C code was built with gcc. Change-Id: I4e33dd403b785cbcd24fb80f4db7a86310a32225
Diffstat (limited to 'encoder')
-rw-r--r--encoder/armv8/ih264e_evaluate_intra16x16_modes_av8.s18
-rw-r--r--encoder/armv8/ih264e_evaluate_intra_chroma_modes_av8.s18
2 files changed, 18 insertions, 18 deletions
diff --git a/encoder/armv8/ih264e_evaluate_intra16x16_modes_av8.s b/encoder/armv8/ih264e_evaluate_intra16x16_modes_av8.s
index e768c21..6058bf2 100644
--- a/encoder/armv8/ih264e_evaluate_intra16x16_modes_av8.s
+++ b/encoder/armv8/ih264e_evaluate_intra16x16_modes_av8.s
@@ -503,9 +503,9 @@ sad_comp:
///----------------------
//DO VERTICAL PREDICTION
- str x8 , [x7] //MIN SAD
- mov x8, #0
- str x8 , [x6] // MODE
+ str w8 , [x7] //MIN SAD
+ mov w8, #0
+ str w8 , [x6] // MODE
add x6, x1, #17
ld1 {v30.16b}, [x6]
b do_dc_vert
@@ -515,9 +515,9 @@ not_vert: cmp x9, x10
///----------------------
//DO HORIZONTAL
- str x9 , [x7] //MIN SAD
- mov x9, #1
- str x9 , [x6] // MODE
+ str w9 , [x7] //MIN SAD
+ mov w9, #1
+ str w9 , [x6] // MODE
ld1 {v0.16b}, [x1]
dup v10.16b, v0.b[15]
@@ -562,9 +562,9 @@ not_vert: cmp x9, x10
do_dc: ///---------------------------------
//DO DC
- str x10 , [x7] //MIN SAD
- mov x10, #2
- str x10 , [x6] // MODE
+ str w10 , [x7] //MIN SAD
+ mov w10, #2
+ str w10 , [x6] // MODE
do_dc_vert:
st1 {v30.4s}, [x2], x4 //0
st1 {v30.4s}, [x2], x4 //1
diff --git a/encoder/armv8/ih264e_evaluate_intra_chroma_modes_av8.s b/encoder/armv8/ih264e_evaluate_intra_chroma_modes_av8.s
index b02afd1..9313ad1 100644
--- a/encoder/armv8/ih264e_evaluate_intra_chroma_modes_av8.s
+++ b/encoder/armv8/ih264e_evaluate_intra_chroma_modes_av8.s
@@ -401,10 +401,10 @@ sad_comp:
///----------------------
//DO DC PREDICTION
- str x10 , [x7] //MIN SAD
+ str w10 , [x7] //MIN SAD
- mov x10, #0
- str x10 , [x6] // MODE
+ mov w10, #0
+ str w10 , [x6] // MODE
b do_dc_vert
//-----------------------------
@@ -414,10 +414,10 @@ not_dc:
bgt do_vert
///----------------------
//DO HORIZONTAL
- str x9 , [x7] //MIN SAD
+ str w9 , [x7] //MIN SAD
- mov x10, #1
- str x10 , [x6] // MODE
+ mov w10, #1
+ str w10 , [x6] // MODE
ld1 {v0.8h}, [x1]
dup v10.8h, v0.h[7]
@@ -441,9 +441,9 @@ not_dc:
do_vert:
//DO VERTICAL PREDICTION
- str x8 , [x7] //MIN SAD
- mov x8, #2
- str x8 , [x6] // MODE
+ str w8 , [x7] //MIN SAD
+ mov w8, #2
+ str w8 , [x6] // MODE
add x6, x1, #18
ld1 {v28.8b, v29.8b}, [x6] // vertical values
ld1 {v30.8b, v31.8b}, [x6] // vertical values