Author: evancheng Date: Tue Nov 13 11:54:34 2007 New Revision: 44048 URL: http://llvm.org/viewvc/llvm-project?rev=44048&view=rev Log: Fix x86-64 jit: remove reliance on Dwarf numbers.
Modified: llvm/trunk/lib/Target/X86/X86CodeEmitter.cpp llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp Modified: llvm/trunk/lib/Target/X86/X86CodeEmitter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86CodeEmitter.cpp?rev=44048&r1=44047&r2=44048&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86CodeEmitter.cpp (original) +++ llvm/trunk/lib/Target/X86/X86CodeEmitter.cpp Tue Nov 13 11:54:34 2007 @@ -385,13 +385,20 @@ bool Emitter::isX86_64ExtendedReg(const MachineOperand &MO) { if (!MO.isRegister()) return false; unsigned RegNo = MO.getReg(); - int DWNum = II->getRegisterInfo().getDwarfRegNum(RegNo); - if (DWNum >= II->getRegisterInfo().getDwarfRegNum(X86::R8) && - DWNum <= II->getRegisterInfo().getDwarfRegNum(X86::R15)) - return true; - if (DWNum >= II->getRegisterInfo().getDwarfRegNum(X86::XMM8) && - DWNum <= II->getRegisterInfo().getDwarfRegNum(X86::XMM15)) + switch (MO.getReg()) { + default: break; + case X86::R8: case X86::R9: case X86::R10: case X86::R11: + case X86::R12: case X86::R13: case X86::R14: case X86::R15: + case X86::R8D: case X86::R9D: case X86::R10D: case X86::R11D: + case X86::R12D: case X86::R13D: case X86::R14D: case X86::R15D: + case X86::R8W: case X86::R9W: case X86::R10W: case X86::R11W: + case X86::R12W: case X86::R13W: case X86::R14W: case X86::R15W: + case X86::R8B: case X86::R9B: case X86::R10B: case X86::R11B: + case X86::R12B: case X86::R13B: case X86::R14B: case X86::R15B: + case X86::XMM8: case X86::XMM9: case X86::XMM10: case X86::XMM11: + case X86::XMM12: case X86::XMM13: case X86::XMM14: case X86::XMM15: return true; + } return false; } Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp?rev=44048&r1=44047&r2=44048&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp (original) +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp Tue Nov 13 11:54:34 2007 @@ -713,12 +713,22 @@ case X86::ST4: case X86::ST5: case X86::ST6: case X86::ST7: return RegNo-X86::ST0; - case X86::XMM0: case X86::XMM1: case X86::XMM2: case X86::XMM3: - case X86::XMM4: case X86::XMM5: case X86::XMM6: case X86::XMM7: - return getDwarfRegNum(RegNo) - getDwarfRegNum(X86::XMM0); - case X86::XMM8: case X86::XMM9: case X86::XMM10: case X86::XMM11: - case X86::XMM12: case X86::XMM13: case X86::XMM14: case X86::XMM15: - return getDwarfRegNum(RegNo) - getDwarfRegNum(X86::XMM8); + case X86::XMM0: case X86::XMM8: + return 0; + case X86::XMM1: case X86::XMM9: + return 1; + case X86::XMM2: case X86::XMM10: + return 2; + case X86::XMM3: case X86::XMM11: + return 3; + case X86::XMM4: case X86::XMM12: + return 4; + case X86::XMM5: case X86::XMM13: + return 5; + case X86::XMM6: case X86::XMM14: + return 6; + case X86::XMM7: case X86::XMM15: + return 7; default: assert(isVirtualRegister(RegNo) && "Unknown physical register!"); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits