Index: lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp =================================================================== --- lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp +++ lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp @@ -31,155 +31,54 @@ using namespace llvm; -static const MCPhysReg RRegs[32] = { - PPC::R0, PPC::R1, PPC::R2, PPC::R3, - PPC::R4, PPC::R5, PPC::R6, PPC::R7, - PPC::R8, PPC::R9, PPC::R10, PPC::R11, - PPC::R12, PPC::R13, PPC::R14, PPC::R15, - PPC::R16, PPC::R17, PPC::R18, PPC::R19, - PPC::R20, PPC::R21, PPC::R22, PPC::R23, - PPC::R24, PPC::R25, PPC::R26, PPC::R27, - PPC::R28, PPC::R29, PPC::R30, PPC::R31 -}; -static const MCPhysReg RRegsNoR0[32] = { - PPC::ZERO, - PPC::R1, PPC::R2, PPC::R3, - PPC::R4, PPC::R5, PPC::R6, PPC::R7, - PPC::R8, PPC::R9, PPC::R10, PPC::R11, - PPC::R12, PPC::R13, PPC::R14, PPC::R15, - PPC::R16, PPC::R17, PPC::R18, PPC::R19, - PPC::R20, PPC::R21, PPC::R22, PPC::R23, - PPC::R24, PPC::R25, PPC::R26, PPC::R27, - PPC::R28, PPC::R29, PPC::R30, PPC::R31 -}; -static const MCPhysReg XRegs[32] = { - PPC::X0, PPC::X1, PPC::X2, PPC::X3, - PPC::X4, PPC::X5, PPC::X6, PPC::X7, - PPC::X8, PPC::X9, PPC::X10, PPC::X11, - PPC::X12, PPC::X13, PPC::X14, PPC::X15, - PPC::X16, PPC::X17, PPC::X18, PPC::X19, - PPC::X20, PPC::X21, PPC::X22, PPC::X23, - PPC::X24, PPC::X25, PPC::X26, PPC::X27, - PPC::X28, PPC::X29, PPC::X30, PPC::X31 -}; -static const MCPhysReg XRegsNoX0[32] = { - PPC::ZERO8, - PPC::X1, PPC::X2, PPC::X3, - PPC::X4, PPC::X5, PPC::X6, PPC::X7, - PPC::X8, PPC::X9, PPC::X10, PPC::X11, - PPC::X12, PPC::X13, PPC::X14, PPC::X15, - PPC::X16, PPC::X17, PPC::X18, PPC::X19, - PPC::X20, PPC::X21, PPC::X22, PPC::X23, - PPC::X24, PPC::X25, PPC::X26, PPC::X27, - PPC::X28, PPC::X29, PPC::X30, PPC::X31 -}; -static const MCPhysReg FRegs[32] = { - PPC::F0, PPC::F1, PPC::F2, PPC::F3, - PPC::F4, PPC::F5, PPC::F6, PPC::F7, - PPC::F8, PPC::F9, PPC::F10, PPC::F11, - PPC::F12, PPC::F13, PPC::F14, PPC::F15, - PPC::F16, PPC::F17, PPC::F18, PPC::F19, - PPC::F20, PPC::F21, PPC::F22, PPC::F23, - PPC::F24, PPC::F25, PPC::F26, PPC::F27, - PPC::F28, PPC::F29, PPC::F30, PPC::F31 -}; -static const MCPhysReg SPERegs[32] = { - PPC::S0, PPC::S1, PPC::S2, PPC::S3, - PPC::S4, PPC::S5, PPC::S6, PPC::S7, - PPC::S8, PPC::S9, PPC::S10, PPC::S11, - PPC::S12, PPC::S13, PPC::S14, PPC::S15, - PPC::S16, PPC::S17, PPC::S18, PPC::S19, - PPC::S20, PPC::S21, PPC::S22, PPC::S23, - PPC::S24, PPC::S25, PPC::S26, PPC::S27, - PPC::S28, PPC::S29, PPC::S30, PPC::S31 -}; -static const MCPhysReg VFRegs[32] = { - PPC::VF0, PPC::VF1, PPC::VF2, PPC::VF3, - PPC::VF4, PPC::VF5, PPC::VF6, PPC::VF7, - PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, - PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, - PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, - PPC::VF20, PPC::VF21, PPC::VF22, PPC::VF23, - PPC::VF24, PPC::VF25, PPC::VF26, PPC::VF27, - PPC::VF28, PPC::VF29, PPC::VF30, PPC::VF31 -}; -static const MCPhysReg VRegs[32] = { - PPC::V0, PPC::V1, PPC::V2, PPC::V3, - PPC::V4, PPC::V5, PPC::V6, PPC::V7, - PPC::V8, PPC::V9, PPC::V10, PPC::V11, - PPC::V12, PPC::V13, PPC::V14, PPC::V15, - PPC::V16, PPC::V17, PPC::V18, PPC::V19, - PPC::V20, PPC::V21, PPC::V22, PPC::V23, - PPC::V24, PPC::V25, PPC::V26, PPC::V27, - PPC::V28, PPC::V29, PPC::V30, PPC::V31 -}; -static const MCPhysReg VSRegs[64] = { - PPC::VSL0, PPC::VSL1, PPC::VSL2, PPC::VSL3, - PPC::VSL4, PPC::VSL5, PPC::VSL6, PPC::VSL7, - PPC::VSL8, PPC::VSL9, PPC::VSL10, PPC::VSL11, - PPC::VSL12, PPC::VSL13, PPC::VSL14, PPC::VSL15, - PPC::VSL16, PPC::VSL17, PPC::VSL18, PPC::VSL19, - PPC::VSL20, PPC::VSL21, PPC::VSL22, PPC::VSL23, - PPC::VSL24, PPC::VSL25, PPC::VSL26, PPC::VSL27, - PPC::VSL28, PPC::VSL29, PPC::VSL30, PPC::VSL31, - - PPC::V0, PPC::V1, PPC::V2, PPC::V3, - PPC::V4, PPC::V5, PPC::V6, PPC::V7, - PPC::V8, PPC::V9, PPC::V10, PPC::V11, - PPC::V12, PPC::V13, PPC::V14, PPC::V15, - PPC::V16, PPC::V17, PPC::V18, PPC::V19, - PPC::V20, PPC::V21, PPC::V22, PPC::V23, - PPC::V24, PPC::V25, PPC::V26, PPC::V27, - PPC::V28, PPC::V29, PPC::V30, PPC::V31 -}; -static const MCPhysReg VSFRegs[64] = { - PPC::F0, PPC::F1, PPC::F2, PPC::F3, - PPC::F4, PPC::F5, PPC::F6, PPC::F7, - PPC::F8, PPC::F9, PPC::F10, PPC::F11, - PPC::F12, PPC::F13, PPC::F14, PPC::F15, - PPC::F16, PPC::F17, PPC::F18, PPC::F19, - PPC::F20, PPC::F21, PPC::F22, PPC::F23, - PPC::F24, PPC::F25, PPC::F26, PPC::F27, - PPC::F28, PPC::F29, PPC::F30, PPC::F31, - - PPC::VF0, PPC::VF1, PPC::VF2, PPC::VF3, - PPC::VF4, PPC::VF5, PPC::VF6, PPC::VF7, - PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, - PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, - PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, - PPC::VF20, PPC::VF21, PPC::VF22, PPC::VF23, - PPC::VF24, PPC::VF25, PPC::VF26, PPC::VF27, - PPC::VF28, PPC::VF29, PPC::VF30, PPC::VF31 -}; -static const MCPhysReg VSSRegs[64] = { - PPC::F0, PPC::F1, PPC::F2, PPC::F3, - PPC::F4, PPC::F5, PPC::F6, PPC::F7, - PPC::F8, PPC::F9, PPC::F10, PPC::F11, - PPC::F12, PPC::F13, PPC::F14, PPC::F15, - PPC::F16, PPC::F17, PPC::F18, PPC::F19, - PPC::F20, PPC::F21, PPC::F22, PPC::F23, - PPC::F24, PPC::F25, PPC::F26, PPC::F27, - PPC::F28, PPC::F29, PPC::F30, PPC::F31, - - PPC::VF0, PPC::VF1, PPC::VF2, PPC::VF3, - PPC::VF4, PPC::VF5, PPC::VF6, PPC::VF7, - PPC::VF8, PPC::VF9, PPC::VF10, PPC::VF11, - PPC::VF12, PPC::VF13, PPC::VF14, PPC::VF15, - PPC::VF16, PPC::VF17, PPC::VF18, PPC::VF19, - PPC::VF20, PPC::VF21, PPC::VF22, PPC::VF23, - PPC::VF24, PPC::VF25, PPC::VF26, PPC::VF27, - PPC::VF28, PPC::VF29, PPC::VF30, PPC::VF31 -}; -static unsigned QFRegs[32] = { - PPC::QF0, PPC::QF1, PPC::QF2, PPC::QF3, - PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7, - PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11, - PPC::QF12, PPC::QF13, PPC::QF14, PPC::QF15, - PPC::QF16, PPC::QF17, PPC::QF18, PPC::QF19, - PPC::QF20, PPC::QF21, PPC::QF22, PPC::QF23, - PPC::QF24, PPC::QF25, PPC::QF26, PPC::QF27, - PPC::QF28, PPC::QF29, PPC::QF30, PPC::QF31 -}; +#define PPC_REGS0_31(X) { X##0, X##1, X##2, X##3, \ + X##4, X##5, X##6, X##7, \ + X##8, X##9, X##10, X##11, \ + X##12, X##13, X##14, X##15, \ + X##16, X##17, X##18, X##19, \ + X##20, X##21, X##22, X##23, \ + X##24, X##25, X##26, X##27, \ + X##28, X##29, X##30, X##31 } + +#define PPC_REGS_NO0_31(Z, X) { Z, X##1, X##2, X##3, \ + X##4, X##5, X##6, X##7, \ + X##8, X##9, X##10, X##11, \ + X##12, X##13, X##14, X##15, \ + X##16, X##17, X##18, X##19, \ + X##20, X##21, X##22, X##23, \ + X##24, X##25, X##26, X##27, \ + X##28, X##29, X##30, X##31 } + +#define PPC_REGS_LO_HI(LO, HI) { LO##0, LO##1, LO##2, LO##3, \ + LO##4, LO##5, LO##6, LO##7, \ + LO##8, LO##9, LO##10, LO##11, \ + LO##12, LO##13, LO##14, LO##15, \ + LO##16, LO##17, LO##18, LO##19, \ + LO##20, LO##21, LO##22, LO##23, \ + LO##24, LO##25, LO##26, LO##27, \ + LO##28, LO##29, LO##30, LO##31, \ + HI##0, HI##1, HI##2, HI##3, \ + HI##4, HI##5, HI##6, HI##7, \ + HI##8, HI##9, HI##10, HI##11, \ + HI##12, HI##13, HI##14, HI##15, \ + HI##16, HI##17, HI##18, HI##19, \ + HI##20, HI##21, HI##22, HI##23, \ + HI##24, HI##25, HI##26, HI##27, \ + HI##28, HI##29, HI##30, HI##31 } + +static const MCPhysReg RRegs[32] = PPC_REGS0_31(PPC::R); +static const MCPhysReg XRegs[32] = PPC_REGS0_31(PPC::X); +static const MCPhysReg FRegs[32] = PPC_REGS0_31(PPC::F); +static const MCPhysReg SPERegs[32] = PPC_REGS0_31(PPC::S); +static const MCPhysReg VFRegs[32] = PPC_REGS0_31(PPC::VF); +static const MCPhysReg VRegs[32] = PPC_REGS0_31(PPC::V); +static const MCPhysReg QFRegs[32] = PPC_REGS0_31(PPC::QF); +static const MCPhysReg RRegsNoR0[32] = PPC_REGS_NO0_31(PPC::ZERO, PPC::R); +static const MCPhysReg XRegsNoX0[32] = PPC_REGS_NO0_31(PPC::ZERO8, PPC::X); +static const MCPhysReg VSRegs[64] = PPC_REGS_LO_HI(PPC::VSL, PPC::V); +static const MCPhysReg VSFRegs[64] = PPC_REGS_LO_HI(PPC::F, PPC::VF); +static const MCPhysReg VSSRegs[64] = PPC_REGS_LO_HI(PPC::F, PPC::VF); + static const MCPhysReg CRBITRegs[32] = { PPC::CR0LT, PPC::CR0GT, PPC::CR0EQ, PPC::CR0UN, PPC::CR1LT, PPC::CR1GT, PPC::CR1EQ, PPC::CR1UN,