diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2022-11-21 20:37:36 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-11-21 20:37:36 +0000 |
commit | e615ae488d044b213495af332bdbe607a29cacf3 (patch) | |
tree | e63fec82d6f2c578210575b10f0665279b401efd | |
parent | 0ea4a72936f57bd4950345ead66e6aaa534b0ecd (diff) | |
parent | 4c19de0b71ce65bf6dc1e868581ba43eedcda122 (diff) | |
download | webrtc-e615ae488d044b213495af332bdbe607a29cacf3.tar.gz |
Merge "UPSTREAM: Add preprocessor support for additional architectures" am: 4c19de0b71
Original change: https://android-review.googlesource.com/c/platform/external/webrtc/+/2311086
Change-Id: I3866c03ffb3df494cd9db6110061b1c52aad0700
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | rtc_base/system/arch.h | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/rtc_base/system/arch.h b/rtc_base/system/arch.h index ed216e660f..be2367b85f 100644 --- a/rtc_base/system/arch.h +++ b/rtc_base/system/arch.h @@ -15,8 +15,9 @@ #define RTC_BASE_SYSTEM_ARCH_H_ // Processor architecture detection. For more info on what's defined, see: -// http://msdn.microsoft.com/en-us/library/b0084kay.aspx -// http://www.agner.org/optimize/calling_conventions.pdf +// https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros +// https://www.agner.org/optimize/calling_conventions.pdf +// https://sourceforge.net/p/predef/wiki/Architectures/ // or with gcc, run: "echo | gcc -E -dM -" #if defined(_M_X64) || defined(__x86_64__) #define WEBRTC_ARCH_X86_FAMILY @@ -32,17 +33,45 @@ #define WEBRTC_ARCH_X86 #define WEBRTC_ARCH_32_BITS #define WEBRTC_ARCH_LITTLE_ENDIAN -#elif defined(__ARMEL__) +#elif defined(_M_ARM) || defined(__ARMEL__) #define WEBRTC_ARCH_ARM_FAMILY #define WEBRTC_ARCH_32_BITS #define WEBRTC_ARCH_LITTLE_ENDIAN -#elif defined(__MIPSEL__) +#elif defined(__MIPSEL__) || defined(__MIPSEB__) #define WEBRTC_ARCH_MIPS_FAMILY #if defined(__LP64__) #define WEBRTC_ARCH_64_BITS #else #define WEBRTC_ARCH_32_BITS #endif +#if defined(__MIPSEL__) +#define WEBRTC_ARCH_LITTLE_ENDIAN +#else +#define WEBRTC_ARCH_BIG_ENDIAN +#endif +#elif defined(__PPC__) +#if defined(__PPC64__) +#define WEBRTC_ARCH_64_BITS +#else +#define WEBRTC_ARCH_32_BITS +#endif +#if defined(__LITTLE_ENDIAN__) +#define WEBRTC_ARCH_LITTLE_ENDIAN +#else +#define WEBRTC_ARCH_BIG_ENDIAN +#endif +#elif defined(__sparc) || defined(__sparc__) +#if __SIZEOF_LONG__ == 8 +#define WEBRTC_ARCH_64_BITS +#else +#define WEBRTC_ARCH_32_BITS +#endif +#define WEBRTC_ARCH_BIG_ENDIAN +#elif defined(__riscv) && __riscv_xlen == 64 +#define WEBRTC_ARCH_64_BITS +#define WEBRTC_ARCH_LITTLE_ENDIAN +#elif defined(__riscv) && __riscv_xlen == 32 +#define WEBRTC_ARCH_32_BITS #define WEBRTC_ARCH_LITTLE_ENDIAN #elif defined(__pnacl__) #define WEBRTC_ARCH_32_BITS |