Index: source/libvpx/vp9/common/arm/neon/vp9_idct16x16_neon.c |
=================================================================== |
--- source/libvpx/vp9/common/arm/neon/vp9_idct16x16_neon.c (revision 293588) |
+++ source/libvpx/vp9/common/arm/neon/vp9_idct16x16_neon.c (working copy) |
@@ -30,18 +30,24 @@ |
uint8_t *dest, |
int dest_stride); |
+#if HAVE_NEON_ASM |
/* For ARM NEON, d8-d15 are callee-saved registers, and need to be saved. */ |
extern void vp9_push_neon(int64_t *store); |
extern void vp9_pop_neon(int64_t *store); |
+#endif // HAVE_NEON_ASM |
void vp9_idct16x16_256_add_neon(const int16_t *input, |
uint8_t *dest, int dest_stride) { |
+#if HAVE_NEON_ASM |
int64_t store_reg[8]; |
+#endif |
int16_t pass1_output[16*16] = {0}; |
int16_t row_idct_output[16*16] = {0}; |
+#if HAVE_NEON_ASM |
// save d8-d15 register values. |
vp9_push_neon(store_reg); |
+#endif |
/* Parallel idct on the upper 8 rows */ |
// First pass processes even elements 0, 2, 4, 6, 8, 10, 12, 14 and save the |
@@ -103,8 +109,10 @@ |
dest+8, |
dest_stride); |
+#if HAVE_NEON_ASM |
// restore d8-d15 register values. |
vp9_pop_neon(store_reg); |
+#endif |
return; |
} |
@@ -111,12 +119,16 @@ |
void vp9_idct16x16_10_add_neon(const int16_t *input, |
uint8_t *dest, int dest_stride) { |
+#if HAVE_NEON_ASM |
int64_t store_reg[8]; |
+#endif |
int16_t pass1_output[16*16] = {0}; |
int16_t row_idct_output[16*16] = {0}; |
+#if HAVE_NEON_ASM |
// save d8-d15 register values. |
vp9_push_neon(store_reg); |
+#endif |
/* Parallel idct on the upper 8 rows */ |
// First pass processes even elements 0, 2, 4, 6, 8, 10, 12, 14 and save the |
@@ -165,8 +177,10 @@ |
dest+8, |
dest_stride); |
+#if HAVE_NEON_ASM |
// restore d8-d15 register values. |
vp9_pop_neon(store_reg); |
+#endif |
return; |
} |