//===- TableGen'erated file -------------------------------------*- C++ -*-===// | |
// | |
// Target Register Enum Values | |
// | |
// Automatically generated file, do not edit! | |
// | |
//===----------------------------------------------------------------------===// | |
#ifdef GET_REGINFO_ENUM | |
#undef GET_REGINFO_ENUM | |
namespace llvm { | |
class MCRegisterClass; | |
extern MCRegisterClass X86MCRegisterClasses[]; | |
namespace X86 { | |
enum { | |
NoRegister, | |
AH = 1, | |
AL = 2, | |
AX = 3, | |
BH = 4, | |
BL = 5, | |
BP = 6, | |
BPL = 7, | |
BX = 8, | |
CH = 9, | |
CL = 10, | |
CR0 = 11, | |
CR1 = 12, | |
CR2 = 13, | |
CR3 = 14, | |
CR4 = 15, | |
CR5 = 16, | |
CR6 = 17, | |
CR7 = 18, | |
CR8 = 19, | |
CR9 = 20, | |
CR10 = 21, | |
CR11 = 22, | |
CR12 = 23, | |
CR13 = 24, | |
CR14 = 25, | |
CR15 = 26, | |
CS = 27, | |
CX = 28, | |
DH = 29, | |
DI = 30, | |
DIL = 31, | |
DL = 32, | |
DR0 = 33, | |
DR1 = 34, | |
DR2 = 35, | |
DR3 = 36, | |
DR4 = 37, | |
DR5 = 38, | |
DR6 = 39, | |
DR7 = 40, | |
DS = 41, | |
DX = 42, | |
EAX = 43, | |
EBP = 44, | |
EBX = 45, | |
ECX = 46, | |
EDI = 47, | |
EDX = 48, | |
EFLAGS = 49, | |
EIP = 50, | |
EIZ = 51, | |
ES = 52, | |
ESI = 53, | |
ESP = 54, | |
FP0 = 55, | |
FP1 = 56, | |
FP2 = 57, | |
FP3 = 58, | |
FP4 = 59, | |
FP5 = 60, | |
FP6 = 61, | |
FS = 62, | |
GS = 63, | |
IP = 64, | |
MM0 = 65, | |
MM1 = 66, | |
MM2 = 67, | |
MM3 = 68, | |
MM4 = 69, | |
MM5 = 70, | |
MM6 = 71, | |
MM7 = 72, | |
R8 = 73, | |
R8B = 74, | |
R8D = 75, | |
R8W = 76, | |
R9 = 77, | |
R9B = 78, | |
R9D = 79, | |
R9W = 80, | |
R10 = 81, | |
R10B = 82, | |
R10D = 83, | |
R10W = 84, | |
R11 = 85, | |
R11B = 86, | |
R11D = 87, | |
R11W = 88, | |
R12 = 89, | |
R12B = 90, | |
R12D = 91, | |
R12W = 92, | |
R13 = 93, | |
R13B = 94, | |
R13D = 95, | |
R13W = 96, | |
R14 = 97, | |
R14B = 98, | |
R14D = 99, | |
R14W = 100, | |
R15 = 101, | |
R15B = 102, | |
R15D = 103, | |
R15W = 104, | |
RAX = 105, | |
RBP = 106, | |
RBX = 107, | |
RCX = 108, | |
RDI = 109, | |
RDX = 110, | |
RIP = 111, | |
RIZ = 112, | |
RSI = 113, | |
RSP = 114, | |
SI = 115, | |
SIL = 116, | |
SP = 117, | |
SPL = 118, | |
SS = 119, | |
ST0 = 120, | |
ST1 = 121, | |
ST2 = 122, | |
ST3 = 123, | |
ST4 = 124, | |
ST5 = 125, | |
ST6 = 126, | |
ST7 = 127, | |
XMM0 = 128, | |
XMM1 = 129, | |
XMM2 = 130, | |
XMM3 = 131, | |
XMM4 = 132, | |
XMM5 = 133, | |
XMM6 = 134, | |
XMM7 = 135, | |
XMM8 = 136, | |
XMM9 = 137, | |
XMM10 = 138, | |
XMM11 = 139, | |
XMM12 = 140, | |
XMM13 = 141, | |
XMM14 = 142, | |
XMM15 = 143, | |
YMM0 = 144, | |
YMM1 = 145, | |
YMM2 = 146, | |
YMM3 = 147, | |
YMM4 = 148, | |
YMM5 = 149, | |
YMM6 = 150, | |
YMM7 = 151, | |
YMM8 = 152, | |
YMM9 = 153, | |
YMM10 = 154, | |
YMM11 = 155, | |
YMM12 = 156, | |
YMM13 = 157, | |
YMM14 = 158, | |
YMM15 = 159, | |
NUM_TARGET_REGS // 160 | |
}; | |
} | |
// Register classes | |
namespace X86 { | |
enum { | |
GR8RegClassID = 0, | |
GR64RegClassID = 1, | |
GR16RegClassID = 2, | |
GR32RegClassID = 3, | |
FR32RegClassID = 4, | |
GR64_with_sub_8bitRegClassID = 5, | |
FR64RegClassID = 6, | |
CONTROL_REGRegClassID = 7, | |
VR128RegClassID = 8, | |
VR256RegClassID = 9, | |
GR32_NOSPRegClassID = 10, | |
GR32_NOAXRegClassID = 11, | |
GR64_NOSPRegClassID = 12, | |
GR64_TCRegClassID = 13, | |
GR64_NOREXRegClassID = 14, | |
GR8_NOREXRegClassID = 15, | |
GR16_NOREXRegClassID = 16, | |
GR32_NOREXRegClassID = 17, | |
DEBUG_REGRegClassID = 18, | |
VR64RegClassID = 19, | |
GR64_TC_with_sub_8bitRegClassID = 20, | |
GR64_NOREX_with_sub_8bitRegClassID = 21, | |
RSTRegClassID = 22, | |
RFP32RegClassID = 23, | |
GR32_NOREX_NOSPRegClassID = 24, | |
RFP64RegClassID = 25, | |
GR64_NOREX_NOSPRegClassID = 26, | |
RFP80RegClassID = 27, | |
SEGMENT_REGRegClassID = 28, | |
GR64_TCW64RegClassID = 29, | |
GR8_ABCD_LRegClassID = 30, | |
GR8_ABCD_HRegClassID = 31, | |
GR16_ABCDRegClassID = 32, | |
GR32_ABCDRegClassID = 33, | |
GR64_ABCDRegClassID = 34, | |
GR32_TCRegClassID = 35, | |
GR32_NOAX_with_sub_8bit_hiRegClassID = 36, | |
GR64_TC_with_sub_8bit_hiRegClassID = 37, | |
GR32_ADRegClassID = 38, | |
CCRRegClassID = 39 | |
}; | |
} | |
} // End llvm namespace | |
#endif // GET_REGINFO_ENUM | |
//===- TableGen'erated file -------------------------------------*- C++ -*-===// | |
// | |
// MC Register Information | |
// | |
// Automatically generated file, do not edit! | |
// | |
//===----------------------------------------------------------------------===// | |
#ifdef GET_REGINFO_MC_DESC | |
#undef GET_REGINFO_MC_DESC | |
namespace llvm { | |
struct X86GenMCRegisterInfo : public MCRegisterInfo { | |
explicit X86GenMCRegisterInfo(const MCRegisterDesc *D); | |
}; | |
namespace { | |
const unsigned AH_Overlaps[] = { X86::AH, X86::AX, X86::EAX, X86::RAX, 0 }; | |
const unsigned AL_Overlaps[] = { X86::AL, X86::AX, X86::EAX, X86::RAX, 0 }; | |
const unsigned AX_Overlaps[] = { X86::AX, X86::AH, X86::AL, X86::EAX, X86::RAX, 0 }; | |
const unsigned BH_Overlaps[] = { X86::BH, X86::BX, X86::EBX, X86::RBX, 0 }; | |
const unsigned BL_Overlaps[] = { X86::BL, X86::BX, X86::EBX, X86::RBX, 0 }; | |
const unsigned BP_Overlaps[] = { X86::BP, X86::BPL, X86::EBP, X86::RBP, 0 }; | |
const unsigned BPL_Overlaps[] = { X86::BPL, X86::BP, X86::EBP, X86::RBP, 0 }; | |
const unsigned BX_Overlaps[] = { X86::BX, X86::BH, X86::BL, X86::EBX, X86::RBX, 0 }; | |
const unsigned CH_Overlaps[] = { X86::CH, X86::CX, X86::ECX, X86::RCX, 0 }; | |
const unsigned CL_Overlaps[] = { X86::CL, X86::CX, X86::ECX, X86::RCX, 0 }; | |
const unsigned CR0_Overlaps[] = { X86::CR0, 0 }; | |
const unsigned CR1_Overlaps[] = { X86::CR1, 0 }; | |
const unsigned CR2_Overlaps[] = { X86::CR2, 0 }; | |
const unsigned CR3_Overlaps[] = { X86::CR3, 0 }; | |
const unsigned CR4_Overlaps[] = { X86::CR4, 0 }; | |
const unsigned CR5_Overlaps[] = { X86::CR5, 0 }; | |
const unsigned CR6_Overlaps[] = { X86::CR6, 0 }; | |
const unsigned CR7_Overlaps[] = { X86::CR7, 0 }; | |
const unsigned CR8_Overlaps[] = { X86::CR8, 0 }; | |
const unsigned CR9_Overlaps[] = { X86::CR9, 0 }; | |
const unsigned CR10_Overlaps[] = { X86::CR10, 0 }; | |
const unsigned CR11_Overlaps[] = { X86::CR11, 0 }; | |
const unsigned CR12_Overlaps[] = { X86::CR12, 0 }; | |
const unsigned CR13_Overlaps[] = { X86::CR13, 0 }; | |
const unsigned CR14_Overlaps[] = { X86::CR14, 0 }; | |
const unsigned CR15_Overlaps[] = { X86::CR15, 0 }; | |
const unsigned CS_Overlaps[] = { X86::CS, 0 }; | |
const unsigned CX_Overlaps[] = { X86::CX, X86::CH, X86::CL, X86::ECX, X86::RCX, 0 }; | |
const unsigned DH_Overlaps[] = { X86::DH, X86::DX, X86::EDX, X86::RDX, 0 }; | |
const unsigned DI_Overlaps[] = { X86::DI, X86::DIL, X86::EDI, X86::RDI, 0 }; | |
const unsigned DIL_Overlaps[] = { X86::DIL, X86::DI, X86::EDI, X86::RDI, 0 }; | |
const unsigned DL_Overlaps[] = { X86::DL, X86::DX, X86::EDX, X86::RDX, 0 }; | |
const unsigned DR0_Overlaps[] = { X86::DR0, 0 }; | |
const unsigned DR1_Overlaps[] = { X86::DR1, 0 }; | |
const unsigned DR2_Overlaps[] = { X86::DR2, 0 }; | |
const unsigned DR3_Overlaps[] = { X86::DR3, 0 }; | |
const unsigned DR4_Overlaps[] = { X86::DR4, 0 }; | |
const unsigned DR5_Overlaps[] = { X86::DR5, 0 }; | |
const unsigned DR6_Overlaps[] = { X86::DR6, 0 }; | |
const unsigned DR7_Overlaps[] = { X86::DR7, 0 }; | |
const unsigned DS_Overlaps[] = { X86::DS, 0 }; | |
const unsigned DX_Overlaps[] = { X86::DX, X86::DH, X86::DL, X86::EDX, X86::RDX, 0 }; | |
const unsigned EAX_Overlaps[] = { X86::EAX, X86::AH, X86::AL, X86::AX, X86::RAX, 0 }; | |
const unsigned EBP_Overlaps[] = { X86::EBP, X86::BP, X86::BPL, X86::RBP, 0 }; | |
const unsigned EBX_Overlaps[] = { X86::EBX, X86::BH, X86::BL, X86::BX, X86::RBX, 0 }; | |
const unsigned ECX_Overlaps[] = { X86::ECX, X86::CH, X86::CL, X86::CX, X86::RCX, 0 }; | |
const unsigned EDI_Overlaps[] = { X86::EDI, X86::DI, X86::DIL, X86::RDI, 0 }; | |
const unsigned EDX_Overlaps[] = { X86::EDX, X86::DH, X86::DL, X86::DX, X86::RDX, 0 }; | |
const unsigned EFLAGS_Overlaps[] = { X86::EFLAGS, 0 }; | |
const unsigned EIP_Overlaps[] = { X86::EIP, X86::IP, X86::RIP, 0 }; | |
const unsigned EIZ_Overlaps[] = { X86::EIZ, 0 }; | |
const unsigned ES_Overlaps[] = { X86::ES, 0 }; | |
const unsigned ESI_Overlaps[] = { X86::ESI, X86::RSI, X86::SI, X86::SIL, 0 }; | |
const unsigned ESP_Overlaps[] = { X86::ESP, X86::RSP, X86::SP, X86::SPL, 0 }; | |
const unsigned FP0_Overlaps[] = { X86::FP0, X86::ST7, 0 }; | |
const unsigned FP1_Overlaps[] = { X86::FP1, X86::ST6, 0 }; | |
const unsigned FP2_Overlaps[] = { X86::FP2, X86::ST5, 0 }; | |
const unsigned FP3_Overlaps[] = { X86::FP3, X86::ST4, 0 }; | |
const unsigned FP4_Overlaps[] = { X86::FP4, X86::ST3, 0 }; | |
const unsigned FP5_Overlaps[] = { X86::FP5, X86::ST2, 0 }; | |
const unsigned FP6_Overlaps[] = { X86::FP6, X86::ST1, 0 }; | |
const unsigned FS_Overlaps[] = { X86::FS, 0 }; | |
const unsigned GS_Overlaps[] = { X86::GS, 0 }; | |
const unsigned IP_Overlaps[] = { X86::IP, X86::EIP, X86::RIP, 0 }; | |
const unsigned MM0_Overlaps[] = { X86::MM0, 0 }; | |
const unsigned MM1_Overlaps[] = { X86::MM1, 0 }; | |
const unsigned MM2_Overlaps[] = { X86::MM2, 0 }; | |
const unsigned MM3_Overlaps[] = { X86::MM3, 0 }; | |
const unsigned MM4_Overlaps[] = { X86::MM4, 0 }; | |
const unsigned MM5_Overlaps[] = { X86::MM5, 0 }; | |
const unsigned MM6_Overlaps[] = { X86::MM6, 0 }; | |
const unsigned MM7_Overlaps[] = { X86::MM7, 0 }; | |
const unsigned R8_Overlaps[] = { X86::R8, X86::R8B, X86::R8D, X86::R8W, 0 }; | |
const unsigned R8B_Overlaps[] = { X86::R8B, X86::R8, X86::R8D, X86::R8W, 0 }; | |
const unsigned R8D_Overlaps[] = { X86::R8D, X86::R8, X86::R8B, X86::R8W, 0 }; | |
const unsigned R8W_Overlaps[] = { X86::R8W, X86::R8, X86::R8B, X86::R8D, 0 }; | |
const unsigned R9_Overlaps[] = { X86::R9, X86::R9B, X86::R9D, X86::R9W, 0 }; | |
const unsigned R9B_Overlaps[] = { X86::R9B, X86::R9, X86::R9D, X86::R9W, 0 }; | |
const unsigned R9D_Overlaps[] = { X86::R9D, X86::R9, X86::R9B, X86::R9W, 0 }; | |
const unsigned R9W_Overlaps[] = { X86::R9W, X86::R9, X86::R9B, X86::R9D, 0 }; | |
const unsigned R10_Overlaps[] = { X86::R10, X86::R10B, X86::R10D, X86::R10W, 0 }; | |
const unsigned R10B_Overlaps[] = { X86::R10B, X86::R10, X86::R10D, X86::R10W, 0 }; | |
const unsigned R10D_Overlaps[] = { X86::R10D, X86::R10, X86::R10B, X86::R10W, 0 }; | |
const unsigned R10W_Overlaps[] = { X86::R10W, X86::R10, X86::R10B, X86::R10D, 0 }; | |
const unsigned R11_Overlaps[] = { X86::R11, X86::R11B, X86::R11D, X86::R11W, 0 }; | |
const unsigned R11B_Overlaps[] = { X86::R11B, X86::R11, X86::R11D, X86::R11W, 0 }; | |
const unsigned R11D_Overlaps[] = { X86::R11D, X86::R11, X86::R11B, X86::R11W, 0 }; | |
const unsigned R11W_Overlaps[] = { X86::R11W, X86::R11, X86::R11B, X86::R11D, 0 }; | |
const unsigned R12_Overlaps[] = { X86::R12, X86::R12B, X86::R12D, X86::R12W, 0 }; | |
const unsigned R12B_Overlaps[] = { X86::R12B, X86::R12, X86::R12D, X86::R12W, 0 }; | |
const unsigned R12D_Overlaps[] = { X86::R12D, X86::R12, X86::R12B, X86::R12W, 0 }; | |
const unsigned R12W_Overlaps[] = { X86::R12W, X86::R12, X86::R12B, X86::R12D, 0 }; | |
const unsigned R13_Overlaps[] = { X86::R13, X86::R13B, X86::R13D, X86::R13W, 0 }; | |
const unsigned R13B_Overlaps[] = { X86::R13B, X86::R13, X86::R13D, X86::R13W, 0 }; | |
const unsigned R13D_Overlaps[] = { X86::R13D, X86::R13, X86::R13B, X86::R13W, 0 }; | |
const unsigned R13W_Overlaps[] = { X86::R13W, X86::R13, X86::R13B, X86::R13D, 0 }; | |
const unsigned R14_Overlaps[] = { X86::R14, X86::R14B, X86::R14D, X86::R14W, 0 }; | |
const unsigned R14B_Overlaps[] = { X86::R14B, X86::R14, X86::R14D, X86::R14W, 0 }; | |
const unsigned R14D_Overlaps[] = { X86::R14D, X86::R14, X86::R14B, X86::R14W, 0 }; | |
const unsigned R14W_Overlaps[] = { X86::R14W, X86::R14, X86::R14B, X86::R14D, 0 }; | |
const unsigned R15_Overlaps[] = { X86::R15, X86::R15B, X86::R15D, X86::R15W, 0 }; | |
const unsigned R15B_Overlaps[] = { X86::R15B, X86::R15, X86::R15D, X86::R15W, 0 }; | |
const unsigned R15D_Overlaps[] = { X86::R15D, X86::R15, X86::R15B, X86::R15W, 0 }; | |
const unsigned R15W_Overlaps[] = { X86::R15W, X86::R15, X86::R15B, X86::R15D, 0 }; | |
const unsigned RAX_Overlaps[] = { X86::RAX, X86::AH, X86::AL, X86::AX, X86::EAX, 0 }; | |
const unsigned RBP_Overlaps[] = { X86::RBP, X86::BP, X86::BPL, X86::EBP, 0 }; | |
const unsigned RBX_Overlaps[] = { X86::RBX, X86::BH, X86::BL, X86::BX, X86::EBX, 0 }; | |
const unsigned RCX_Overlaps[] = { X86::RCX, X86::CH, X86::CL, X86::CX, X86::ECX, 0 }; | |
const unsigned RDI_Overlaps[] = { X86::RDI, X86::DI, X86::DIL, X86::EDI, 0 }; | |
const unsigned RDX_Overlaps[] = { X86::RDX, X86::DH, X86::DL, X86::DX, X86::EDX, 0 }; | |
const unsigned RIP_Overlaps[] = { X86::RIP, X86::EIP, X86::IP, 0 }; | |
const unsigned RIZ_Overlaps[] = { X86::RIZ, 0 }; | |
const unsigned RSI_Overlaps[] = { X86::RSI, X86::ESI, X86::SI, X86::SIL, 0 }; | |
const unsigned RSP_Overlaps[] = { X86::RSP, X86::ESP, X86::SP, X86::SPL, 0 }; | |
const unsigned SI_Overlaps[] = { X86::SI, X86::ESI, X86::RSI, X86::SIL, 0 }; | |
const unsigned SIL_Overlaps[] = { X86::SIL, X86::ESI, X86::RSI, X86::SI, 0 }; | |
const unsigned SP_Overlaps[] = { X86::SP, X86::ESP, X86::RSP, X86::SPL, 0 }; | |
const unsigned SPL_Overlaps[] = { X86::SPL, X86::ESP, X86::RSP, X86::SP, 0 }; | |
const unsigned SS_Overlaps[] = { X86::SS, 0 }; | |
const unsigned ST0_Overlaps[] = { X86::ST0, 0 }; | |
const unsigned ST1_Overlaps[] = { X86::ST1, X86::FP6, 0 }; | |
const unsigned ST2_Overlaps[] = { X86::ST2, X86::FP5, 0 }; | |
const unsigned ST3_Overlaps[] = { X86::ST3, X86::FP4, 0 }; | |
const unsigned ST4_Overlaps[] = { X86::ST4, X86::FP3, 0 }; | |
const unsigned ST5_Overlaps[] = { X86::ST5, X86::FP2, 0 }; | |
const unsigned ST6_Overlaps[] = { X86::ST6, X86::FP1, 0 }; | |
const unsigned ST7_Overlaps[] = { X86::ST7, X86::FP0, 0 }; | |
const unsigned XMM0_Overlaps[] = { X86::XMM0, X86::YMM0, 0 }; | |
const unsigned XMM1_Overlaps[] = { X86::XMM1, X86::YMM1, 0 }; | |
const unsigned XMM2_Overlaps[] = { X86::XMM2, X86::YMM2, 0 }; | |
const unsigned XMM3_Overlaps[] = { X86::XMM3, X86::YMM3, 0 }; | |
const unsigned XMM4_Overlaps[] = { X86::XMM4, X86::YMM4, 0 }; | |
const unsigned XMM5_Overlaps[] = { X86::XMM5, X86::YMM5, 0 }; | |
const unsigned XMM6_Overlaps[] = { X86::XMM6, X86::YMM6, 0 }; | |
const unsigned XMM7_Overlaps[] = { X86::XMM7, X86::YMM7, 0 }; | |
const unsigned XMM8_Overlaps[] = { X86::XMM8, X86::YMM8, 0 }; | |
const unsigned XMM9_Overlaps[] = { X86::XMM9, X86::YMM9, 0 }; | |
const unsigned XMM10_Overlaps[] = { X86::XMM10, X86::YMM10, 0 }; | |
const unsigned XMM11_Overlaps[] = { X86::XMM11, X86::YMM11, 0 }; | |
const unsigned XMM12_Overlaps[] = { X86::XMM12, X86::YMM12, 0 }; | |
const unsigned XMM13_Overlaps[] = { X86::XMM13, X86::YMM13, 0 }; | |
const unsigned XMM14_Overlaps[] = { X86::XMM14, X86::YMM14, 0 }; | |
const unsigned XMM15_Overlaps[] = { X86::XMM15, X86::YMM15, 0 }; | |
const unsigned YMM0_Overlaps[] = { X86::YMM0, X86::XMM0, 0 }; | |
const unsigned YMM1_Overlaps[] = { X86::YMM1, X86::XMM1, 0 }; | |
const unsigned YMM2_Overlaps[] = { X86::YMM2, X86::XMM2, 0 }; | |
const unsigned YMM3_Overlaps[] = { X86::YMM3, X86::XMM3, 0 }; | |
const unsigned YMM4_Overlaps[] = { X86::YMM4, X86::XMM4, 0 }; | |
const unsigned YMM5_Overlaps[] = { X86::YMM5, X86::XMM5, 0 }; | |
const unsigned YMM6_Overlaps[] = { X86::YMM6, X86::XMM6, 0 }; | |
const unsigned YMM7_Overlaps[] = { X86::YMM7, X86::XMM7, 0 }; | |
const unsigned YMM8_Overlaps[] = { X86::YMM8, X86::XMM8, 0 }; | |
const unsigned YMM9_Overlaps[] = { X86::YMM9, X86::XMM9, 0 }; | |
const unsigned YMM10_Overlaps[] = { X86::YMM10, X86::XMM10, 0 }; | |
const unsigned YMM11_Overlaps[] = { X86::YMM11, X86::XMM11, 0 }; | |
const unsigned YMM12_Overlaps[] = { X86::YMM12, X86::XMM12, 0 }; | |
const unsigned YMM13_Overlaps[] = { X86::YMM13, X86::XMM13, 0 }; | |
const unsigned YMM14_Overlaps[] = { X86::YMM14, X86::XMM14, 0 }; | |
const unsigned YMM15_Overlaps[] = { X86::YMM15, X86::XMM15, 0 }; | |
const unsigned Empty_SubRegsSet[] = { 0 }; | |
const unsigned AX_SubRegsSet[] = { X86::AL, X86::AH, 0 }; | |
const unsigned BP_SubRegsSet[] = { X86::BPL, 0 }; | |
const unsigned BX_SubRegsSet[] = { X86::BL, X86::BH, 0 }; | |
const unsigned CX_SubRegsSet[] = { X86::CL, X86::CH, 0 }; | |
const unsigned DI_SubRegsSet[] = { X86::DIL, 0 }; | |
const unsigned DX_SubRegsSet[] = { X86::DL, X86::DH, 0 }; | |
const unsigned EAX_SubRegsSet[] = { X86::AX, X86::AL, X86::AH, 0 }; | |
const unsigned EBP_SubRegsSet[] = { X86::BP, X86::BPL, 0 }; | |
const unsigned EBX_SubRegsSet[] = { X86::BX, X86::BL, X86::BH, 0 }; | |
const unsigned ECX_SubRegsSet[] = { X86::CX, X86::CL, X86::CH, 0 }; | |
const unsigned EDI_SubRegsSet[] = { X86::DI, X86::DIL, 0 }; | |
const unsigned EDX_SubRegsSet[] = { X86::DX, X86::DL, X86::DH, 0 }; | |
const unsigned EIP_SubRegsSet[] = { X86::IP, 0 }; | |
const unsigned ESI_SubRegsSet[] = { X86::SI, X86::SIL, 0 }; | |
const unsigned ESP_SubRegsSet[] = { X86::SP, X86::SPL, 0 }; | |
const unsigned R8_SubRegsSet[] = { X86::R8D, X86::R8W, X86::R8B, 0 }; | |
const unsigned R8D_SubRegsSet[] = { X86::R8W, X86::R8B, 0 }; | |
const unsigned R8W_SubRegsSet[] = { X86::R8B, 0 }; | |
const unsigned R9_SubRegsSet[] = { X86::R9D, X86::R9W, X86::R9B, 0 }; | |
const unsigned R9D_SubRegsSet[] = { X86::R9W, X86::R9B, 0 }; | |
const unsigned R9W_SubRegsSet[] = { X86::R9B, 0 }; | |
const unsigned R10_SubRegsSet[] = { X86::R10D, X86::R10W, X86::R10B, 0 }; | |
const unsigned R10D_SubRegsSet[] = { X86::R10W, X86::R10B, 0 }; | |
const unsigned R10W_SubRegsSet[] = { X86::R10B, 0 }; | |
const unsigned R11_SubRegsSet[] = { X86::R11D, X86::R11W, X86::R11B, 0 }; | |
const unsigned R11D_SubRegsSet[] = { X86::R11W, X86::R11B, 0 }; | |
const unsigned R11W_SubRegsSet[] = { X86::R11B, 0 }; | |
const unsigned R12_SubRegsSet[] = { X86::R12D, X86::R12W, X86::R12B, 0 }; | |
const unsigned R12D_SubRegsSet[] = { X86::R12W, X86::R12B, 0 }; | |
const unsigned R12W_SubRegsSet[] = { X86::R12B, 0 }; | |
const unsigned R13_SubRegsSet[] = { X86::R13D, X86::R13W, X86::R13B, 0 }; | |
const unsigned R13D_SubRegsSet[] = { X86::R13W, X86::R13B, 0 }; | |
const unsigned R13W_SubRegsSet[] = { X86::R13B, 0 }; | |
const unsigned R14_SubRegsSet[] = { X86::R14D, X86::R14W, X86::R14B, 0 }; | |
const unsigned R14D_SubRegsSet[] = { X86::R14W, X86::R14B, 0 }; | |
const unsigned R14W_SubRegsSet[] = { X86::R14B, 0 }; | |
const unsigned R15_SubRegsSet[] = { X86::R15D, X86::R15W, X86::R15B, 0 }; | |
const unsigned R15D_SubRegsSet[] = { X86::R15W, X86::R15B, 0 }; | |
const unsigned R15W_SubRegsSet[] = { X86::R15B, 0 }; | |
const unsigned RAX_SubRegsSet[] = { X86::EAX, X86::AX, X86::AL, X86::AH, 0 }; | |
const unsigned RBP_SubRegsSet[] = { X86::EBP, X86::BP, X86::BPL, 0 }; | |
const unsigned RBX_SubRegsSet[] = { X86::EBX, X86::BX, X86::BL, X86::BH, 0 }; | |
const unsigned RCX_SubRegsSet[] = { X86::ECX, X86::CX, X86::CL, X86::CH, 0 }; | |
const unsigned RDI_SubRegsSet[] = { X86::EDI, X86::DI, X86::DIL, 0 }; | |
const unsigned RDX_SubRegsSet[] = { X86::EDX, X86::DX, X86::DL, X86::DH, 0 }; | |
const unsigned RIP_SubRegsSet[] = { X86::EIP, X86::IP, 0 }; | |
const unsigned RSI_SubRegsSet[] = { X86::ESI, X86::SI, X86::SIL, 0 }; | |
const unsigned RSP_SubRegsSet[] = { X86::ESP, X86::SP, X86::SPL, 0 }; | |
const unsigned SI_SubRegsSet[] = { X86::SIL, 0 }; | |
const unsigned SP_SubRegsSet[] = { X86::SPL, 0 }; | |
const unsigned XMM0_SubRegsSet[] = { 0 }; | |
const unsigned XMM1_SubRegsSet[] = { 0 }; | |
const unsigned XMM2_SubRegsSet[] = { 0 }; | |
const unsigned XMM3_SubRegsSet[] = { 0 }; | |
const unsigned XMM4_SubRegsSet[] = { 0 }; | |
const unsigned XMM5_SubRegsSet[] = { 0 }; | |
const unsigned XMM6_SubRegsSet[] = { 0 }; | |
const unsigned XMM7_SubRegsSet[] = { 0 }; | |
const unsigned XMM8_SubRegsSet[] = { 0 }; | |
const unsigned XMM9_SubRegsSet[] = { 0 }; | |
const unsigned XMM10_SubRegsSet[] = { 0 }; | |
const unsigned XMM11_SubRegsSet[] = { 0 }; | |
const unsigned XMM12_SubRegsSet[] = { 0 }; | |
const unsigned XMM13_SubRegsSet[] = { 0 }; | |
const unsigned XMM14_SubRegsSet[] = { 0 }; | |
const unsigned XMM15_SubRegsSet[] = { 0 }; | |
const unsigned YMM0_SubRegsSet[] = { X86::XMM0, 0 }; | |
const unsigned YMM1_SubRegsSet[] = { X86::XMM1, 0 }; | |
const unsigned YMM2_SubRegsSet[] = { X86::XMM2, 0 }; | |
const unsigned YMM3_SubRegsSet[] = { X86::XMM3, 0 }; | |
const unsigned YMM4_SubRegsSet[] = { X86::XMM4, 0 }; | |
const unsigned YMM5_SubRegsSet[] = { X86::XMM5, 0 }; | |
const unsigned YMM6_SubRegsSet[] = { X86::XMM6, 0 }; | |
const unsigned YMM7_SubRegsSet[] = { X86::XMM7, 0 }; | |
const unsigned YMM8_SubRegsSet[] = { X86::XMM8, 0 }; | |
const unsigned YMM9_SubRegsSet[] = { X86::XMM9, 0 }; | |
const unsigned YMM10_SubRegsSet[] = { X86::XMM10, 0 }; | |
const unsigned YMM11_SubRegsSet[] = { X86::XMM11, 0 }; | |
const unsigned YMM12_SubRegsSet[] = { X86::XMM12, 0 }; | |
const unsigned YMM13_SubRegsSet[] = { X86::XMM13, 0 }; | |
const unsigned YMM14_SubRegsSet[] = { X86::XMM14, 0 }; | |
const unsigned YMM15_SubRegsSet[] = { X86::XMM15, 0 }; | |
const unsigned Empty_SuperRegsSet[] = { 0 }; | |
const unsigned AH_SuperRegsSet[] = { X86::AX, X86::EAX, X86::RAX, 0 }; | |
const unsigned AL_SuperRegsSet[] = { X86::AX, X86::EAX, X86::RAX, 0 }; | |
const unsigned AX_SuperRegsSet[] = { X86::EAX, X86::RAX, 0 }; | |
const unsigned BH_SuperRegsSet[] = { X86::BX, X86::EBX, X86::RBX, 0 }; | |
const unsigned BL_SuperRegsSet[] = { X86::BX, X86::EBX, X86::RBX, 0 }; | |
const unsigned BP_SuperRegsSet[] = { X86::EBP, X86::RBP, 0 }; | |
const unsigned BPL_SuperRegsSet[] = { X86::BP, X86::EBP, X86::RBP, 0 }; | |
const unsigned BX_SuperRegsSet[] = { X86::EBX, X86::RBX, 0 }; | |
const unsigned CH_SuperRegsSet[] = { X86::CX, X86::ECX, X86::RCX, 0 }; | |
const unsigned CL_SuperRegsSet[] = { X86::CX, X86::ECX, X86::RCX, 0 }; | |
const unsigned CX_SuperRegsSet[] = { X86::ECX, X86::RCX, 0 }; | |
const unsigned DH_SuperRegsSet[] = { X86::DX, X86::EDX, X86::RDX, 0 }; | |
const unsigned DI_SuperRegsSet[] = { X86::EDI, X86::RDI, 0 }; | |
const unsigned DIL_SuperRegsSet[] = { X86::DI, X86::EDI, X86::RDI, 0 }; | |
const unsigned DL_SuperRegsSet[] = { X86::DX, X86::EDX, X86::RDX, 0 }; | |
const unsigned DX_SuperRegsSet[] = { X86::EDX, X86::RDX, 0 }; | |
const unsigned EAX_SuperRegsSet[] = { X86::RAX, 0 }; | |
const unsigned EBP_SuperRegsSet[] = { X86::RBP, 0 }; | |
const unsigned EBX_SuperRegsSet[] = { X86::RBX, 0 }; | |
const unsigned ECX_SuperRegsSet[] = { X86::RCX, 0 }; | |
const unsigned EDI_SuperRegsSet[] = { X86::RDI, 0 }; | |
const unsigned EDX_SuperRegsSet[] = { X86::RDX, 0 }; | |
const unsigned EIP_SuperRegsSet[] = { X86::RIP, 0 }; | |
const unsigned ESI_SuperRegsSet[] = { X86::RSI, 0 }; | |
const unsigned ESP_SuperRegsSet[] = { X86::RSP, 0 }; | |
const unsigned IP_SuperRegsSet[] = { X86::EIP, X86::RIP, 0 }; | |
const unsigned R8B_SuperRegsSet[] = { X86::R8W, X86::R8D, X86::R8, 0 }; | |
const unsigned R8D_SuperRegsSet[] = { X86::R8, 0 }; | |
const unsigned R8W_SuperRegsSet[] = { X86::R8D, X86::R8, 0 }; | |
const unsigned R9B_SuperRegsSet[] = { X86::R9W, X86::R9D, X86::R9, 0 }; | |
const unsigned R9D_SuperRegsSet[] = { X86::R9, 0 }; | |
const unsigned R9W_SuperRegsSet[] = { X86::R9D, X86::R9, 0 }; | |
const unsigned R10B_SuperRegsSet[] = { X86::R10W, X86::R10D, X86::R10, 0 }; | |
const unsigned R10D_SuperRegsSet[] = { X86::R10, 0 }; | |
const unsigned R10W_SuperRegsSet[] = { X86::R10D, X86::R10, 0 }; | |
const unsigned R11B_SuperRegsSet[] = { X86::R11W, X86::R11D, X86::R11, 0 }; | |
const unsigned R11D_SuperRegsSet[] = { X86::R11, 0 }; | |
const unsigned R11W_SuperRegsSet[] = { X86::R11D, X86::R11, 0 }; | |
const unsigned R12B_SuperRegsSet[] = { X86::R12W, X86::R12D, X86::R12, 0 }; | |
const unsigned R12D_SuperRegsSet[] = { X86::R12, 0 }; | |
const unsigned R12W_SuperRegsSet[] = { X86::R12D, X86::R12, 0 }; | |
const unsigned R13B_SuperRegsSet[] = { X86::R13W, X86::R13D, X86::R13, 0 }; | |
const unsigned R13D_SuperRegsSet[] = { X86::R13, 0 }; | |
const unsigned R13W_SuperRegsSet[] = { X86::R13D, X86::R13, 0 }; | |
const unsigned R14B_SuperRegsSet[] = { X86::R14W, X86::R14D, X86::R14, 0 }; | |
const unsigned R14D_SuperRegsSet[] = { X86::R14, 0 }; | |
const unsigned R14W_SuperRegsSet[] = { X86::R14D, X86::R14, 0 }; | |
const unsigned R15B_SuperRegsSet[] = { X86::R15W, X86::R15D, X86::R15, 0 }; | |
const unsigned R15D_SuperRegsSet[] = { X86::R15, 0 }; | |
const unsigned R15W_SuperRegsSet[] = { X86::R15D, X86::R15, 0 }; | |
const unsigned SI_SuperRegsSet[] = { X86::ESI, X86::RSI, 0 }; | |
const unsigned SIL_SuperRegsSet[] = { X86::SI, X86::ESI, X86::RSI, 0 }; | |
const unsigned SP_SuperRegsSet[] = { X86::ESP, X86::RSP, 0 }; | |
const unsigned SPL_SuperRegsSet[] = { X86::SP, X86::ESP, X86::RSP, 0 }; | |
const unsigned XMM0_SuperRegsSet[] = { X86::YMM0, 0 }; | |
const unsigned XMM1_SuperRegsSet[] = { X86::YMM1, 0 }; | |
const unsigned XMM2_SuperRegsSet[] = { X86::YMM2, 0 }; | |
const unsigned XMM3_SuperRegsSet[] = { X86::YMM3, 0 }; | |
const unsigned XMM4_SuperRegsSet[] = { X86::YMM4, 0 }; | |
const unsigned XMM5_SuperRegsSet[] = { X86::YMM5, 0 }; | |
const unsigned XMM6_SuperRegsSet[] = { X86::YMM6, 0 }; | |
const unsigned XMM7_SuperRegsSet[] = { X86::YMM7, 0 }; | |
const unsigned XMM8_SuperRegsSet[] = { X86::YMM8, 0 }; | |
const unsigned XMM9_SuperRegsSet[] = { X86::YMM9, 0 }; | |
const unsigned XMM10_SuperRegsSet[] = { X86::YMM10, 0 }; | |
const unsigned XMM11_SuperRegsSet[] = { X86::YMM11, 0 }; | |
const unsigned XMM12_SuperRegsSet[] = { X86::YMM12, 0 }; | |
const unsigned XMM13_SuperRegsSet[] = { X86::YMM13, 0 }; | |
const unsigned XMM14_SuperRegsSet[] = { X86::YMM14, 0 }; | |
const unsigned XMM15_SuperRegsSet[] = { X86::YMM15, 0 }; | |
} | |
MCRegisterDesc X86RegDesc[] = { // Descriptors | |
{ "NOREG", 0, 0, 0 }, | |
{ "AH", AH_Overlaps, Empty_SubRegsSet, AH_SuperRegsSet }, | |
{ "AL", AL_Overlaps, Empty_SubRegsSet, AL_SuperRegsSet }, | |
{ "AX", AX_Overlaps, AX_SubRegsSet, AX_SuperRegsSet }, | |
{ "BH", BH_Overlaps, Empty_SubRegsSet, BH_SuperRegsSet }, | |
{ "BL", BL_Overlaps, Empty_SubRegsSet, BL_SuperRegsSet }, | |
{ "BP", BP_Overlaps, BP_SubRegsSet, BP_SuperRegsSet }, | |
{ "BPL", BPL_Overlaps, Empty_SubRegsSet, BPL_SuperRegsSet }, | |
{ "BX", BX_Overlaps, BX_SubRegsSet, BX_SuperRegsSet }, | |
{ "CH", CH_Overlaps, Empty_SubRegsSet, CH_SuperRegsSet }, | |
{ "CL", CL_Overlaps, Empty_SubRegsSet, CL_SuperRegsSet }, | |
{ "CR0", CR0_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR1", CR1_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR2", CR2_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR3", CR3_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR4", CR4_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR5", CR5_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR6", CR6_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR7", CR7_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR8", CR8_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR9", CR9_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR10", CR10_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR11", CR11_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR12", CR12_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR13", CR13_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR14", CR14_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CR15", CR15_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CS", CS_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "CX", CX_Overlaps, CX_SubRegsSet, CX_SuperRegsSet }, | |
{ "DH", DH_Overlaps, Empty_SubRegsSet, DH_SuperRegsSet }, | |
{ "DI", DI_Overlaps, DI_SubRegsSet, DI_SuperRegsSet }, | |
{ "DIL", DIL_Overlaps, Empty_SubRegsSet, DIL_SuperRegsSet }, | |
{ "DL", DL_Overlaps, Empty_SubRegsSet, DL_SuperRegsSet }, | |
{ "DR0", DR0_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "DR1", DR1_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "DR2", DR2_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "DR3", DR3_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "DR4", DR4_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "DR5", DR5_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "DR6", DR6_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "DR7", DR7_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "DS", DS_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "DX", DX_Overlaps, DX_SubRegsSet, DX_SuperRegsSet }, | |
{ "EAX", EAX_Overlaps, EAX_SubRegsSet, EAX_SuperRegsSet }, | |
{ "EBP", EBP_Overlaps, EBP_SubRegsSet, EBP_SuperRegsSet }, | |
{ "EBX", EBX_Overlaps, EBX_SubRegsSet, EBX_SuperRegsSet }, | |
{ "ECX", ECX_Overlaps, ECX_SubRegsSet, ECX_SuperRegsSet }, | |
{ "EDI", EDI_Overlaps, EDI_SubRegsSet, EDI_SuperRegsSet }, | |
{ "EDX", EDX_Overlaps, EDX_SubRegsSet, EDX_SuperRegsSet }, | |
{ "EFLAGS", EFLAGS_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "EIP", EIP_Overlaps, EIP_SubRegsSet, EIP_SuperRegsSet }, | |
{ "EIZ", EIZ_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "ES", ES_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "ESI", ESI_Overlaps, ESI_SubRegsSet, ESI_SuperRegsSet }, | |
{ "ESP", ESP_Overlaps, ESP_SubRegsSet, ESP_SuperRegsSet }, | |
{ "FP0", FP0_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "FP1", FP1_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "FP2", FP2_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "FP3", FP3_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "FP4", FP4_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "FP5", FP5_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "FP6", FP6_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "FS", FS_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "GS", GS_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "IP", IP_Overlaps, Empty_SubRegsSet, IP_SuperRegsSet }, | |
{ "MM0", MM0_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "MM1", MM1_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "MM2", MM2_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "MM3", MM3_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "MM4", MM4_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "MM5", MM5_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "MM6", MM6_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "MM7", MM7_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "R8", R8_Overlaps, R8_SubRegsSet, Empty_SuperRegsSet }, | |
{ "R8B", R8B_Overlaps, Empty_SubRegsSet, R8B_SuperRegsSet }, | |
{ "R8D", R8D_Overlaps, R8D_SubRegsSet, R8D_SuperRegsSet }, | |
{ "R8W", R8W_Overlaps, R8W_SubRegsSet, R8W_SuperRegsSet }, | |
{ "R9", R9_Overlaps, R9_SubRegsSet, Empty_SuperRegsSet }, | |
{ "R9B", R9B_Overlaps, Empty_SubRegsSet, R9B_SuperRegsSet }, | |
{ "R9D", R9D_Overlaps, R9D_SubRegsSet, R9D_SuperRegsSet }, | |
{ "R9W", R9W_Overlaps, R9W_SubRegsSet, R9W_SuperRegsSet }, | |
{ "R10", R10_Overlaps, R10_SubRegsSet, Empty_SuperRegsSet }, | |
{ "R10B", R10B_Overlaps, Empty_SubRegsSet, R10B_SuperRegsSet }, | |
{ "R10D", R10D_Overlaps, R10D_SubRegsSet, R10D_SuperRegsSet }, | |
{ "R10W", R10W_Overlaps, R10W_SubRegsSet, R10W_SuperRegsSet }, | |
{ "R11", R11_Overlaps, R11_SubRegsSet, Empty_SuperRegsSet }, | |
{ "R11B", R11B_Overlaps, Empty_SubRegsSet, R11B_SuperRegsSet }, | |
{ "R11D", R11D_Overlaps, R11D_SubRegsSet, R11D_SuperRegsSet }, | |
{ "R11W", R11W_Overlaps, R11W_SubRegsSet, R11W_SuperRegsSet }, | |
{ "R12", R12_Overlaps, R12_SubRegsSet, Empty_SuperRegsSet }, | |
{ "R12B", R12B_Overlaps, Empty_SubRegsSet, R12B_SuperRegsSet }, | |
{ "R12D", R12D_Overlaps, R12D_SubRegsSet, R12D_SuperRegsSet }, | |
{ "R12W", R12W_Overlaps, R12W_SubRegsSet, R12W_SuperRegsSet }, | |
{ "R13", R13_Overlaps, R13_SubRegsSet, Empty_SuperRegsSet }, | |
{ "R13B", R13B_Overlaps, Empty_SubRegsSet, R13B_SuperRegsSet }, | |
{ "R13D", R13D_Overlaps, R13D_SubRegsSet, R13D_SuperRegsSet }, | |
{ "R13W", R13W_Overlaps, R13W_SubRegsSet, R13W_SuperRegsSet }, | |
{ "R14", R14_Overlaps, R14_SubRegsSet, Empty_SuperRegsSet }, | |
{ "R14B", R14B_Overlaps, Empty_SubRegsSet, R14B_SuperRegsSet }, | |
{ "R14D", R14D_Overlaps, R14D_SubRegsSet, R14D_SuperRegsSet }, | |
{ "R14W", R14W_Overlaps, R14W_SubRegsSet, R14W_SuperRegsSet }, | |
{ "R15", R15_Overlaps, R15_SubRegsSet, Empty_SuperRegsSet }, | |
{ "R15B", R15B_Overlaps, Empty_SubRegsSet, R15B_SuperRegsSet }, | |
{ "R15D", R15D_Overlaps, R15D_SubRegsSet, R15D_SuperRegsSet }, | |
{ "R15W", R15W_Overlaps, R15W_SubRegsSet, R15W_SuperRegsSet }, | |
{ "RAX", RAX_Overlaps, RAX_SubRegsSet, Empty_SuperRegsSet }, | |
{ "RBP", RBP_Overlaps, RBP_SubRegsSet, Empty_SuperRegsSet }, | |
{ "RBX", RBX_Overlaps, RBX_SubRegsSet, Empty_SuperRegsSet }, | |
{ "RCX", RCX_Overlaps, RCX_SubRegsSet, Empty_SuperRegsSet }, | |
{ "RDI", RDI_Overlaps, RDI_SubRegsSet, Empty_SuperRegsSet }, | |
{ "RDX", RDX_Overlaps, RDX_SubRegsSet, Empty_SuperRegsSet }, | |
{ "RIP", RIP_Overlaps, RIP_SubRegsSet, Empty_SuperRegsSet }, | |
{ "RIZ", RIZ_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "RSI", RSI_Overlaps, RSI_SubRegsSet, Empty_SuperRegsSet }, | |
{ "RSP", RSP_Overlaps, RSP_SubRegsSet, Empty_SuperRegsSet }, | |
{ "SI", SI_Overlaps, SI_SubRegsSet, SI_SuperRegsSet }, | |
{ "SIL", SIL_Overlaps, Empty_SubRegsSet, SIL_SuperRegsSet }, | |
{ "SP", SP_Overlaps, SP_SubRegsSet, SP_SuperRegsSet }, | |
{ "SPL", SPL_Overlaps, Empty_SubRegsSet, SPL_SuperRegsSet }, | |
{ "SS", SS_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "ST0", ST0_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "ST1", ST1_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "ST2", ST2_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "ST3", ST3_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "ST4", ST4_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "ST5", ST5_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "ST6", ST6_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "ST7", ST7_Overlaps, Empty_SubRegsSet, Empty_SuperRegsSet }, | |
{ "XMM0", XMM0_Overlaps, XMM0_SubRegsSet, XMM0_SuperRegsSet }, | |
{ "XMM1", XMM1_Overlaps, XMM1_SubRegsSet, XMM1_SuperRegsSet }, | |
{ "XMM2", XMM2_Overlaps, XMM2_SubRegsSet, XMM2_SuperRegsSet }, | |
{ "XMM3", XMM3_Overlaps, XMM3_SubRegsSet, XMM3_SuperRegsSet }, | |
{ "XMM4", XMM4_Overlaps, XMM4_SubRegsSet, XMM4_SuperRegsSet }, | |
{ "XMM5", XMM5_Overlaps, XMM5_SubRegsSet, XMM5_SuperRegsSet }, | |
{ "XMM6", XMM6_Overlaps, XMM6_SubRegsSet, XMM6_SuperRegsSet }, | |
{ "XMM7", XMM7_Overlaps, XMM7_SubRegsSet, XMM7_SuperRegsSet }, | |
{ "XMM8", XMM8_Overlaps, XMM8_SubRegsSet, XMM8_SuperRegsSet }, | |
{ "XMM9", XMM9_Overlaps, XMM9_SubRegsSet, XMM9_SuperRegsSet }, | |
{ "XMM10", XMM10_Overlaps, XMM10_SubRegsSet, XMM10_SuperRegsSet }, | |
{ "XMM11", XMM11_Overlaps, XMM11_SubRegsSet, XMM11_SuperRegsSet }, | |
{ "XMM12", XMM12_Overlaps, XMM12_SubRegsSet, XMM12_SuperRegsSet }, | |
{ "XMM13", XMM13_Overlaps, XMM13_SubRegsSet, XMM13_SuperRegsSet }, | |
{ "XMM14", XMM14_Overlaps, XMM14_SubRegsSet, XMM14_SuperRegsSet }, | |
{ "XMM15", XMM15_Overlaps, XMM15_SubRegsSet, XMM15_SuperRegsSet }, | |
{ "YMM0", YMM0_Overlaps, YMM0_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM1", YMM1_Overlaps, YMM1_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM2", YMM2_Overlaps, YMM2_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM3", YMM3_Overlaps, YMM3_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM4", YMM4_Overlaps, YMM4_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM5", YMM5_Overlaps, YMM5_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM6", YMM6_Overlaps, YMM6_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM7", YMM7_Overlaps, YMM7_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM8", YMM8_Overlaps, YMM8_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM9", YMM9_Overlaps, YMM9_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM10", YMM10_Overlaps, YMM10_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM11", YMM11_Overlaps, YMM11_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM12", YMM12_Overlaps, YMM12_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM13", YMM13_Overlaps, YMM13_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM14", YMM14_Overlaps, YMM14_SubRegsSet, Empty_SuperRegsSet }, | |
{ "YMM15", YMM15_Overlaps, YMM15_SubRegsSet, Empty_SuperRegsSet }, | |
}; | |
namespace { // Register classes... | |
// GR8 Register Class... | |
static const unsigned GR8[] = { | |
X86::AL, X86::CL, X86::DL, X86::AH, X86::CH, X86::DH, X86::BL, X86::BH, X86::SIL, X86::DIL, X86::BPL, X86::SPL, X86::R8B, X86::R9B, X86::R10B, X86::R11B, X86::R14B, X86::R15B, X86::R12B, X86::R13B, | |
}; | |
// GR8 Bit set. | |
static const unsigned char GR8Bits[] = { | |
0xb6, 0x06, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x44, 0x00, 0x50, | |
}; | |
// GR64 Register Class... | |
static const unsigned GR64[] = { | |
X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::RBX, X86::R14, X86::R15, X86::R12, X86::R13, X86::RBP, X86::RSP, X86::RIP, | |
}; | |
// GR64 Bit set. | |
static const unsigned char GR64Bits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0xfe, 0x06, | |
}; | |
// GR16 Register Class... | |
static const unsigned GR16[] = { | |
X86::AX, X86::CX, X86::DX, X86::SI, X86::DI, X86::BX, X86::BP, X86::SP, X86::R8W, X86::R9W, X86::R10W, X86::R11W, X86::R14W, X86::R15W, X86::R12W, X86::R13W, | |
}; | |
// GR16 Bit set. | |
static const unsigned char GR16Bits[] = { | |
0x48, 0x01, 0x00, 0x50, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x11, 0x11, 0x11, 0x01, 0x28, | |
}; | |
// GR32 Register Class... | |
static const unsigned GR32[] = { | |
X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::ESP, X86::R8D, X86::R9D, X86::R10D, X86::R11D, X86::R14D, X86::R15D, X86::R12D, X86::R13D, | |
}; | |
// GR32 Bit set. | |
static const unsigned char GR32Bits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x61, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, | |
}; | |
// FR32 Register Class... | |
static const unsigned FR32[] = { | |
X86::XMM0, X86::XMM1, X86::XMM2, X86::XMM3, X86::XMM4, X86::XMM5, X86::XMM6, X86::XMM7, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, | |
}; | |
// FR32 Bit set. | |
static const unsigned char FR32Bits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, | |
}; | |
// GR64_with_sub_8bit Register Class... | |
static const unsigned GR64_with_sub_8bit[] = { | |
X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::RBX, X86::R14, X86::R15, X86::R12, X86::R13, X86::RBP, X86::RSP, | |
}; | |
// GR64_with_sub_8bit Bit set. | |
static const unsigned char GR64_with_sub_8bitBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x7e, 0x06, | |
}; | |
// FR64 Register Class... | |
static const unsigned FR64[] = { | |
X86::XMM0, X86::XMM1, X86::XMM2, X86::XMM3, X86::XMM4, X86::XMM5, X86::XMM6, X86::XMM7, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, | |
}; | |
// FR64 Bit set. | |
static const unsigned char FR64Bits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, | |
}; | |
// CONTROL_REG Register Class... | |
static const unsigned CONTROL_REG[] = { | |
X86::CR0, X86::CR1, X86::CR2, X86::CR3, X86::CR4, X86::CR5, X86::CR6, X86::CR7, X86::CR8, X86::CR9, X86::CR10, X86::CR11, X86::CR12, X86::CR13, X86::CR14, X86::CR15, | |
}; | |
// CONTROL_REG Bit set. | |
static const unsigned char CONTROL_REGBits[] = { | |
0x00, 0xf8, 0xff, 0x07, | |
}; | |
// VR128 Register Class... | |
static const unsigned VR128[] = { | |
X86::XMM0, X86::XMM1, X86::XMM2, X86::XMM3, X86::XMM4, X86::XMM5, X86::XMM6, X86::XMM7, X86::XMM8, X86::XMM9, X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13, X86::XMM14, X86::XMM15, | |
}; | |
// VR128 Bit set. | |
static const unsigned char VR128Bits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, | |
}; | |
// VR256 Register Class... | |
static const unsigned VR256[] = { | |
X86::YMM0, X86::YMM1, X86::YMM2, X86::YMM3, X86::YMM4, X86::YMM5, X86::YMM6, X86::YMM7, X86::YMM8, X86::YMM9, X86::YMM10, X86::YMM11, X86::YMM12, X86::YMM13, X86::YMM14, X86::YMM15, | |
}; | |
// VR256 Bit set. | |
static const unsigned char VR256Bits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, | |
}; | |
// GR32_NOSP Register Class... | |
static const unsigned GR32_NOSP[] = { | |
X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::R8D, X86::R9D, X86::R10D, X86::R11D, X86::R14D, X86::R15D, X86::R12D, X86::R13D, | |
}; | |
// GR32_NOSP Bit set. | |
static const unsigned char GR32_NOSPBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x21, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, | |
}; | |
// GR32_NOAX Register Class... | |
static const unsigned GR32_NOAX[] = { | |
X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::ESP, X86::R8D, X86::R9D, X86::R10D, X86::R11D, X86::R14D, X86::R15D, X86::R12D, X86::R13D, | |
}; | |
// GR32_NOAX Bit set. | |
static const unsigned char GR32_NOAXBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x61, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, | |
}; | |
// GR64_NOSP Register Class... | |
static const unsigned GR64_NOSP[] = { | |
X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R10, X86::R11, X86::RBX, X86::R14, X86::R15, X86::R12, X86::R13, X86::RBP, | |
}; | |
// GR64_NOSP Bit set. | |
static const unsigned char GR64_NOSPBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x7e, 0x02, | |
}; | |
// GR64_TC Register Class... | |
static const unsigned GR64_TC[] = { | |
X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R11, X86::RIP, | |
}; | |
// GR64_TC Bit set. | |
static const unsigned char GR64_TCBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x20, 0x00, 0x00, 0xf2, 0x02, | |
}; | |
// GR64_NOREX Register Class... | |
static const unsigned GR64_NOREX[] = { | |
X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RBX, X86::RBP, X86::RSP, X86::RIP, | |
}; | |
// GR64_NOREX Bit set. | |
static const unsigned char GR64_NOREXBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, | |
}; | |
// GR8_NOREX Register Class... | |
static const unsigned GR8_NOREX[] = { | |
X86::AL, X86::CL, X86::DL, X86::AH, X86::CH, X86::DH, X86::BL, X86::BH, | |
}; | |
// GR8_NOREX Bit set. | |
static const unsigned char GR8_NOREXBits[] = { | |
0x36, 0x06, 0x00, 0x20, 0x01, | |
}; | |
// GR16_NOREX Register Class... | |
static const unsigned GR16_NOREX[] = { | |
X86::AX, X86::CX, X86::DX, X86::SI, X86::DI, X86::BX, X86::BP, X86::SP, | |
}; | |
// GR16_NOREX Bit set. | |
static const unsigned char GR16_NOREXBits[] = { | |
0x48, 0x01, 0x00, 0x50, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, | |
}; | |
// GR32_NOREX Register Class... | |
static const unsigned GR32_NOREX[] = { | |
X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, X86::ESP, | |
}; | |
// GR32_NOREX Bit set. | |
static const unsigned char GR32_NOREXBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x61, | |
}; | |
// DEBUG_REG Register Class... | |
static const unsigned DEBUG_REG[] = { | |
X86::DR0, X86::DR1, X86::DR2, X86::DR3, X86::DR4, X86::DR5, X86::DR6, X86::DR7, | |
}; | |
// DEBUG_REG Bit set. | |
static const unsigned char DEBUG_REGBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, | |
}; | |
// VR64 Register Class... | |
static const unsigned VR64[] = { | |
X86::MM0, X86::MM1, X86::MM2, X86::MM3, X86::MM4, X86::MM5, X86::MM6, X86::MM7, | |
}; | |
// VR64 Bit set. | |
static const unsigned char VR64Bits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, | |
}; | |
// GR64_TC_with_sub_8bit Register Class... | |
static const unsigned GR64_TC_with_sub_8bit[] = { | |
X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::R8, X86::R9, X86::R11, | |
}; | |
// GR64_TC_with_sub_8bit Bit set. | |
static const unsigned char GR64_TC_with_sub_8bitBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x20, 0x00, 0x00, 0x72, 0x02, | |
}; | |
// GR64_NOREX_with_sub_8bit Register Class... | |
static const unsigned GR64_NOREX_with_sub_8bit[] = { | |
X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RBX, X86::RBP, X86::RSP, | |
}; | |
// GR64_NOREX_with_sub_8bit Bit set. | |
static const unsigned char GR64_NOREX_with_sub_8bitBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x06, | |
}; | |
// RST Register Class... | |
static const unsigned RST[] = { | |
X86::ST0, X86::ST1, X86::ST2, X86::ST3, X86::ST4, X86::ST5, X86::ST6, X86::ST7, | |
}; | |
// RST Bit set. | |
static const unsigned char RSTBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | |
}; | |
// RFP32 Register Class... | |
static const unsigned RFP32[] = { | |
X86::FP0, X86::FP1, X86::FP2, X86::FP3, X86::FP4, X86::FP5, X86::FP6, | |
}; | |
// RFP32 Bit set. | |
static const unsigned char RFP32Bits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, | |
}; | |
// GR32_NOREX_NOSP Register Class... | |
static const unsigned GR32_NOREX_NOSP[] = { | |
X86::EAX, X86::ECX, X86::EDX, X86::ESI, X86::EDI, X86::EBX, X86::EBP, | |
}; | |
// GR32_NOREX_NOSP Bit set. | |
static const unsigned char GR32_NOREX_NOSPBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x21, | |
}; | |
// RFP64 Register Class... | |
static const unsigned RFP64[] = { | |
X86::FP0, X86::FP1, X86::FP2, X86::FP3, X86::FP4, X86::FP5, X86::FP6, | |
}; | |
// RFP64 Bit set. | |
static const unsigned char RFP64Bits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, | |
}; | |
// GR64_NOREX_NOSP Register Class... | |
static const unsigned GR64_NOREX_NOSP[] = { | |
X86::RAX, X86::RCX, X86::RDX, X86::RSI, X86::RDI, X86::RBX, X86::RBP, | |
}; | |
// GR64_NOREX_NOSP Bit set. | |
static const unsigned char GR64_NOREX_NOSPBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x02, | |
}; | |
// RFP80 Register Class... | |
static const unsigned RFP80[] = { | |
X86::FP0, X86::FP1, X86::FP2, X86::FP3, X86::FP4, X86::FP5, X86::FP6, | |
}; | |
// RFP80 Bit set. | |
static const unsigned char RFP80Bits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, | |
}; | |
// SEGMENT_REG Register Class... | |
static const unsigned SEGMENT_REG[] = { | |
X86::CS, X86::DS, X86::SS, X86::ES, X86::FS, X86::GS, | |
}; | |
// SEGMENT_REG Bit set. | |
static const unsigned char SEGMENT_REGBits[] = { | |
0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x10, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | |
}; | |
// GR64_TCW64 Register Class... | |
static const unsigned GR64_TCW64[] = { | |
X86::RAX, X86::RCX, X86::RDX, X86::R8, X86::R9, X86::R11, | |
}; | |
// GR64_TCW64 Bit set. | |
static const unsigned char GR64_TCW64Bits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x20, 0x00, 0x00, 0x52, | |
}; | |
// GR8_ABCD_L Register Class... | |
static const unsigned GR8_ABCD_L[] = { | |
X86::AL, X86::CL, X86::DL, X86::BL, | |
}; | |
// GR8_ABCD_L Bit set. | |
static const unsigned char GR8_ABCD_LBits[] = { | |
0x24, 0x04, 0x00, 0x00, 0x01, | |
}; | |
// GR8_ABCD_H Register Class... | |
static const unsigned GR8_ABCD_H[] = { | |
X86::AH, X86::CH, X86::DH, X86::BH, | |
}; | |
// GR8_ABCD_H Bit set. | |
static const unsigned char GR8_ABCD_HBits[] = { | |
0x12, 0x02, 0x00, 0x20, | |
}; | |
// GR16_ABCD Register Class... | |
static const unsigned GR16_ABCD[] = { | |
X86::AX, X86::CX, X86::DX, X86::BX, | |
}; | |
// GR16_ABCD Bit set. | |
static const unsigned char GR16_ABCDBits[] = { | |
0x08, 0x01, 0x00, 0x10, 0x00, 0x04, | |
}; | |
// GR32_ABCD Register Class... | |
static const unsigned GR32_ABCD[] = { | |
X86::EAX, X86::ECX, X86::EDX, X86::EBX, | |
}; | |
// GR32_ABCD Bit set. | |
static const unsigned char GR32_ABCDBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x01, | |
}; | |
// GR64_ABCD Register Class... | |
static const unsigned GR64_ABCD[] = { | |
X86::RAX, X86::RCX, X86::RDX, X86::RBX, | |
}; | |
// GR64_ABCD Bit set. | |
static const unsigned char GR64_ABCDBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, | |
}; | |
// GR32_TC Register Class... | |
static const unsigned GR32_TC[] = { | |
X86::EAX, X86::ECX, X86::EDX, | |
}; | |
// GR32_TC Bit set. | |
static const unsigned char GR32_TCBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x01, | |
}; | |
// GR32_NOAX_with_sub_8bit_hi Register Class... | |
static const unsigned GR32_NOAX_with_sub_8bit_hi[] = { | |
X86::ECX, X86::EDX, X86::EBX, | |
}; | |
// GR32_NOAX_with_sub_8bit_hi Bit set. | |
static const unsigned char GR32_NOAX_with_sub_8bit_hiBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, | |
}; | |
// GR64_TC_with_sub_8bit_hi Register Class... | |
static const unsigned GR64_TC_with_sub_8bit_hi[] = { | |
X86::RAX, X86::RCX, X86::RDX, | |
}; | |
// GR64_TC_with_sub_8bit_hi Bit set. | |
static const unsigned char GR64_TC_with_sub_8bit_hiBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, | |
}; | |
// GR32_AD Register Class... | |
static const unsigned GR32_AD[] = { | |
X86::EAX, X86::EDX, | |
}; | |
// GR32_AD Bit set. | |
static const unsigned char GR32_ADBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, | |
}; | |
// CCR Register Class... | |
static const unsigned CCR[] = { | |
X86::EFLAGS, | |
}; | |
// CCR Bit set. | |
static const unsigned char CCRBits[] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, | |
}; | |
} | |
MCRegisterClass X86MCRegisterClasses[] = { | |
MCRegisterClass(X86::GR8RegClassID, "GR8", 1, 1, 1, 1, GR8, GR8 + 20, GR8Bits, sizeof(GR8Bits)), | |
MCRegisterClass(X86::GR64RegClassID, "GR64", 8, 8, 1, 1, GR64, GR64 + 17, GR64Bits, sizeof(GR64Bits)), | |
MCRegisterClass(X86::GR16RegClassID, "GR16", 2, 2, 1, 1, GR16, GR16 + 16, GR16Bits, sizeof(GR16Bits)), | |
MCRegisterClass(X86::GR32RegClassID, "GR32", 4, 4, 1, 1, GR32, GR32 + 16, GR32Bits, sizeof(GR32Bits)), | |
MCRegisterClass(X86::FR32RegClassID, "FR32", 4, 4, 1, 1, FR32, FR32 + 16, FR32Bits, sizeof(FR32Bits)), | |
MCRegisterClass(X86::GR64_with_sub_8bitRegClassID, "GR64_with_sub_8bit", 8, 8, 1, 1, GR64_with_sub_8bit, GR64_with_sub_8bit + 16, GR64_with_sub_8bitBits, sizeof(GR64_with_sub_8bitBits)), | |
MCRegisterClass(X86::FR64RegClassID, "FR64", 8, 8, 1, 1, FR64, FR64 + 16, FR64Bits, sizeof(FR64Bits)), | |
MCRegisterClass(X86::CONTROL_REGRegClassID, "CONTROL_REG", 8, 8, 1, 1, CONTROL_REG, CONTROL_REG + 16, CONTROL_REGBits, sizeof(CONTROL_REGBits)), | |
MCRegisterClass(X86::VR128RegClassID, "VR128", 16, 16, 1, 1, VR128, VR128 + 16, VR128Bits, sizeof(VR128Bits)), | |
MCRegisterClass(X86::VR256RegClassID, "VR256", 32, 32, 1, 1, VR256, VR256 + 16, VR256Bits, sizeof(VR256Bits)), | |
MCRegisterClass(X86::GR32_NOSPRegClassID, "GR32_NOSP", 4, 4, 1, 1, GR32_NOSP, GR32_NOSP + 15, GR32_NOSPBits, sizeof(GR32_NOSPBits)), | |
MCRegisterClass(X86::GR32_NOAXRegClassID, "GR32_NOAX", 4, 4, 1, 1, GR32_NOAX, GR32_NOAX + 15, GR32_NOAXBits, sizeof(GR32_NOAXBits)), | |
MCRegisterClass(X86::GR64_NOSPRegClassID, "GR64_NOSP", 8, 8, 1, 1, GR64_NOSP, GR64_NOSP + 15, GR64_NOSPBits, sizeof(GR64_NOSPBits)), | |
MCRegisterClass(X86::GR64_TCRegClassID, "GR64_TC", 8, 8, 1, 1, GR64_TC, GR64_TC + 9, GR64_TCBits, sizeof(GR64_TCBits)), | |
MCRegisterClass(X86::GR64_NOREXRegClassID, "GR64_NOREX", 8, 8, 1, 1, GR64_NOREX, GR64_NOREX + 9, GR64_NOREXBits, sizeof(GR64_NOREXBits)), | |
MCRegisterClass(X86::GR8_NOREXRegClassID, "GR8_NOREX", 1, 1, 1, 1, GR8_NOREX, GR8_NOREX + 8, GR8_NOREXBits, sizeof(GR8_NOREXBits)), | |
MCRegisterClass(X86::GR16_NOREXRegClassID, "GR16_NOREX", 2, 2, 1, 1, GR16_NOREX, GR16_NOREX + 8, GR16_NOREXBits, sizeof(GR16_NOREXBits)), | |
MCRegisterClass(X86::GR32_NOREXRegClassID, "GR32_NOREX", 4, 4, 1, 1, GR32_NOREX, GR32_NOREX + 8, GR32_NOREXBits, sizeof(GR32_NOREXBits)), | |
MCRegisterClass(X86::DEBUG_REGRegClassID, "DEBUG_REG", 4, 4, 1, 1, DEBUG_REG, DEBUG_REG + 8, DEBUG_REGBits, sizeof(DEBUG_REGBits)), | |
MCRegisterClass(X86::VR64RegClassID, "VR64", 8, 8, 1, 1, VR64, VR64 + 8, VR64Bits, sizeof(VR64Bits)), | |
MCRegisterClass(X86::GR64_TC_with_sub_8bitRegClassID, "GR64_TC_with_sub_8bit", 8, 8, 1, 1, GR64_TC_with_sub_8bit, GR64_TC_with_sub_8bit + 8, GR64_TC_with_sub_8bitBits, sizeof(GR64_TC_with_sub_8bitBits)), | |
MCRegisterClass(X86::GR64_NOREX_with_sub_8bitRegClassID, "GR64_NOREX_with_sub_8bit", 8, 8, 1, 1, GR64_NOREX_with_sub_8bit, GR64_NOREX_with_sub_8bit + 8, GR64_NOREX_with_sub_8bitBits, sizeof(GR64_NOREX_with_sub_8bitBits)), | |
MCRegisterClass(X86::RSTRegClassID, "RST", 10, 4, 1, 0, RST, RST + 8, RSTBits, sizeof(RSTBits)), | |
MCRegisterClass(X86::RFP32RegClassID, "RFP32", 4, 4, 1, 1, RFP32, RFP32 + 7, RFP32Bits, sizeof(RFP32Bits)), | |
MCRegisterClass(X86::GR32_NOREX_NOSPRegClassID, "GR32_NOREX_NOSP", 4, 4, 1, 1, GR32_NOREX_NOSP, GR32_NOREX_NOSP + 7, GR32_NOREX_NOSPBits, sizeof(GR32_NOREX_NOSPBits)), | |
MCRegisterClass(X86::RFP64RegClassID, "RFP64", 8, 4, 1, 1, RFP64, RFP64 + 7, RFP64Bits, sizeof(RFP64Bits)), | |
MCRegisterClass(X86::GR64_NOREX_NOSPRegClassID, "GR64_NOREX_NOSP", 8, 8, 1, 1, GR64_NOREX_NOSP, GR64_NOREX_NOSP + 7, GR64_NOREX_NOSPBits, sizeof(GR64_NOREX_NOSPBits)), | |
MCRegisterClass(X86::RFP80RegClassID, "RFP80", 10, 4, 1, 1, RFP80, RFP80 + 7, RFP80Bits, sizeof(RFP80Bits)), | |
MCRegisterClass(X86::SEGMENT_REGRegClassID, "SEGMENT_REG", 2, 2, 1, 1, SEGMENT_REG, SEGMENT_REG + 6, SEGMENT_REGBits, sizeof(SEGMENT_REGBits)), | |
MCRegisterClass(X86::GR64_TCW64RegClassID, "GR64_TCW64", 8, 8, 1, 1, GR64_TCW64, GR64_TCW64 + 6, GR64_TCW64Bits, sizeof(GR64_TCW64Bits)), | |
MCRegisterClass(X86::GR8_ABCD_LRegClassID, "GR8_ABCD_L", 1, 1, 1, 1, GR8_ABCD_L, GR8_ABCD_L + 4, GR8_ABCD_LBits, sizeof(GR8_ABCD_LBits)), | |
MCRegisterClass(X86::GR8_ABCD_HRegClassID, "GR8_ABCD_H", 1, 1, 1, 1, GR8_ABCD_H, GR8_ABCD_H + 4, GR8_ABCD_HBits, sizeof(GR8_ABCD_HBits)), | |
MCRegisterClass(X86::GR16_ABCDRegClassID, "GR16_ABCD", 2, 2, 1, 1, GR16_ABCD, GR16_ABCD + 4, GR16_ABCDBits, sizeof(GR16_ABCDBits)), | |
MCRegisterClass(X86::GR32_ABCDRegClassID, "GR32_ABCD", 4, 4, 1, 1, GR32_ABCD, GR32_ABCD + 4, GR32_ABCDBits, sizeof(GR32_ABCDBits)), | |
MCRegisterClass(X86::GR64_ABCDRegClassID, "GR64_ABCD", 8, 8, 1, 1, GR64_ABCD, GR64_ABCD + 4, GR64_ABCDBits, sizeof(GR64_ABCDBits)), | |
MCRegisterClass(X86::GR32_TCRegClassID, "GR32_TC", 4, 4, 1, 1, GR32_TC, GR32_TC + 3, GR32_TCBits, sizeof(GR32_TCBits)), | |
MCRegisterClass(X86::GR32_NOAX_with_sub_8bit_hiRegClassID, "GR32_NOAX_with_sub_8bit_hi", 4, 4, 1, 1, GR32_NOAX_with_sub_8bit_hi, GR32_NOAX_with_sub_8bit_hi + 3, GR32_NOAX_with_sub_8bit_hiBits, sizeof(GR32_NOAX_with_sub_8bit_hiBits)), | |
MCRegisterClass(X86::GR64_TC_with_sub_8bit_hiRegClassID, "GR64_TC_with_sub_8bit_hi", 8, 8, 1, 1, GR64_TC_with_sub_8bit_hi, GR64_TC_with_sub_8bit_hi + 3, GR64_TC_with_sub_8bit_hiBits, sizeof(GR64_TC_with_sub_8bit_hiBits)), | |
MCRegisterClass(X86::GR32_ADRegClassID, "GR32_AD", 4, 4, 1, 1, GR32_AD, GR32_AD + 2, GR32_ADBits, sizeof(GR32_ADBits)), | |
MCRegisterClass(X86::CCRRegClassID, "CCR", 4, 4, -1, 0, CCR, CCR + 1, CCRBits, sizeof(CCRBits)), | |
}; | |
static inline void InitX86MCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0) { | |
RI->InitMCRegisterInfo(X86RegDesc, 160, RA, X86MCRegisterClasses, 40); | |
switch (DwarfFlavour) { | |
default: | |
assert(0 && "Unknown DWARF flavour"); | |
break; | |
case 0: | |
RI->mapDwarfRegToLLVMReg(41, X86::MM0, false ); | |
RI->mapDwarfRegToLLVMReg(42, X86::MM1, false ); | |
RI->mapDwarfRegToLLVMReg(43, X86::MM2, false ); | |
RI->mapDwarfRegToLLVMReg(44, X86::MM3, false ); | |
RI->mapDwarfRegToLLVMReg(45, X86::MM4, false ); | |
RI->mapDwarfRegToLLVMReg(46, X86::MM5, false ); | |
RI->mapDwarfRegToLLVMReg(47, X86::MM6, false ); | |
RI->mapDwarfRegToLLVMReg(48, X86::MM7, false ); | |
RI->mapDwarfRegToLLVMReg(8, X86::R8, false ); | |
RI->mapDwarfRegToLLVMReg(9, X86::R9, false ); | |
RI->mapDwarfRegToLLVMReg(10, X86::R10, false ); | |
RI->mapDwarfRegToLLVMReg(11, X86::R11, false ); | |
RI->mapDwarfRegToLLVMReg(12, X86::R12, false ); | |
RI->mapDwarfRegToLLVMReg(13, X86::R13, false ); | |
RI->mapDwarfRegToLLVMReg(14, X86::R14, false ); | |
RI->mapDwarfRegToLLVMReg(15, X86::R15, false ); | |
RI->mapDwarfRegToLLVMReg(0, X86::RAX, false ); | |
RI->mapDwarfRegToLLVMReg(6, X86::RBP, false ); | |
RI->mapDwarfRegToLLVMReg(3, X86::RBX, false ); | |
RI->mapDwarfRegToLLVMReg(2, X86::RCX, false ); | |
RI->mapDwarfRegToLLVMReg(5, X86::RDI, false ); | |
RI->mapDwarfRegToLLVMReg(1, X86::RDX, false ); | |
RI->mapDwarfRegToLLVMReg(16, X86::RIP, false ); | |
RI->mapDwarfRegToLLVMReg(4, X86::RSI, false ); | |
RI->mapDwarfRegToLLVMReg(7, X86::RSP, false ); | |
RI->mapDwarfRegToLLVMReg(33, X86::ST0, false ); | |
RI->mapDwarfRegToLLVMReg(34, X86::ST1, false ); | |
RI->mapDwarfRegToLLVMReg(35, X86::ST2, false ); | |
RI->mapDwarfRegToLLVMReg(36, X86::ST3, false ); | |
RI->mapDwarfRegToLLVMReg(37, X86::ST4, false ); | |
RI->mapDwarfRegToLLVMReg(38, X86::ST5, false ); | |
RI->mapDwarfRegToLLVMReg(39, X86::ST6, false ); | |
RI->mapDwarfRegToLLVMReg(40, X86::ST7, false ); | |
RI->mapDwarfRegToLLVMReg(17, X86::XMM0, false ); | |
RI->mapDwarfRegToLLVMReg(18, X86::XMM1, false ); | |
RI->mapDwarfRegToLLVMReg(19, X86::XMM2, false ); | |
RI->mapDwarfRegToLLVMReg(20, X86::XMM3, false ); | |
RI->mapDwarfRegToLLVMReg(21, X86::XMM4, false ); | |
RI->mapDwarfRegToLLVMReg(22, X86::XMM5, false ); | |
RI->mapDwarfRegToLLVMReg(23, X86::XMM6, false ); | |
RI->mapDwarfRegToLLVMReg(24, X86::XMM7, false ); | |
RI->mapDwarfRegToLLVMReg(25, X86::XMM8, false ); | |
RI->mapDwarfRegToLLVMReg(26, X86::XMM9, false ); | |
RI->mapDwarfRegToLLVMReg(27, X86::XMM10, false ); | |
RI->mapDwarfRegToLLVMReg(28, X86::XMM11, false ); | |
RI->mapDwarfRegToLLVMReg(29, X86::XMM12, false ); | |
RI->mapDwarfRegToLLVMReg(30, X86::XMM13, false ); | |
RI->mapDwarfRegToLLVMReg(31, X86::XMM14, false ); | |
RI->mapDwarfRegToLLVMReg(32, X86::XMM15, false ); | |
break; | |
case 1: | |
RI->mapDwarfRegToLLVMReg(0, X86::EAX, false ); | |
RI->mapDwarfRegToLLVMReg(4, X86::EBP, false ); | |
RI->mapDwarfRegToLLVMReg(3, X86::EBX, false ); | |
RI->mapDwarfRegToLLVMReg(1, X86::ECX, false ); | |
RI->mapDwarfRegToLLVMReg(7, X86::EDI, false ); | |
RI->mapDwarfRegToLLVMReg(2, X86::EDX, false ); | |
RI->mapDwarfRegToLLVMReg(8, X86::EIP, false ); | |
RI->mapDwarfRegToLLVMReg(6, X86::ESI, false ); | |
RI->mapDwarfRegToLLVMReg(5, X86::ESP, false ); | |
RI->mapDwarfRegToLLVMReg(29, X86::MM0, false ); | |
RI->mapDwarfRegToLLVMReg(30, X86::MM1, false ); | |
RI->mapDwarfRegToLLVMReg(31, X86::MM2, false ); | |
RI->mapDwarfRegToLLVMReg(32, X86::MM3, false ); | |
RI->mapDwarfRegToLLVMReg(33, X86::MM4, false ); | |
RI->mapDwarfRegToLLVMReg(34, X86::MM5, false ); | |
RI->mapDwarfRegToLLVMReg(35, X86::MM6, false ); | |
RI->mapDwarfRegToLLVMReg(36, X86::MM7, false ); | |
RI->mapDwarfRegToLLVMReg(12, X86::ST0, false ); | |
RI->mapDwarfRegToLLVMReg(13, X86::ST1, false ); | |
RI->mapDwarfRegToLLVMReg(14, X86::ST2, false ); | |
RI->mapDwarfRegToLLVMReg(15, X86::ST3, false ); | |
RI->mapDwarfRegToLLVMReg(16, X86::ST4, false ); | |
RI->mapDwarfRegToLLVMReg(17, X86::ST5, false ); | |
RI->mapDwarfRegToLLVMReg(18, X86::ST6, false ); | |
RI->mapDwarfRegToLLVMReg(19, X86::ST7, false ); | |
RI->mapDwarfRegToLLVMReg(21, X86::XMM0, false ); | |
RI->mapDwarfRegToLLVMReg(22, X86::XMM1, false ); | |
RI->mapDwarfRegToLLVMReg(23, X86::XMM2, false ); | |
RI->mapDwarfRegToLLVMReg(24, X86::XMM3, false ); | |
RI->mapDwarfRegToLLVMReg(25, X86::XMM4, false ); | |
RI->mapDwarfRegToLLVMReg(26, X86::XMM5, false ); | |
RI->mapDwarfRegToLLVMReg(27, X86::XMM6, false ); | |
RI->mapDwarfRegToLLVMReg(28, X86::XMM7, false ); | |
break; | |
case 2: | |
RI->mapDwarfRegToLLVMReg(0, X86::EAX, false ); | |
RI->mapDwarfRegToLLVMReg(5, X86::EBP, false ); | |
RI->mapDwarfRegToLLVMReg(3, X86::EBX, false ); | |
RI->mapDwarfRegToLLVMReg(1, X86::ECX, false ); | |
RI->mapDwarfRegToLLVMReg(7, X86::EDI, false ); | |
RI->mapDwarfRegToLLVMReg(2, X86::EDX, false ); | |
RI->mapDwarfRegToLLVMReg(8, X86::EIP, false ); | |
RI->mapDwarfRegToLLVMReg(6, X86::ESI, false ); | |
RI->mapDwarfRegToLLVMReg(4, X86::ESP, false ); | |
RI->mapDwarfRegToLLVMReg(29, X86::MM0, false ); | |
RI->mapDwarfRegToLLVMReg(30, X86::MM1, false ); | |
RI->mapDwarfRegToLLVMReg(31, X86::MM2, false ); | |
RI->mapDwarfRegToLLVMReg(32, X86::MM3, false ); | |
RI->mapDwarfRegToLLVMReg(33, X86::MM4, false ); | |
RI->mapDwarfRegToLLVMReg(34, X86::MM5, false ); | |
RI->mapDwarfRegToLLVMReg(35, X86::MM6, false ); | |
RI->mapDwarfRegToLLVMReg(36, X86::MM7, false ); | |
RI->mapDwarfRegToLLVMReg(11, X86::ST0, false ); | |
RI->mapDwarfRegToLLVMReg(12, X86::ST1, false ); | |
RI->mapDwarfRegToLLVMReg(13, X86::ST2, false ); | |
RI->mapDwarfRegToLLVMReg(14, X86::ST3, false ); | |
RI->mapDwarfRegToLLVMReg(15, X86::ST4, false ); | |
RI->mapDwarfRegToLLVMReg(16, X86::ST5, false ); | |
RI->mapDwarfRegToLLVMReg(17, X86::ST6, false ); | |
RI->mapDwarfRegToLLVMReg(18, X86::ST7, false ); | |
RI->mapDwarfRegToLLVMReg(21, X86::XMM0, false ); | |
RI->mapDwarfRegToLLVMReg(22, X86::XMM1, false ); | |
RI->mapDwarfRegToLLVMReg(23, X86::XMM2, false ); | |
RI->mapDwarfRegToLLVMReg(24, X86::XMM3, false ); | |
RI->mapDwarfRegToLLVMReg(25, X86::XMM4, false ); | |
RI->mapDwarfRegToLLVMReg(26, X86::XMM5, false ); | |
RI->mapDwarfRegToLLVMReg(27, X86::XMM6, false ); | |
RI->mapDwarfRegToLLVMReg(28, X86::XMM7, false ); | |
break; | |
} | |
switch (EHFlavour) { | |
default: | |
assert(0 && "Unknown DWARF flavour"); | |
break; | |
case 0: | |
RI->mapDwarfRegToLLVMReg(41, X86::MM0, true ); | |
RI->mapDwarfRegToLLVMReg(42, X86::MM1, true ); | |
RI->mapDwarfRegToLLVMReg(43, X86::MM2, true ); | |
RI->mapDwarfRegToLLVMReg(44, X86::MM3, true ); | |
RI->mapDwarfRegToLLVMReg(45, X86::MM4, true ); | |
RI->mapDwarfRegToLLVMReg(46, X86::MM5, true ); | |
RI->mapDwarfRegToLLVMReg(47, X86::MM6, true ); | |
RI->mapDwarfRegToLLVMReg(48, X86::MM7, true ); | |
RI->mapDwarfRegToLLVMReg(8, X86::R8, true ); | |
RI->mapDwarfRegToLLVMReg(9, X86::R9, true ); | |
RI->mapDwarfRegToLLVMReg(10, X86::R10, true ); | |
RI->mapDwarfRegToLLVMReg(11, X86::R11, true ); | |
RI->mapDwarfRegToLLVMReg(12, X86::R12, true ); | |
RI->mapDwarfRegToLLVMReg(13, X86::R13, true ); | |
RI->mapDwarfRegToLLVMReg(14, X86::R14, true ); | |
RI->mapDwarfRegToLLVMReg(15, X86::R15, true ); | |
RI->mapDwarfRegToLLVMReg(0, X86::RAX, true ); | |
RI->mapDwarfRegToLLVMReg(6, X86::RBP, true ); | |
RI->mapDwarfRegToLLVMReg(3, X86::RBX, true ); | |
RI->mapDwarfRegToLLVMReg(2, X86::RCX, true ); | |
RI->mapDwarfRegToLLVMReg(5, X86::RDI, true ); | |
RI->mapDwarfRegToLLVMReg(1, X86::RDX, true ); | |
RI->mapDwarfRegToLLVMReg(16, X86::RIP, true ); | |
RI->mapDwarfRegToLLVMReg(4, X86::RSI, true ); | |
RI->mapDwarfRegToLLVMReg(7, X86::RSP, true ); | |
RI->mapDwarfRegToLLVMReg(33, X86::ST0, true ); | |
RI->mapDwarfRegToLLVMReg(34, X86::ST1, true ); | |
RI->mapDwarfRegToLLVMReg(35, X86::ST2, true ); | |
RI->mapDwarfRegToLLVMReg(36, X86::ST3, true ); | |
RI->mapDwarfRegToLLVMReg(37, X86::ST4, true ); | |
RI->mapDwarfRegToLLVMReg(38, X86::ST5, true ); | |
RI->mapDwarfRegToLLVMReg(39, X86::ST6, true ); | |
RI->mapDwarfRegToLLVMReg(40, X86::ST7, true ); | |
RI->mapDwarfRegToLLVMReg(17, X86::XMM0, true ); | |
RI->mapDwarfRegToLLVMReg(18, X86::XMM1, true ); | |
RI->mapDwarfRegToLLVMReg(19, X86::XMM2, true ); | |
RI->mapDwarfRegToLLVMReg(20, X86::XMM3, true ); | |
RI->mapDwarfRegToLLVMReg(21, X86::XMM4, true ); | |
RI->mapDwarfRegToLLVMReg(22, X86::XMM5, true ); | |
RI->mapDwarfRegToLLVMReg(23, X86::XMM6, true ); | |
RI->mapDwarfRegToLLVMReg(24, X86::XMM7, true ); | |
RI->mapDwarfRegToLLVMReg(25, X86::XMM8, true ); | |
RI->mapDwarfRegToLLVMReg(26, X86::XMM9, true ); | |
RI->mapDwarfRegToLLVMReg(27, X86::XMM10, true ); | |
RI->mapDwarfRegToLLVMReg(28, X86::XMM11, true ); | |
RI->mapDwarfRegToLLVMReg(29, X86::XMM12, true ); | |
RI->mapDwarfRegToLLVMReg(30, X86::XMM13, true ); | |
RI->mapDwarfRegToLLVMReg(31, X86::XMM14, true ); | |
RI->mapDwarfRegToLLVMReg(32, X86::XMM15, true ); | |
break; | |
case 1: | |
RI->mapDwarfRegToLLVMReg(0, X86::EAX, true ); | |
RI->mapDwarfRegToLLVMReg(4, X86::EBP, true ); | |
RI->mapDwarfRegToLLVMReg(3, X86::EBX, true ); | |
RI->mapDwarfRegToLLVMReg(1, X86::ECX, true ); | |
RI->mapDwarfRegToLLVMReg(7, X86::EDI, true ); | |
RI->mapDwarfRegToLLVMReg(2, X86::EDX, true ); | |
RI->mapDwarfRegToLLVMReg(8, X86::EIP, true ); | |
RI->mapDwarfRegToLLVMReg(6, X86::ESI, true ); | |
RI->mapDwarfRegToLLVMReg(5, X86::ESP, true ); | |
RI->mapDwarfRegToLLVMReg(29, X86::MM0, true ); | |
RI->mapDwarfRegToLLVMReg(30, X86::MM1, true ); | |
RI->mapDwarfRegToLLVMReg(31, X86::MM2, true ); | |
RI->mapDwarfRegToLLVMReg(32, X86::MM3, true ); | |
RI->mapDwarfRegToLLVMReg(33, X86::MM4, true ); | |
RI->mapDwarfRegToLLVMReg(34, X86::MM5, true ); | |
RI->mapDwarfRegToLLVMReg(35, X86::MM6, true ); | |
RI->mapDwarfRegToLLVMReg(36, X86::MM7, true ); | |
RI->mapDwarfRegToLLVMReg(12, X86::ST0, true ); | |
RI->mapDwarfRegToLLVMReg(13, X86::ST1, true ); | |
RI->mapDwarfRegToLLVMReg(14, X86::ST2, true ); | |
RI->mapDwarfRegToLLVMReg(15, X86::ST3, true ); | |
RI->mapDwarfRegToLLVMReg(16, X86::ST4, true ); | |
RI->mapDwarfRegToLLVMReg(17, X86::ST5, true ); | |
RI->mapDwarfRegToLLVMReg(18, X86::ST6, true ); | |
RI->mapDwarfRegToLLVMReg(19, X86::ST7, true ); | |
RI->mapDwarfRegToLLVMReg(21, X86::XMM0, true ); | |
RI->mapDwarfRegToLLVMReg(22, X86::XMM1, true ); | |
RI->mapDwarfRegToLLVMReg(23, X86::XMM2, true ); | |
RI->mapDwarfRegToLLVMReg(24, X86::XMM3, true ); | |
RI->mapDwarfRegToLLVMReg(25, X86::XMM4, true ); | |
RI->mapDwarfRegToLLVMReg(26, X86::XMM5, true ); | |
RI->mapDwarfRegToLLVMReg(27, X86::XMM6, true ); | |
RI->mapDwarfRegToLLVMReg(28, X86::XMM7, true ); | |
break; | |
case 2: | |
RI->mapDwarfRegToLLVMReg(0, X86::EAX, true ); | |
RI->mapDwarfRegToLLVMReg(5, X86::EBP, true ); | |
RI->mapDwarfRegToLLVMReg(3, X86::EBX, true ); | |
RI->mapDwarfRegToLLVMReg(1, X86::ECX, true ); | |
RI->mapDwarfRegToLLVMReg(7, X86::EDI, true ); | |
RI->mapDwarfRegToLLVMReg(2, X86::EDX, true ); | |
RI->mapDwarfRegToLLVMReg(8, X86::EIP, true ); | |
RI->mapDwarfRegToLLVMReg(6, X86::ESI, true ); | |
RI->mapDwarfRegToLLVMReg(4, X86::ESP, true ); | |
RI->mapDwarfRegToLLVMReg(29, X86::MM0, true ); | |
RI->mapDwarfRegToLLVMReg(30, X86::MM1, true ); | |
RI->mapDwarfRegToLLVMReg(31, X86::MM2, true ); | |
RI->mapDwarfRegToLLVMReg(32, X86::MM3, true ); | |
RI->mapDwarfRegToLLVMReg(33, X86::MM4, true ); | |
RI->mapDwarfRegToLLVMReg(34, X86::MM5, true ); | |
RI->mapDwarfRegToLLVMReg(35, X86::MM6, true ); | |
RI->mapDwarfRegToLLVMReg(36, X86::MM7, true ); | |
RI->mapDwarfRegToLLVMReg(11, X86::ST0, true ); | |
RI->mapDwarfRegToLLVMReg(12, X86::ST1, true ); | |
RI->mapDwarfRegToLLVMReg(13, X86::ST2, true ); | |
RI->mapDwarfRegToLLVMReg(14, X86::ST3, true ); | |
RI->mapDwarfRegToLLVMReg(15, X86::ST4, true ); | |
RI->mapDwarfRegToLLVMReg(16, X86::ST5, true ); | |
RI->mapDwarfRegToLLVMReg(17, X86::ST6, true ); | |
RI->mapDwarfRegToLLVMReg(18, X86::ST7, true ); | |
RI->mapDwarfRegToLLVMReg(21, X86::XMM0, true ); | |
RI->mapDwarfRegToLLVMReg(22, X86::XMM1, true ); | |
RI->mapDwarfRegToLLVMReg(23, X86::XMM2, true ); | |
RI->mapDwarfRegToLLVMReg(24, X86::XMM3, true ); | |
RI->mapDwarfRegToLLVMReg(25, X86::XMM4, true ); | |
RI->mapDwarfRegToLLVMReg(26, X86::XMM5, true ); | |
RI->mapDwarfRegToLLVMReg(27, X86::XMM6, true ); | |
RI->mapDwarfRegToLLVMReg(28, X86::XMM7, true ); | |
break; | |
} | |
switch (DwarfFlavour) { | |
default: | |
assert(0 && "Unknown DWARF flavour"); | |
break; | |
case 0: | |
RI->mapLLVMRegToDwarfReg(X86::AH, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::AL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::AX, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BH, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BP, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BPL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BX, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CH, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR0, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR1, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR2, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR3, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR4, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR5, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR6, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR7, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR8, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR9, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR10, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR11, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR12, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR13, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR14, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR15, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CX, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DH, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DI, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DIL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR0, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR1, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR2, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR3, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR4, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR5, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR6, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR7, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DX, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EAX, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EBP, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EBX, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ECX, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EDI, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EDX, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EFLAGS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EIP, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EIZ, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ES, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ESI, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ESP, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP0, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP1, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP2, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP3, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP4, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP5, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP6, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::GS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::IP, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM0, 41, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM1, 42, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM2, 43, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM3, 44, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM4, 45, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM5, 46, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM6, 47, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM7, 48, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R8, 8, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R8B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R8D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R8W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R9, 9, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R9B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R9D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R9W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R10, 10, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R10B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R10D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R10W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R11, 11, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R11B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R11D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R11W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R12, 12, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R12B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R12D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R12W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R13, 13, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R13B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R13D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R13W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R14, 14, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R14B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R14D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R14W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R15, 15, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R15B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R15D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R15W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RAX, 0, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RBP, 6, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RBX, 3, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RCX, 2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RDI, 5, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RDX, 1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RIP, 16, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RIZ, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RSI, 4, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RSP, 7, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SI, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SIL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SP, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SPL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST0, 33, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST1, 34, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST2, 35, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST3, 36, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST4, 37, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST5, 38, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST6, 39, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST7, 40, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM0, 17, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM1, 18, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM2, 19, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM3, 20, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM4, 21, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM5, 22, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM6, 23, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM7, 24, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM8, 25, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM9, 26, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM10, 27, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM11, 28, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM12, 29, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM13, 30, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM14, 31, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM15, 32, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM0, 17, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM1, 18, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM2, 19, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM3, 20, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM4, 21, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM5, 22, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM6, 23, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM7, 24, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM8, 25, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM9, 26, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM10, 27, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM11, 28, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM12, 29, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM13, 30, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM14, 31, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM15, 32, false ); | |
break; | |
case 1: | |
RI->mapLLVMRegToDwarfReg(X86::AH, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::AL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::AX, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BH, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BP, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BPL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BX, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CH, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR0, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR1, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR2, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR3, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR4, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR5, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR6, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR7, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR8, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR9, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR10, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR11, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR12, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR13, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR14, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR15, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CX, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DH, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DI, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DIL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR0, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR1, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR2, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR3, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR4, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR5, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR6, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR7, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DX, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EAX, 0, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EBP, 4, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EBX, 3, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ECX, 1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EDI, 7, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EDX, 2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EFLAGS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EIP, 8, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EIZ, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ES, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ESI, 6, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ESP, 5, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP0, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP1, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP2, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP3, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP4, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP5, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP6, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::GS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::IP, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM0, 29, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM1, 30, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM2, 31, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM3, 32, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM4, 33, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM5, 34, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM6, 35, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM7, 36, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R8, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R8B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R8D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R8W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R9, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R9B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R9D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R9W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R10, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R10B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R10D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R10W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R11, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R11B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R11D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R11W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R12, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R12B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R12D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R12W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R13, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R13B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R13D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R13W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R14, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R14B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R14D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R14W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R15, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R15B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R15D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R15W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RAX, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RBP, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RBX, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RCX, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RDI, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RDX, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RIP, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RIZ, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RSI, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RSP, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SI, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SIL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SP, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SPL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST0, 12, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST1, 13, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST2, 14, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST3, 15, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST4, 16, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST5, 17, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST6, 18, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST7, 19, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM0, 21, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM1, 22, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM2, 23, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM3, 24, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM4, 25, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM5, 26, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM6, 27, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM7, 28, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM8, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM9, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM10, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM11, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM12, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM13, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM14, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM15, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM0, 21, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM1, 22, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM2, 23, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM3, 24, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM4, 25, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM5, 26, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM6, 27, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM7, 28, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM8, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM9, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM10, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM11, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM12, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM13, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM14, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM15, -2, false ); | |
break; | |
case 2: | |
RI->mapLLVMRegToDwarfReg(X86::AH, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::AL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::AX, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BH, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BP, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BPL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::BX, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CH, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR0, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR1, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR2, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR3, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR4, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR5, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR6, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR7, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR8, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR9, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR10, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR11, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR12, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR13, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR14, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CR15, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::CX, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DH, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DI, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DIL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR0, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR1, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR2, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR3, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR4, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR5, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR6, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DR7, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::DX, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EAX, 0, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EBP, 5, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EBX, 3, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ECX, 1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EDI, 7, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EDX, 2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EFLAGS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EIP, 8, false ); | |
RI->mapLLVMRegToDwarfReg(X86::EIZ, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ES, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ESI, 6, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ESP, 4, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP0, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP1, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP2, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP3, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP4, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP5, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FP6, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::FS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::GS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::IP, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM0, 29, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM1, 30, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM2, 31, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM3, 32, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM4, 33, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM5, 34, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM6, 35, false ); | |
RI->mapLLVMRegToDwarfReg(X86::MM7, 36, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R8, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R8B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R8D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R8W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R9, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R9B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R9D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R9W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R10, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R10B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R10D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R10W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R11, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R11B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R11D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R11W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R12, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R12B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R12D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R12W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R13, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R13B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R13D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R13W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R14, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R14B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R14D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R14W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R15, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R15B, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R15D, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::R15W, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RAX, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RBP, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RBX, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RCX, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RDI, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RDX, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RIP, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RIZ, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RSI, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::RSP, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SI, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SIL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SP, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SPL, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::SS, -1, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST0, 11, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST1, 12, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST2, 13, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST3, 14, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST4, 15, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST5, 16, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST6, 17, false ); | |
RI->mapLLVMRegToDwarfReg(X86::ST7, 18, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM0, 21, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM1, 22, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM2, 23, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM3, 24, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM4, 25, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM5, 26, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM6, 27, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM7, 28, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM8, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM9, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM10, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM11, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM12, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM13, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM14, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM15, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM0, 21, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM1, 22, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM2, 23, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM3, 24, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM4, 25, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM5, 26, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM6, 27, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM7, 28, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM8, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM9, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM10, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM11, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM12, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM13, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM14, -2, false ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM15, -2, false ); | |
break; | |
} | |
switch (EHFlavour) { | |
default: | |
assert(0 && "Unknown DWARF flavour"); | |
break; | |
case 0: | |
RI->mapLLVMRegToDwarfReg(X86::AH, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::AL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::AX, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BH, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BP, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BPL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BX, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CH, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR0, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR1, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR2, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR3, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR4, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR5, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR6, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR7, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR8, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR9, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR10, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR11, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR12, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR13, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR14, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR15, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CX, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DH, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DI, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DIL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR0, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR1, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR2, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR3, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR4, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR5, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR6, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR7, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DX, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EAX, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EBP, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EBX, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ECX, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EDI, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EDX, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EFLAGS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EIP, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EIZ, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ES, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ESI, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ESP, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP0, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP1, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP2, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP3, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP4, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP5, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP6, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::GS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::IP, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM0, 41, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM1, 42, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM2, 43, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM3, 44, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM4, 45, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM5, 46, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM6, 47, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM7, 48, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R8, 8, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R8B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R8D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R8W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R9, 9, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R9B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R9D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R9W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R10, 10, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R10B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R10D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R10W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R11, 11, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R11B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R11D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R11W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R12, 12, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R12B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R12D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R12W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R13, 13, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R13B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R13D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R13W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R14, 14, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R14B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R14D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R14W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R15, 15, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R15B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R15D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R15W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RAX, 0, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RBP, 6, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RBX, 3, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RCX, 2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RDI, 5, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RDX, 1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RIP, 16, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RIZ, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RSI, 4, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RSP, 7, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SI, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SIL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SP, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SPL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST0, 33, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST1, 34, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST2, 35, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST3, 36, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST4, 37, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST5, 38, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST6, 39, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST7, 40, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM0, 17, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM1, 18, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM2, 19, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM3, 20, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM4, 21, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM5, 22, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM6, 23, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM7, 24, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM8, 25, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM9, 26, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM10, 27, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM11, 28, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM12, 29, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM13, 30, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM14, 31, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM15, 32, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM0, 17, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM1, 18, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM2, 19, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM3, 20, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM4, 21, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM5, 22, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM6, 23, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM7, 24, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM8, 25, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM9, 26, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM10, 27, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM11, 28, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM12, 29, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM13, 30, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM14, 31, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM15, 32, true ); | |
break; | |
case 1: | |
RI->mapLLVMRegToDwarfReg(X86::AH, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::AL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::AX, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BH, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BP, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BPL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BX, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CH, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR0, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR1, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR2, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR3, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR4, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR5, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR6, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR7, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR8, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR9, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR10, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR11, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR12, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR13, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR14, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR15, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CX, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DH, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DI, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DIL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR0, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR1, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR2, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR3, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR4, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR5, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR6, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR7, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DX, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EAX, 0, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EBP, 4, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EBX, 3, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ECX, 1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EDI, 7, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EDX, 2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EFLAGS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EIP, 8, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EIZ, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ES, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ESI, 6, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ESP, 5, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP0, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP1, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP2, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP3, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP4, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP5, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP6, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::GS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::IP, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM0, 29, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM1, 30, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM2, 31, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM3, 32, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM4, 33, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM5, 34, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM6, 35, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM7, 36, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R8, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R8B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R8D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R8W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R9, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R9B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R9D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R9W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R10, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R10B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R10D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R10W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R11, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R11B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R11D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R11W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R12, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R12B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R12D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R12W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R13, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R13B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R13D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R13W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R14, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R14B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R14D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R14W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R15, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R15B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R15D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R15W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RAX, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RBP, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RBX, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RCX, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RDI, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RDX, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RIP, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RIZ, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RSI, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RSP, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SI, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SIL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SP, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SPL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST0, 12, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST1, 13, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST2, 14, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST3, 15, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST4, 16, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST5, 17, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST6, 18, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST7, 19, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM0, 21, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM1, 22, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM2, 23, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM3, 24, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM4, 25, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM5, 26, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM6, 27, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM7, 28, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM8, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM9, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM10, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM11, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM12, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM13, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM14, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM15, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM0, 21, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM1, 22, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM2, 23, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM3, 24, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM4, 25, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM5, 26, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM6, 27, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM7, 28, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM8, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM9, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM10, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM11, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM12, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM13, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM14, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM15, -2, true ); | |
break; | |
case 2: | |
RI->mapLLVMRegToDwarfReg(X86::AH, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::AL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::AX, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BH, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BP, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BPL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::BX, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CH, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR0, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR1, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR2, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR3, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR4, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR5, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR6, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR7, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR8, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR9, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR10, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR11, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR12, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR13, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR14, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CR15, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::CX, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DH, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DI, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DIL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR0, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR1, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR2, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR3, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR4, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR5, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR6, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DR7, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::DX, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EAX, 0, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EBP, 5, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EBX, 3, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ECX, 1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EDI, 7, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EDX, 2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EFLAGS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EIP, 8, true ); | |
RI->mapLLVMRegToDwarfReg(X86::EIZ, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ES, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ESI, 6, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ESP, 4, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP0, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP1, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP2, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP3, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP4, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP5, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FP6, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::FS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::GS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::IP, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM0, 29, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM1, 30, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM2, 31, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM3, 32, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM4, 33, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM5, 34, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM6, 35, true ); | |
RI->mapLLVMRegToDwarfReg(X86::MM7, 36, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R8, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R8B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R8D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R8W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R9, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R9B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R9D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R9W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R10, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R10B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R10D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R10W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R11, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R11B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R11D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R11W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R12, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R12B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R12D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R12W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R13, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R13B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R13D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R13W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R14, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R14B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R14D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R14W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R15, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R15B, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R15D, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::R15W, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RAX, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RBP, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RBX, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RCX, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RDI, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RDX, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RIP, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RIZ, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RSI, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::RSP, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SI, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SIL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SP, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SPL, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::SS, -1, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST0, 11, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST1, 12, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST2, 13, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST3, 14, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST4, 15, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST5, 16, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST6, 17, true ); | |
RI->mapLLVMRegToDwarfReg(X86::ST7, 18, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM0, 21, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM1, 22, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM2, 23, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM3, 24, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM4, 25, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM5, 26, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM6, 27, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM7, 28, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM8, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM9, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM10, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM11, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM12, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM13, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM14, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::XMM15, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM0, 21, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM1, 22, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM2, 23, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM3, 24, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM4, 25, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM5, 26, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM6, 27, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM7, 28, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM8, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM9, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM10, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM11, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM12, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM13, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM14, -2, true ); | |
RI->mapLLVMRegToDwarfReg(X86::YMM15, -2, true ); | |
break; | |
} | |
} | |
} // End llvm namespace | |
#endif // GET_REGINFO_MC_DESC | |
//===- TableGen'erated file -------------------------------------*- C++ -*-===// | |
// | |
// Register Information Header Fragment | |
// | |
// Automatically generated file, do not edit! | |
// | |
//===----------------------------------------------------------------------===// | |
#ifdef GET_REGINFO_HEADER | |
#undef GET_REGINFO_HEADER | |
#include "llvm/Target/TargetRegisterInfo.h" | |
#include <string> | |
namespace llvm { | |
struct X86GenRegisterInfo : public TargetRegisterInfo { | |
explicit X86GenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0); | |
virtual bool needsStackRealignment(const MachineFunction &) const | |
{ return false; } | |
unsigned getSubReg(unsigned RegNo, unsigned Index) const; | |
unsigned getSubRegIndex(unsigned RegNo, unsigned SubRegNo) const; | |
unsigned composeSubRegIndices(unsigned, unsigned) const; | |
const TargetRegisterClass *getSubClassWithSubReg(const TargetRegisterClass*, unsigned) const; | |
}; | |
// Subregister indices | |
namespace X86 { | |
enum { | |
NoSubRegister, | |
sub_8bit, // 1 | |
sub_8bit_hi, // 2 | |
sub_16bit, // 3 | |
sub_32bit, // 4 | |
sub_sd, // 5 | |
sub_ss, // 6 | |
sub_xmm, // 7 | |
NUM_TARGET_NAMED_SUBREGS = 8 | |
}; | |
} | |
namespace X86 { // Register classes | |
struct GR8Class : public TargetRegisterClass { | |
GR8Class(); | |
ArrayRef<unsigned> getRawAllocationOrder(const MachineFunction&) const; | |
}; | |
extern GR8Class GR8RegClass; | |
static TargetRegisterClass * const GR8RegisterClass = &GR8RegClass; | |
struct GR64Class : public TargetRegisterClass { | |
GR64Class(); | |
}; | |
extern GR64Class GR64RegClass; | |
static TargetRegisterClass * const GR64RegisterClass = &GR64RegClass; | |
struct GR16Class : public TargetRegisterClass { | |
GR16Class(); | |
}; | |
extern GR16Class GR16RegClass; | |
static TargetRegisterClass * const GR16RegisterClass = &GR16RegClass; | |
struct GR32Class : public TargetRegisterClass { | |
GR32Class(); | |
}; | |
extern GR32Class GR32RegClass; | |
static TargetRegisterClass * const GR32RegisterClass = &GR32RegClass; | |
struct FR32Class : public TargetRegisterClass { | |
FR32Class(); | |
}; | |
extern FR32Class FR32RegClass; | |
static TargetRegisterClass * const FR32RegisterClass = &FR32RegClass; | |
struct GR64_with_sub_8bitClass : public TargetRegisterClass { | |
GR64_with_sub_8bitClass(); | |
}; | |
extern GR64_with_sub_8bitClass GR64_with_sub_8bitRegClass; | |
static TargetRegisterClass * const GR64_with_sub_8bitRegisterClass = &GR64_with_sub_8bitRegClass; | |
struct FR64Class : public TargetRegisterClass { | |
FR64Class(); | |
}; | |
extern FR64Class FR64RegClass; | |
static TargetRegisterClass * const FR64RegisterClass = &FR64RegClass; | |
struct CONTROL_REGClass : public TargetRegisterClass { | |
CONTROL_REGClass(); | |
}; | |
extern CONTROL_REGClass CONTROL_REGRegClass; | |
static TargetRegisterClass * const CONTROL_REGRegisterClass = &CONTROL_REGRegClass; | |
struct VR128Class : public TargetRegisterClass { | |
VR128Class(); | |
}; | |
extern VR128Class VR128RegClass; | |
static TargetRegisterClass * const VR128RegisterClass = &VR128RegClass; | |
struct VR256Class : public TargetRegisterClass { | |
VR256Class(); | |
}; | |
extern VR256Class VR256RegClass; | |
static TargetRegisterClass * const VR256RegisterClass = &VR256RegClass; | |
struct GR32_NOSPClass : public TargetRegisterClass { | |
GR32_NOSPClass(); | |
}; | |
extern GR32_NOSPClass GR32_NOSPRegClass; | |
static TargetRegisterClass * const GR32_NOSPRegisterClass = &GR32_NOSPRegClass; | |
struct GR32_NOAXClass : public TargetRegisterClass { | |
GR32_NOAXClass(); | |
}; | |
extern GR32_NOAXClass GR32_NOAXRegClass; | |
static TargetRegisterClass * const GR32_NOAXRegisterClass = &GR32_NOAXRegClass; | |
struct GR64_NOSPClass : public TargetRegisterClass { | |
GR64_NOSPClass(); | |
}; | |
extern GR64_NOSPClass GR64_NOSPRegClass; | |
static TargetRegisterClass * const GR64_NOSPRegisterClass = &GR64_NOSPRegClass; | |
struct GR64_TCClass : public TargetRegisterClass { | |
GR64_TCClass(); | |
}; | |
extern GR64_TCClass GR64_TCRegClass; | |
static TargetRegisterClass * const GR64_TCRegisterClass = &GR64_TCRegClass; | |
struct GR64_NOREXClass : public TargetRegisterClass { | |
GR64_NOREXClass(); | |
}; | |
extern GR64_NOREXClass GR64_NOREXRegClass; | |
static TargetRegisterClass * const GR64_NOREXRegisterClass = &GR64_NOREXRegClass; | |
struct GR8_NOREXClass : public TargetRegisterClass { | |
GR8_NOREXClass(); | |
ArrayRef<unsigned> getRawAllocationOrder(const MachineFunction&) const; | |
}; | |
extern GR8_NOREXClass GR8_NOREXRegClass; | |
static TargetRegisterClass * const GR8_NOREXRegisterClass = &GR8_NOREXRegClass; | |
struct GR16_NOREXClass : public TargetRegisterClass { | |
GR16_NOREXClass(); | |
}; | |
extern GR16_NOREXClass GR16_NOREXRegClass; | |
static TargetRegisterClass * const GR16_NOREXRegisterClass = &GR16_NOREXRegClass; | |
struct GR32_NOREXClass : public TargetRegisterClass { | |
GR32_NOREXClass(); | |
}; | |
extern GR32_NOREXClass GR32_NOREXRegClass; | |
static TargetRegisterClass * const GR32_NOREXRegisterClass = &GR32_NOREXRegClass; | |
struct DEBUG_REGClass : public TargetRegisterClass { | |
DEBUG_REGClass(); | |
}; | |
extern DEBUG_REGClass DEBUG_REGRegClass; | |
static TargetRegisterClass * const DEBUG_REGRegisterClass = &DEBUG_REGRegClass; | |
struct VR64Class : public TargetRegisterClass { | |
VR64Class(); | |
}; | |
extern VR64Class VR64RegClass; | |
static TargetRegisterClass * const VR64RegisterClass = &VR64RegClass; | |
struct GR64_TC_with_sub_8bitClass : public TargetRegisterClass { | |
GR64_TC_with_sub_8bitClass(); | |
}; | |
extern GR64_TC_with_sub_8bitClass GR64_TC_with_sub_8bitRegClass; | |
static TargetRegisterClass * const GR64_TC_with_sub_8bitRegisterClass = &GR64_TC_with_sub_8bitRegClass; | |
struct GR64_NOREX_with_sub_8bitClass : public TargetRegisterClass { | |
GR64_NOREX_with_sub_8bitClass(); | |
}; | |
extern GR64_NOREX_with_sub_8bitClass GR64_NOREX_with_sub_8bitRegClass; | |
static TargetRegisterClass * const GR64_NOREX_with_sub_8bitRegisterClass = &GR64_NOREX_with_sub_8bitRegClass; | |
struct RSTClass : public TargetRegisterClass { | |
RSTClass(); | |
}; | |
extern RSTClass RSTRegClass; | |
static TargetRegisterClass * const RSTRegisterClass = &RSTRegClass; | |
struct RFP32Class : public TargetRegisterClass { | |
RFP32Class(); | |
}; | |
extern RFP32Class RFP32RegClass; | |
static TargetRegisterClass * const RFP32RegisterClass = &RFP32RegClass; | |
struct GR32_NOREX_NOSPClass : public TargetRegisterClass { | |
GR32_NOREX_NOSPClass(); | |
}; | |
extern GR32_NOREX_NOSPClass GR32_NOREX_NOSPRegClass; | |
static TargetRegisterClass * const GR32_NOREX_NOSPRegisterClass = &GR32_NOREX_NOSPRegClass; | |
struct RFP64Class : public TargetRegisterClass { | |
RFP64Class(); | |
}; | |
extern RFP64Class RFP64RegClass; | |
static TargetRegisterClass * const RFP64RegisterClass = &RFP64RegClass; | |
struct GR64_NOREX_NOSPClass : public TargetRegisterClass { | |
GR64_NOREX_NOSPClass(); | |
}; | |
extern GR64_NOREX_NOSPClass GR64_NOREX_NOSPRegClass; | |
static TargetRegisterClass * const GR64_NOREX_NOSPRegisterClass = &GR64_NOREX_NOSPRegClass; | |
struct RFP80Class : public TargetRegisterClass { | |
RFP80Class(); | |
}; | |
extern RFP80Class RFP80RegClass; | |
static TargetRegisterClass * const RFP80RegisterClass = &RFP80RegClass; | |
struct SEGMENT_REGClass : public TargetRegisterClass { | |
SEGMENT_REGClass(); | |
}; | |
extern SEGMENT_REGClass SEGMENT_REGRegClass; | |
static TargetRegisterClass * const SEGMENT_REGRegisterClass = &SEGMENT_REGRegClass; | |
struct GR64_TCW64Class : public TargetRegisterClass { | |
GR64_TCW64Class(); | |
}; | |
extern GR64_TCW64Class GR64_TCW64RegClass; | |
static TargetRegisterClass * const GR64_TCW64RegisterClass = &GR64_TCW64RegClass; | |
struct GR8_ABCD_LClass : public TargetRegisterClass { | |
GR8_ABCD_LClass(); | |
}; | |
extern GR8_ABCD_LClass GR8_ABCD_LRegClass; | |
static TargetRegisterClass * const GR8_ABCD_LRegisterClass = &GR8_ABCD_LRegClass; | |
struct GR8_ABCD_HClass : public TargetRegisterClass { | |
GR8_ABCD_HClass(); | |
}; | |
extern GR8_ABCD_HClass GR8_ABCD_HRegClass; | |
static TargetRegisterClass * const GR8_ABCD_HRegisterClass = &GR8_ABCD_HRegClass; | |
struct GR16_ABCDClass : public TargetRegisterClass { | |
GR16_ABCDClass(); | |
}; | |
extern GR16_ABCDClass GR16_ABCDRegClass; | |
static TargetRegisterClass * const GR16_ABCDRegisterClass = &GR16_ABCDRegClass; | |
struct GR32_ABCDClass : public TargetRegisterClass { | |
GR32_ABCDClass(); | |
}; | |
extern GR32_ABCDClass GR32_ABCDRegClass; | |
static TargetRegisterClass * const GR32_ABCDRegisterClass = &GR32_ABCDRegClass; | |
struct GR64_ABCDClass : public TargetRegisterClass { | |
GR64_ABCDClass(); | |
}; | |
extern GR64_ABCDClass GR64_ABCDRegClass; | |
static TargetRegisterClass * const GR64_ABCDRegisterClass = &GR64_ABCDRegClass; | |
struct GR32_TCClass : public TargetRegisterClass { | |
GR32_TCClass(); | |
}; | |
extern GR32_TCClass GR32_TCRegClass; | |
static TargetRegisterClass * const GR32_TCRegisterClass = &GR32_TCRegClass; | |
struct GR32_NOAX_with_sub_8bit_hiClass : public TargetRegisterClass { | |
GR32_NOAX_with_sub_8bit_hiClass(); | |
}; | |
extern GR32_NOAX_with_sub_8bit_hiClass GR32_NOAX_with_sub_8bit_hiRegClass; | |
static TargetRegisterClass * const GR32_NOAX_with_sub_8bit_hiRegisterClass = &GR32_NOAX_with_sub_8bit_hiRegClass; | |
struct GR64_TC_with_sub_8bit_hiClass : public TargetRegisterClass { | |
GR64_TC_with_sub_8bit_hiClass(); | |
}; | |
extern GR64_TC_with_sub_8bit_hiClass GR64_TC_with_sub_8bit_hiRegClass; | |
static TargetRegisterClass * const GR64_TC_with_sub_8bit_hiRegisterClass = &GR64_TC_with_sub_8bit_hiRegClass; | |
struct GR32_ADClass : public TargetRegisterClass { | |
GR32_ADClass(); | |
}; | |
extern GR32_ADClass GR32_ADRegClass; | |
static TargetRegisterClass * const GR32_ADRegisterClass = &GR32_ADRegClass; | |
struct CCRClass : public TargetRegisterClass { | |
CCRClass(); | |
}; | |
extern CCRClass CCRRegClass; | |
static TargetRegisterClass * const CCRRegisterClass = &CCRRegClass; | |
} // end of namespace X86 | |
} // End llvm namespace | |
#endif // GET_REGINFO_HEADER | |
//===- TableGen'erated file -------------------------------------*- C++ -*-===// | |
// | |
// Target Register and Register Classes Information | |
// | |
// Automatically generated file, do not edit! | |
// | |
//===----------------------------------------------------------------------===// | |
#ifdef GET_REGINFO_TARGET_DESC | |
#undef GET_REGINFO_TARGET_DESC | |
namespace llvm { | |
extern MCRegisterClass X86MCRegisterClasses[]; | |
namespace { // Register classes... | |
// GR8VTs Register Class Value Types... | |
static const EVT GR8VTs[] = { | |
MVT::i8, MVT::Other | |
}; | |
// GR64VTs Register Class Value Types... | |
static const EVT GR64VTs[] = { | |
MVT::i64, MVT::Other | |
}; | |
// GR16VTs Register Class Value Types... | |
static const EVT GR16VTs[] = { | |
MVT::i16, MVT::Other | |
}; | |
// GR32VTs Register Class Value Types... | |
static const EVT GR32VTs[] = { | |
MVT::i32, MVT::Other | |
}; | |
// FR32VTs Register Class Value Types... | |
static const EVT FR32VTs[] = { | |
MVT::f32, MVT::Other | |
}; | |
// GR64_with_sub_8bitVTs Register Class Value Types... | |
static const EVT GR64_with_sub_8bitVTs[] = { | |
MVT::i64, MVT::Other | |
}; | |
// FR64VTs Register Class Value Types... | |
static const EVT FR64VTs[] = { | |
MVT::f64, MVT::Other | |
}; | |
// CONTROL_REGVTs Register Class Value Types... | |
static const EVT CONTROL_REGVTs[] = { | |
MVT::i64, MVT::Other | |
}; | |
// VR128VTs Register Class Value Types... | |
static const EVT VR128VTs[] = { | |
MVT::v16i8, MVT::v8i16, MVT::v4i32, MVT::v2i64, MVT::v4f32, MVT::v2f64, MVT::Other | |
}; | |
// VR256VTs Register Class Value Types... | |
static const EVT VR256VTs[] = { | |
MVT::v32i8, MVT::v16i16, MVT::v8i32, MVT::v4i64, MVT::v8f32, MVT::v4f64, MVT::Other | |
}; | |
// GR32_NOSPVTs Register Class Value Types... | |
static const EVT GR32_NOSPVTs[] = { | |
MVT::i32, MVT::Other | |
}; | |
// GR32_NOAXVTs Register Class Value Types... | |
static const EVT GR32_NOAXVTs[] = { | |
MVT::i32, MVT::Other | |
}; | |
// GR64_NOSPVTs Register Class Value Types... | |
static const EVT GR64_NOSPVTs[] = { | |
MVT::i64, MVT::Other | |
}; | |
// GR64_TCVTs Register Class Value Types... | |
static const EVT GR64_TCVTs[] = { | |
MVT::i64, MVT::Other | |
}; | |
// GR64_NOREXVTs Register Class Value Types... | |
static const EVT GR64_NOREXVTs[] = { | |
MVT::i64, MVT::Other | |
}; | |
// GR8_NOREXVTs Register Class Value Types... | |
static const EVT GR8_NOREXVTs[] = { | |
MVT::i8, MVT::Other | |
}; | |
// GR16_NOREXVTs Register Class Value Types... | |
static const EVT GR16_NOREXVTs[] = { | |
MVT::i16, MVT::Other | |
}; | |
// GR32_NOREXVTs Register Class Value Types... | |
static const EVT GR32_NOREXVTs[] = { | |
MVT::i32, MVT::Other | |
}; | |
// DEBUG_REGVTs Register Class Value Types... | |
static const EVT DEBUG_REGVTs[] = { | |
MVT::i32, MVT::Other | |
}; | |
// VR64VTs Register Class Value Types... | |
static const EVT VR64VTs[] = { | |
MVT::x86mmx, MVT::Other | |
}; | |
// GR64_TC_with_sub_8bitVTs Register Class Value Types... | |
static const EVT GR64_TC_with_sub_8bitVTs[] = { | |
MVT::i64, MVT::Other | |
}; | |
// GR64_NOREX_with_sub_8bitVTs Register Class Value Types... | |
static const EVT GR64_NOREX_with_sub_8bitVTs[] = { | |
MVT::i64, MVT::Other | |
}; | |
// RSTVTs Register Class Value Types... | |
static const EVT RSTVTs[] = { | |
MVT::f80, MVT::f64, MVT::f32, MVT::Other | |
}; | |
// RFP32VTs Register Class Value Types... | |
static const EVT RFP32VTs[] = { | |
MVT::f32, MVT::Other | |
}; | |
// GR32_NOREX_NOSPVTs Register Class Value Types... | |
static const EVT GR32_NOREX_NOSPVTs[] = { | |
MVT::i32, MVT::Other | |
}; | |
// RFP64VTs Register Class Value Types... | |
static const EVT RFP64VTs[] = { | |
MVT::f64, MVT::Other | |
}; | |
// GR64_NOREX_NOSPVTs Register Class Value Types... | |
static const EVT GR64_NOREX_NOSPVTs[] = { | |
MVT::i64, MVT::Other | |
}; | |
// RFP80VTs Register Class Value Types... | |
static const EVT RFP80VTs[] = { | |
MVT::f80, MVT::Other | |
}; | |
// SEGMENT_REGVTs Register Class Value Types... | |
static const EVT SEGMENT_REGVTs[] = { | |
MVT::i16, MVT::Other | |
}; | |
// GR64_TCW64VTs Register Class Value Types... | |
static const EVT GR64_TCW64VTs[] = { | |
MVT::i64, MVT::Other | |
}; | |
// GR8_ABCD_LVTs Register Class Value Types... | |
static const EVT GR8_ABCD_LVTs[] = { | |
MVT::i8, MVT::Other | |
}; | |
// GR8_ABCD_HVTs Register Class Value Types... | |
static const EVT GR8_ABCD_HVTs[] = { | |
MVT::i8, MVT::Other | |
}; | |
// GR16_ABCDVTs Register Class Value Types... | |
static const EVT GR16_ABCDVTs[] = { | |
MVT::i16, MVT::Other | |
}; | |
// GR32_ABCDVTs Register Class Value Types... | |
static const EVT GR32_ABCDVTs[] = { | |
MVT::i32, MVT::Other | |
}; | |
// GR64_ABCDVTs Register Class Value Types... | |
static const EVT GR64_ABCDVTs[] = { | |
MVT::i64, MVT::Other | |
}; | |
// GR32_TCVTs Register Class Value Types... | |
static const EVT GR32_TCVTs[] = { | |
MVT::i32, MVT::Other | |
}; | |
// GR32_NOAX_with_sub_8bit_hiVTs Register Class Value Types... | |
static const EVT GR32_NOAX_with_sub_8bit_hiVTs[] = { | |
MVT::i32, MVT::Other | |
}; | |
// GR64_TC_with_sub_8bit_hiVTs Register Class Value Types... | |
static const EVT GR64_TC_with_sub_8bit_hiVTs[] = { | |
MVT::i64, MVT::Other | |
}; | |
// GR32_ADVTs Register Class Value Types... | |
static const EVT GR32_ADVTs[] = { | |
MVT::i32, MVT::Other | |
}; | |
// CCRVTs Register Class Value Types... | |
static const EVT CCRVTs[] = { | |
MVT::i32, MVT::Other | |
}; | |
} // end anonymous namespace | |
namespace X86 { // Register class instances | |
GR8Class GR8RegClass; | |
GR64Class GR64RegClass; | |
GR16Class GR16RegClass; | |
GR32Class GR32RegClass; | |
FR32Class FR32RegClass; | |
GR64_with_sub_8bitClass GR64_with_sub_8bitRegClass; | |
FR64Class FR64RegClass; | |
CONTROL_REGClass CONTROL_REGRegClass; | |
VR128Class VR128RegClass; | |
VR256Class VR256RegClass; | |
GR32_NOSPClass GR32_NOSPRegClass; | |
GR32_NOAXClass GR32_NOAXRegClass; | |
GR64_NOSPClass GR64_NOSPRegClass; | |
GR64_TCClass GR64_TCRegClass; | |
GR64_NOREXClass GR64_NOREXRegClass; | |
GR8_NOREXClass GR8_NOREXRegClass; | |
GR16_NOREXClass GR16_NOREXRegClass; | |
GR32_NOREXClass GR32_NOREXRegClass; | |
DEBUG_REGClass DEBUG_REGRegClass; | |
VR64Class VR64RegClass; | |
GR64_TC_with_sub_8bitClass GR64_TC_with_sub_8bitRegClass; | |
GR64_NOREX_with_sub_8bitClass GR64_NOREX_with_sub_8bitRegClass; | |
RSTClass RSTRegClass; | |
RFP32Class RFP32RegClass; | |
GR32_NOREX_NOSPClass GR32_NOREX_NOSPRegClass; | |
RFP64Class RFP64RegClass; | |
GR64_NOREX_NOSPClass GR64_NOREX_NOSPRegClass; | |
RFP80Class RFP80RegClass; | |
SEGMENT_REGClass SEGMENT_REGRegClass; | |
GR64_TCW64Class GR64_TCW64RegClass; | |
GR8_ABCD_LClass GR8_ABCD_LRegClass; | |
GR8_ABCD_HClass GR8_ABCD_HRegClass; | |
GR16_ABCDClass GR16_ABCDRegClass; | |
GR32_ABCDClass GR32_ABCDRegClass; | |
GR64_ABCDClass GR64_ABCDRegClass; | |
GR32_TCClass GR32_TCRegClass; | |
GR32_NOAX_with_sub_8bit_hiClass GR32_NOAX_with_sub_8bit_hiRegClass; | |
GR64_TC_with_sub_8bit_hiClass GR64_TC_with_sub_8bit_hiRegClass; | |
GR32_ADClass GR32_ADRegClass; | |
CCRClass CCRRegClass; | |
static const TargetRegisterClass* const NullRegClasses[] = { NULL }; | |
// GR8 Super-register Classes... | |
static const TargetRegisterClass* const GR8SuperRegClasses[] = { | |
&X86::GR64RegClass, &X86::GR16RegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::GR32_NOAXRegClass, &X86::GR64_NOSPRegClass, &X86::GR64_TCRegClass, &X86::GR32_TCRegClass, NULL | |
}; | |
// GR64 Super-register Classes... | |
static const TargetRegisterClass* const GR64SuperRegClasses[] = { | |
NULL | |
}; | |
// GR16 Super-register Classes... | |
static const TargetRegisterClass* const GR16SuperRegClasses[] = { | |
&X86::GR64RegClass, &X86::GR32RegClass, &X86::GR32_NOSPRegClass, &X86::GR32_NOAXRegClass, &X86::GR64_NOSPRegClass, &X86::GR64_TCRegClass, &X86::GR32_TCRegClass, NULL | |
}; | |
// GR32 Super-register Classes... | |
static const TargetRegisterClass* const GR32SuperRegClasses[] = { | |
&X86::GR64RegClass, NULL | |
}; | |
// FR32 Super-register Classes... | |
static const TargetRegisterClass* const FR32SuperRegClasses[] = { | |
&X86::VR128RegClass, &X86::VR256RegClass, NULL | |
}; | |
// GR64_with_sub_8bit Super-register Classes... | |
static const TargetRegisterClass* const GR64_with_sub_8bitSuperRegClasses[] = { | |
NULL | |
}; | |
// FR64 Super-register Classes... | |
static const TargetRegisterClass* const FR64SuperRegClasses[] = { | |
&X86::VR128RegClass, &X86::VR256RegClass, NULL | |
}; | |
// CONTROL_REG Super-register Classes... | |
static const TargetRegisterClass* const CONTROL_REGSuperRegClasses[] = { | |
NULL | |
}; | |
// VR128 Super-register Classes... | |
static const TargetRegisterClass* const VR128SuperRegClasses[] = { | |
&X86::VR256RegClass, NULL | |
}; | |
// VR256 Super-register Classes... | |
static const TargetRegisterClass* const VR256SuperRegClasses[] = { | |
NULL | |
}; | |
// GR32_NOSP Super-register Classes... | |
static const TargetRegisterClass* const GR32_NOSPSuperRegClasses[] = { | |
&X86::GR64_NOSPRegClass, NULL | |
}; | |
// GR32_NOAX Super-register Classes... | |
static const TargetRegisterClass* const GR32_NOAXSuperRegClasses[] = { | |
NULL | |
}; | |
// GR64_NOSP Super-register Classes... | |
static const TargetRegisterClass* const GR64_NOSPSuperRegClasses[] = { | |
NULL | |
}; | |
// GR64_TC Super-register Classes... | |
static const TargetRegisterClass* const GR64_TCSuperRegClasses[] = { | |
NULL | |
}; | |
// GR64_NOREX Super-register Classes... | |
static const TargetRegisterClass* const GR64_NOREXSuperRegClasses[] = { | |
NULL | |
}; | |
// GR8_NOREX Super-register Classes... | |
static const TargetRegisterClass* const GR8_NOREXSuperRegClasses[] = { | |
&X86::GR64_NOREXRegClass, &X86::GR16_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::GR64_NOREX_NOSPRegClass, NULL | |
}; | |
// GR16_NOREX Super-register Classes... | |
static const TargetRegisterClass* const GR16_NOREXSuperRegClasses[] = { | |
&X86::GR64_NOREXRegClass, &X86::GR32_NOREXRegClass, &X86::GR32_NOREX_NOSPRegClass, &X86::GR64_NOREX_NOSPRegClass, NULL | |
}; | |
// GR32_NOREX Super-register Classes... | |
static const TargetRegisterClass* const GR32_NOREXSuperRegClasses[] = { | |
&X86::GR64_NOREXRegClass, NULL | |
}; | |
// DEBUG_REG Super-register Classes... | |
static const TargetRegisterClass* const DEBUG_REGSuperRegClasses[] = { | |
NULL | |
}; | |
// VR64 Super-register Classes... | |
static const TargetRegisterClass* const VR64SuperRegClasses[] = { | |
NULL | |
}; | |
// GR64_TC_with_sub_8bit Super-register Classes... | |
static const TargetRegisterClass* const GR64_TC_with_sub_8bitSuperRegClasses[] = { | |
NULL | |
}; | |
// GR64_NOREX_with_sub_8bit Super-register Classes... | |
static const TargetRegisterClass* const GR64_NOREX_with_sub_8bitSuperRegClasses[] = { | |
NULL | |
}; | |
// RST Super-register Classes... | |
static const TargetRegisterClass* const RSTSuperRegClasses[] = { | |
NULL | |
}; | |
// RFP32 Super-register Classes... | |
static const TargetRegisterClass* const RFP32SuperRegClasses[] = { | |
NULL | |
}; | |
// GR32_NOREX_NOSP Super-register Classes... | |
static const TargetRegisterClass* const GR32_NOREX_NOSPSuperRegClasses[] = { | |
&X86::GR64_NOREX_NOSPRegClass, NULL | |
}; | |
// RFP64 Super-register Classes... | |
static const TargetRegisterClass* const RFP64SuperRegClasses[] = { | |
NULL | |
}; | |
// GR64_NOREX_NOSP Super-register Classes... | |
static const TargetRegisterClass* const GR64_NOREX_NOSPSuperRegClasses[] = { | |
NULL | |
}; | |
// RFP80 Super-register Classes... | |
static const TargetRegisterClass* const RFP80SuperRegClasses[] = { | |
NULL | |
}; | |
// SEGMENT_REG Super-register Classes... | |
static const TargetRegisterClass* const SEGMENT_REGSuperRegClasses[] = { | |
NULL | |
}; | |
// GR64_TCW64 Super-register Classes... | |
static const TargetRegisterClass* const GR64_TCW64SuperRegClasses[] = { | |
NULL | |
}; | |
// GR8_ABCD_L Super-register Classes... | |
static const TargetRegisterClass* const GR8_ABCD_LSuperRegClasses[] = { | |
&X86::GR16_ABCDRegClass, &X86::GR32_ABCDRegClass, &X86::GR64_ABCDRegClass, &X86::GR32_ADRegClass, NULL | |
}; | |
// GR8_ABCD_H Super-register Classes... | |
static const TargetRegisterClass* const GR8_ABCD_HSuperRegClasses[] = { | |
&X86::GR16_ABCDRegClass, &X86::GR32_ABCDRegClass, &X86::GR64_ABCDRegClass, &X86::GR32_ADRegClass, NULL | |
}; | |
// GR16_ABCD Super-register Classes... | |
static const TargetRegisterClass* const GR16_ABCDSuperRegClasses[] = { | |
&X86::GR32_ABCDRegClass, &X86::GR64_ABCDRegClass, &X86::GR32_ADRegClass, NULL | |
}; | |
// GR32_ABCD Super-register Classes... | |
static const TargetRegisterClass* const GR32_ABCDSuperRegClasses[] = { | |
&X86::GR64_ABCDRegClass, NULL | |
}; | |
// GR64_ABCD Super-register Classes... | |
static const TargetRegisterClass* const GR64_ABCDSuperRegClasses[] = { | |
NULL | |
}; | |
// GR32_TC Super-register Classes... | |
static const TargetRegisterClass* const GR32_TCSuperRegClasses[] = { | |
&X86::GR64_TCRegClass, NULL | |
}; | |
// GR32_NOAX_with_sub_8bit_hi Super-register Classes... | |
static const TargetRegisterClass* const GR32_NOAX_with_sub_8bit_hiSuperRegClasses[] = { | |
NULL | |
}; | |
// GR64_TC_with_sub_8bit_hi Super-register Classes... | |
static const TargetRegisterClass* const GR64_TC_with_sub_8bit_hiSuperRegClasses[] = { | |
NULL | |
}; | |
// GR32_AD Super-register Classes... | |
static const TargetRegisterClass* const GR32_ADSuperRegClasses[] = { | |
NULL | |
}; | |
// CCR Super-register Classes... | |
static const TargetRegisterClass* const CCRSuperRegClasses[] = { | |
NULL | |
}; | |
static const unsigned GR8SubclassMask[] = { 0xc0008001, 0x00000000, }; | |
static const unsigned GR64SubclassMask[] = { 0x24307022, 0x00000024, }; | |
static const unsigned GR16SubclassMask[] = { 0x00010004, 0x00000001, }; | |
static const unsigned GR32SubclassMask[] = { 0x01020c08, 0x0000005a, }; | |
static const unsigned FR32SubclassMask[] = { 0x00000150, 0x00000000, }; | |
static const unsigned GR64_with_sub_8bitSubclassMask[] = { 0x24301020, 0x00000024, }; | |
static const unsigned FR64SubclassMask[] = { 0x00000140, 0x00000000, }; | |
static const unsigned CONTROL_REGSubclassMask[] = { 0x00000080, 0x00000000, }; | |
static const unsigned VR128SubclassMask[] = { 0x00000100, 0x00000000, }; | |
static const unsigned VR256SubclassMask[] = { 0x00000200, 0x00000000, }; | |
static const unsigned GR32_NOSPSubclassMask[] = { 0x01000400, 0x0000005a, }; | |
static const unsigned GR32_NOAXSubclassMask[] = { 0x00000800, 0x00000010, }; | |
static const unsigned GR64_NOSPSubclassMask[] = { 0x24101000, 0x00000024, }; | |
static const unsigned GR64_TCSubclassMask[] = { 0x20102000, 0x00000020, }; | |
static const unsigned GR64_NOREXSubclassMask[] = { 0x04204000, 0x00000024, }; | |
static const unsigned GR8_NOREXSubclassMask[] = { 0xc0008000, 0x00000000, }; | |
static const unsigned GR16_NOREXSubclassMask[] = { 0x00010000, 0x00000001, }; | |
static const unsigned GR32_NOREXSubclassMask[] = { 0x01020000, 0x0000005a, }; | |
static const unsigned DEBUG_REGSubclassMask[] = { 0x00040000, 0x00000000, }; | |
static const unsigned VR64SubclassMask[] = { 0x00080000, 0x00000000, }; | |
static const unsigned GR64_TC_with_sub_8bitSubclassMask[] = { 0x20100000, 0x00000020, }; | |
static const unsigned GR64_NOREX_with_sub_8bitSubclassMask[] = { 0x04200000, 0x00000024, }; | |
static const unsigned RSTSubclassMask[] = { 0x00400000, 0x00000000, }; | |
static const unsigned RFP32SubclassMask[] = { 0x0a800000, 0x00000000, }; | |
static const unsigned GR32_NOREX_NOSPSubclassMask[] = { 0x01000000, 0x0000005a, }; | |
static const unsigned RFP64SubclassMask[] = { 0x0a000000, 0x00000000, }; | |
static const unsigned GR64_NOREX_NOSPSubclassMask[] = { 0x04000000, 0x00000024, }; | |
static const unsigned RFP80SubclassMask[] = { 0x08000000, 0x00000000, }; | |
static const unsigned SEGMENT_REGSubclassMask[] = { 0x10000000, 0x00000000, }; | |
static const unsigned GR64_TCW64SubclassMask[] = { 0x20000000, 0x00000020, }; | |
static const unsigned GR8_ABCD_LSubclassMask[] = { 0x40000000, 0x00000000, }; | |
static const unsigned GR8_ABCD_HSubclassMask[] = { 0x80000000, 0x00000000, }; | |
static const unsigned GR16_ABCDSubclassMask[] = { 0x00000000, 0x00000001, }; | |
static const unsigned GR32_ABCDSubclassMask[] = { 0x00000000, 0x0000005a, }; | |
static const unsigned GR64_ABCDSubclassMask[] = { 0x00000000, 0x00000024, }; | |
static const unsigned GR32_TCSubclassMask[] = { 0x00000000, 0x00000048, }; | |
static const unsigned GR32_NOAX_with_sub_8bit_hiSubclassMask[] = { 0x00000000, 0x00000010, }; | |
static const unsigned GR64_TC_with_sub_8bit_hiSubclassMask[] = { 0x00000000, 0x00000020, }; | |
static const unsigned GR32_ADSubclassMask[] = { 0x00000000, 0x00000040, }; | |
static const unsigned CCRSubclassMask[] = { 0x00000000, 0x00000080, }; | |
static const TargetRegisterClass* const GR64_with_sub_8bitSuperclasses[] = { | |
&X86::GR64RegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const FR64Superclasses[] = { | |
&X86::FR32RegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const VR128Superclasses[] = { | |
&X86::FR32RegClass, | |
&X86::FR64RegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR32_NOSPSuperclasses[] = { | |
&X86::GR32RegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR32_NOAXSuperclasses[] = { | |
&X86::GR32RegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR64_NOSPSuperclasses[] = { | |
&X86::GR64RegClass, | |
&X86::GR64_with_sub_8bitRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR64_TCSuperclasses[] = { | |
&X86::GR64RegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR64_NOREXSuperclasses[] = { | |
&X86::GR64RegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR8_NOREXSuperclasses[] = { | |
&X86::GR8RegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR16_NOREXSuperclasses[] = { | |
&X86::GR16RegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR32_NOREXSuperclasses[] = { | |
&X86::GR32RegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR64_TC_with_sub_8bitSuperclasses[] = { | |
&X86::GR64RegClass, | |
&X86::GR64_with_sub_8bitRegClass, | |
&X86::GR64_NOSPRegClass, | |
&X86::GR64_TCRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR64_NOREX_with_sub_8bitSuperclasses[] = { | |
&X86::GR64RegClass, | |
&X86::GR64_with_sub_8bitRegClass, | |
&X86::GR64_NOREXRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR32_NOREX_NOSPSuperclasses[] = { | |
&X86::GR32RegClass, | |
&X86::GR32_NOSPRegClass, | |
&X86::GR32_NOREXRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const RFP64Superclasses[] = { | |
&X86::RFP32RegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR64_NOREX_NOSPSuperclasses[] = { | |
&X86::GR64RegClass, | |
&X86::GR64_with_sub_8bitRegClass, | |
&X86::GR64_NOSPRegClass, | |
&X86::GR64_NOREXRegClass, | |
&X86::GR64_NOREX_with_sub_8bitRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const RFP80Superclasses[] = { | |
&X86::RFP32RegClass, | |
&X86::RFP64RegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR64_TCW64Superclasses[] = { | |
&X86::GR64RegClass, | |
&X86::GR64_with_sub_8bitRegClass, | |
&X86::GR64_NOSPRegClass, | |
&X86::GR64_TCRegClass, | |
&X86::GR64_TC_with_sub_8bitRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR8_ABCD_LSuperclasses[] = { | |
&X86::GR8RegClass, | |
&X86::GR8_NOREXRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR8_ABCD_HSuperclasses[] = { | |
&X86::GR8RegClass, | |
&X86::GR8_NOREXRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR16_ABCDSuperclasses[] = { | |
&X86::GR16RegClass, | |
&X86::GR16_NOREXRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR32_ABCDSuperclasses[] = { | |
&X86::GR32RegClass, | |
&X86::GR32_NOSPRegClass, | |
&X86::GR32_NOREXRegClass, | |
&X86::GR32_NOREX_NOSPRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR64_ABCDSuperclasses[] = { | |
&X86::GR64RegClass, | |
&X86::GR64_with_sub_8bitRegClass, | |
&X86::GR64_NOSPRegClass, | |
&X86::GR64_NOREXRegClass, | |
&X86::GR64_NOREX_with_sub_8bitRegClass, | |
&X86::GR64_NOREX_NOSPRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR32_TCSuperclasses[] = { | |
&X86::GR32RegClass, | |
&X86::GR32_NOSPRegClass, | |
&X86::GR32_NOREXRegClass, | |
&X86::GR32_NOREX_NOSPRegClass, | |
&X86::GR32_ABCDRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR32_NOAX_with_sub_8bit_hiSuperclasses[] = { | |
&X86::GR32RegClass, | |
&X86::GR32_NOSPRegClass, | |
&X86::GR32_NOAXRegClass, | |
&X86::GR32_NOREXRegClass, | |
&X86::GR32_NOREX_NOSPRegClass, | |
&X86::GR32_ABCDRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR64_TC_with_sub_8bit_hiSuperclasses[] = { | |
&X86::GR64RegClass, | |
&X86::GR64_with_sub_8bitRegClass, | |
&X86::GR64_NOSPRegClass, | |
&X86::GR64_TCRegClass, | |
&X86::GR64_NOREXRegClass, | |
&X86::GR64_TC_with_sub_8bitRegClass, | |
&X86::GR64_NOREX_with_sub_8bitRegClass, | |
&X86::GR64_NOREX_NOSPRegClass, | |
&X86::GR64_TCW64RegClass, | |
&X86::GR64_ABCDRegClass, | |
NULL | |
}; | |
static const TargetRegisterClass* const GR32_ADSuperclasses[] = { | |
&X86::GR32RegClass, | |
&X86::GR32_NOSPRegClass, | |
&X86::GR32_NOREXRegClass, | |
&X86::GR32_NOREX_NOSPRegClass, | |
&X86::GR32_ABCDRegClass, | |
&X86::GR32_TCRegClass, | |
NULL | |
}; | |
GR8Class::GR8Class() : TargetRegisterClass(&X86MCRegisterClasses[GR8RegClassID], GR8VTs, GR8SubclassMask, NullRegClasses, GR8SuperRegClasses) {} | |
static inline unsigned GR8AltOrderSelect(const MachineFunction &MF) { | |
return MF.getTarget().getSubtarget<X86Subtarget>().is64Bit(); | |
} | |
ArrayRef<unsigned> GR8Class::getRawAllocationOrder(const MachineFunction &MF) const { | |
static const unsigned AltOrder1[] = { X86::AL, X86::CL, X86::DL, X86::BL, X86::SIL, X86::DIL, X86::BPL, X86::SPL, X86::R8B, X86::R9B, X86::R10B, X86::R11B, X86::R14B, X86::R15B, X86::R12B, X86::R13B }; | |
const MCRegisterClass &MCR = X86MCRegisterClasses[X86::GR8RegClassID]; static const ArrayRef<unsigned> Order[] = { | |
makeArrayRef(MCR.begin(), MCR.getNumRegs()), | |
makeArrayRef(AltOrder1) | |
}; | |
const unsigned Select = GR8AltOrderSelect(MF); | |
assert(Select < 2); | |
return Order[Select]; | |
} | |
GR64Class::GR64Class() : TargetRegisterClass(&X86MCRegisterClasses[GR64RegClassID], GR64VTs, GR64SubclassMask, NullRegClasses, GR64SuperRegClasses) {} | |
GR16Class::GR16Class() : TargetRegisterClass(&X86MCRegisterClasses[GR16RegClassID], GR16VTs, GR16SubclassMask, NullRegClasses, GR16SuperRegClasses) {} | |
GR32Class::GR32Class() : TargetRegisterClass(&X86MCRegisterClasses[GR32RegClassID], GR32VTs, GR32SubclassMask, NullRegClasses, GR32SuperRegClasses) {} | |
FR32Class::FR32Class() : TargetRegisterClass(&X86MCRegisterClasses[FR32RegClassID], FR32VTs, FR32SubclassMask, NullRegClasses, FR32SuperRegClasses) {} | |
GR64_with_sub_8bitClass::GR64_with_sub_8bitClass() : TargetRegisterClass(&X86MCRegisterClasses[GR64_with_sub_8bitRegClassID], GR64_with_sub_8bitVTs, GR64_with_sub_8bitSubclassMask, GR64_with_sub_8bitSuperclasses, GR64_with_sub_8bitSuperRegClasses) {} | |
FR64Class::FR64Class() : TargetRegisterClass(&X86MCRegisterClasses[FR64RegClassID], FR64VTs, FR64SubclassMask, FR64Superclasses, FR64SuperRegClasses) {} | |
CONTROL_REGClass::CONTROL_REGClass() : TargetRegisterClass(&X86MCRegisterClasses[CONTROL_REGRegClassID], CONTROL_REGVTs, CONTROL_REGSubclassMask, NullRegClasses, CONTROL_REGSuperRegClasses) {} | |
VR128Class::VR128Class() : TargetRegisterClass(&X86MCRegisterClasses[VR128RegClassID], VR128VTs, VR128SubclassMask, VR128Superclasses, VR128SuperRegClasses) {} | |
VR256Class::VR256Class() : TargetRegisterClass(&X86MCRegisterClasses[VR256RegClassID], VR256VTs, VR256SubclassMask, NullRegClasses, VR256SuperRegClasses) {} | |
GR32_NOSPClass::GR32_NOSPClass() : TargetRegisterClass(&X86MCRegisterClasses[GR32_NOSPRegClassID], GR32_NOSPVTs, GR32_NOSPSubclassMask, GR32_NOSPSuperclasses, GR32_NOSPSuperRegClasses) {} | |
GR32_NOAXClass::GR32_NOAXClass() : TargetRegisterClass(&X86MCRegisterClasses[GR32_NOAXRegClassID], GR32_NOAXVTs, GR32_NOAXSubclassMask, GR32_NOAXSuperclasses, GR32_NOAXSuperRegClasses) {} | |
GR64_NOSPClass::GR64_NOSPClass() : TargetRegisterClass(&X86MCRegisterClasses[GR64_NOSPRegClassID], GR64_NOSPVTs, GR64_NOSPSubclassMask, GR64_NOSPSuperclasses, GR64_NOSPSuperRegClasses) {} | |
GR64_TCClass::GR64_TCClass() : TargetRegisterClass(&X86MCRegisterClasses[GR64_TCRegClassID], GR64_TCVTs, GR64_TCSubclassMask, GR64_TCSuperclasses, GR64_TCSuperRegClasses) {} | |
GR64_NOREXClass::GR64_NOREXClass() : TargetRegisterClass(&X86MCRegisterClasses[GR64_NOREXRegClassID], GR64_NOREXVTs, GR64_NOREXSubclassMask, GR64_NOREXSuperclasses, GR64_NOREXSuperRegClasses) {} | |
GR8_NOREXClass::GR8_NOREXClass() : TargetRegisterClass(&X86MCRegisterClasses[GR8_NOREXRegClassID], GR8_NOREXVTs, GR8_NOREXSubclassMask, GR8_NOREXSuperclasses, GR8_NOREXSuperRegClasses) {} | |
static inline unsigned GR8_NOREXAltOrderSelect(const MachineFunction &MF) { | |
return MF.getTarget().getSubtarget<X86Subtarget>().is64Bit(); | |
} | |
ArrayRef<unsigned> GR8_NOREXClass::getRawAllocationOrder(const MachineFunction &MF) const { | |
static const unsigned AltOrder1[] = { X86::AL, X86::CL, X86::DL, X86::BL }; | |
const MCRegisterClass &MCR = X86MCRegisterClasses[X86::GR8_NOREXRegClassID]; static const ArrayRef<unsigned> Order[] = { | |
makeArrayRef(MCR.begin(), MCR.getNumRegs()), | |
makeArrayRef(AltOrder1) | |
}; | |
const unsigned Select = GR8_NOREXAltOrderSelect(MF); | |
assert(Select < 2); | |
return Order[Select]; | |
} | |
GR16_NOREXClass::GR16_NOREXClass() : TargetRegisterClass(&X86MCRegisterClasses[GR16_NOREXRegClassID], GR16_NOREXVTs, GR16_NOREXSubclassMask, GR16_NOREXSuperclasses, GR16_NOREXSuperRegClasses) {} | |
GR32_NOREXClass::GR32_NOREXClass() : TargetRegisterClass(&X86MCRegisterClasses[GR32_NOREXRegClassID], GR32_NOREXVTs, GR32_NOREXSubclassMask, GR32_NOREXSuperclasses, GR32_NOREXSuperRegClasses) {} | |
DEBUG_REGClass::DEBUG_REGClass() : TargetRegisterClass(&X86MCRegisterClasses[DEBUG_REGRegClassID], DEBUG_REGVTs, DEBUG_REGSubclassMask, NullRegClasses, DEBUG_REGSuperRegClasses) {} | |
VR64Class::VR64Class() : TargetRegisterClass(&X86MCRegisterClasses[VR64RegClassID], VR64VTs, VR64SubclassMask, NullRegClasses, VR64SuperRegClasses) {} | |
GR64_TC_with_sub_8bitClass::GR64_TC_with_sub_8bitClass() : TargetRegisterClass(&X86MCRegisterClasses[GR64_TC_with_sub_8bitRegClassID], GR64_TC_with_sub_8bitVTs, GR64_TC_with_sub_8bitSubclassMask, GR64_TC_with_sub_8bitSuperclasses, GR64_TC_with_sub_8bitSuperRegClasses) {} | |
GR64_NOREX_with_sub_8bitClass::GR64_NOREX_with_sub_8bitClass() : TargetRegisterClass(&X86MCRegisterClasses[GR64_NOREX_with_sub_8bitRegClassID], GR64_NOREX_with_sub_8bitVTs, GR64_NOREX_with_sub_8bitSubclassMask, GR64_NOREX_with_sub_8bitSuperclasses, GR64_NOREX_with_sub_8bitSuperRegClasses) {} | |
RSTClass::RSTClass() : TargetRegisterClass(&X86MCRegisterClasses[RSTRegClassID], RSTVTs, RSTSubclassMask, NullRegClasses, RSTSuperRegClasses) {} | |
RFP32Class::RFP32Class() : TargetRegisterClass(&X86MCRegisterClasses[RFP32RegClassID], RFP32VTs, RFP32SubclassMask, NullRegClasses, RFP32SuperRegClasses) {} | |
GR32_NOREX_NOSPClass::GR32_NOREX_NOSPClass() : TargetRegisterClass(&X86MCRegisterClasses[GR32_NOREX_NOSPRegClassID], GR32_NOREX_NOSPVTs, GR32_NOREX_NOSPSubclassMask, GR32_NOREX_NOSPSuperclasses, GR32_NOREX_NOSPSuperRegClasses) {} | |
RFP64Class::RFP64Class() : TargetRegisterClass(&X86MCRegisterClasses[RFP64RegClassID], RFP64VTs, RFP64SubclassMask, RFP64Superclasses, RFP64SuperRegClasses) {} | |
GR64_NOREX_NOSPClass::GR64_NOREX_NOSPClass() : TargetRegisterClass(&X86MCRegisterClasses[GR64_NOREX_NOSPRegClassID], GR64_NOREX_NOSPVTs, GR64_NOREX_NOSPSubclassMask, GR64_NOREX_NOSPSuperclasses, GR64_NOREX_NOSPSuperRegClasses) {} | |
RFP80Class::RFP80Class() : TargetRegisterClass(&X86MCRegisterClasses[RFP80RegClassID], RFP80VTs, RFP80SubclassMask, RFP80Superclasses, RFP80SuperRegClasses) {} | |
SEGMENT_REGClass::SEGMENT_REGClass() : TargetRegisterClass(&X86MCRegisterClasses[SEGMENT_REGRegClassID], SEGMENT_REGVTs, SEGMENT_REGSubclassMask, NullRegClasses, SEGMENT_REGSuperRegClasses) {} | |
GR64_TCW64Class::GR64_TCW64Class() : TargetRegisterClass(&X86MCRegisterClasses[GR64_TCW64RegClassID], GR64_TCW64VTs, GR64_TCW64SubclassMask, GR64_TCW64Superclasses, GR64_TCW64SuperRegClasses) {} | |
GR8_ABCD_LClass::GR8_ABCD_LClass() : TargetRegisterClass(&X86MCRegisterClasses[GR8_ABCD_LRegClassID], GR8_ABCD_LVTs, GR8_ABCD_LSubclassMask, GR8_ABCD_LSuperclasses, GR8_ABCD_LSuperRegClasses) {} | |
GR8_ABCD_HClass::GR8_ABCD_HClass() : TargetRegisterClass(&X86MCRegisterClasses[GR8_ABCD_HRegClassID], GR8_ABCD_HVTs, GR8_ABCD_HSubclassMask, GR8_ABCD_HSuperclasses, GR8_ABCD_HSuperRegClasses) {} | |
GR16_ABCDClass::GR16_ABCDClass() : TargetRegisterClass(&X86MCRegisterClasses[GR16_ABCDRegClassID], GR16_ABCDVTs, GR16_ABCDSubclassMask, GR16_ABCDSuperclasses, GR16_ABCDSuperRegClasses) {} | |
GR32_ABCDClass::GR32_ABCDClass() : TargetRegisterClass(&X86MCRegisterClasses[GR32_ABCDRegClassID], GR32_ABCDVTs, GR32_ABCDSubclassMask, GR32_ABCDSuperclasses, GR32_ABCDSuperRegClasses) {} | |
GR64_ABCDClass::GR64_ABCDClass() : TargetRegisterClass(&X86MCRegisterClasses[GR64_ABCDRegClassID], GR64_ABCDVTs, GR64_ABCDSubclassMask, GR64_ABCDSuperclasses, GR64_ABCDSuperRegClasses) {} | |
GR32_TCClass::GR32_TCClass() : TargetRegisterClass(&X86MCRegisterClasses[GR32_TCRegClassID], GR32_TCVTs, GR32_TCSubclassMask, GR32_TCSuperclasses, GR32_TCSuperRegClasses) {} | |
GR32_NOAX_with_sub_8bit_hiClass::GR32_NOAX_with_sub_8bit_hiClass() : TargetRegisterClass(&X86MCRegisterClasses[GR32_NOAX_with_sub_8bit_hiRegClassID], GR32_NOAX_with_sub_8bit_hiVTs, GR32_NOAX_with_sub_8bit_hiSubclassMask, GR32_NOAX_with_sub_8bit_hiSuperclasses, GR32_NOAX_with_sub_8bit_hiSuperRegClasses) {} | |
GR64_TC_with_sub_8bit_hiClass::GR64_TC_with_sub_8bit_hiClass() : TargetRegisterClass(&X86MCRegisterClasses[GR64_TC_with_sub_8bit_hiRegClassID], GR64_TC_with_sub_8bit_hiVTs, GR64_TC_with_sub_8bit_hiSubclassMask, GR64_TC_with_sub_8bit_hiSuperclasses, GR64_TC_with_sub_8bit_hiSuperRegClasses) {} | |
GR32_ADClass::GR32_ADClass() : TargetRegisterClass(&X86MCRegisterClasses[GR32_ADRegClassID], GR32_ADVTs, GR32_ADSubclassMask, GR32_ADSuperclasses, GR32_ADSuperRegClasses) {} | |
CCRClass::CCRClass() : TargetRegisterClass(&X86MCRegisterClasses[CCRRegClassID], CCRVTs, CCRSubclassMask, NullRegClasses, CCRSuperRegClasses) {} | |
} | |
namespace { | |
const TargetRegisterClass* const RegisterClasses[] = { | |
&X86::GR8RegClass, | |
&X86::GR64RegClass, | |
&X86::GR16RegClass, | |
&X86::GR32RegClass, | |
&X86::FR32RegClass, | |
&X86::GR64_with_sub_8bitRegClass, | |
&X86::FR64RegClass, | |
&X86::CONTROL_REGRegClass, | |
&X86::VR128RegClass, | |
&X86::VR256RegClass, | |
&X86::GR32_NOSPRegClass, | |
&X86::GR32_NOAXRegClass, | |
&X86::GR64_NOSPRegClass, | |
&X86::GR64_TCRegClass, | |
&X86::GR64_NOREXRegClass, | |
&X86::GR8_NOREXRegClass, | |
&X86::GR16_NOREXRegClass, | |
&X86::GR32_NOREXRegClass, | |
&X86::DEBUG_REGRegClass, | |
&X86::VR64RegClass, | |
&X86::GR64_TC_with_sub_8bitRegClass, | |
&X86::GR64_NOREX_with_sub_8bitRegClass, | |
&X86::RSTRegClass, | |
&X86::RFP32RegClass, | |
&X86::GR32_NOREX_NOSPRegClass, | |
&X86::RFP64RegClass, | |
&X86::GR64_NOREX_NOSPRegClass, | |
&X86::RFP80RegClass, | |
&X86::SEGMENT_REGRegClass, | |
&X86::GR64_TCW64RegClass, | |
&X86::GR8_ABCD_LRegClass, | |
&X86::GR8_ABCD_HRegClass, | |
&X86::GR16_ABCDRegClass, | |
&X86::GR32_ABCDRegClass, | |
&X86::GR64_ABCDRegClass, | |
&X86::GR32_TCRegClass, | |
&X86::GR32_NOAX_with_sub_8bit_hiRegClass, | |
&X86::GR64_TC_with_sub_8bit_hiRegClass, | |
&X86::GR32_ADRegClass, | |
&X86::CCRRegClass, | |
}; | |
} | |
static const TargetRegisterInfoDesc X86RegInfoDesc[] = { // Extra Descriptors | |
{ 0, 0 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 1, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 1, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 0 }, | |
{ 0, 0 }, | |
{ 0, 0 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 0 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 1, 1 }, | |
{ 0, 0 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 1, 1 }, | |
{ 0, 1 }, | |
{ 1, 1 }, | |
{ 0, 1 }, | |
{ 0, 0 }, | |
{ 0, 0 }, | |
{ 0, 0 }, | |
{ 0, 0 }, | |
{ 0, 0 }, | |
{ 0, 0 }, | |
{ 0, 0 }, | |
{ 0, 0 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 1, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
{ 0, 1 }, | |
}; | |
static const char *const X86SubRegIndexTable[] = { "sub_8bit", "sub_8bit_hi", "sub_16bit", "sub_32bit", "sub_sd", "sub_ss", "sub_xmm" }; | |
unsigned X86GenRegisterInfo::getSubReg(unsigned RegNo, unsigned Index) const { | |
switch (RegNo) { | |
default: | |
return 0; | |
case X86::AX: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::AL; | |
case X86::sub_8bit_hi: return X86::AH; | |
}; | |
break; | |
case X86::BP: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::BPL; | |
}; | |
break; | |
case X86::BX: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::BL; | |
case X86::sub_8bit_hi: return X86::BH; | |
}; | |
break; | |
case X86::CX: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::CL; | |
case X86::sub_8bit_hi: return X86::CH; | |
}; | |
break; | |
case X86::DI: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::DIL; | |
}; | |
break; | |
case X86::DX: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::DL; | |
case X86::sub_8bit_hi: return X86::DH; | |
}; | |
break; | |
case X86::EAX: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::AL; | |
case X86::sub_8bit_hi: return X86::AH; | |
case X86::sub_16bit: return X86::AX; | |
}; | |
break; | |
case X86::EBP: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::BPL; | |
case X86::sub_16bit: return X86::BP; | |
}; | |
break; | |
case X86::EBX: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::BL; | |
case X86::sub_8bit_hi: return X86::BH; | |
case X86::sub_16bit: return X86::BX; | |
}; | |
break; | |
case X86::ECX: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::CL; | |
case X86::sub_8bit_hi: return X86::CH; | |
case X86::sub_16bit: return X86::CX; | |
}; | |
break; | |
case X86::EDI: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::DIL; | |
case X86::sub_16bit: return X86::DI; | |
}; | |
break; | |
case X86::EDX: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::DL; | |
case X86::sub_8bit_hi: return X86::DH; | |
case X86::sub_16bit: return X86::DX; | |
}; | |
break; | |
case X86::EIP: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_16bit: return X86::IP; | |
}; | |
break; | |
case X86::ESI: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::SIL; | |
case X86::sub_16bit: return X86::SI; | |
}; | |
break; | |
case X86::ESP: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::SPL; | |
case X86::sub_16bit: return X86::SP; | |
}; | |
break; | |
case X86::R8: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R8B; | |
case X86::sub_16bit: return X86::R8W; | |
case X86::sub_32bit: return X86::R8D; | |
}; | |
break; | |
case X86::R8D: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R8B; | |
case X86::sub_16bit: return X86::R8W; | |
}; | |
break; | |
case X86::R8W: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R8B; | |
}; | |
break; | |
case X86::R9: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R9B; | |
case X86::sub_16bit: return X86::R9W; | |
case X86::sub_32bit: return X86::R9D; | |
}; | |
break; | |
case X86::R9D: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R9B; | |
case X86::sub_16bit: return X86::R9W; | |
}; | |
break; | |
case X86::R9W: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R9B; | |
}; | |
break; | |
case X86::R10: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R10B; | |
case X86::sub_16bit: return X86::R10W; | |
case X86::sub_32bit: return X86::R10D; | |
}; | |
break; | |
case X86::R10D: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R10B; | |
case X86::sub_16bit: return X86::R10W; | |
}; | |
break; | |
case X86::R10W: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R10B; | |
}; | |
break; | |
case X86::R11: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R11B; | |
case X86::sub_16bit: return X86::R11W; | |
case X86::sub_32bit: return X86::R11D; | |
}; | |
break; | |
case X86::R11D: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R11B; | |
case X86::sub_16bit: return X86::R11W; | |
}; | |
break; | |
case X86::R11W: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R11B; | |
}; | |
break; | |
case X86::R12: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R12B; | |
case X86::sub_16bit: return X86::R12W; | |
case X86::sub_32bit: return X86::R12D; | |
}; | |
break; | |
case X86::R12D: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R12B; | |
case X86::sub_16bit: return X86::R12W; | |
}; | |
break; | |
case X86::R12W: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R12B; | |
}; | |
break; | |
case X86::R13: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R13B; | |
case X86::sub_16bit: return X86::R13W; | |
case X86::sub_32bit: return X86::R13D; | |
}; | |
break; | |
case X86::R13D: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R13B; | |
case X86::sub_16bit: return X86::R13W; | |
}; | |
break; | |
case X86::R13W: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R13B; | |
}; | |
break; | |
case X86::R14: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R14B; | |
case X86::sub_16bit: return X86::R14W; | |
case X86::sub_32bit: return X86::R14D; | |
}; | |
break; | |
case X86::R14D: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R14B; | |
case X86::sub_16bit: return X86::R14W; | |
}; | |
break; | |
case X86::R14W: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R14B; | |
}; | |
break; | |
case X86::R15: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R15B; | |
case X86::sub_16bit: return X86::R15W; | |
case X86::sub_32bit: return X86::R15D; | |
}; | |
break; | |
case X86::R15D: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R15B; | |
case X86::sub_16bit: return X86::R15W; | |
}; | |
break; | |
case X86::R15W: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::R15B; | |
}; | |
break; | |
case X86::RAX: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::AL; | |
case X86::sub_8bit_hi: return X86::AH; | |
case X86::sub_16bit: return X86::AX; | |
case X86::sub_32bit: return X86::EAX; | |
}; | |
break; | |
case X86::RBP: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::BPL; | |
case X86::sub_16bit: return X86::BP; | |
case X86::sub_32bit: return X86::EBP; | |
}; | |
break; | |
case X86::RBX: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::BL; | |
case X86::sub_8bit_hi: return X86::BH; | |
case X86::sub_16bit: return X86::BX; | |
case X86::sub_32bit: return X86::EBX; | |
}; | |
break; | |
case X86::RCX: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::CL; | |
case X86::sub_8bit_hi: return X86::CH; | |
case X86::sub_16bit: return X86::CX; | |
case X86::sub_32bit: return X86::ECX; | |
}; | |
break; | |
case X86::RDI: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::DIL; | |
case X86::sub_16bit: return X86::DI; | |
case X86::sub_32bit: return X86::EDI; | |
}; | |
break; | |
case X86::RDX: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::DL; | |
case X86::sub_8bit_hi: return X86::DH; | |
case X86::sub_16bit: return X86::DX; | |
case X86::sub_32bit: return X86::EDX; | |
}; | |
break; | |
case X86::RIP: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_16bit: return X86::IP; | |
case X86::sub_32bit: return X86::EIP; | |
}; | |
break; | |
case X86::RSI: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::SIL; | |
case X86::sub_16bit: return X86::SI; | |
case X86::sub_32bit: return X86::ESI; | |
}; | |
break; | |
case X86::RSP: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::SPL; | |
case X86::sub_16bit: return X86::SP; | |
case X86::sub_32bit: return X86::ESP; | |
}; | |
break; | |
case X86::SI: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::SIL; | |
}; | |
break; | |
case X86::SP: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_8bit: return X86::SPL; | |
}; | |
break; | |
case X86::XMM0: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM0; | |
case X86::sub_ss: return X86::XMM0; | |
}; | |
break; | |
case X86::XMM1: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM1; | |
case X86::sub_ss: return X86::XMM1; | |
}; | |
break; | |
case X86::XMM2: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM2; | |
case X86::sub_ss: return X86::XMM2; | |
}; | |
break; | |
case X86::XMM3: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM3; | |
case X86::sub_ss: return X86::XMM3; | |
}; | |
break; | |
case X86::XMM4: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM4; | |
case X86::sub_ss: return X86::XMM4; | |
}; | |
break; | |
case X86::XMM5: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM5; | |
case X86::sub_ss: return X86::XMM5; | |
}; | |
break; | |
case X86::XMM6: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM6; | |
case X86::sub_ss: return X86::XMM6; | |
}; | |
break; | |
case X86::XMM7: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM7; | |
case X86::sub_ss: return X86::XMM7; | |
}; | |
break; | |
case X86::XMM8: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM8; | |
case X86::sub_ss: return X86::XMM8; | |
}; | |
break; | |
case X86::XMM9: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM9; | |
case X86::sub_ss: return X86::XMM9; | |
}; | |
break; | |
case X86::XMM10: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM10; | |
case X86::sub_ss: return X86::XMM10; | |
}; | |
break; | |
case X86::XMM11: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM11; | |
case X86::sub_ss: return X86::XMM11; | |
}; | |
break; | |
case X86::XMM12: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM12; | |
case X86::sub_ss: return X86::XMM12; | |
}; | |
break; | |
case X86::XMM13: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM13; | |
case X86::sub_ss: return X86::XMM13; | |
}; | |
break; | |
case X86::XMM14: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM14; | |
case X86::sub_ss: return X86::XMM14; | |
}; | |
break; | |
case X86::XMM15: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM15; | |
case X86::sub_ss: return X86::XMM15; | |
}; | |
break; | |
case X86::YMM0: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM0; | |
case X86::sub_ss: return X86::XMM0; | |
case X86::sub_xmm: return X86::XMM0; | |
}; | |
break; | |
case X86::YMM1: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM1; | |
case X86::sub_ss: return X86::XMM1; | |
case X86::sub_xmm: return X86::XMM1; | |
}; | |
break; | |
case X86::YMM2: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM2; | |
case X86::sub_ss: return X86::XMM2; | |
case X86::sub_xmm: return X86::XMM2; | |
}; | |
break; | |
case X86::YMM3: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM3; | |
case X86::sub_ss: return X86::XMM3; | |
case X86::sub_xmm: return X86::XMM3; | |
}; | |
break; | |
case X86::YMM4: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM4; | |
case X86::sub_ss: return X86::XMM4; | |
case X86::sub_xmm: return X86::XMM4; | |
}; | |
break; | |
case X86::YMM5: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM5; | |
case X86::sub_ss: return X86::XMM5; | |
case X86::sub_xmm: return X86::XMM5; | |
}; | |
break; | |
case X86::YMM6: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM6; | |
case X86::sub_ss: return X86::XMM6; | |
case X86::sub_xmm: return X86::XMM6; | |
}; | |
break; | |
case X86::YMM7: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM7; | |
case X86::sub_ss: return X86::XMM7; | |
case X86::sub_xmm: return X86::XMM7; | |
}; | |
break; | |
case X86::YMM8: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM8; | |
case X86::sub_ss: return X86::XMM8; | |
case X86::sub_xmm: return X86::XMM8; | |
}; | |
break; | |
case X86::YMM9: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM9; | |
case X86::sub_ss: return X86::XMM9; | |
case X86::sub_xmm: return X86::XMM9; | |
}; | |
break; | |
case X86::YMM10: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM10; | |
case X86::sub_ss: return X86::XMM10; | |
case X86::sub_xmm: return X86::XMM10; | |
}; | |
break; | |
case X86::YMM11: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM11; | |
case X86::sub_ss: return X86::XMM11; | |
case X86::sub_xmm: return X86::XMM11; | |
}; | |
break; | |
case X86::YMM12: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM12; | |
case X86::sub_ss: return X86::XMM12; | |
case X86::sub_xmm: return X86::XMM12; | |
}; | |
break; | |
case X86::YMM13: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM13; | |
case X86::sub_ss: return X86::XMM13; | |
case X86::sub_xmm: return X86::XMM13; | |
}; | |
break; | |
case X86::YMM14: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM14; | |
case X86::sub_ss: return X86::XMM14; | |
case X86::sub_xmm: return X86::XMM14; | |
}; | |
break; | |
case X86::YMM15: | |
switch (Index) { | |
default: return 0; | |
case X86::sub_sd: return X86::XMM15; | |
case X86::sub_ss: return X86::XMM15; | |
case X86::sub_xmm: return X86::XMM15; | |
}; | |
break; | |
}; | |
return 0; | |
} | |
unsigned X86GenRegisterInfo::getSubRegIndex(unsigned RegNo, unsigned SubRegNo) const { | |
switch (RegNo) { | |
default: | |
return 0; | |
case X86::AX: | |
if (SubRegNo == X86::AL) return X86::sub_8bit; | |
if (SubRegNo == X86::AH) return X86::sub_8bit_hi; | |
return 0; | |
case X86::BP: | |
if (SubRegNo == X86::BPL) return X86::sub_8bit; | |
return 0; | |
case X86::BX: | |
if (SubRegNo == X86::BL) return X86::sub_8bit; | |
if (SubRegNo == X86::BH) return X86::sub_8bit_hi; | |
return 0; | |
case X86::CX: | |
if (SubRegNo == X86::CL) return X86::sub_8bit; | |
if (SubRegNo == X86::CH) return X86::sub_8bit_hi; | |
return 0; | |
case X86::DI: | |
if (SubRegNo == X86::DIL) return X86::sub_8bit; | |
return 0; | |
case X86::DX: | |
if (SubRegNo == X86::DL) return X86::sub_8bit; | |
if (SubRegNo == X86::DH) return X86::sub_8bit_hi; | |
return 0; | |
case X86::EAX: | |
if (SubRegNo == X86::AL) return X86::sub_8bit; | |
if (SubRegNo == X86::AH) return X86::sub_8bit_hi; | |
if (SubRegNo == X86::AX) return X86::sub_16bit; | |
return 0; | |
case X86::EBP: | |
if (SubRegNo == X86::BPL) return X86::sub_8bit; | |
if (SubRegNo == X86::BP) return X86::sub_16bit; | |
return 0; | |
case X86::EBX: | |
if (SubRegNo == X86::BL) return X86::sub_8bit; | |
if (SubRegNo == X86::BH) return X86::sub_8bit_hi; | |
if (SubRegNo == X86::BX) return X86::sub_16bit; | |
return 0; | |
case X86::ECX: | |
if (SubRegNo == X86::CL) return X86::sub_8bit; | |
if (SubRegNo == X86::CH) return X86::sub_8bit_hi; | |
if (SubRegNo == X86::CX) return X86::sub_16bit; | |
return 0; | |
case X86::EDI: | |
if (SubRegNo == X86::DIL) return X86::sub_8bit; | |
if (SubRegNo == X86::DI) return X86::sub_16bit; | |
return 0; | |
case X86::EDX: | |
if (SubRegNo == X86::DL) return X86::sub_8bit; | |
if (SubRegNo == X86::DH) return X86::sub_8bit_hi; | |
if (SubRegNo == X86::DX) return X86::sub_16bit; | |
return 0; | |
case X86::EIP: | |
if (SubRegNo == X86::IP) return X86::sub_16bit; | |
return 0; | |
case X86::ESI: | |
if (SubRegNo == X86::SIL) return X86::sub_8bit; | |
if (SubRegNo == X86::SI) return X86::sub_16bit; | |
return 0; | |
case X86::ESP: | |
if (SubRegNo == X86::SPL) return X86::sub_8bit; | |
if (SubRegNo == X86::SP) return X86::sub_16bit; | |
return 0; | |
case X86::R8: | |
if (SubRegNo == X86::R8B) return X86::sub_8bit; | |
if (SubRegNo == X86::R8W) return X86::sub_16bit; | |
if (SubRegNo == X86::R8D) return X86::sub_32bit; | |
return 0; | |
case X86::R8D: | |
if (SubRegNo == X86::R8B) return X86::sub_8bit; | |
if (SubRegNo == X86::R8W) return X86::sub_16bit; | |
return 0; | |
case X86::R8W: | |
if (SubRegNo == X86::R8B) return X86::sub_8bit; | |
return 0; | |
case X86::R9: | |
if (SubRegNo == X86::R9B) return X86::sub_8bit; | |
if (SubRegNo == X86::R9W) return X86::sub_16bit; | |
if (SubRegNo == X86::R9D) return X86::sub_32bit; | |
return 0; | |
case X86::R9D: | |
if (SubRegNo == X86::R9B) return X86::sub_8bit; | |
if (SubRegNo == X86::R9W) return X86::sub_16bit; | |
return 0; | |
case X86::R9W: | |
if (SubRegNo == X86::R9B) return X86::sub_8bit; | |
return 0; | |
case X86::R10: | |
if (SubRegNo == X86::R10B) return X86::sub_8bit; | |
if (SubRegNo == X86::R10W) return X86::sub_16bit; | |
if (SubRegNo == X86::R10D) return X86::sub_32bit; | |
return 0; | |
case X86::R10D: | |
if (SubRegNo == X86::R10B) return X86::sub_8bit; | |
if (SubRegNo == X86::R10W) return X86::sub_16bit; | |
return 0; | |
case X86::R10W: | |
if (SubRegNo == X86::R10B) return X86::sub_8bit; | |
return 0; | |
case X86::R11: | |
if (SubRegNo == X86::R11B) return X86::sub_8bit; | |
if (SubRegNo == X86::R11W) return X86::sub_16bit; | |
if (SubRegNo == X86::R11D) return X86::sub_32bit; | |
return 0; | |
case X86::R11D: | |
if (SubRegNo == X86::R11B) return X86::sub_8bit; | |
if (SubRegNo == X86::R11W) return X86::sub_16bit; | |
return 0; | |
case X86::R11W: | |
if (SubRegNo == X86::R11B) return X86::sub_8bit; | |
return 0; | |
case X86::R12: | |
if (SubRegNo == X86::R12B) return X86::sub_8bit; | |
if (SubRegNo == X86::R12W) return X86::sub_16bit; | |
if (SubRegNo == X86::R12D) return X86::sub_32bit; | |
return 0; | |
case X86::R12D: | |
if (SubRegNo == X86::R12B) return X86::sub_8bit; | |
if (SubRegNo == X86::R12W) return X86::sub_16bit; | |
return 0; | |
case X86::R12W: | |
if (SubRegNo == X86::R12B) return X86::sub_8bit; | |
return 0; | |
case X86::R13: | |
if (SubRegNo == X86::R13B) return X86::sub_8bit; | |
if (SubRegNo == X86::R13W) return X86::sub_16bit; | |
if (SubRegNo == X86::R13D) return X86::sub_32bit; | |
return 0; | |
case X86::R13D: | |
if (SubRegNo == X86::R13B) return X86::sub_8bit; | |
if (SubRegNo == X86::R13W) return X86::sub_16bit; | |
return 0; | |
case X86::R13W: | |
if (SubRegNo == X86::R13B) return X86::sub_8bit; | |
return 0; | |
case X86::R14: | |
if (SubRegNo == X86::R14B) return X86::sub_8bit; | |
if (SubRegNo == X86::R14W) return X86::sub_16bit; | |
if (SubRegNo == X86::R14D) return X86::sub_32bit; | |
return 0; | |
case X86::R14D: | |
if (SubRegNo == X86::R14B) return X86::sub_8bit; | |
if (SubRegNo == X86::R14W) return X86::sub_16bit; | |
return 0; | |
case X86::R14W: | |
if (SubRegNo == X86::R14B) return X86::sub_8bit; | |
return 0; | |
case X86::R15: | |
if (SubRegNo == X86::R15B) return X86::sub_8bit; | |
if (SubRegNo == X86::R15W) return X86::sub_16bit; | |
if (SubRegNo == X86::R15D) return X86::sub_32bit; | |
return 0; | |
case X86::R15D: | |
if (SubRegNo == X86::R15B) return X86::sub_8bit; | |
if (SubRegNo == X86::R15W) return X86::sub_16bit; | |
return 0; | |
case X86::R15W: | |
if (SubRegNo == X86::R15B) return X86::sub_8bit; | |
return 0; | |
case X86::RAX: | |
if (SubRegNo == X86::AL) return X86::sub_8bit; | |
if (SubRegNo == X86::AH) return X86::sub_8bit_hi; | |
if (SubRegNo == X86::AX) return X86::sub_16bit; | |
if (SubRegNo == X86::EAX) return X86::sub_32bit; | |
return 0; | |
case X86::RBP: | |
if (SubRegNo == X86::BPL) return X86::sub_8bit; | |
if (SubRegNo == X86::BP) return X86::sub_16bit; | |
if (SubRegNo == X86::EBP) return X86::sub_32bit; | |
return 0; | |
case X86::RBX: | |
if (SubRegNo == X86::BL) return X86::sub_8bit; | |
if (SubRegNo == X86::BH) return X86::sub_8bit_hi; | |
if (SubRegNo == X86::BX) return X86::sub_16bit; | |
if (SubRegNo == X86::EBX) return X86::sub_32bit; | |
return 0; | |
case X86::RCX: | |
if (SubRegNo == X86::CL) return X86::sub_8bit; | |
if (SubRegNo == X86::CH) return X86::sub_8bit_hi; | |
if (SubRegNo == X86::CX) return X86::sub_16bit; | |
if (SubRegNo == X86::ECX) return X86::sub_32bit; | |
return 0; | |
case X86::RDI: | |
if (SubRegNo == X86::DIL) return X86::sub_8bit; | |
if (SubRegNo == X86::DI) return X86::sub_16bit; | |
if (SubRegNo == X86::EDI) return X86::sub_32bit; | |
return 0; | |
case X86::RDX: | |
if (SubRegNo == X86::DL) return X86::sub_8bit; | |
if (SubRegNo == X86::DH) return X86::sub_8bit_hi; | |
if (SubRegNo == X86::DX) return X86::sub_16bit; | |
if (SubRegNo == X86::EDX) return X86::sub_32bit; | |
return 0; | |
case X86::RIP: | |
if (SubRegNo == X86::IP) return X86::sub_16bit; | |
if (SubRegNo == X86::EIP) return X86::sub_32bit; | |
return 0; | |
case X86::RSI: | |
if (SubRegNo == X86::SIL) return X86::sub_8bit; | |
if (SubRegNo == X86::SI) return X86::sub_16bit; | |
if (SubRegNo == X86::ESI) return X86::sub_32bit; | |
return 0; | |
case X86::RSP: | |
if (SubRegNo == X86::SPL) return X86::sub_8bit; | |
if (SubRegNo == X86::SP) return X86::sub_16bit; | |
if (SubRegNo == X86::ESP) return X86::sub_32bit; | |
return 0; | |
case X86::SI: | |
if (SubRegNo == X86::SIL) return X86::sub_8bit; | |
return 0; | |
case X86::SP: | |
if (SubRegNo == X86::SPL) return X86::sub_8bit; | |
return 0; | |
case X86::XMM0: | |
if (SubRegNo == X86::XMM0) return X86::sub_sd; | |
if (SubRegNo == X86::XMM0) return X86::sub_ss; | |
return 0; | |
case X86::XMM1: | |
if (SubRegNo == X86::XMM1) return X86::sub_sd; | |
if (SubRegNo == X86::XMM1) return X86::sub_ss; | |
return 0; | |
case X86::XMM2: | |
if (SubRegNo == X86::XMM2) return X86::sub_sd; | |
if (SubRegNo == X86::XMM2) return X86::sub_ss; | |
return 0; | |
case X86::XMM3: | |
if (SubRegNo == X86::XMM3) return X86::sub_sd; | |
if (SubRegNo == X86::XMM3) return X86::sub_ss; | |
return 0; | |
case X86::XMM4: | |
if (SubRegNo == X86::XMM4) return X86::sub_sd; | |
if (SubRegNo == X86::XMM4) return X86::sub_ss; | |
return 0; | |
case X86::XMM5: | |
if (SubRegNo == X86::XMM5) return X86::sub_sd; | |
if (SubRegNo == X86::XMM5) return X86::sub_ss; | |
return 0; | |
case X86::XMM6: | |
if (SubRegNo == X86::XMM6) return X86::sub_sd; | |
if (SubRegNo == X86::XMM6) return X86::sub_ss; | |
return 0; | |
case X86::XMM7: | |
if (SubRegNo == X86::XMM7) return X86::sub_sd; | |
if (SubRegNo == X86::XMM7) return X86::sub_ss; | |
return 0; | |
case X86::XMM8: | |
if (SubRegNo == X86::XMM8) return X86::sub_sd; | |
if (SubRegNo == X86::XMM8) return X86::sub_ss; | |
return 0; | |
case X86::XMM9: | |
if (SubRegNo == X86::XMM9) return X86::sub_sd; | |
if (SubRegNo == X86::XMM9) return X86::sub_ss; | |
return 0; | |
case X86::XMM10: | |
if (SubRegNo == X86::XMM10) return X86::sub_sd; | |
if (SubRegNo == X86::XMM10) return X86::sub_ss; | |
return 0; | |
case X86::XMM11: | |
if (SubRegNo == X86::XMM11) return X86::sub_sd; | |
if (SubRegNo == X86::XMM11) return X86::sub_ss; | |
return 0; | |
case X86::XMM12: | |
if (SubRegNo == X86::XMM12) return X86::sub_sd; | |
if (SubRegNo == X86::XMM12) return X86::sub_ss; | |
return 0; | |
case X86::XMM13: | |
if (SubRegNo == X86::XMM13) return X86::sub_sd; | |
if (SubRegNo == X86::XMM13) return X86::sub_ss; | |
return 0; | |
case X86::XMM14: | |
if (SubRegNo == X86::XMM14) return X86::sub_sd; | |
if (SubRegNo == X86::XMM14) return X86::sub_ss; | |
return 0; | |
case X86::XMM15: | |
if (SubRegNo == X86::XMM15) return X86::sub_sd; | |
if (SubRegNo == X86::XMM15) return X86::sub_ss; | |
return 0; | |
case X86::YMM0: | |
if (SubRegNo == X86::XMM0) return X86::sub_sd; | |
if (SubRegNo == X86::XMM0) return X86::sub_ss; | |
if (SubRegNo == X86::XMM0) return X86::sub_xmm; | |
return 0; | |
case X86::YMM1: | |
if (SubRegNo == X86::XMM1) return X86::sub_sd; | |
if (SubRegNo == X86::XMM1) return X86::sub_ss; | |
if (SubRegNo == X86::XMM1) return X86::sub_xmm; | |
return 0; | |
case X86::YMM2: | |
if (SubRegNo == X86::XMM2) return X86::sub_sd; | |
if (SubRegNo == X86::XMM2) return X86::sub_ss; | |
if (SubRegNo == X86::XMM2) return X86::sub_xmm; | |
return 0; | |
case X86::YMM3: | |
if (SubRegNo == X86::XMM3) return X86::sub_sd; | |
if (SubRegNo == X86::XMM3) return X86::sub_ss; | |
if (SubRegNo == X86::XMM3) return X86::sub_xmm; | |
return 0; | |
case X86::YMM4: | |
if (SubRegNo == X86::XMM4) return X86::sub_sd; | |
if (SubRegNo == X86::XMM4) return X86::sub_ss; | |
if (SubRegNo == X86::XMM4) return X86::sub_xmm; | |
return 0; | |
case X86::YMM5: | |
if (SubRegNo == X86::XMM5) return X86::sub_sd; | |
if (SubRegNo == X86::XMM5) return X86::sub_ss; | |
if (SubRegNo == X86::XMM5) return X86::sub_xmm; | |
return 0; | |
case X86::YMM6: | |
if (SubRegNo == X86::XMM6) return X86::sub_sd; | |
if (SubRegNo == X86::XMM6) return X86::sub_ss; | |
if (SubRegNo == X86::XMM6) return X86::sub_xmm; | |
return 0; | |
case X86::YMM7: | |
if (SubRegNo == X86::XMM7) return X86::sub_sd; | |
if (SubRegNo == X86::XMM7) return X86::sub_ss; | |
if (SubRegNo == X86::XMM7) return X86::sub_xmm; | |
return 0; | |
case X86::YMM8: | |
if (SubRegNo == X86::XMM8) return X86::sub_sd; | |
if (SubRegNo == X86::XMM8) return X86::sub_ss; | |
if (SubRegNo == X86::XMM8) return X86::sub_xmm; | |
return 0; | |
case X86::YMM9: | |
if (SubRegNo == X86::XMM9) return X86::sub_sd; | |
if (SubRegNo == X86::XMM9) return X86::sub_ss; | |
if (SubRegNo == X86::XMM9) return X86::sub_xmm; | |
return 0; | |
case X86::YMM10: | |
if (SubRegNo == X86::XMM10) return X86::sub_sd; | |
if (SubRegNo == X86::XMM10) return X86::sub_ss; | |
if (SubRegNo == X86::XMM10) return X86::sub_xmm; | |
return 0; | |
case X86::YMM11: | |
if (SubRegNo == X86::XMM11) return X86::sub_sd; | |
if (SubRegNo == X86::XMM11) return X86::sub_ss; | |
if (SubRegNo == X86::XMM11) return X86::sub_xmm; | |
return 0; | |
case X86::YMM12: | |
if (SubRegNo == X86::XMM12) return X86::sub_sd; | |
if (SubRegNo == X86::XMM12) return X86::sub_ss; | |
if (SubRegNo == X86::XMM12) return X86::sub_xmm; | |
return 0; | |
case X86::YMM13: | |
if (SubRegNo == X86::XMM13) return X86::sub_sd; | |
if (SubRegNo == X86::XMM13) return X86::sub_ss; | |
if (SubRegNo == X86::XMM13) return X86::sub_xmm; | |
return 0; | |
case X86::YMM14: | |
if (SubRegNo == X86::XMM14) return X86::sub_sd; | |
if (SubRegNo == X86::XMM14) return X86::sub_ss; | |
if (SubRegNo == X86::XMM14) return X86::sub_xmm; | |
return 0; | |
case X86::YMM15: | |
if (SubRegNo == X86::XMM15) return X86::sub_sd; | |
if (SubRegNo == X86::XMM15) return X86::sub_ss; | |
if (SubRegNo == X86::XMM15) return X86::sub_xmm; | |
return 0; | |
}; | |
return 0; | |
} | |
unsigned X86GenRegisterInfo::composeSubRegIndices(unsigned IdxA, unsigned IdxB) const { | |
switch (IdxA) { | |
default: | |
return IdxB; | |
} | |
} | |
const TargetRegisterClass *X86GenRegisterInfo::getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const { | |
static const uint8_t Table[40][7] = { | |
{ // GR8 | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR64 | |
6, // sub_8bit -> GR64_with_sub_8bit | |
35, // sub_8bit_hi -> GR64_ABCD | |
2, // sub_16bit -> GR64 | |
2, // sub_32bit -> GR64 | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR16 | |
3, // sub_8bit -> GR16 | |
33, // sub_8bit_hi -> GR16_ABCD | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR32 | |
4, // sub_8bit -> GR32 | |
34, // sub_8bit_hi -> GR32_ABCD | |
4, // sub_16bit -> GR32 | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // FR32 | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
5, // sub_sd -> FR32 | |
5, // sub_ss -> FR32 | |
0, // sub_xmm | |
}, | |
{ // GR64_with_sub_8bit | |
6, // sub_8bit -> GR64_with_sub_8bit | |
35, // sub_8bit_hi -> GR64_ABCD | |
6, // sub_16bit -> GR64_with_sub_8bit | |
6, // sub_32bit -> GR64_with_sub_8bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // FR64 | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
7, // sub_sd -> FR64 | |
7, // sub_ss -> FR64 | |
0, // sub_xmm | |
}, | |
{ // CONTROL_REG | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // VR128 | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
9, // sub_sd -> VR128 | |
9, // sub_ss -> VR128 | |
0, // sub_xmm | |
}, | |
{ // VR256 | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
10, // sub_sd -> VR256 | |
10, // sub_ss -> VR256 | |
10, // sub_xmm -> VR256 | |
}, | |
{ // GR32_NOSP | |
11, // sub_8bit -> GR32_NOSP | |
34, // sub_8bit_hi -> GR32_ABCD | |
11, // sub_16bit -> GR32_NOSP | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR32_NOAX | |
12, // sub_8bit -> GR32_NOAX | |
37, // sub_8bit_hi -> GR32_NOAX_with_sub_8bit_hi | |
12, // sub_16bit -> GR32_NOAX | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR64_NOSP | |
13, // sub_8bit -> GR64_NOSP | |
35, // sub_8bit_hi -> GR64_ABCD | |
13, // sub_16bit -> GR64_NOSP | |
13, // sub_32bit -> GR64_NOSP | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR64_TC | |
21, // sub_8bit -> GR64_TC_with_sub_8bit | |
38, // sub_8bit_hi -> GR64_TC_with_sub_8bit_hi | |
14, // sub_16bit -> GR64_TC | |
14, // sub_32bit -> GR64_TC | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR64_NOREX | |
22, // sub_8bit -> GR64_NOREX_with_sub_8bit | |
35, // sub_8bit_hi -> GR64_ABCD | |
15, // sub_16bit -> GR64_NOREX | |
15, // sub_32bit -> GR64_NOREX | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR8_NOREX | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR16_NOREX | |
17, // sub_8bit -> GR16_NOREX | |
33, // sub_8bit_hi -> GR16_ABCD | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR32_NOREX | |
18, // sub_8bit -> GR32_NOREX | |
34, // sub_8bit_hi -> GR32_ABCD | |
18, // sub_16bit -> GR32_NOREX | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // DEBUG_REG | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // VR64 | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR64_TC_with_sub_8bit | |
21, // sub_8bit -> GR64_TC_with_sub_8bit | |
38, // sub_8bit_hi -> GR64_TC_with_sub_8bit_hi | |
21, // sub_16bit -> GR64_TC_with_sub_8bit | |
21, // sub_32bit -> GR64_TC_with_sub_8bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR64_NOREX_with_sub_8bit | |
22, // sub_8bit -> GR64_NOREX_with_sub_8bit | |
35, // sub_8bit_hi -> GR64_ABCD | |
22, // sub_16bit -> GR64_NOREX_with_sub_8bit | |
22, // sub_32bit -> GR64_NOREX_with_sub_8bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // RST | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // RFP32 | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR32_NOREX_NOSP | |
25, // sub_8bit -> GR32_NOREX_NOSP | |
34, // sub_8bit_hi -> GR32_ABCD | |
25, // sub_16bit -> GR32_NOREX_NOSP | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // RFP64 | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR64_NOREX_NOSP | |
27, // sub_8bit -> GR64_NOREX_NOSP | |
35, // sub_8bit_hi -> GR64_ABCD | |
27, // sub_16bit -> GR64_NOREX_NOSP | |
27, // sub_32bit -> GR64_NOREX_NOSP | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // RFP80 | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // SEGMENT_REG | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR64_TCW64 | |
30, // sub_8bit -> GR64_TCW64 | |
38, // sub_8bit_hi -> GR64_TC_with_sub_8bit_hi | |
30, // sub_16bit -> GR64_TCW64 | |
30, // sub_32bit -> GR64_TCW64 | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR8_ABCD_L | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR8_ABCD_H | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR16_ABCD | |
33, // sub_8bit -> GR16_ABCD | |
33, // sub_8bit_hi -> GR16_ABCD | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR32_ABCD | |
34, // sub_8bit -> GR32_ABCD | |
34, // sub_8bit_hi -> GR32_ABCD | |
34, // sub_16bit -> GR32_ABCD | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR64_ABCD | |
35, // sub_8bit -> GR64_ABCD | |
35, // sub_8bit_hi -> GR64_ABCD | |
35, // sub_16bit -> GR64_ABCD | |
35, // sub_32bit -> GR64_ABCD | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR32_TC | |
36, // sub_8bit -> GR32_TC | |
36, // sub_8bit_hi -> GR32_TC | |
36, // sub_16bit -> GR32_TC | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR32_NOAX_with_sub_8bit_hi | |
37, // sub_8bit -> GR32_NOAX_with_sub_8bit_hi | |
37, // sub_8bit_hi -> GR32_NOAX_with_sub_8bit_hi | |
37, // sub_16bit -> GR32_NOAX_with_sub_8bit_hi | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR64_TC_with_sub_8bit_hi | |
38, // sub_8bit -> GR64_TC_with_sub_8bit_hi | |
38, // sub_8bit_hi -> GR64_TC_with_sub_8bit_hi | |
38, // sub_16bit -> GR64_TC_with_sub_8bit_hi | |
38, // sub_32bit -> GR64_TC_with_sub_8bit_hi | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // GR32_AD | |
39, // sub_8bit -> GR32_AD | |
39, // sub_8bit_hi -> GR32_AD | |
39, // sub_16bit -> GR32_AD | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
{ // CCR | |
0, // sub_8bit | |
0, // sub_8bit_hi | |
0, // sub_16bit | |
0, // sub_32bit | |
0, // sub_sd | |
0, // sub_ss | |
0, // sub_xmm | |
}, | |
}; | |
assert(RC && "Missing regclass"); | |
if (!Idx) return RC; | |
--Idx; | |
assert(Idx < 7 && "Bad subreg"); | |
unsigned TV = Table[RC->getID()][Idx]; | |
return TV ? getRegClass(TV - 1) : 0; | |
} | |
extern MCRegisterDesc X86RegDesc[]; | |
X86GenRegisterInfo::X86GenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour) | |
: TargetRegisterInfo(X86RegInfoDesc, RegisterClasses, RegisterClasses+40, | |
X86SubRegIndexTable) { | |
InitMCRegisterInfo(X86RegDesc, 160, RA, X86MCRegisterClasses, 40); | |
switch (DwarfFlavour) { | |
default: | |
assert(0 && "Unknown DWARF flavour"); | |
break; | |
case 0: | |
mapDwarfRegToLLVMReg(41, X86::MM0, false ); | |
mapDwarfRegToLLVMReg(42, X86::MM1, false ); | |
mapDwarfRegToLLVMReg(43, X86::MM2, false ); | |
mapDwarfRegToLLVMReg(44, X86::MM3, false ); | |
mapDwarfRegToLLVMReg(45, X86::MM4, false ); | |
mapDwarfRegToLLVMReg(46, X86::MM5, false ); | |
mapDwarfRegToLLVMReg(47, X86::MM6, false ); | |
mapDwarfRegToLLVMReg(48, X86::MM7, false ); | |
mapDwarfRegToLLVMReg(8, X86::R8, false ); | |
mapDwarfRegToLLVMReg(9, X86::R9, false ); | |
mapDwarfRegToLLVMReg(10, X86::R10, false ); | |
mapDwarfRegToLLVMReg(11, X86::R11, false ); | |
mapDwarfRegToLLVMReg(12, X86::R12, false ); | |
mapDwarfRegToLLVMReg(13, X86::R13, false ); | |
mapDwarfRegToLLVMReg(14, X86::R14, false ); | |
mapDwarfRegToLLVMReg(15, X86::R15, false ); | |
mapDwarfRegToLLVMReg(0, X86::RAX, false ); | |
mapDwarfRegToLLVMReg(6, X86::RBP, false ); | |
mapDwarfRegToLLVMReg(3, X86::RBX, false ); | |
mapDwarfRegToLLVMReg(2, X86::RCX, false ); | |
mapDwarfRegToLLVMReg(5, X86::RDI, false ); | |
mapDwarfRegToLLVMReg(1, X86::RDX, false ); | |
mapDwarfRegToLLVMReg(16, X86::RIP, false ); | |
mapDwarfRegToLLVMReg(4, X86::RSI, false ); | |
mapDwarfRegToLLVMReg(7, X86::RSP, false ); | |
mapDwarfRegToLLVMReg(33, X86::ST0, false ); | |
mapDwarfRegToLLVMReg(34, X86::ST1, false ); | |
mapDwarfRegToLLVMReg(35, X86::ST2, false ); | |
mapDwarfRegToLLVMReg(36, X86::ST3, false ); | |
mapDwarfRegToLLVMReg(37, X86::ST4, false ); | |
mapDwarfRegToLLVMReg(38, X86::ST5, false ); | |
mapDwarfRegToLLVMReg(39, X86::ST6, false ); | |
mapDwarfRegToLLVMReg(40, X86::ST7, false ); | |
mapDwarfRegToLLVMReg(17, X86::XMM0, false ); | |
mapDwarfRegToLLVMReg(18, X86::XMM1, false ); | |
mapDwarfRegToLLVMReg(19, X86::XMM2, false ); | |
mapDwarfRegToLLVMReg(20, X86::XMM3, false ); | |
mapDwarfRegToLLVMReg(21, X86::XMM4, false ); | |
mapDwarfRegToLLVMReg(22, X86::XMM5, false ); | |
mapDwarfRegToLLVMReg(23, X86::XMM6, false ); | |
mapDwarfRegToLLVMReg(24, X86::XMM7, false ); | |
mapDwarfRegToLLVMReg(25, X86::XMM8, false ); | |
mapDwarfRegToLLVMReg(26, X86::XMM9, false ); | |
mapDwarfRegToLLVMReg(27, X86::XMM10, false ); | |
mapDwarfRegToLLVMReg(28, X86::XMM11, false ); | |
mapDwarfRegToLLVMReg(29, X86::XMM12, false ); | |
mapDwarfRegToLLVMReg(30, X86::XMM13, false ); | |
mapDwarfRegToLLVMReg(31, X86::XMM14, false ); | |
mapDwarfRegToLLVMReg(32, X86::XMM15, false ); | |
break; | |
case 1: | |
mapDwarfRegToLLVMReg(0, X86::EAX, false ); | |
mapDwarfRegToLLVMReg(4, X86::EBP, false ); | |
mapDwarfRegToLLVMReg(3, X86::EBX, false ); | |
mapDwarfRegToLLVMReg(1, X86::ECX, false ); | |
mapDwarfRegToLLVMReg(7, X86::EDI, false ); | |
mapDwarfRegToLLVMReg(2, X86::EDX, false ); | |
mapDwarfRegToLLVMReg(8, X86::EIP, false ); | |
mapDwarfRegToLLVMReg(6, X86::ESI, false ); | |
mapDwarfRegToLLVMReg(5, X86::ESP, false ); | |
mapDwarfRegToLLVMReg(29, X86::MM0, false ); | |
mapDwarfRegToLLVMReg(30, X86::MM1, false ); | |
mapDwarfRegToLLVMReg(31, X86::MM2, false ); | |
mapDwarfRegToLLVMReg(32, X86::MM3, false ); | |
mapDwarfRegToLLVMReg(33, X86::MM4, false ); | |
mapDwarfRegToLLVMReg(34, X86::MM5, false ); | |
mapDwarfRegToLLVMReg(35, X86::MM6, false ); | |
mapDwarfRegToLLVMReg(36, X86::MM7, false ); | |
mapDwarfRegToLLVMReg(12, X86::ST0, false ); | |
mapDwarfRegToLLVMReg(13, X86::ST1, false ); | |
mapDwarfRegToLLVMReg(14, X86::ST2, false ); | |
mapDwarfRegToLLVMReg(15, X86::ST3, false ); | |
mapDwarfRegToLLVMReg(16, X86::ST4, false ); | |
mapDwarfRegToLLVMReg(17, X86::ST5, false ); | |
mapDwarfRegToLLVMReg(18, X86::ST6, false ); | |
mapDwarfRegToLLVMReg(19, X86::ST7, false ); | |
mapDwarfRegToLLVMReg(21, X86::XMM0, false ); | |
mapDwarfRegToLLVMReg(22, X86::XMM1, false ); | |
mapDwarfRegToLLVMReg(23, X86::XMM2, false ); | |
mapDwarfRegToLLVMReg(24, X86::XMM3, false ); | |
mapDwarfRegToLLVMReg(25, X86::XMM4, false ); | |
mapDwarfRegToLLVMReg(26, X86::XMM5, false ); | |
mapDwarfRegToLLVMReg(27, X86::XMM6, false ); | |
mapDwarfRegToLLVMReg(28, X86::XMM7, false ); | |
break; | |
case 2: | |
mapDwarfRegToLLVMReg(0, X86::EAX, false ); | |
mapDwarfRegToLLVMReg(5, X86::EBP, false ); | |
mapDwarfRegToLLVMReg(3, X86::EBX, false ); | |
mapDwarfRegToLLVMReg(1, X86::ECX, false ); | |
mapDwarfRegToLLVMReg(7, X86::EDI, false ); | |
mapDwarfRegToLLVMReg(2, X86::EDX, false ); | |
mapDwarfRegToLLVMReg(8, X86::EIP, false ); | |
mapDwarfRegToLLVMReg(6, X86::ESI, false ); | |
mapDwarfRegToLLVMReg(4, X86::ESP, false ); | |
mapDwarfRegToLLVMReg(29, X86::MM0, false ); | |
mapDwarfRegToLLVMReg(30, X86::MM1, false ); | |
mapDwarfRegToLLVMReg(31, X86::MM2, false ); | |
mapDwarfRegToLLVMReg(32, X86::MM3, false ); | |
mapDwarfRegToLLVMReg(33, X86::MM4, false ); | |
mapDwarfRegToLLVMReg(34, X86::MM5, false ); | |
mapDwarfRegToLLVMReg(35, X86::MM6, false ); | |
mapDwarfRegToLLVMReg(36, X86::MM7, false ); | |
mapDwarfRegToLLVMReg(11, X86::ST0, false ); | |
mapDwarfRegToLLVMReg(12, X86::ST1, false ); | |
mapDwarfRegToLLVMReg(13, X86::ST2, false ); | |
mapDwarfRegToLLVMReg(14, X86::ST3, false ); | |
mapDwarfRegToLLVMReg(15, X86::ST4, false ); | |
mapDwarfRegToLLVMReg(16, X86::ST5, false ); | |
mapDwarfRegToLLVMReg(17, X86::ST6, false ); | |
mapDwarfRegToLLVMReg(18, X86::ST7, false ); | |
mapDwarfRegToLLVMReg(21, X86::XMM0, false ); | |
mapDwarfRegToLLVMReg(22, X86::XMM1, false ); | |
mapDwarfRegToLLVMReg(23, X86::XMM2, false ); | |
mapDwarfRegToLLVMReg(24, X86::XMM3, false ); | |
mapDwarfRegToLLVMReg(25, X86::XMM4, false ); | |
mapDwarfRegToLLVMReg(26, X86::XMM5, false ); | |
mapDwarfRegToLLVMReg(27, X86::XMM6, false ); | |
mapDwarfRegToLLVMReg(28, X86::XMM7, false ); | |
break; | |
} | |
switch (EHFlavour) { | |
default: | |
assert(0 && "Unknown DWARF flavour"); | |
break; | |
case 0: | |
mapDwarfRegToLLVMReg(41, X86::MM0, true ); | |
mapDwarfRegToLLVMReg(42, X86::MM1, true ); | |
mapDwarfRegToLLVMReg(43, X86::MM2, true ); | |
mapDwarfRegToLLVMReg(44, X86::MM3, true ); | |
mapDwarfRegToLLVMReg(45, X86::MM4, true ); | |
mapDwarfRegToLLVMReg(46, X86::MM5, true ); | |
mapDwarfRegToLLVMReg(47, X86::MM6, true ); | |
mapDwarfRegToLLVMReg(48, X86::MM7, true ); | |
mapDwarfRegToLLVMReg(8, X86::R8, true ); | |
mapDwarfRegToLLVMReg(9, X86::R9, true ); | |
mapDwarfRegToLLVMReg(10, X86::R10, true ); | |
mapDwarfRegToLLVMReg(11, X86::R11, true ); | |
mapDwarfRegToLLVMReg(12, X86::R12, true ); | |
mapDwarfRegToLLVMReg(13, X86::R13, true ); | |
mapDwarfRegToLLVMReg(14, X86::R14, true ); | |
mapDwarfRegToLLVMReg(15, X86::R15, true ); | |
mapDwarfRegToLLVMReg(0, X86::RAX, true ); | |
mapDwarfRegToLLVMReg(6, X86::RBP, true ); | |
mapDwarfRegToLLVMReg(3, X86::RBX, true ); | |
mapDwarfRegToLLVMReg(2, X86::RCX, true ); | |
mapDwarfRegToLLVMReg(5, X86::RDI, true ); | |
mapDwarfRegToLLVMReg(1, X86::RDX, true ); | |
mapDwarfRegToLLVMReg(16, X86::RIP, true ); | |
mapDwarfRegToLLVMReg(4, X86::RSI, true ); | |
mapDwarfRegToLLVMReg(7, X86::RSP, true ); | |
mapDwarfRegToLLVMReg(33, X86::ST0, true ); | |
mapDwarfRegToLLVMReg(34, X86::ST1, true ); | |
mapDwarfRegToLLVMReg(35, X86::ST2, true ); | |
mapDwarfRegToLLVMReg(36, X86::ST3, true ); | |
mapDwarfRegToLLVMReg(37, X86::ST4, true ); | |
mapDwarfRegToLLVMReg(38, X86::ST5, true ); | |
mapDwarfRegToLLVMReg(39, X86::ST6, true ); | |
mapDwarfRegToLLVMReg(40, X86::ST7, true ); | |
mapDwarfRegToLLVMReg(17, X86::XMM0, true ); | |
mapDwarfRegToLLVMReg(18, X86::XMM1, true ); | |
mapDwarfRegToLLVMReg(19, X86::XMM2, true ); | |
mapDwarfRegToLLVMReg(20, X86::XMM3, true ); | |
mapDwarfRegToLLVMReg(21, X86::XMM4, true ); | |
mapDwarfRegToLLVMReg(22, X86::XMM5, true ); | |
mapDwarfRegToLLVMReg(23, X86::XMM6, true ); | |
mapDwarfRegToLLVMReg(24, X86::XMM7, true ); | |
mapDwarfRegToLLVMReg(25, X86::XMM8, true ); | |
mapDwarfRegToLLVMReg(26, X86::XMM9, true ); | |
mapDwarfRegToLLVMReg(27, X86::XMM10, true ); | |
mapDwarfRegToLLVMReg(28, X86::XMM11, true ); | |
mapDwarfRegToLLVMReg(29, X86::XMM12, true ); | |
mapDwarfRegToLLVMReg(30, X86::XMM13, true ); | |
mapDwarfRegToLLVMReg(31, X86::XMM14, true ); | |
mapDwarfRegToLLVMReg(32, X86::XMM15, true ); | |
break; | |
case 1: | |
mapDwarfRegToLLVMReg(0, X86::EAX, true ); | |
mapDwarfRegToLLVMReg(4, X86::EBP, true ); | |
mapDwarfRegToLLVMReg(3, X86::EBX, true ); | |
mapDwarfRegToLLVMReg(1, X86::ECX, true ); | |
mapDwarfRegToLLVMReg(7, X86::EDI, true ); | |
mapDwarfRegToLLVMReg(2, X86::EDX, true ); | |
mapDwarfRegToLLVMReg(8, X86::EIP, true ); | |
mapDwarfRegToLLVMReg(6, X86::ESI, true ); | |
mapDwarfRegToLLVMReg(5, X86::ESP, true ); | |
mapDwarfRegToLLVMReg(29, X86::MM0, true ); | |
mapDwarfRegToLLVMReg(30, X86::MM1, true ); | |
mapDwarfRegToLLVMReg(31, X86::MM2, true ); | |
mapDwarfRegToLLVMReg(32, X86::MM3, true ); | |
mapDwarfRegToLLVMReg(33, X86::MM4, true ); | |
mapDwarfRegToLLVMReg(34, X86::MM5, true ); | |
mapDwarfRegToLLVMReg(35, X86::MM6, true ); | |
mapDwarfRegToLLVMReg(36, X86::MM7, true ); | |
mapDwarfRegToLLVMReg(12, X86::ST0, true ); | |
mapDwarfRegToLLVMReg(13, X86::ST1, true ); | |
mapDwarfRegToLLVMReg(14, X86::ST2, true ); | |
mapDwarfRegToLLVMReg(15, X86::ST3, true ); | |
mapDwarfRegToLLVMReg(16, X86::ST4, true ); | |
mapDwarfRegToLLVMReg(17, X86::ST5, true ); | |
mapDwarfRegToLLVMReg(18, X86::ST6, true ); | |
mapDwarfRegToLLVMReg(19, X86::ST7, true ); | |
mapDwarfRegToLLVMReg(21, X86::XMM0, true ); | |
mapDwarfRegToLLVMReg(22, X86::XMM1, true ); | |
mapDwarfRegToLLVMReg(23, X86::XMM2, true ); | |
mapDwarfRegToLLVMReg(24, X86::XMM3, true ); | |
mapDwarfRegToLLVMReg(25, X86::XMM4, true ); | |
mapDwarfRegToLLVMReg(26, X86::XMM5, true ); | |
mapDwarfRegToLLVMReg(27, X86::XMM6, true ); | |
mapDwarfRegToLLVMReg(28, X86::XMM7, true ); | |
break; | |
case 2: | |
mapDwarfRegToLLVMReg(0, X86::EAX, true ); | |
mapDwarfRegToLLVMReg(5, X86::EBP, true ); | |
mapDwarfRegToLLVMReg(3, X86::EBX, true ); | |
mapDwarfRegToLLVMReg(1, X86::ECX, true ); | |
mapDwarfRegToLLVMReg(7, X86::EDI, true ); | |
mapDwarfRegToLLVMReg(2, X86::EDX, true ); | |
mapDwarfRegToLLVMReg(8, X86::EIP, true ); | |
mapDwarfRegToLLVMReg(6, X86::ESI, true ); | |
mapDwarfRegToLLVMReg(4, X86::ESP, true ); | |
mapDwarfRegToLLVMReg(29, X86::MM0, true ); | |
mapDwarfRegToLLVMReg(30, X86::MM1, true ); | |
mapDwarfRegToLLVMReg(31, X86::MM2, true ); | |
mapDwarfRegToLLVMReg(32, X86::MM3, true ); | |
mapDwarfRegToLLVMReg(33, X86::MM4, true ); | |
mapDwarfRegToLLVMReg(34, X86::MM5, true ); | |
mapDwarfRegToLLVMReg(35, X86::MM6, true ); | |
mapDwarfRegToLLVMReg(36, X86::MM7, true ); | |
mapDwarfRegToLLVMReg(11, X86::ST0, true ); | |
mapDwarfRegToLLVMReg(12, X86::ST1, true ); | |
mapDwarfRegToLLVMReg(13, X86::ST2, true ); | |
mapDwarfRegToLLVMReg(14, X86::ST3, true ); | |
mapDwarfRegToLLVMReg(15, X86::ST4, true ); | |
mapDwarfRegToLLVMReg(16, X86::ST5, true ); | |
mapDwarfRegToLLVMReg(17, X86::ST6, true ); | |
mapDwarfRegToLLVMReg(18, X86::ST7, true ); | |
mapDwarfRegToLLVMReg(21, X86::XMM0, true ); | |
mapDwarfRegToLLVMReg(22, X86::XMM1, true ); | |
mapDwarfRegToLLVMReg(23, X86::XMM2, true ); | |
mapDwarfRegToLLVMReg(24, X86::XMM3, true ); | |
mapDwarfRegToLLVMReg(25, X86::XMM4, true ); | |
mapDwarfRegToLLVMReg(26, X86::XMM5, true ); | |
mapDwarfRegToLLVMReg(27, X86::XMM6, true ); | |
mapDwarfRegToLLVMReg(28, X86::XMM7, true ); | |
break; | |
} | |
switch (DwarfFlavour) { | |
default: | |
assert(0 && "Unknown DWARF flavour"); | |
break; | |
case 0: | |
mapLLVMRegToDwarfReg(X86::AH, -1, false ); | |
mapLLVMRegToDwarfReg(X86::AL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::AX, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BH, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BP, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BPL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BX, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CH, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR0, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR1, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR2, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR3, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR4, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR5, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR6, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR7, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR8, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR9, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR10, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR11, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR12, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR13, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR14, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR15, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CX, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DH, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DI, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DIL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR0, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR1, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR2, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR3, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR4, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR5, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR6, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR7, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DX, -1, false ); | |
mapLLVMRegToDwarfReg(X86::EAX, -2, false ); | |
mapLLVMRegToDwarfReg(X86::EBP, -2, false ); | |
mapLLVMRegToDwarfReg(X86::EBX, -2, false ); | |
mapLLVMRegToDwarfReg(X86::ECX, -2, false ); | |
mapLLVMRegToDwarfReg(X86::EDI, -2, false ); | |
mapLLVMRegToDwarfReg(X86::EDX, -2, false ); | |
mapLLVMRegToDwarfReg(X86::EFLAGS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::EIP, -2, false ); | |
mapLLVMRegToDwarfReg(X86::EIZ, -1, false ); | |
mapLLVMRegToDwarfReg(X86::ES, -1, false ); | |
mapLLVMRegToDwarfReg(X86::ESI, -2, false ); | |
mapLLVMRegToDwarfReg(X86::ESP, -2, false ); | |
mapLLVMRegToDwarfReg(X86::FP0, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP1, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP2, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP3, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP4, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP5, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP6, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::GS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::IP, -1, false ); | |
mapLLVMRegToDwarfReg(X86::MM0, 41, false ); | |
mapLLVMRegToDwarfReg(X86::MM1, 42, false ); | |
mapLLVMRegToDwarfReg(X86::MM2, 43, false ); | |
mapLLVMRegToDwarfReg(X86::MM3, 44, false ); | |
mapLLVMRegToDwarfReg(X86::MM4, 45, false ); | |
mapLLVMRegToDwarfReg(X86::MM5, 46, false ); | |
mapLLVMRegToDwarfReg(X86::MM6, 47, false ); | |
mapLLVMRegToDwarfReg(X86::MM7, 48, false ); | |
mapLLVMRegToDwarfReg(X86::R8, 8, false ); | |
mapLLVMRegToDwarfReg(X86::R8B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R8D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R8W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R9, 9, false ); | |
mapLLVMRegToDwarfReg(X86::R9B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R9D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R9W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R10, 10, false ); | |
mapLLVMRegToDwarfReg(X86::R10B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R10D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R10W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R11, 11, false ); | |
mapLLVMRegToDwarfReg(X86::R11B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R11D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R11W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R12, 12, false ); | |
mapLLVMRegToDwarfReg(X86::R12B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R12D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R12W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R13, 13, false ); | |
mapLLVMRegToDwarfReg(X86::R13B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R13D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R13W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R14, 14, false ); | |
mapLLVMRegToDwarfReg(X86::R14B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R14D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R14W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R15, 15, false ); | |
mapLLVMRegToDwarfReg(X86::R15B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R15D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R15W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::RAX, 0, false ); | |
mapLLVMRegToDwarfReg(X86::RBP, 6, false ); | |
mapLLVMRegToDwarfReg(X86::RBX, 3, false ); | |
mapLLVMRegToDwarfReg(X86::RCX, 2, false ); | |
mapLLVMRegToDwarfReg(X86::RDI, 5, false ); | |
mapLLVMRegToDwarfReg(X86::RDX, 1, false ); | |
mapLLVMRegToDwarfReg(X86::RIP, 16, false ); | |
mapLLVMRegToDwarfReg(X86::RIZ, -1, false ); | |
mapLLVMRegToDwarfReg(X86::RSI, 4, false ); | |
mapLLVMRegToDwarfReg(X86::RSP, 7, false ); | |
mapLLVMRegToDwarfReg(X86::SI, -1, false ); | |
mapLLVMRegToDwarfReg(X86::SIL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::SP, -1, false ); | |
mapLLVMRegToDwarfReg(X86::SPL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::SS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::ST0, 33, false ); | |
mapLLVMRegToDwarfReg(X86::ST1, 34, false ); | |
mapLLVMRegToDwarfReg(X86::ST2, 35, false ); | |
mapLLVMRegToDwarfReg(X86::ST3, 36, false ); | |
mapLLVMRegToDwarfReg(X86::ST4, 37, false ); | |
mapLLVMRegToDwarfReg(X86::ST5, 38, false ); | |
mapLLVMRegToDwarfReg(X86::ST6, 39, false ); | |
mapLLVMRegToDwarfReg(X86::ST7, 40, false ); | |
mapLLVMRegToDwarfReg(X86::XMM0, 17, false ); | |
mapLLVMRegToDwarfReg(X86::XMM1, 18, false ); | |
mapLLVMRegToDwarfReg(X86::XMM2, 19, false ); | |
mapLLVMRegToDwarfReg(X86::XMM3, 20, false ); | |
mapLLVMRegToDwarfReg(X86::XMM4, 21, false ); | |
mapLLVMRegToDwarfReg(X86::XMM5, 22, false ); | |
mapLLVMRegToDwarfReg(X86::XMM6, 23, false ); | |
mapLLVMRegToDwarfReg(X86::XMM7, 24, false ); | |
mapLLVMRegToDwarfReg(X86::XMM8, 25, false ); | |
mapLLVMRegToDwarfReg(X86::XMM9, 26, false ); | |
mapLLVMRegToDwarfReg(X86::XMM10, 27, false ); | |
mapLLVMRegToDwarfReg(X86::XMM11, 28, false ); | |
mapLLVMRegToDwarfReg(X86::XMM12, 29, false ); | |
mapLLVMRegToDwarfReg(X86::XMM13, 30, false ); | |
mapLLVMRegToDwarfReg(X86::XMM14, 31, false ); | |
mapLLVMRegToDwarfReg(X86::XMM15, 32, false ); | |
mapLLVMRegToDwarfReg(X86::YMM0, 17, false ); | |
mapLLVMRegToDwarfReg(X86::YMM1, 18, false ); | |
mapLLVMRegToDwarfReg(X86::YMM2, 19, false ); | |
mapLLVMRegToDwarfReg(X86::YMM3, 20, false ); | |
mapLLVMRegToDwarfReg(X86::YMM4, 21, false ); | |
mapLLVMRegToDwarfReg(X86::YMM5, 22, false ); | |
mapLLVMRegToDwarfReg(X86::YMM6, 23, false ); | |
mapLLVMRegToDwarfReg(X86::YMM7, 24, false ); | |
mapLLVMRegToDwarfReg(X86::YMM8, 25, false ); | |
mapLLVMRegToDwarfReg(X86::YMM9, 26, false ); | |
mapLLVMRegToDwarfReg(X86::YMM10, 27, false ); | |
mapLLVMRegToDwarfReg(X86::YMM11, 28, false ); | |
mapLLVMRegToDwarfReg(X86::YMM12, 29, false ); | |
mapLLVMRegToDwarfReg(X86::YMM13, 30, false ); | |
mapLLVMRegToDwarfReg(X86::YMM14, 31, false ); | |
mapLLVMRegToDwarfReg(X86::YMM15, 32, false ); | |
break; | |
case 1: | |
mapLLVMRegToDwarfReg(X86::AH, -1, false ); | |
mapLLVMRegToDwarfReg(X86::AL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::AX, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BH, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BP, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BPL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BX, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CH, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR0, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR1, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR2, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR3, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR4, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR5, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR6, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR7, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR8, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR9, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR10, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR11, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR12, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR13, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR14, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR15, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CX, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DH, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DI, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DIL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR0, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR1, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR2, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR3, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR4, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR5, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR6, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR7, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DX, -1, false ); | |
mapLLVMRegToDwarfReg(X86::EAX, 0, false ); | |
mapLLVMRegToDwarfReg(X86::EBP, 4, false ); | |
mapLLVMRegToDwarfReg(X86::EBX, 3, false ); | |
mapLLVMRegToDwarfReg(X86::ECX, 1, false ); | |
mapLLVMRegToDwarfReg(X86::EDI, 7, false ); | |
mapLLVMRegToDwarfReg(X86::EDX, 2, false ); | |
mapLLVMRegToDwarfReg(X86::EFLAGS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::EIP, 8, false ); | |
mapLLVMRegToDwarfReg(X86::EIZ, -1, false ); | |
mapLLVMRegToDwarfReg(X86::ES, -1, false ); | |
mapLLVMRegToDwarfReg(X86::ESI, 6, false ); | |
mapLLVMRegToDwarfReg(X86::ESP, 5, false ); | |
mapLLVMRegToDwarfReg(X86::FP0, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP1, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP2, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP3, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP4, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP5, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP6, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::GS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::IP, -1, false ); | |
mapLLVMRegToDwarfReg(X86::MM0, 29, false ); | |
mapLLVMRegToDwarfReg(X86::MM1, 30, false ); | |
mapLLVMRegToDwarfReg(X86::MM2, 31, false ); | |
mapLLVMRegToDwarfReg(X86::MM3, 32, false ); | |
mapLLVMRegToDwarfReg(X86::MM4, 33, false ); | |
mapLLVMRegToDwarfReg(X86::MM5, 34, false ); | |
mapLLVMRegToDwarfReg(X86::MM6, 35, false ); | |
mapLLVMRegToDwarfReg(X86::MM7, 36, false ); | |
mapLLVMRegToDwarfReg(X86::R8, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R8B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R8D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R8W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R9, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R9B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R9D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R9W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R10, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R10B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R10D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R10W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R11, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R11B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R11D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R11W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R12, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R12B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R12D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R12W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R13, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R13B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R13D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R13W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R14, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R14B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R14D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R14W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R15, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R15B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R15D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R15W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::RAX, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RBP, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RBX, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RCX, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RDI, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RDX, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RIP, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RIZ, -1, false ); | |
mapLLVMRegToDwarfReg(X86::RSI, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RSP, -2, false ); | |
mapLLVMRegToDwarfReg(X86::SI, -1, false ); | |
mapLLVMRegToDwarfReg(X86::SIL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::SP, -1, false ); | |
mapLLVMRegToDwarfReg(X86::SPL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::SS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::ST0, 12, false ); | |
mapLLVMRegToDwarfReg(X86::ST1, 13, false ); | |
mapLLVMRegToDwarfReg(X86::ST2, 14, false ); | |
mapLLVMRegToDwarfReg(X86::ST3, 15, false ); | |
mapLLVMRegToDwarfReg(X86::ST4, 16, false ); | |
mapLLVMRegToDwarfReg(X86::ST5, 17, false ); | |
mapLLVMRegToDwarfReg(X86::ST6, 18, false ); | |
mapLLVMRegToDwarfReg(X86::ST7, 19, false ); | |
mapLLVMRegToDwarfReg(X86::XMM0, 21, false ); | |
mapLLVMRegToDwarfReg(X86::XMM1, 22, false ); | |
mapLLVMRegToDwarfReg(X86::XMM2, 23, false ); | |
mapLLVMRegToDwarfReg(X86::XMM3, 24, false ); | |
mapLLVMRegToDwarfReg(X86::XMM4, 25, false ); | |
mapLLVMRegToDwarfReg(X86::XMM5, 26, false ); | |
mapLLVMRegToDwarfReg(X86::XMM6, 27, false ); | |
mapLLVMRegToDwarfReg(X86::XMM7, 28, false ); | |
mapLLVMRegToDwarfReg(X86::XMM8, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM9, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM10, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM11, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM12, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM13, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM14, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM15, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM0, 21, false ); | |
mapLLVMRegToDwarfReg(X86::YMM1, 22, false ); | |
mapLLVMRegToDwarfReg(X86::YMM2, 23, false ); | |
mapLLVMRegToDwarfReg(X86::YMM3, 24, false ); | |
mapLLVMRegToDwarfReg(X86::YMM4, 25, false ); | |
mapLLVMRegToDwarfReg(X86::YMM5, 26, false ); | |
mapLLVMRegToDwarfReg(X86::YMM6, 27, false ); | |
mapLLVMRegToDwarfReg(X86::YMM7, 28, false ); | |
mapLLVMRegToDwarfReg(X86::YMM8, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM9, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM10, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM11, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM12, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM13, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM14, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM15, -2, false ); | |
break; | |
case 2: | |
mapLLVMRegToDwarfReg(X86::AH, -1, false ); | |
mapLLVMRegToDwarfReg(X86::AL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::AX, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BH, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BP, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BPL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::BX, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CH, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR0, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR1, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR2, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR3, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR4, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR5, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR6, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR7, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR8, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR9, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR10, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR11, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR12, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR13, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR14, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CR15, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::CX, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DH, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DI, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DIL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR0, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR1, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR2, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR3, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR4, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR5, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR6, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DR7, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::DX, -1, false ); | |
mapLLVMRegToDwarfReg(X86::EAX, 0, false ); | |
mapLLVMRegToDwarfReg(X86::EBP, 5, false ); | |
mapLLVMRegToDwarfReg(X86::EBX, 3, false ); | |
mapLLVMRegToDwarfReg(X86::ECX, 1, false ); | |
mapLLVMRegToDwarfReg(X86::EDI, 7, false ); | |
mapLLVMRegToDwarfReg(X86::EDX, 2, false ); | |
mapLLVMRegToDwarfReg(X86::EFLAGS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::EIP, 8, false ); | |
mapLLVMRegToDwarfReg(X86::EIZ, -1, false ); | |
mapLLVMRegToDwarfReg(X86::ES, -1, false ); | |
mapLLVMRegToDwarfReg(X86::ESI, 6, false ); | |
mapLLVMRegToDwarfReg(X86::ESP, 4, false ); | |
mapLLVMRegToDwarfReg(X86::FP0, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP1, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP2, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP3, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP4, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP5, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FP6, -1, false ); | |
mapLLVMRegToDwarfReg(X86::FS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::GS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::IP, -1, false ); | |
mapLLVMRegToDwarfReg(X86::MM0, 29, false ); | |
mapLLVMRegToDwarfReg(X86::MM1, 30, false ); | |
mapLLVMRegToDwarfReg(X86::MM2, 31, false ); | |
mapLLVMRegToDwarfReg(X86::MM3, 32, false ); | |
mapLLVMRegToDwarfReg(X86::MM4, 33, false ); | |
mapLLVMRegToDwarfReg(X86::MM5, 34, false ); | |
mapLLVMRegToDwarfReg(X86::MM6, 35, false ); | |
mapLLVMRegToDwarfReg(X86::MM7, 36, false ); | |
mapLLVMRegToDwarfReg(X86::R8, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R8B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R8D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R8W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R9, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R9B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R9D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R9W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R10, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R10B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R10D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R10W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R11, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R11B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R11D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R11W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R12, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R12B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R12D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R12W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R13, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R13B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R13D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R13W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R14, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R14B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R14D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R14W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R15, -2, false ); | |
mapLLVMRegToDwarfReg(X86::R15B, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R15D, -1, false ); | |
mapLLVMRegToDwarfReg(X86::R15W, -1, false ); | |
mapLLVMRegToDwarfReg(X86::RAX, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RBP, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RBX, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RCX, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RDI, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RDX, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RIP, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RIZ, -1, false ); | |
mapLLVMRegToDwarfReg(X86::RSI, -2, false ); | |
mapLLVMRegToDwarfReg(X86::RSP, -2, false ); | |
mapLLVMRegToDwarfReg(X86::SI, -1, false ); | |
mapLLVMRegToDwarfReg(X86::SIL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::SP, -1, false ); | |
mapLLVMRegToDwarfReg(X86::SPL, -1, false ); | |
mapLLVMRegToDwarfReg(X86::SS, -1, false ); | |
mapLLVMRegToDwarfReg(X86::ST0, 11, false ); | |
mapLLVMRegToDwarfReg(X86::ST1, 12, false ); | |
mapLLVMRegToDwarfReg(X86::ST2, 13, false ); | |
mapLLVMRegToDwarfReg(X86::ST3, 14, false ); | |
mapLLVMRegToDwarfReg(X86::ST4, 15, false ); | |
mapLLVMRegToDwarfReg(X86::ST5, 16, false ); | |
mapLLVMRegToDwarfReg(X86::ST6, 17, false ); | |
mapLLVMRegToDwarfReg(X86::ST7, 18, false ); | |
mapLLVMRegToDwarfReg(X86::XMM0, 21, false ); | |
mapLLVMRegToDwarfReg(X86::XMM1, 22, false ); | |
mapLLVMRegToDwarfReg(X86::XMM2, 23, false ); | |
mapLLVMRegToDwarfReg(X86::XMM3, 24, false ); | |
mapLLVMRegToDwarfReg(X86::XMM4, 25, false ); | |
mapLLVMRegToDwarfReg(X86::XMM5, 26, false ); | |
mapLLVMRegToDwarfReg(X86::XMM6, 27, false ); | |
mapLLVMRegToDwarfReg(X86::XMM7, 28, false ); | |
mapLLVMRegToDwarfReg(X86::XMM8, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM9, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM10, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM11, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM12, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM13, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM14, -2, false ); | |
mapLLVMRegToDwarfReg(X86::XMM15, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM0, 21, false ); | |
mapLLVMRegToDwarfReg(X86::YMM1, 22, false ); | |
mapLLVMRegToDwarfReg(X86::YMM2, 23, false ); | |
mapLLVMRegToDwarfReg(X86::YMM3, 24, false ); | |
mapLLVMRegToDwarfReg(X86::YMM4, 25, false ); | |
mapLLVMRegToDwarfReg(X86::YMM5, 26, false ); | |
mapLLVMRegToDwarfReg(X86::YMM6, 27, false ); | |
mapLLVMRegToDwarfReg(X86::YMM7, 28, false ); | |
mapLLVMRegToDwarfReg(X86::YMM8, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM9, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM10, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM11, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM12, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM13, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM14, -2, false ); | |
mapLLVMRegToDwarfReg(X86::YMM15, -2, false ); | |
break; | |
} | |
switch (EHFlavour) { | |
default: | |
assert(0 && "Unknown DWARF flavour"); | |
break; | |
case 0: | |
mapLLVMRegToDwarfReg(X86::AH, -1, true ); | |
mapLLVMRegToDwarfReg(X86::AL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::AX, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BH, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BP, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BPL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BX, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CH, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR0, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR1, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR2, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR3, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR4, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR5, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR6, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR7, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR8, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR9, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR10, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR11, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR12, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR13, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR14, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR15, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CX, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DH, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DI, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DIL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR0, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR1, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR2, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR3, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR4, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR5, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR6, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR7, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DX, -1, true ); | |
mapLLVMRegToDwarfReg(X86::EAX, -2, true ); | |
mapLLVMRegToDwarfReg(X86::EBP, -2, true ); | |
mapLLVMRegToDwarfReg(X86::EBX, -2, true ); | |
mapLLVMRegToDwarfReg(X86::ECX, -2, true ); | |
mapLLVMRegToDwarfReg(X86::EDI, -2, true ); | |
mapLLVMRegToDwarfReg(X86::EDX, -2, true ); | |
mapLLVMRegToDwarfReg(X86::EFLAGS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::EIP, -2, true ); | |
mapLLVMRegToDwarfReg(X86::EIZ, -1, true ); | |
mapLLVMRegToDwarfReg(X86::ES, -1, true ); | |
mapLLVMRegToDwarfReg(X86::ESI, -2, true ); | |
mapLLVMRegToDwarfReg(X86::ESP, -2, true ); | |
mapLLVMRegToDwarfReg(X86::FP0, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP1, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP2, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP3, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP4, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP5, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP6, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::GS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::IP, -1, true ); | |
mapLLVMRegToDwarfReg(X86::MM0, 41, true ); | |
mapLLVMRegToDwarfReg(X86::MM1, 42, true ); | |
mapLLVMRegToDwarfReg(X86::MM2, 43, true ); | |
mapLLVMRegToDwarfReg(X86::MM3, 44, true ); | |
mapLLVMRegToDwarfReg(X86::MM4, 45, true ); | |
mapLLVMRegToDwarfReg(X86::MM5, 46, true ); | |
mapLLVMRegToDwarfReg(X86::MM6, 47, true ); | |
mapLLVMRegToDwarfReg(X86::MM7, 48, true ); | |
mapLLVMRegToDwarfReg(X86::R8, 8, true ); | |
mapLLVMRegToDwarfReg(X86::R8B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R8D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R8W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R9, 9, true ); | |
mapLLVMRegToDwarfReg(X86::R9B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R9D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R9W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R10, 10, true ); | |
mapLLVMRegToDwarfReg(X86::R10B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R10D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R10W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R11, 11, true ); | |
mapLLVMRegToDwarfReg(X86::R11B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R11D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R11W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R12, 12, true ); | |
mapLLVMRegToDwarfReg(X86::R12B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R12D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R12W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R13, 13, true ); | |
mapLLVMRegToDwarfReg(X86::R13B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R13D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R13W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R14, 14, true ); | |
mapLLVMRegToDwarfReg(X86::R14B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R14D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R14W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R15, 15, true ); | |
mapLLVMRegToDwarfReg(X86::R15B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R15D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R15W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::RAX, 0, true ); | |
mapLLVMRegToDwarfReg(X86::RBP, 6, true ); | |
mapLLVMRegToDwarfReg(X86::RBX, 3, true ); | |
mapLLVMRegToDwarfReg(X86::RCX, 2, true ); | |
mapLLVMRegToDwarfReg(X86::RDI, 5, true ); | |
mapLLVMRegToDwarfReg(X86::RDX, 1, true ); | |
mapLLVMRegToDwarfReg(X86::RIP, 16, true ); | |
mapLLVMRegToDwarfReg(X86::RIZ, -1, true ); | |
mapLLVMRegToDwarfReg(X86::RSI, 4, true ); | |
mapLLVMRegToDwarfReg(X86::RSP, 7, true ); | |
mapLLVMRegToDwarfReg(X86::SI, -1, true ); | |
mapLLVMRegToDwarfReg(X86::SIL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::SP, -1, true ); | |
mapLLVMRegToDwarfReg(X86::SPL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::SS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::ST0, 33, true ); | |
mapLLVMRegToDwarfReg(X86::ST1, 34, true ); | |
mapLLVMRegToDwarfReg(X86::ST2, 35, true ); | |
mapLLVMRegToDwarfReg(X86::ST3, 36, true ); | |
mapLLVMRegToDwarfReg(X86::ST4, 37, true ); | |
mapLLVMRegToDwarfReg(X86::ST5, 38, true ); | |
mapLLVMRegToDwarfReg(X86::ST6, 39, true ); | |
mapLLVMRegToDwarfReg(X86::ST7, 40, true ); | |
mapLLVMRegToDwarfReg(X86::XMM0, 17, true ); | |
mapLLVMRegToDwarfReg(X86::XMM1, 18, true ); | |
mapLLVMRegToDwarfReg(X86::XMM2, 19, true ); | |
mapLLVMRegToDwarfReg(X86::XMM3, 20, true ); | |
mapLLVMRegToDwarfReg(X86::XMM4, 21, true ); | |
mapLLVMRegToDwarfReg(X86::XMM5, 22, true ); | |
mapLLVMRegToDwarfReg(X86::XMM6, 23, true ); | |
mapLLVMRegToDwarfReg(X86::XMM7, 24, true ); | |
mapLLVMRegToDwarfReg(X86::XMM8, 25, true ); | |
mapLLVMRegToDwarfReg(X86::XMM9, 26, true ); | |
mapLLVMRegToDwarfReg(X86::XMM10, 27, true ); | |
mapLLVMRegToDwarfReg(X86::XMM11, 28, true ); | |
mapLLVMRegToDwarfReg(X86::XMM12, 29, true ); | |
mapLLVMRegToDwarfReg(X86::XMM13, 30, true ); | |
mapLLVMRegToDwarfReg(X86::XMM14, 31, true ); | |
mapLLVMRegToDwarfReg(X86::XMM15, 32, true ); | |
mapLLVMRegToDwarfReg(X86::YMM0, 17, true ); | |
mapLLVMRegToDwarfReg(X86::YMM1, 18, true ); | |
mapLLVMRegToDwarfReg(X86::YMM2, 19, true ); | |
mapLLVMRegToDwarfReg(X86::YMM3, 20, true ); | |
mapLLVMRegToDwarfReg(X86::YMM4, 21, true ); | |
mapLLVMRegToDwarfReg(X86::YMM5, 22, true ); | |
mapLLVMRegToDwarfReg(X86::YMM6, 23, true ); | |
mapLLVMRegToDwarfReg(X86::YMM7, 24, true ); | |
mapLLVMRegToDwarfReg(X86::YMM8, 25, true ); | |
mapLLVMRegToDwarfReg(X86::YMM9, 26, true ); | |
mapLLVMRegToDwarfReg(X86::YMM10, 27, true ); | |
mapLLVMRegToDwarfReg(X86::YMM11, 28, true ); | |
mapLLVMRegToDwarfReg(X86::YMM12, 29, true ); | |
mapLLVMRegToDwarfReg(X86::YMM13, 30, true ); | |
mapLLVMRegToDwarfReg(X86::YMM14, 31, true ); | |
mapLLVMRegToDwarfReg(X86::YMM15, 32, true ); | |
break; | |
case 1: | |
mapLLVMRegToDwarfReg(X86::AH, -1, true ); | |
mapLLVMRegToDwarfReg(X86::AL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::AX, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BH, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BP, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BPL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BX, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CH, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR0, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR1, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR2, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR3, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR4, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR5, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR6, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR7, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR8, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR9, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR10, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR11, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR12, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR13, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR14, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR15, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CX, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DH, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DI, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DIL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR0, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR1, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR2, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR3, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR4, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR5, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR6, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR7, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DX, -1, true ); | |
mapLLVMRegToDwarfReg(X86::EAX, 0, true ); | |
mapLLVMRegToDwarfReg(X86::EBP, 4, true ); | |
mapLLVMRegToDwarfReg(X86::EBX, 3, true ); | |
mapLLVMRegToDwarfReg(X86::ECX, 1, true ); | |
mapLLVMRegToDwarfReg(X86::EDI, 7, true ); | |
mapLLVMRegToDwarfReg(X86::EDX, 2, true ); | |
mapLLVMRegToDwarfReg(X86::EFLAGS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::EIP, 8, true ); | |
mapLLVMRegToDwarfReg(X86::EIZ, -1, true ); | |
mapLLVMRegToDwarfReg(X86::ES, -1, true ); | |
mapLLVMRegToDwarfReg(X86::ESI, 6, true ); | |
mapLLVMRegToDwarfReg(X86::ESP, 5, true ); | |
mapLLVMRegToDwarfReg(X86::FP0, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP1, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP2, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP3, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP4, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP5, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP6, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::GS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::IP, -1, true ); | |
mapLLVMRegToDwarfReg(X86::MM0, 29, true ); | |
mapLLVMRegToDwarfReg(X86::MM1, 30, true ); | |
mapLLVMRegToDwarfReg(X86::MM2, 31, true ); | |
mapLLVMRegToDwarfReg(X86::MM3, 32, true ); | |
mapLLVMRegToDwarfReg(X86::MM4, 33, true ); | |
mapLLVMRegToDwarfReg(X86::MM5, 34, true ); | |
mapLLVMRegToDwarfReg(X86::MM6, 35, true ); | |
mapLLVMRegToDwarfReg(X86::MM7, 36, true ); | |
mapLLVMRegToDwarfReg(X86::R8, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R8B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R8D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R8W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R9, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R9B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R9D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R9W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R10, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R10B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R10D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R10W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R11, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R11B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R11D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R11W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R12, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R12B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R12D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R12W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R13, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R13B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R13D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R13W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R14, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R14B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R14D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R14W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R15, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R15B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R15D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R15W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::RAX, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RBP, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RBX, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RCX, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RDI, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RDX, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RIP, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RIZ, -1, true ); | |
mapLLVMRegToDwarfReg(X86::RSI, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RSP, -2, true ); | |
mapLLVMRegToDwarfReg(X86::SI, -1, true ); | |
mapLLVMRegToDwarfReg(X86::SIL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::SP, -1, true ); | |
mapLLVMRegToDwarfReg(X86::SPL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::SS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::ST0, 12, true ); | |
mapLLVMRegToDwarfReg(X86::ST1, 13, true ); | |
mapLLVMRegToDwarfReg(X86::ST2, 14, true ); | |
mapLLVMRegToDwarfReg(X86::ST3, 15, true ); | |
mapLLVMRegToDwarfReg(X86::ST4, 16, true ); | |
mapLLVMRegToDwarfReg(X86::ST5, 17, true ); | |
mapLLVMRegToDwarfReg(X86::ST6, 18, true ); | |
mapLLVMRegToDwarfReg(X86::ST7, 19, true ); | |
mapLLVMRegToDwarfReg(X86::XMM0, 21, true ); | |
mapLLVMRegToDwarfReg(X86::XMM1, 22, true ); | |
mapLLVMRegToDwarfReg(X86::XMM2, 23, true ); | |
mapLLVMRegToDwarfReg(X86::XMM3, 24, true ); | |
mapLLVMRegToDwarfReg(X86::XMM4, 25, true ); | |
mapLLVMRegToDwarfReg(X86::XMM5, 26, true ); | |
mapLLVMRegToDwarfReg(X86::XMM6, 27, true ); | |
mapLLVMRegToDwarfReg(X86::XMM7, 28, true ); | |
mapLLVMRegToDwarfReg(X86::XMM8, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM9, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM10, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM11, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM12, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM13, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM14, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM15, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM0, 21, true ); | |
mapLLVMRegToDwarfReg(X86::YMM1, 22, true ); | |
mapLLVMRegToDwarfReg(X86::YMM2, 23, true ); | |
mapLLVMRegToDwarfReg(X86::YMM3, 24, true ); | |
mapLLVMRegToDwarfReg(X86::YMM4, 25, true ); | |
mapLLVMRegToDwarfReg(X86::YMM5, 26, true ); | |
mapLLVMRegToDwarfReg(X86::YMM6, 27, true ); | |
mapLLVMRegToDwarfReg(X86::YMM7, 28, true ); | |
mapLLVMRegToDwarfReg(X86::YMM8, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM9, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM10, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM11, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM12, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM13, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM14, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM15, -2, true ); | |
break; | |
case 2: | |
mapLLVMRegToDwarfReg(X86::AH, -1, true ); | |
mapLLVMRegToDwarfReg(X86::AL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::AX, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BH, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BP, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BPL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::BX, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CH, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR0, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR1, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR2, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR3, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR4, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR5, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR6, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR7, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR8, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR9, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR10, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR11, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR12, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR13, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR14, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CR15, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::CX, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DH, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DI, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DIL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR0, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR1, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR2, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR3, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR4, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR5, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR6, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DR7, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::DX, -1, true ); | |
mapLLVMRegToDwarfReg(X86::EAX, 0, true ); | |
mapLLVMRegToDwarfReg(X86::EBP, 5, true ); | |
mapLLVMRegToDwarfReg(X86::EBX, 3, true ); | |
mapLLVMRegToDwarfReg(X86::ECX, 1, true ); | |
mapLLVMRegToDwarfReg(X86::EDI, 7, true ); | |
mapLLVMRegToDwarfReg(X86::EDX, 2, true ); | |
mapLLVMRegToDwarfReg(X86::EFLAGS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::EIP, 8, true ); | |
mapLLVMRegToDwarfReg(X86::EIZ, -1, true ); | |
mapLLVMRegToDwarfReg(X86::ES, -1, true ); | |
mapLLVMRegToDwarfReg(X86::ESI, 6, true ); | |
mapLLVMRegToDwarfReg(X86::ESP, 4, true ); | |
mapLLVMRegToDwarfReg(X86::FP0, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP1, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP2, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP3, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP4, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP5, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FP6, -1, true ); | |
mapLLVMRegToDwarfReg(X86::FS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::GS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::IP, -1, true ); | |
mapLLVMRegToDwarfReg(X86::MM0, 29, true ); | |
mapLLVMRegToDwarfReg(X86::MM1, 30, true ); | |
mapLLVMRegToDwarfReg(X86::MM2, 31, true ); | |
mapLLVMRegToDwarfReg(X86::MM3, 32, true ); | |
mapLLVMRegToDwarfReg(X86::MM4, 33, true ); | |
mapLLVMRegToDwarfReg(X86::MM5, 34, true ); | |
mapLLVMRegToDwarfReg(X86::MM6, 35, true ); | |
mapLLVMRegToDwarfReg(X86::MM7, 36, true ); | |
mapLLVMRegToDwarfReg(X86::R8, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R8B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R8D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R8W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R9, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R9B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R9D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R9W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R10, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R10B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R10D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R10W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R11, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R11B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R11D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R11W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R12, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R12B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R12D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R12W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R13, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R13B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R13D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R13W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R14, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R14B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R14D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R14W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R15, -2, true ); | |
mapLLVMRegToDwarfReg(X86::R15B, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R15D, -1, true ); | |
mapLLVMRegToDwarfReg(X86::R15W, -1, true ); | |
mapLLVMRegToDwarfReg(X86::RAX, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RBP, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RBX, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RCX, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RDI, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RDX, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RIP, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RIZ, -1, true ); | |
mapLLVMRegToDwarfReg(X86::RSI, -2, true ); | |
mapLLVMRegToDwarfReg(X86::RSP, -2, true ); | |
mapLLVMRegToDwarfReg(X86::SI, -1, true ); | |
mapLLVMRegToDwarfReg(X86::SIL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::SP, -1, true ); | |
mapLLVMRegToDwarfReg(X86::SPL, -1, true ); | |
mapLLVMRegToDwarfReg(X86::SS, -1, true ); | |
mapLLVMRegToDwarfReg(X86::ST0, 11, true ); | |
mapLLVMRegToDwarfReg(X86::ST1, 12, true ); | |
mapLLVMRegToDwarfReg(X86::ST2, 13, true ); | |
mapLLVMRegToDwarfReg(X86::ST3, 14, true ); | |
mapLLVMRegToDwarfReg(X86::ST4, 15, true ); | |
mapLLVMRegToDwarfReg(X86::ST5, 16, true ); | |
mapLLVMRegToDwarfReg(X86::ST6, 17, true ); | |
mapLLVMRegToDwarfReg(X86::ST7, 18, true ); | |
mapLLVMRegToDwarfReg(X86::XMM0, 21, true ); | |
mapLLVMRegToDwarfReg(X86::XMM1, 22, true ); | |
mapLLVMRegToDwarfReg(X86::XMM2, 23, true ); | |
mapLLVMRegToDwarfReg(X86::XMM3, 24, true ); | |
mapLLVMRegToDwarfReg(X86::XMM4, 25, true ); | |
mapLLVMRegToDwarfReg(X86::XMM5, 26, true ); | |
mapLLVMRegToDwarfReg(X86::XMM6, 27, true ); | |
mapLLVMRegToDwarfReg(X86::XMM7, 28, true ); | |
mapLLVMRegToDwarfReg(X86::XMM8, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM9, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM10, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM11, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM12, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM13, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM14, -2, true ); | |
mapLLVMRegToDwarfReg(X86::XMM15, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM0, 21, true ); | |
mapLLVMRegToDwarfReg(X86::YMM1, 22, true ); | |
mapLLVMRegToDwarfReg(X86::YMM2, 23, true ); | |
mapLLVMRegToDwarfReg(X86::YMM3, 24, true ); | |
mapLLVMRegToDwarfReg(X86::YMM4, 25, true ); | |
mapLLVMRegToDwarfReg(X86::YMM5, 26, true ); | |
mapLLVMRegToDwarfReg(X86::YMM6, 27, true ); | |
mapLLVMRegToDwarfReg(X86::YMM7, 28, true ); | |
mapLLVMRegToDwarfReg(X86::YMM8, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM9, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM10, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM11, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM12, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM13, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM14, -2, true ); | |
mapLLVMRegToDwarfReg(X86::YMM15, -2, true ); | |
break; | |
} | |
} | |
} // End llvm namespace | |
#endif // GET_REGINFO_TARGET_DESC | |