shithub: libvpx

Download patch

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"