Index: source/libvpx/vp8/encoder/arm/neon/vp8_shortwalsh4x4_neon.c |
=================================================================== |
--- source/libvpx/vp8/encoder/arm/neon/vp8_shortwalsh4x4_neon.c (revision 292104) |
+++ source/libvpx/vp8/encoder/arm/neon/vp8_shortwalsh4x4_neon.c (working copy) |
@@ -10,10 +10,22 @@ |
#include <arm_neon.h> |
+#if (__GNUC__ == 4 && (__GNUC_MINOR__ == 6)) |
+#warning Using GCC 4.6 is not recommended |
+// Some versions of gcc4.6 do not correctly process this function. When built |
+// with any gcc4.6, use the C code. |
+#include "./vp8_rtcd.h" |
void vp8_short_walsh4x4_neon( |
int16_t *input, |
int16_t *output, |
int pitch) { |
+ vp8_short_walsh4x4_c(input, output, pitch); |
+} |
+#else |
+void vp8_short_walsh4x4_neon( |
+ int16_t *input, |
+ int16_t *output, |
+ int pitch) { |
uint16x4_t d16u16; |
int16x8_t q0s16, q1s16; |
int16x4_t dEmptys16, d0s16, d1s16, d2s16, d3s16, d4s16, d5s16, d6s16, d7s16; |
@@ -116,3 +128,4 @@ |
vst1q_s16(output + 8, q1s16); |
return; |
} |
+#endif // (__GNUC__ == 4 && (__GNUC_MINOR__ == 6)) |