diff --git a/src/coreclr/jit/register.h b/src/coreclr/jit/register.h index 2c51271372595e..17271cad9d5239 100644 --- a/src/coreclr/jit/register.h +++ b/src/coreclr/jit/register.h @@ -133,6 +133,178 @@ REGDEF(K7, 7+KBASE, KMASK(7), "k7" ) REGDEF(STK, 8+KBASE, 0x0000, "STK" ) +// Ignore REG_* symbols defined in Android NDK +#if defined(TARGET_X86) +#undef REG_EAX +#define REG_EAX JITREG_EAX +#undef REG_ECX +#define REG_ECX JITREG_ECX +#undef REG_EDX +#define REG_EDX JITREG_EDX +#undef REG_EBX +#define REG_EBX JITREG_EBX +#undef REG_ESP +#define REG_ESP JITREG_ESP +#undef REG_EBP +#define REG_EBP JITREG_EBP +#undef REG_ESI +#define REG_ESI JITREG_ESI +#undef REG_EDI +#define REG_EDI JITREG_EDI +#undef REG_RAX +#define REG_RAX JITREG_RAX +#undef REG_RCX +#define REG_RCX JITREG_RCX +#undef REG_RDX +#define REG_RDX JITREG_RDX +#undef REG_RBX +#define REG_RBX JITREG_RBX +#undef REG_RSP +#define REG_RSP JITREG_RSP +#undef REG_RBP +#define REG_RBP JITREG_RBP +#undef REG_RSI +#define REG_RSI JITREG_RSI +#undef REG_RDI +#define REG_RDI JITREG_RDI +#else // defined(TARGET_X86) +#undef REG_RAX +#define REG_RAX JITREG_RAX +#undef REG_RCX +#define REG_RCX JITREG_RCX +#undef REG_RDX +#define REG_RDX JITREG_RDX +#undef REG_RBX +#define REG_RBX JITREG_RBX +#undef REG_RSP +#define REG_RSP JITREG_RSP +#undef REG_RBP +#define REG_RBP JITREG_RBP +#undef REG_RSI +#define REG_RSI JITREG_RSI +#undef REG_RDI +#define REG_RDI JITREG_RDI +#undef REG_R8 +#define REG_R8 JITREG_R8 +#undef REG_R9 +#define REG_R9 JITREG_R9 +#undef REG_R10 +#define REG_R10 JITREG_R10 +#undef REG_R11 +#define REG_R11 JITREG_R11 +#undef REG_R12 +#define REG_R12 JITREG_R12 +#undef REG_R13 +#define REG_R13 JITREG_R13 +#undef REG_R14 +#define REG_R14 JITREG_R14 +#undef REG_R15 +#define REG_R15 JITREG_R15 +#undef REG_EAX +#define REG_EAX JITREG_EAX +#undef REG_ECX +#define REG_ECX JITREG_ECX +#undef REG_EDX +#define REG_EDX JITREG_EDX +#undef REG_EBX +#define REG_EBX JITREG_EBX +#undef REG_ESP +#define REG_ESP JITREG_ESP +#undef REG_EBP +#define REG_EBP JITREG_EBP +#undef REG_ESI +#define REG_ESI JITREG_ESI +#undef REG_EDI +#define REG_EDI JITREG_EDI +#endif // !defined(TARGET_X86) + +#undef REG_XMM0 +#define REG_XMM0 JITREG_XMM0 +#undef REG_XMM1 +#define REG_XMM1 JITREG_XMM1 +#undef REG_XMM2 +#define REG_XMM2 JITREG_XMM2 +#undef REG_XMM3 +#define REG_XMM3 JITREG_XMM3 +#undef REG_XMM4 +#define REG_XMM4 JITREG_XMM4 +#undef REG_XMM5 +#define REG_XMM5 JITREG_XMM5 +#undef REG_XMM6 +#define REG_XMM6 JITREG_XMM6 +#undef REG_XMM7 +#define REG_XMM7 JITREG_XMM7 + +#ifdef TARGET_AMD64 +#undef REG_XMM8 +#define REG_XMM8 JITREG_XMM8 +#undef REG_XMM9 +#define REG_XMM9 JITREG_XMM9 +#undef REG_XMM10 +#define REG_XMM10 JITREG_XMM10 +#undef REG_XMM11 +#define REG_XMM11 JITREG_XMM11 +#undef REG_XMM12 +#define REG_XMM12 JITREG_XMM12 +#undef REG_XMM13 +#define REG_XMM13 JITREG_XMM13 +#undef REG_XMM14 +#define REG_XMM14 JITREG_XMM14 +#undef REG_XMM15 +#define REG_XMM15 JITREG_XMM15 +#undef REG_XMM16 +#define REG_XMM16 JITREG_XMM16 +#undef REG_XMM17 +#define REG_XMM17 JITREG_XMM17 +#undef REG_XMM18 +#define REG_XMM18 JITREG_XMM18 +#undef REG_XMM19 +#define REG_XMM19 JITREG_XMM19 +#undef REG_XMM20 +#define REG_XMM20 JITREG_XMM20 +#undef REG_XMM21 +#define REG_XMM21 JITREG_XMM21 +#undef REG_XMM22 +#define REG_XMM22 JITREG_XMM22 +#undef REG_XMM23 +#define REG_XMM23 JITREG_XMM23 +#undef REG_XMM24 +#define REG_XMM24 JITREG_XMM24 +#undef REG_XMM25 +#define REG_XMM25 JITREG_XMM25 +#undef REG_XMM26 +#define REG_XMM26 JITREG_XMM26 +#undef REG_XMM27 +#define REG_XMM27 JITREG_XMM27 +#undef REG_XMM28 +#define REG_XMM28 JITREG_XMM28 +#undef REG_XMM29 +#define REG_XMM29 JITREG_XMM29 +#undef REG_XMM30 +#define REG_XMM30 JITREG_XMM30 +#undef REG_XMM31 +#define REG_XMM31 JITREG_XMM31 +#endif // TARGET_AMD64 + +#undef REG_K0 +#define REG_K0 JITREG_K0 +#undef REG_K1 +#define REG_K1 JITREG_K1 +#undef REG_K2 +#define REG_K2 JITREG_K2 +#undef REG_K3 +#define REG_K3 JITREG_K3 +#undef REG_K4 +#define REG_K4 JITREG_K4 +#undef REG_K5 +#define REG_K5 JITREG_K5 +#undef REG_K6 +#define REG_K6 JITREG_K6 +#undef REG_K7 +#define REG_K7 JITREG_K7 +#undef REG_STK +#define REG_STK JITREG_STK + #elif defined(TARGET_ARM) #include "registerarm.h" diff --git a/src/coreclr/jit/registerarm.h b/src/coreclr/jit/registerarm.h index dfebf8199047e5..e26319c0374afd 100644 --- a/src/coreclr/jit/registerarm.h +++ b/src/coreclr/jit/registerarm.h @@ -74,6 +74,114 @@ REGALIAS(R13, SP) REGALIAS(R14, LR) REGALIAS(R15, PC) +// Ignore REG_* symbols defined in Android NDK +#undef REG_R0 +#define REG_R0 JITREG_R0 +#undef REG_R1 +#define REG_R1 JITREG_R1 +#undef REG_R2 +#define REG_R2 JITREG_R2 +#undef REG_R3 +#define REG_R3 JITREG_R3 +#undef REG_R4 +#define REG_R4 JITREG_R4 +#undef REG_R5 +#define REG_R5 JITREG_R5 +#undef REG_R6 +#define REG_R6 JITREG_R6 +#undef REG_R7 +#define REG_R7 JITREG_R7 +#undef REG_R8 +#define REG_R8 JITREG_R8 +#undef REG_R9 +#define REG_R9 JITREG_R9 +#undef REG_R10 +#define REG_R10 JITREG_R10 +#undef REG_R11 +#define REG_R11 JITREG_R11 +#undef REG_R12 +#define REG_R12 JITREG_R12 +#undef REG_SP +#define REG_SP JITREG_SP +#undef REG_LR +#define REG_LR JITREG_LR +#undef REG_PC +#define REG_PC JITREG_PC +#undef REG_F0 +#define REG_F0 JITREG_F0 +#undef REG_F1 +#define REG_F1 JITREG_F1 +#undef REG_F2 +#define REG_F2 JITREG_F2 +#undef REG_F3 +#define REG_F3 JITREG_F3 +#undef REG_F4 +#define REG_F4 JITREG_F4 +#undef REG_F5 +#define REG_F5 JITREG_F5 +#undef REG_F6 +#define REG_F6 JITREG_F6 +#undef REG_F7 +#define REG_F7 JITREG_F7 +#undef REG_F8 +#define REG_F8 JITREG_F8 +#undef REG_F9 +#define REG_F9 JITREG_F9 +#undef REG_F10 +#define REG_F10 JITREG_F10 +#undef REG_F11 +#define REG_F11 JITREG_F11 +#undef REG_F12 +#define REG_F12 JITREG_F12 +#undef REG_F13 +#define REG_F13 JITREG_F13 +#undef REG_F14 +#define REG_F14 JITREG_F14 +#undef REG_F15 +#define REG_F15 JITREG_F15 +#undef REG_F16 +#define REG_F16 JITREG_F16 +#undef REG_F17 +#define REG_F17 JITREG_F17 +#undef REG_F18 +#define REG_F18 JITREG_F18 +#undef REG_F19 +#define REG_F19 JITREG_F19 +#undef REG_F20 +#define REG_F20 JITREG_F20 +#undef REG_F21 +#define REG_F21 JITREG_F21 +#undef REG_F22 +#define REG_F22 JITREG_F22 +#undef REG_F23 +#define REG_F23 JITREG_F23 +#undef REG_F24 +#define REG_F24 JITREG_F24 +#undef REG_F25 +#define REG_F25 JITREG_F25 +#undef REG_F26 +#define REG_F26 JITREG_F26 +#undef REG_F27 +#define REG_F27 JITREG_F27 +#undef REG_F28 +#define REG_F28 JITREG_F28 +#undef REG_F29 +#define REG_F29 JITREG_F29 +#undef REG_F30 +#define REG_F30 JITREG_F30 +#undef REG_F31 +#define REG_F31 JITREG_F31 +#undef REG_FP +#define REG_FP JITREG_FP +#undef REG_R13 +#define REG_R13 JITREG_R13 +#undef REG_R14 +#define REG_R14 JITREG_R14 +#undef REG_R15 +#define REG_R15 JITREG_R15 +#undef REG_STK +#define REG_STK JITREG_STK + // This must be last! REGDEF(STK, 32+FPBASE, 0x0000, "STK") diff --git a/src/coreclr/jit/registerarm64.h b/src/coreclr/jit/registerarm64.h index 6b8091814251ee..4f69628c8a0b34 100644 --- a/src/coreclr/jit/registerarm64.h +++ b/src/coreclr/jit/registerarm64.h @@ -124,6 +124,184 @@ REGDEF(FFR, 1+NBASE, 0x0000, "ffr", "na") // This must be last! REGDEF(STK, 2+NBASE, 0x0000, "STK", "STK") +// Ignore REG_* symbols defined in Android NDK +#undef REG_R0 +#define REG_R0 JITREG_R0 +#undef REG_R1 +#define REG_R1 JITREG_R1 +#undef REG_R2 +#define REG_R2 JITREG_R2 +#undef REG_R3 +#define REG_R3 JITREG_R3 +#undef REG_R4 +#define REG_R4 JITREG_R4 +#undef REG_R5 +#define REG_R5 JITREG_R5 +#undef REG_R6 +#define REG_R6 JITREG_R6 +#undef REG_R7 +#define REG_R7 JITREG_R7 +#undef REG_R8 +#define REG_R8 JITREG_R8 +#undef REG_R9 +#define REG_R9 JITREG_R9 +#undef REG_R10 +#define REG_R10 JITREG_R10 +#undef REG_R11 +#define REG_R11 JITREG_R11 +#undef REG_R12 +#define REG_R12 JITREG_R12 +#undef REG_R13 +#define REG_R13 JITREG_R13 +#undef REG_R14 +#define REG_R14 JITREG_R14 +#undef REG_R15 +#define REG_R15 JITREG_R15 +#undef REG_IP0 +#define REG_IP0 JITREG_IP0 +#undef REG_IP1 +#define REG_IP1 JITREG_IP1 +#undef REG_PR +#define REG_PR JITREG_PR +#undef REG_R19 +#define REG_R19 JITREG_R19 +#undef REG_R20 +#define REG_R20 JITREG_R20 +#undef REG_R21 +#define REG_R21 JITREG_R21 +#undef REG_R22 +#define REG_R22 JITREG_R22 +#undef REG_R23 +#define REG_R23 JITREG_R23 +#undef REG_R24 +#define REG_R24 JITREG_R24 +#undef REG_R25 +#define REG_R25 JITREG_R25 +#undef REG_R26 +#define REG_R26 JITREG_R26 +#undef REG_R27 +#define REG_R27 JITREG_R27 +#undef REG_R28 +#define REG_R28 JITREG_R28 +#undef REG_FP +#define REG_FP JITREG_FP +#undef REG_LR +#define REG_LR JITREG_LR +#undef REG_ZR +#define REG_ZR JITREG_ZR +#undef REG_R16 +#define REG_R16 JITREG_R16 +#undef REG_R17 +#define REG_R17 JITREG_R17 +#undef REG_R18 +#define REG_R18 JITREG_R18 +#undef REG_R29 +#define REG_R29 JITREG_R29 +#undef REG_R30 +#define REG_R30 JITREG_R30 +#undef REG_V0 +#define REG_V0 JITREG_V0 +#undef REG_V1 +#define REG_V1 JITREG_V1 +#undef REG_V2 +#define REG_V2 JITREG_V2 +#undef REG_V3 +#define REG_V3 JITREG_V3 +#undef REG_V4 +#define REG_V4 JITREG_V4 +#undef REG_V5 +#define REG_V5 JITREG_V5 +#undef REG_V6 +#define REG_V6 JITREG_V6 +#undef REG_V7 +#define REG_V7 JITREG_V7 +#undef REG_V8 +#define REG_V8 JITREG_V8 +#undef REG_V9 +#define REG_V9 JITREG_V9 +#undef REG_V10 +#define REG_V10 JITREG_V10 +#undef REG_V11 +#define REG_V11 JITREG_V11 +#undef REG_V12 +#define REG_V12 JITREG_V12 +#undef REG_V13 +#define REG_V13 JITREG_V13 +#undef REG_V14 +#define REG_V14 JITREG_V14 +#undef REG_V15 +#define REG_V15 JITREG_V15 +#undef REG_V16 +#define REG_V16 JITREG_V16 +#undef REG_V17 +#define REG_V17 JITREG_V17 +#undef REG_V18 +#define REG_V18 JITREG_V18 +#undef REG_V19 +#define REG_V19 JITREG_V19 +#undef REG_V20 +#define REG_V20 JITREG_V20 +#undef REG_V21 +#define REG_V21 JITREG_V21 +#undef REG_V22 +#define REG_V22 JITREG_V22 +#undef REG_V23 +#define REG_V23 JITREG_V23 +#undef REG_V24 +#define REG_V24 JITREG_V24 +#undef REG_V25 +#define REG_V25 JITREG_V25 +#undef REG_V26 +#define REG_V26 JITREG_V26 +#undef REG_V27 +#define REG_V27 JITREG_V27 +#undef REG_V28 +#define REG_V28 JITREG_V28 +#undef REG_V29 +#define REG_V29 JITREG_V29 +#undef REG_V30 +#define REG_V30 JITREG_V30 +#undef REG_V31 +#define REG_V31 JITREG_V31 +#undef REG_P0 +#define REG_P0 JITREG_P0 +#undef REG_P1 +#define REG_P1 JITREG_P1 +#undef REG_P2 +#define REG_P2 JITREG_P2 +#undef REG_P3 +#define REG_P3 JITREG_P3 +#undef REG_P4 +#define REG_P4 JITREG_P4 +#undef REG_P5 +#define REG_P5 JITREG_P5 +#undef REG_P6 +#define REG_P6 JITREG_P6 +#undef REG_P7 +#define REG_P7 JITREG_P7 +#undef REG_P8 +#define REG_P8 JITREG_P8 +#undef REG_P9 +#define REG_P9 JITREG_P9 +#undef REG_P10 +#define REG_P10 JITREG_P10 +#undef REG_P11 +#define REG_P11 JITREG_P11 +#undef REG_P12 +#define REG_P12 JITREG_P12 +#undef REG_P13 +#define REG_P13 JITREG_P13 +#undef REG_P14 +#define REG_P14 JITREG_P14 +#undef REG_P15 +#define REG_P15 JITREG_P15 +#undef REG_SP +#define REG_SP JITREG_SP +#undef REG_FFR +#define REG_FFR JITREG_FFR +#undef REG_STK +#define REG_STK JITREG_STK + /*****************************************************************************/ #undef RMASK #undef VMASK diff --git a/src/coreclr/jit/target.h b/src/coreclr/jit/target.h index b988494fe43b12..4b5f6c8c71e53d 100644 --- a/src/coreclr/jit/target.h +++ b/src/coreclr/jit/target.h @@ -109,8 +109,14 @@ inline bool compUnixX86Abi() #if defined(TARGET_ARM) || defined(TARGET_LOONGARCH64) || defined(TARGET_RISCV64) enum _regNumber_enum : unsigned { +#if defined(TARGET_LOONGARCH64) || defined(TARGET_RISCV64) +// LA64 and RV64 don't require JITREG_ workaround for Android (see register.h) #define REGDEF(name, rnum, mask, sname) REG_##name = rnum, #define REGALIAS(alias, realname) REG_##alias = REG_##realname, +#else +#define REGDEF(name, rnum, mask, sname) JITREG_##name = rnum, +#define REGALIAS(alias, realname) JITREG_##alias = JITREG_##realname, +#endif #include "register.h" REG_COUNT, @@ -130,8 +136,8 @@ enum _regMask_enum : uint64_t enum _regNumber_enum : unsigned { -#define REGDEF(name, rnum, mask, xname, wname) REG_##name = rnum, -#define REGALIAS(alias, realname) REG_##alias = REG_##realname, +#define REGDEF(name, rnum, mask, xname, wname) JITREG_##name = rnum, +#define REGALIAS(alias, realname) JITREG_##alias = JITREG_##realname, #include "register.h" REG_COUNT, @@ -151,8 +157,8 @@ enum _regMask_enum : uint64_t enum _regNumber_enum : unsigned { -#define REGDEF(name, rnum, mask, sname) REG_##name = rnum, -#define REGALIAS(alias, realname) REG_##alias = REG_##realname, +#define REGDEF(name, rnum, mask, sname) JITREG_##name = rnum, +#define REGALIAS(alias, realname) JITREG_##alias = JITREG_##realname, #include "register.h" REG_COUNT, @@ -173,8 +179,8 @@ enum _regMask_enum : uint64_t enum _regNumber_enum : unsigned { -#define REGDEF(name, rnum, mask, sname) REG_##name = rnum, -#define REGALIAS(alias, realname) REG_##alias = REG_##realname, +#define REGDEF(name, rnum, mask, sname) JITREG_##name = rnum, +#define REGALIAS(alias, realname) JITREG_##alias = JITREG_##realname, #include "register.h" REG_COUNT,