mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-19 16:35:10 +00:00
Use uint16_t to store registers and opcode in static tables in the target specific backends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152537 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
048e9bdbeb
commit
b78ca42384
@ -99,8 +99,8 @@ namespace {
|
||||
// Entries for NEON load/store information table. The table is sorted by
|
||||
// PseudoOpc for fast binary-search lookups.
|
||||
struct NEONLdStTableEntry {
|
||||
unsigned PseudoOpc;
|
||||
unsigned RealOpc;
|
||||
uint16_t PseudoOpc;
|
||||
uint16_t RealOpc;
|
||||
bool IsLoad;
|
||||
bool isUpdating;
|
||||
bool hasWritebackOperand;
|
||||
@ -325,7 +325,7 @@ static const NEONLdStTableEntry NEONLdStTable[] = {
|
||||
/// LookupNEONLdSt - Search the NEONLdStTable for information about a NEON
|
||||
/// load or store pseudo instruction.
|
||||
static const NEONLdStTableEntry *LookupNEONLdSt(unsigned Opcode) {
|
||||
unsigned NumEntries = array_lengthof(NEONLdStTable);
|
||||
const unsigned NumEntries = array_lengthof(NEONLdStTable);
|
||||
|
||||
#ifndef NDEBUG
|
||||
// Make sure the table is sorted.
|
||||
|
@ -849,7 +849,7 @@ extern "C" void LLVMInitializeARMDisassembler() {
|
||||
createThumbDisassembler);
|
||||
}
|
||||
|
||||
static const unsigned GPRDecoderTable[] = {
|
||||
static const uint16_t GPRDecoderTable[] = {
|
||||
ARM::R0, ARM::R1, ARM::R2, ARM::R3,
|
||||
ARM::R4, ARM::R5, ARM::R6, ARM::R7,
|
||||
ARM::R8, ARM::R9, ARM::R10, ARM::R11,
|
||||
@ -916,7 +916,7 @@ static DecodeStatus DecoderGPRRegisterClass(llvm::MCInst &Inst, unsigned RegNo,
|
||||
return DecodeGPRRegisterClass(Inst, RegNo, Address, Decoder);
|
||||
}
|
||||
|
||||
static const unsigned SPRDecoderTable[] = {
|
||||
static const uint16_t SPRDecoderTable[] = {
|
||||
ARM::S0, ARM::S1, ARM::S2, ARM::S3,
|
||||
ARM::S4, ARM::S5, ARM::S6, ARM::S7,
|
||||
ARM::S8, ARM::S9, ARM::S10, ARM::S11,
|
||||
@ -937,7 +937,7 @@ static DecodeStatus DecodeSPRRegisterClass(llvm::MCInst &Inst, unsigned RegNo,
|
||||
return MCDisassembler::Success;
|
||||
}
|
||||
|
||||
static const unsigned DPRDecoderTable[] = {
|
||||
static const uint16_t DPRDecoderTable[] = {
|
||||
ARM::D0, ARM::D1, ARM::D2, ARM::D3,
|
||||
ARM::D4, ARM::D5, ARM::D6, ARM::D7,
|
||||
ARM::D8, ARM::D9, ARM::D10, ARM::D11,
|
||||
@ -973,7 +973,7 @@ DecodeDPR_VFP2RegisterClass(llvm::MCInst &Inst, unsigned RegNo,
|
||||
return DecodeDPRRegisterClass(Inst, RegNo, Address, Decoder);
|
||||
}
|
||||
|
||||
static const unsigned QPRDecoderTable[] = {
|
||||
static const uint16_t QPRDecoderTable[] = {
|
||||
ARM::Q0, ARM::Q1, ARM::Q2, ARM::Q3,
|
||||
ARM::Q4, ARM::Q5, ARM::Q6, ARM::Q7,
|
||||
ARM::Q8, ARM::Q9, ARM::Q10, ARM::Q11,
|
||||
@ -992,7 +992,7 @@ static DecodeStatus DecodeQPRRegisterClass(llvm::MCInst &Inst, unsigned RegNo,
|
||||
return MCDisassembler::Success;
|
||||
}
|
||||
|
||||
static const unsigned DPairDecoderTable[] = {
|
||||
static const uint16_t DPairDecoderTable[] = {
|
||||
ARM::Q0, ARM::D1_D2, ARM::Q1, ARM::D3_D4, ARM::Q2, ARM::D5_D6,
|
||||
ARM::Q3, ARM::D7_D8, ARM::Q4, ARM::D9_D10, ARM::Q5, ARM::D11_D12,
|
||||
ARM::Q6, ARM::D13_D14, ARM::Q7, ARM::D15_D16, ARM::Q8, ARM::D17_D18,
|
||||
@ -1011,7 +1011,7 @@ static DecodeStatus DecodeDPairRegisterClass(llvm::MCInst &Inst, unsigned RegNo,
|
||||
return MCDisassembler::Success;
|
||||
}
|
||||
|
||||
static const unsigned DPairSpacedDecoderTable[] = {
|
||||
static const uint16_t DPairSpacedDecoderTable[] = {
|
||||
ARM::D0_D2, ARM::D1_D3, ARM::D2_D4, ARM::D3_D5,
|
||||
ARM::D4_D6, ARM::D5_D7, ARM::D6_D8, ARM::D7_D9,
|
||||
ARM::D8_D10, ARM::D9_D11, ARM::D10_D12, ARM::D11_D13,
|
||||
|
@ -39,9 +39,9 @@ namespace {
|
||||
/// ReduceTable - A static table with information on mapping from wide
|
||||
/// opcodes to narrow
|
||||
struct ReduceEntry {
|
||||
unsigned WideOpc; // Wide opcode
|
||||
unsigned NarrowOpc1; // Narrow opcode to transform to
|
||||
unsigned NarrowOpc2; // Narrow opcode when it's two-address
|
||||
uint16_t WideOpc; // Wide opcode
|
||||
uint16_t NarrowOpc1; // Narrow opcode to transform to
|
||||
uint16_t NarrowOpc2; // Narrow opcode when it's two-address
|
||||
uint8_t Imm1Limit; // Limit of immediate field (bits)
|
||||
uint8_t Imm2Limit; // Limit of immediate field when it's two-address
|
||||
unsigned LowRegs1 : 1; // Only possible if low-registers are used
|
||||
|
@ -1216,7 +1216,7 @@ SPUTargetLowering::LowerFormalArguments(SDValue Chain,
|
||||
if (isVarArg) {
|
||||
// FIXME: we should be able to query the argument registers from
|
||||
// tablegen generated code.
|
||||
static const unsigned ArgRegs[] = {
|
||||
static const uint16_t ArgRegs[] = {
|
||||
SPU::R3, SPU::R4, SPU::R5, SPU::R6, SPU::R7, SPU::R8, SPU::R9,
|
||||
SPU::R10, SPU::R11, SPU::R12, SPU::R13, SPU::R14, SPU::R15, SPU::R16,
|
||||
SPU::R17, SPU::R18, SPU::R19, SPU::R20, SPU::R21, SPU::R22, SPU::R23,
|
||||
@ -1230,7 +1230,7 @@ SPUTargetLowering::LowerFormalArguments(SDValue Chain,
|
||||
SPU::R73, SPU::R74, SPU::R75, SPU::R76, SPU::R77, SPU::R78, SPU::R79
|
||||
};
|
||||
// size of ArgRegs array
|
||||
unsigned NumArgRegs = 77;
|
||||
const unsigned NumArgRegs = 77;
|
||||
|
||||
// We will spill (79-3)+1 registers to the stack
|
||||
SmallVector<SDValue, 79-3+1> MemOps;
|
||||
|
@ -34,9 +34,9 @@ extern const MCInstrDesc MBlazeInsts[];
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
const unsigned UNSUPPORTED = -1;
|
||||
const uint16_t UNSUPPORTED = -1;
|
||||
|
||||
static const unsigned mblazeBinary2Opcode[] = {
|
||||
static const uint16_t mblazeBinary2Opcode[] = {
|
||||
MBlaze::ADD, MBlaze::RSUB, MBlaze::ADDC, MBlaze::RSUBC, //00,01,02,03
|
||||
MBlaze::ADDK, MBlaze::RSUBK, MBlaze::ADDKC, MBlaze::RSUBKC, //04,05,06,07
|
||||
MBlaze::ADDI, MBlaze::RSUBI, MBlaze::ADDIC, MBlaze::RSUBIC, //08,09,0A,0B
|
||||
|
@ -83,12 +83,12 @@ MipsRegisterInfo::getCallPreservedMask(CallingConv::ID) const
|
||||
|
||||
BitVector MipsRegisterInfo::
|
||||
getReservedRegs(const MachineFunction &MF) const {
|
||||
static const unsigned ReservedCPURegs[] = {
|
||||
static const uint16_t ReservedCPURegs[] = {
|
||||
Mips::ZERO, Mips::AT, Mips::K0, Mips::K1,
|
||||
Mips::SP, Mips::FP, Mips::RA
|
||||
};
|
||||
|
||||
static const unsigned ReservedCPU64Regs[] = {
|
||||
static const uint16_t ReservedCPU64Regs[] = {
|
||||
Mips::ZERO_64, Mips::AT_64, Mips::K0_64, Mips::K1_64,
|
||||
Mips::SP_64, Mips::FP_64, Mips::RA_64
|
||||
};
|
||||
|
@ -38,7 +38,7 @@ using namespace llvm;
|
||||
|
||||
/// VRRegNo - Map from a numbered VR register to its enum value.
|
||||
///
|
||||
static const unsigned short VRRegNo[] = {
|
||||
static const uint16_t VRRegNo[] = {
|
||||
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,
|
||||
|
@ -1598,8 +1598,8 @@ static bool CC_PPC_SVR4_Custom_AlignFPArgRegs(unsigned &ValNo, MVT &ValVT,
|
||||
|
||||
/// GetFPR - Get the set of FP registers that should be allocated for arguments,
|
||||
/// on Darwin.
|
||||
static const unsigned *GetFPR() {
|
||||
static const unsigned FPR[] = {
|
||||
static const uint16_t *GetFPR() {
|
||||
static const uint16_t FPR[] = {
|
||||
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
|
||||
};
|
||||
@ -1879,18 +1879,18 @@ PPCTargetLowering::LowerFormalArguments_Darwin(
|
||||
// Area that is at least reserved in caller of this function.
|
||||
unsigned MinReservedArea = ArgOffset;
|
||||
|
||||
static const unsigned GPR_32[] = { // 32-bit registers.
|
||||
static const uint16_t GPR_32[] = { // 32-bit registers.
|
||||
PPC::R3, PPC::R4, PPC::R5, PPC::R6,
|
||||
PPC::R7, PPC::R8, PPC::R9, PPC::R10,
|
||||
};
|
||||
static const unsigned GPR_64[] = { // 64-bit registers.
|
||||
static const uint16_t GPR_64[] = { // 64-bit registers.
|
||||
PPC::X3, PPC::X4, PPC::X5, PPC::X6,
|
||||
PPC::X7, PPC::X8, PPC::X9, PPC::X10,
|
||||
};
|
||||
|
||||
static const unsigned *FPR = GetFPR();
|
||||
static const uint16_t *FPR = GetFPR();
|
||||
|
||||
static const unsigned VR[] = {
|
||||
static const uint16_t VR[] = {
|
||||
PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8,
|
||||
PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13
|
||||
};
|
||||
@ -1901,7 +1901,7 @@ PPCTargetLowering::LowerFormalArguments_Darwin(
|
||||
|
||||
unsigned GPR_idx = 0, FPR_idx = 0, VR_idx = 0;
|
||||
|
||||
const unsigned *GPR = isPPC64 ? GPR_64 : GPR_32;
|
||||
const uint16_t *GPR = isPPC64 ? GPR_64 : GPR_32;
|
||||
|
||||
// In 32-bit non-varargs functions, the stack space for vectors is after the
|
||||
// stack space for non-vectors. We do not use this space unless we have
|
||||
@ -3147,17 +3147,17 @@ PPCTargetLowering::LowerCall_Darwin(SDValue Chain, SDValue Callee,
|
||||
unsigned ArgOffset = PPCFrameLowering::getLinkageSize(isPPC64, true);
|
||||
unsigned GPR_idx = 0, FPR_idx = 0, VR_idx = 0;
|
||||
|
||||
static const unsigned GPR_32[] = { // 32-bit registers.
|
||||
static const uint16_t GPR_32[] = { // 32-bit registers.
|
||||
PPC::R3, PPC::R4, PPC::R5, PPC::R6,
|
||||
PPC::R7, PPC::R8, PPC::R9, PPC::R10,
|
||||
};
|
||||
static const unsigned GPR_64[] = { // 64-bit registers.
|
||||
static const uint16_t GPR_64[] = { // 64-bit registers.
|
||||
PPC::X3, PPC::X4, PPC::X5, PPC::X6,
|
||||
PPC::X7, PPC::X8, PPC::X9, PPC::X10,
|
||||
};
|
||||
static const unsigned *FPR = GetFPR();
|
||||
static const uint16_t *FPR = GetFPR();
|
||||
|
||||
static const unsigned VR[] = {
|
||||
static const uint16_t VR[] = {
|
||||
PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8,
|
||||
PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13
|
||||
};
|
||||
@ -3165,7 +3165,7 @@ PPCTargetLowering::LowerCall_Darwin(SDValue Chain, SDValue Callee,
|
||||
const unsigned NumFPRs = 13;
|
||||
const unsigned NumVRs = array_lengthof(VR);
|
||||
|
||||
const unsigned *GPR = isPPC64 ? GPR_64 : GPR_32;
|
||||
const uint16_t *GPR = isPPC64 ? GPR_64 : GPR_32;
|
||||
|
||||
SmallVector<std::pair<unsigned, SDValue>, 8> RegsToPass;
|
||||
SmallVector<TailCallArgumentInfo, 8> TailCallArguments;
|
||||
|
@ -59,19 +59,19 @@ FunctionPass *llvm::createSparcFPMoverPass(TargetMachine &tm) {
|
||||
/// registers that correspond to it.
|
||||
static void getDoubleRegPair(unsigned DoubleReg, unsigned &EvenReg,
|
||||
unsigned &OddReg) {
|
||||
static const unsigned EvenHalvesOfPairs[] = {
|
||||
static const uint16_t EvenHalvesOfPairs[] = {
|
||||
SP::F0, SP::F2, SP::F4, SP::F6, SP::F8, SP::F10, SP::F12, SP::F14,
|
||||
SP::F16, SP::F18, SP::F20, SP::F22, SP::F24, SP::F26, SP::F28, SP::F30
|
||||
};
|
||||
static const unsigned OddHalvesOfPairs[] = {
|
||||
static const uint16_t OddHalvesOfPairs[] = {
|
||||
SP::F1, SP::F3, SP::F5, SP::F7, SP::F9, SP::F11, SP::F13, SP::F15,
|
||||
SP::F17, SP::F19, SP::F21, SP::F23, SP::F25, SP::F27, SP::F29, SP::F31
|
||||
};
|
||||
static const unsigned DoubleRegsInOrder[] = {
|
||||
static const uint16_t DoubleRegsInOrder[] = {
|
||||
SP::D0, SP::D1, SP::D2, SP::D3, SP::D4, SP::D5, SP::D6, SP::D7, SP::D8,
|
||||
SP::D9, SP::D10, SP::D11, SP::D12, SP::D13, SP::D14, SP::D15
|
||||
};
|
||||
for (unsigned i = 0; i < sizeof(DoubleRegsInOrder)/sizeof(unsigned); ++i)
|
||||
for (unsigned i = 0; i < array_lengthof(DoubleRegsInOrder); ++i)
|
||||
if (DoubleRegsInOrder[i] == DoubleReg) {
|
||||
EvenReg = EvenHalvesOfPairs[i];
|
||||
OddReg = OddHalvesOfPairs[i];
|
||||
|
Loading…
x
Reference in New Issue
Block a user