95 lines
2.5 KiB
C
95 lines
2.5 KiB
C
|
|
#if defined(__EMSCRIPTEN__)
|
|
#define ARCH_EMSCRIPTEN "1"
|
|
#else
|
|
#define ARCH_EMSCRIPTEN "0"
|
|
#endif
|
|
const char *arch_EMSCRIPTEN = "INFO<EMSCRIPTEN=" ARCH_EMSCRIPTEN ">";
|
|
|
|
#if defined(__arm__) || defined(_M_ARM)
|
|
#define ARCH_ARM32 "1"
|
|
#else
|
|
#define ARCH_ARM32 "0"
|
|
#endif
|
|
const char *arch_ARM32 = "INFO<ARM32=" ARCH_ARM32 ">";
|
|
|
|
#if defined(__aarch64__) || defined(_M_ARM64)
|
|
#define ARCH_ARM64 "1"
|
|
#else
|
|
#define ARCH_ARM64 "0"
|
|
#endif
|
|
const char *arch_ARM64 = "INFO<ARM64=" ARCH_ARM64 ">";
|
|
|
|
#if defined(_M_ARM64EC)
|
|
#define ARCH_ARM64EC "1"
|
|
#else
|
|
#define ARCH_ARM64EC "0"
|
|
#endif
|
|
const char *arch_ARM64EC = "INFO<ARM64EC=" ARCH_ARM64EC ">";
|
|
|
|
#if defined(__loongarch64)
|
|
#define ARCH_LOONGARCH64 "1"
|
|
#else
|
|
#define ARCH_LOONGARCH64 "0"
|
|
#endif
|
|
const char *arch_LOONGARCH64 = "INFO<LOONGARCH64=" ARCH_LOONGARCH64 ">";
|
|
|
|
#if (defined(__PPC__) || defined(__powerpc__)) && !defined(__powerpc64__)
|
|
#define ARCH_POWERPC32 "1"
|
|
#else
|
|
#define ARCH_POWERPC32 "0"
|
|
#endif
|
|
const char *arch_POWERPC32 = "INFO<POWERPC32=" ARCH_POWERPC32 ">";
|
|
|
|
#if defined(__PPC64__) || defined(__powerpc64__)
|
|
#define ARCH_POWERPC64 "1"
|
|
#else
|
|
#define ARCH_POWERPC64 "0"
|
|
#endif
|
|
const char *arch_POWERPC64 = "INFO<POWERPC64=" ARCH_POWERPC64 ">";
|
|
|
|
#if defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 32
|
|
#define ARCH_RISCV32 "1"
|
|
#else
|
|
#define ARCH_RISCV32 "0"
|
|
#endif
|
|
const char *arch_RISCV32 = "INFO<RISCV32=" ARCH_RISCV32 ">";
|
|
|
|
#if defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64
|
|
#define ARCH_RISCV64 "1"
|
|
#else
|
|
#define ARCH_RISCV64 "0"
|
|
#endif
|
|
const char *arch_RISCV64 = "INFO<RISCV64=" ARCH_RISCV64 ">";
|
|
|
|
#if defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) ||defined( __i386) || defined(_M_IX86)
|
|
#define ARCH_X86 "1"
|
|
#else
|
|
#define ARCH_X86 "0"
|
|
#endif
|
|
const char *arch_X86 = "INFO<X86=" ARCH_X86 ">";
|
|
|
|
#if (defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)) && !defined(_M_ARM64EC)
|
|
#define ARCH_X64 "1"
|
|
#else
|
|
#define ARCH_X64 "0"
|
|
#endif
|
|
const char *arch_X64 = "INFO<X64=" ARCH_X64 ">";
|
|
|
|
int main(int argc, char *argv[]) {
|
|
int result = 0;
|
|
(void)argv;
|
|
|
|
result += arch_EMSCRIPTEN[argc];
|
|
result += arch_ARM32[argc];
|
|
result += arch_ARM64[argc];
|
|
result += arch_ARM64EC[argc];
|
|
result += arch_LOONGARCH64[argc];
|
|
result += arch_POWERPC32[argc];
|
|
result += arch_POWERPC64[argc];
|
|
result += arch_RISCV32[argc];
|
|
result += arch_RISCV64[argc];
|
|
result += arch_X86[argc];
|
|
result += arch_X64[argc];
|
|
return result;
|
|
} |