ref: 2abfd8f92a22bba12bed78fb4525209ae9e90b4d
parent: f1ecf63f687d3bb3357357ae7f6df329f7fc861b
author: James Zern <[email protected]>
date: Wed Aug 5 14:31:50 EDT 2015
endian_inl.h: fix mips32 android build when configuring with mips32-android-gcc HAVE_MIPS32 would be set, but the ndk does not set -mips32r2 for APP_ABI=mips which results in BSwap32 failing to build; refine the check in endian_inl.h Change-Id: I22893fe61f29111eb902d961b500b2174596268d
--- a/vpx_util/endian_inl.h
+++ b/vpx_util/endian_inl.h
@@ -63,6 +63,11 @@
#define HAVE_BUILTIN_BSWAP16
#endif
+#if HAVE_MIPS32 && defined(__mips__) && !defined(__mips64) && \
+ defined(__mips_isa_rev) && (__mips_isa_rev >= 2) && (__mips_isa_rev < 6)
+#define VPX_USE_MIPS32_R2
+#endif
+
static INLINE uint16_t BSwap16(uint16_t x) {
#if defined(HAVE_BUILTIN_BSWAP16)
return __builtin_bswap16(x);
@@ -75,7 +80,7 @@
}
static INLINE uint32_t BSwap32(uint32_t x) {
-#if HAVE_MIPS32
+#if defined(VPX_USE_MIPS32_R2)
uint32_t ret;
__asm__ volatile (
"wsbh %[ret], %[x] \n\t"