diff options
author | Martin Storsjo <martin@martin.st> | 2015-06-16 07:32:52 +0200 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2015-06-25 08:25:47 -0700 |
commit | 3e4b6559bcb900eb20e4eafd0779a1f1641f31ac (patch) | |
tree | ada6c98692f8463eab9d8804ffdd6c98fcc2e6cf /encoder | |
parent | 0ce73fe55837e85d9d9586c42e8fa3cb73b2621d (diff) | |
download | android_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.s | 18 | ||||
-rw-r--r-- | encoder/armv8/ih264e_evaluate_intra_chroma_modes_av8.s | 18 |
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 |