summaryrefslogtreecommitdiff
path: root/third_party/libyuv/source/rotate_neon.cc
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libyuv/source/rotate_neon.cc')
-rw-r--r--third_party/libyuv/source/rotate_neon.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/third_party/libyuv/source/rotate_neon.cc b/third_party/libyuv/source/rotate_neon.cc
index 1c22b472b..76043b3b3 100644
--- a/third_party/libyuv/source/rotate_neon.cc
+++ b/third_party/libyuv/source/rotate_neon.cc
@@ -27,7 +27,7 @@ static uvec8 kVTbl4x4Transpose =
void TransposeWx8_NEON(const uint8* src, int src_stride,
uint8* dst, int dst_stride,
int width) {
- const uint8* src_temp;
+ const uint8* src_temp = NULL;
asm volatile (
// loops are on blocks of 8. loop will stop when
// counter gets to or below 0. starting the counter
@@ -35,6 +35,7 @@ void TransposeWx8_NEON(const uint8* src, int src_stride,
"sub %5, #8 \n"
// handle 8x8 blocks. this should be the majority of the plane
+ ".p2align 2 \n"
"1: \n"
"mov %0, %1 \n"
@@ -229,7 +230,7 @@ void TransposeWx8_NEON(const uint8* src, int src_stride,
"4: \n"
- : "=&r"(src_temp), // %0
+ : "+r"(src_temp), // %0
"+r"(src), // %1
"+r"(src_stride), // %2
"+r"(dst), // %3
@@ -247,7 +248,7 @@ void TransposeUVWx8_NEON(const uint8* src, int src_stride,
uint8* dst_a, int dst_stride_a,
uint8* dst_b, int dst_stride_b,
int width) {
- const uint8* src_temp;
+ const uint8* src_temp = NULL;
asm volatile (
// loops are on blocks of 8. loop will stop when
// counter gets to or below 0. starting the counter
@@ -255,6 +256,7 @@ void TransposeUVWx8_NEON(const uint8* src, int src_stride,
"sub %7, #8 \n"
// handle 8x8 blocks. this should be the majority of the plane
+ ".p2align 2 \n"
"1: \n"
"mov %0, %1 \n"
@@ -512,7 +514,7 @@ void TransposeUVWx8_NEON(const uint8* src, int src_stride,
"4: \n"
- : "=&r"(src_temp), // %0
+ : "+r"(src_temp), // %0
"+r"(src), // %1
"+r"(src_stride), // %2
"+r"(dst_a), // %3