diff options
| -rw-r--r-- | compiler/dex/quick/x86/target_x86.cc | 31 | ||||
| -rw-r--r-- | compiler/dex/quick/x86/x86_lir.h | 21 | ||||
| -rw-r--r-- | runtime/entrypoints/quick/quick_trampoline_entrypoints.cc | 4 |
3 files changed, 0 insertions, 56 deletions
diff --git a/compiler/dex/quick/x86/target_x86.cc b/compiler/dex/quick/x86/target_x86.cc index 1c8c82242d..ce7229bc67 100644 --- a/compiler/dex/quick/x86/target_x86.cc +++ b/compiler/dex/quick/x86/target_x86.cc @@ -31,33 +31,25 @@ static constexpr RegStorage core_regs_arr_32[] = { }; static constexpr RegStorage core_regs_arr_64[] = { rs_rAX, rs_rCX, rs_rDX, rs_rBX, rs_rX86_SP_32, rs_rBP, rs_rSI, rs_rDI, -#ifdef TARGET_REX_SUPPORT rs_r8, rs_r9, rs_r10, rs_r11, rs_r12, rs_r13, rs_r14, rs_r15 -#endif }; static constexpr RegStorage core_regs_arr_64q[] = { rs_r0q, rs_r1q, rs_r2q, rs_r3q, rs_rX86_SP_64, rs_r5q, rs_r6q, rs_r7q, -#ifdef TARGET_REX_SUPPORT rs_r8q, rs_r9q, rs_r10q, rs_r11q, rs_r12q, rs_r13q, rs_r14q, rs_r15q -#endif }; static constexpr RegStorage sp_regs_arr_32[] = { rs_fr0, rs_fr1, rs_fr2, rs_fr3, rs_fr4, rs_fr5, rs_fr6, rs_fr7, }; static constexpr RegStorage sp_regs_arr_64[] = { rs_fr0, rs_fr1, rs_fr2, rs_fr3, rs_fr4, rs_fr5, rs_fr6, rs_fr7, -#ifdef TARGET_REX_SUPPORT rs_fr8, rs_fr9, rs_fr10, rs_fr11, rs_fr12, rs_fr13, rs_fr14, rs_fr15 -#endif }; static constexpr RegStorage dp_regs_arr_32[] = { rs_dr0, rs_dr1, rs_dr2, rs_dr3, rs_dr4, rs_dr5, rs_dr6, rs_dr7, }; static constexpr RegStorage dp_regs_arr_64[] = { rs_dr0, rs_dr1, rs_dr2, rs_dr3, rs_dr4, rs_dr5, rs_dr6, rs_dr7, -#ifdef TARGET_REX_SUPPORT rs_dr8, rs_dr9, rs_dr10, rs_dr11, rs_dr12, rs_dr13, rs_dr14, rs_dr15 -#endif }; static constexpr RegStorage reserved_regs_arr_32[] = {rs_rX86_SP_32}; static constexpr RegStorage reserved_regs_arr_64[] = {rs_rX86_SP_32}; @@ -65,33 +57,25 @@ static constexpr RegStorage reserved_regs_arr_64q[] = {rs_rX86_SP_64}; static constexpr RegStorage core_temps_arr_32[] = {rs_rAX, rs_rCX, rs_rDX, rs_rBX}; static constexpr RegStorage core_temps_arr_64[] = { rs_rAX, rs_rCX, rs_rDX, rs_rSI, rs_rDI, -#ifdef TARGET_REX_SUPPORT rs_r8, rs_r9, rs_r10, rs_r11 -#endif }; static constexpr RegStorage core_temps_arr_64q[] = { rs_r0q, rs_r1q, rs_r2q, rs_r6q, rs_r7q, -#ifdef TARGET_REX_SUPPORT rs_r8q, rs_r9q, rs_r10q, rs_r11q -#endif }; static constexpr RegStorage sp_temps_arr_32[] = { rs_fr0, rs_fr1, rs_fr2, rs_fr3, rs_fr4, rs_fr5, rs_fr6, rs_fr7, }; static constexpr RegStorage sp_temps_arr_64[] = { rs_fr0, rs_fr1, rs_fr2, rs_fr3, rs_fr4, rs_fr5, rs_fr6, rs_fr7, -#ifdef TARGET_REX_SUPPORT rs_fr8, rs_fr9, rs_fr10, rs_fr11, rs_fr12, rs_fr13, rs_fr14, rs_fr15 -#endif }; static constexpr RegStorage dp_temps_arr_32[] = { rs_dr0, rs_dr1, rs_dr2, rs_dr3, rs_dr4, rs_dr5, rs_dr6, rs_dr7, }; static constexpr RegStorage dp_temps_arr_64[] = { rs_dr0, rs_dr1, rs_dr2, rs_dr3, rs_dr4, rs_dr5, rs_dr6, rs_dr7, -#ifdef TARGET_REX_SUPPORT rs_dr8, rs_dr9, rs_dr10, rs_dr11, rs_dr12, rs_dr13, rs_dr14, rs_dr15 -#endif }; static constexpr RegStorage xp_temps_arr_32[] = { @@ -99,9 +83,7 @@ static constexpr RegStorage xp_temps_arr_32[] = { }; static constexpr RegStorage xp_temps_arr_64[] = { rs_xr0, rs_xr1, rs_xr2, rs_xr3, rs_xr4, rs_xr5, rs_xr6, rs_xr7, -#ifdef TARGET_REX_SUPPORT rs_xr8, rs_xr9, rs_xr10, rs_xr11, rs_xr12, rs_xr13, rs_xr14, rs_xr15 -#endif }; static constexpr ArrayRef<const RegStorage> empty_pool; @@ -132,10 +114,8 @@ X86NativeRegisterPool rX86_ARG0; X86NativeRegisterPool rX86_ARG1; X86NativeRegisterPool rX86_ARG2; X86NativeRegisterPool rX86_ARG3; -#ifdef TARGET_REX_SUPPORT X86NativeRegisterPool rX86_ARG4; X86NativeRegisterPool rX86_ARG5; -#endif X86NativeRegisterPool rX86_FARG0; X86NativeRegisterPool rX86_FARG1; X86NativeRegisterPool rX86_FARG2; @@ -488,7 +468,6 @@ void X86Mir2Lir::LockCallTemps() { LockTemp(rs_rX86_ARG1); LockTemp(rs_rX86_ARG2); LockTemp(rs_rX86_ARG3); -#ifdef TARGET_REX_SUPPORT if (Gen64Bit()) { LockTemp(rs_rX86_ARG4); LockTemp(rs_rX86_ARG5); @@ -501,7 +480,6 @@ void X86Mir2Lir::LockCallTemps() { LockTemp(rs_rX86_FARG6); LockTemp(rs_rX86_FARG7); } -#endif } /* To be used when explicitly managing register use */ @@ -510,7 +488,6 @@ void X86Mir2Lir::FreeCallTemps() { FreeTemp(rs_rX86_ARG1); FreeTemp(rs_rX86_ARG2); FreeTemp(rs_rX86_ARG3); -#ifdef TARGET_REX_SUPPORT if (Gen64Bit()) { FreeTemp(rs_rX86_ARG4); FreeTemp(rs_rX86_ARG5); @@ -523,7 +500,6 @@ void X86Mir2Lir::FreeCallTemps() { FreeTemp(rs_rX86_FARG6); FreeTemp(rs_rX86_FARG7); } -#endif } bool X86Mir2Lir::ProvidesFullMemoryBarrier(X86OpCode opcode) { @@ -730,13 +706,8 @@ X86Mir2Lir::X86Mir2Lir(CompilationUnit* cu, MIRGraph* mir_graph, ArenaAllocator* rs_rX86_ARG1 = rs_rSI; rs_rX86_ARG2 = rs_rDX; rs_rX86_ARG3 = rs_rCX; -#ifdef TARGET_REX_SUPPORT rs_rX86_ARG4 = rs_r8; rs_rX86_ARG5 = rs_r9; -#else - rs_rX86_ARG4 = RegStorage::InvalidReg(); - rs_rX86_ARG5 = RegStorage::InvalidReg(); -#endif rs_rX86_FARG0 = rs_fr0; rs_rX86_FARG1 = rs_fr1; rs_rX86_FARG2 = rs_fr2; @@ -749,10 +720,8 @@ X86Mir2Lir::X86Mir2Lir(CompilationUnit* cu, MIRGraph* mir_graph, ArenaAllocator* rX86_ARG1 = rSI; rX86_ARG2 = rDX; rX86_ARG3 = rCX; -#ifdef TARGET_REX_SUPPORT rX86_ARG4 = r8; rX86_ARG5 = r9; -#endif rX86_FARG0 = fr0; rX86_FARG1 = fr1; rX86_FARG2 = fr2; diff --git a/compiler/dex/quick/x86/x86_lir.h b/compiler/dex/quick/x86/x86_lir.h index 9b88853522..5022529667 100644 --- a/compiler/dex/quick/x86/x86_lir.h +++ b/compiler/dex/quick/x86/x86_lir.h @@ -142,10 +142,6 @@ enum X86NativeRegisterPool { r7 = RegStorage::k32BitSolo | RegStorage::kCoreRegister | 7, r7q = RegStorage::k64BitSolo | RegStorage::kCoreRegister | 7, rDI = r7, -#ifndef TARGET_REX_SUPPORT - // fake return address register for core spill mask. - rRET = RegStorage::k32BitSolo | RegStorage::kCoreRegister | 8, -#else r8 = RegStorage::k32BitSolo | RegStorage::kCoreRegister | 8, r8q = RegStorage::k64BitSolo | RegStorage::kCoreRegister | 8, r9 = RegStorage::k32BitSolo | RegStorage::kCoreRegister | 9, @@ -164,7 +160,6 @@ enum X86NativeRegisterPool { r15q = RegStorage::k64BitSolo | RegStorage::kCoreRegister | 15, // fake return address register for core spill mask. rRET = RegStorage::k32BitSolo | RegStorage::kCoreRegister | 16, -#endif // xmm registers, single precision view. fr0 = RegStorage::k32BitSolo | RegStorage::kFloatingPoint | 0, @@ -175,7 +170,6 @@ enum X86NativeRegisterPool { fr5 = RegStorage::k32BitSolo | RegStorage::kFloatingPoint | 5, fr6 = RegStorage::k32BitSolo | RegStorage::kFloatingPoint | 6, fr7 = RegStorage::k32BitSolo | RegStorage::kFloatingPoint | 7, -#ifdef TARGET_REX_SUPPORT fr8 = RegStorage::k32BitSolo | RegStorage::kFloatingPoint | 8, fr9 = RegStorage::k32BitSolo | RegStorage::kFloatingPoint | 9, fr10 = RegStorage::k32BitSolo | RegStorage::kFloatingPoint | 10, @@ -184,7 +178,6 @@ enum X86NativeRegisterPool { fr13 = RegStorage::k32BitSolo | RegStorage::kFloatingPoint | 13, fr14 = RegStorage::k32BitSolo | RegStorage::kFloatingPoint | 14, fr15 = RegStorage::k32BitSolo | RegStorage::kFloatingPoint | 15, -#endif // xmm registers, double precision aliases. dr0 = RegStorage::k64BitSolo | RegStorage::kFloatingPoint | 0, @@ -195,7 +188,6 @@ enum X86NativeRegisterPool { dr5 = RegStorage::k64BitSolo | RegStorage::kFloatingPoint | 5, dr6 = RegStorage::k64BitSolo | RegStorage::kFloatingPoint | 6, dr7 = RegStorage::k64BitSolo | RegStorage::kFloatingPoint | 7, -#ifdef TARGET_REX_SUPPORT dr8 = RegStorage::k64BitSolo | RegStorage::kFloatingPoint | 8, dr9 = RegStorage::k64BitSolo | RegStorage::kFloatingPoint | 9, dr10 = RegStorage::k64BitSolo | RegStorage::kFloatingPoint | 10, @@ -204,7 +196,6 @@ enum X86NativeRegisterPool { dr13 = RegStorage::k64BitSolo | RegStorage::kFloatingPoint | 13, dr14 = RegStorage::k64BitSolo | RegStorage::kFloatingPoint | 14, dr15 = RegStorage::k64BitSolo | RegStorage::kFloatingPoint | 15, -#endif // xmm registers, quad precision aliases xr0 = RegStorage::k128BitSolo | 0, @@ -215,7 +206,6 @@ enum X86NativeRegisterPool { xr5 = RegStorage::k128BitSolo | 5, xr6 = RegStorage::k128BitSolo | 6, xr7 = RegStorage::k128BitSolo | 7, -#ifdef TARGET_REX_SUPPORT xr8 = RegStorage::k128BitSolo | 8, xr9 = RegStorage::k128BitSolo | 9, xr10 = RegStorage::k128BitSolo | 10, @@ -224,7 +214,6 @@ enum X86NativeRegisterPool { xr13 = RegStorage::k128BitSolo | 13, xr14 = RegStorage::k128BitSolo | 14, xr15 = RegStorage::k128BitSolo | 15, -#endif // TODO: as needed, add 256, 512 and 1024-bit xmm views. }; @@ -254,7 +243,6 @@ constexpr RegStorage rs_r7(RegStorage::kValid | r7); constexpr RegStorage rs_r7q(RegStorage::kValid | r7q); constexpr RegStorage rs_rDI = rs_r7; constexpr RegStorage rs_rRET(RegStorage::kValid | rRET); -#ifdef TARGET_REX_SUPPORT constexpr RegStorage rs_r8(RegStorage::kValid | r8); constexpr RegStorage rs_r8q(RegStorage::kValid | r8q); constexpr RegStorage rs_r9(RegStorage::kValid | r9); @@ -271,7 +259,6 @@ constexpr RegStorage rs_r14(RegStorage::kValid | r14); constexpr RegStorage rs_r14q(RegStorage::kValid | r14q); constexpr RegStorage rs_r15(RegStorage::kValid | r15); constexpr RegStorage rs_r15q(RegStorage::kValid | r15q); -#endif constexpr RegStorage rs_fr0(RegStorage::kValid | fr0); constexpr RegStorage rs_fr1(RegStorage::kValid | fr1); @@ -281,7 +268,6 @@ constexpr RegStorage rs_fr4(RegStorage::kValid | fr4); constexpr RegStorage rs_fr5(RegStorage::kValid | fr5); constexpr RegStorage rs_fr6(RegStorage::kValid | fr6); constexpr RegStorage rs_fr7(RegStorage::kValid | fr7); -#ifdef TARGET_REX_SUPPORT constexpr RegStorage rs_fr8(RegStorage::kValid | fr8); constexpr RegStorage rs_fr9(RegStorage::kValid | fr9); constexpr RegStorage rs_fr10(RegStorage::kValid | fr10); @@ -290,7 +276,6 @@ constexpr RegStorage rs_fr12(RegStorage::kValid | fr12); constexpr RegStorage rs_fr13(RegStorage::kValid | fr13); constexpr RegStorage rs_fr14(RegStorage::kValid | fr14); constexpr RegStorage rs_fr15(RegStorage::kValid | fr15); -#endif constexpr RegStorage rs_dr0(RegStorage::kValid | dr0); constexpr RegStorage rs_dr1(RegStorage::kValid | dr1); @@ -300,7 +285,6 @@ constexpr RegStorage rs_dr4(RegStorage::kValid | dr4); constexpr RegStorage rs_dr5(RegStorage::kValid | dr5); constexpr RegStorage rs_dr6(RegStorage::kValid | dr6); constexpr RegStorage rs_dr7(RegStorage::kValid | dr7); -#ifdef TARGET_REX_SUPPORT constexpr RegStorage rs_dr8(RegStorage::kValid | dr8); constexpr RegStorage rs_dr9(RegStorage::kValid | dr9); constexpr RegStorage rs_dr10(RegStorage::kValid | dr10); @@ -309,7 +293,6 @@ constexpr RegStorage rs_dr12(RegStorage::kValid | dr12); constexpr RegStorage rs_dr13(RegStorage::kValid | dr13); constexpr RegStorage rs_dr14(RegStorage::kValid | dr14); constexpr RegStorage rs_dr15(RegStorage::kValid | dr15); -#endif constexpr RegStorage rs_xr0(RegStorage::kValid | xr0); constexpr RegStorage rs_xr1(RegStorage::kValid | xr1); @@ -319,7 +302,6 @@ constexpr RegStorage rs_xr4(RegStorage::kValid | xr4); constexpr RegStorage rs_xr5(RegStorage::kValid | xr5); constexpr RegStorage rs_xr6(RegStorage::kValid | xr6); constexpr RegStorage rs_xr7(RegStorage::kValid | xr7); -#ifdef TARGET_REX_SUPPORT constexpr RegStorage rs_xr8(RegStorage::kValid | xr8); constexpr RegStorage rs_xr9(RegStorage::kValid | xr9); constexpr RegStorage rs_xr10(RegStorage::kValid | xr10); @@ -328,16 +310,13 @@ constexpr RegStorage rs_xr12(RegStorage::kValid | xr12); constexpr RegStorage rs_xr13(RegStorage::kValid | xr13); constexpr RegStorage rs_xr14(RegStorage::kValid | xr14); constexpr RegStorage rs_xr15(RegStorage::kValid | xr15); -#endif extern X86NativeRegisterPool rX86_ARG0; extern X86NativeRegisterPool rX86_ARG1; extern X86NativeRegisterPool rX86_ARG2; extern X86NativeRegisterPool rX86_ARG3; -#ifdef TARGET_REX_SUPPORT extern X86NativeRegisterPool rX86_ARG4; extern X86NativeRegisterPool rX86_ARG5; -#endif extern X86NativeRegisterPool rX86_FARG0; extern X86NativeRegisterPool rX86_FARG1; extern X86NativeRegisterPool rX86_FARG2; diff --git a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc index e986c6ad1f..a3b1683973 100644 --- a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc +++ b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc @@ -172,11 +172,7 @@ class QuickArgumentVisitor { // | Padding | // | RDI/Method* | <- sp static constexpr bool kQuickSoftFloatAbi = false; // This is a hard float ABI. -#ifdef TARGET_REX_SUPPORT static constexpr size_t kNumQuickGprArgs = 5; // 5 arguments passed in GPRs. -#else - static constexpr size_t kNumQuickGprArgs = 3; // 3 arguments passed in GPRs if r8..r15 not enabled. -#endif static constexpr size_t kNumQuickFprArgs = 8; // 8 arguments passed in FPRs. static constexpr size_t kQuickCalleeSaveFrame_RefAndArgs_Fpr1Offset = 16; // Offset of first FPR arg. static constexpr size_t kQuickCalleeSaveFrame_RefAndArgs_Gpr1Offset = 80; // Offset of first GPR arg. |