blob: 1f4e99554295e2e9a587adf92837cc5f3b6a0268 [file] [log] [blame]
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|* *|
|* Register Bank Source Fragments *|
|* *|
|* Automatically generated file, do not edit! *|
|* *|
\*===----------------------------------------------------------------------===*/
#ifdef GET_REGBANK_DECLARATIONS
#undef GET_REGBANK_DECLARATIONS
namespace llvm {
namespace X86 {
enum : unsigned {
InvalidRegBankID = ~0u,
GPRRegBankID = 0,
VECRRegBankID = 1,
NumRegisterBanks,
};
} // end namespace X86
} // end namespace llvm
#endif // GET_REGBANK_DECLARATIONS
#ifdef GET_TARGET_REGBANK_CLASS
#undef GET_TARGET_REGBANK_CLASS
private:
static RegisterBank *RegBanks[];
protected:
X86GenRegisterBankInfo();
#endif // GET_TARGET_REGBANK_CLASS
#ifdef GET_TARGET_REGBANK_IMPL
#undef GET_TARGET_REGBANK_IMPL
namespace llvm {
namespace X86 {
const uint32_t GPRRegBankCoverageData[] = {
// 0-31
(1u << (X86::GR8RegClassID - 0)) |
(1u << (X86::GR16RegClassID - 0)) |
(1u << (X86::LOW32_ADDR_ACCESS_RBPRegClassID - 0)) |
(1u << (X86::LOW32_ADDR_ACCESSRegClassID - 0)) |
(1u << (X86::GR8_NOREXRegClassID - 0)) |
(1u << (X86::GR8_ABCD_HRegClassID - 0)) |
(1u << (X86::GR8_ABCD_LRegClassID - 0)) |
(1u << (X86::GR16_NOREXRegClassID - 0)) |
(1u << (X86::GR16_ABCDRegClassID - 0)) |
0,
// 32-63
(1u << (X86::LOW32_ADDR_ACCESS_RBP_with_sub_8bitRegClassID - 32)) |
(1u << (X86::GR32RegClassID - 32)) |
(1u << (X86::GR32_NOSPRegClassID - 32)) |
(1u << (X86::LOW32_ADDR_ACCESS_RBP_with_sub_16bit_in_GR16_NOREXRegClassID - 32)) |
(1u << (X86::GR32_NOREXRegClassID - 32)) |
(1u << (X86::GR32_NOREX_NOSPRegClassID - 32)) |
(1u << (X86::GR32_ABCDRegClassID - 32)) |
(1u << (X86::GR32_TCRegClassID - 32)) |
(1u << (X86::GR32_ABCD_and_GR32_TCRegClassID - 32)) |
(1u << (X86::GR32_ADRegClassID - 32)) |
(1u << (X86::GR32_DCRegClassID - 32)) |
(1u << (X86::GR32_AD_and_GR32_DCRegClassID - 32)) |
(1u << (X86::GR32_CBRegClassID - 32)) |
(1u << (X86::GR32_CB_and_GR32_DCRegClassID - 32)) |
(1u << (X86::GR32_SIDIRegClassID - 32)) |
(1u << (X86::GR32_BSIRegClassID - 32)) |
(1u << (X86::GR32_BSI_and_GR32_SIDIRegClassID - 32)) |
(1u << (X86::GR32_DIBPRegClassID - 32)) |
(1u << (X86::GR32_DIBP_and_GR32_SIDIRegClassID - 32)) |
(1u << (X86::GR32_ABCD_and_GR32_BSIRegClassID - 32)) |
(1u << (X86::GR32_BPSPRegClassID - 32)) |
(1u << (X86::GR32_BPSP_and_GR32_DIBPRegClassID - 32)) |
(1u << (X86::GR32_BPSP_and_GR32_TCRegClassID - 32)) |
0,
// 64-95
(1u << (X86::GR64RegClassID - 64)) |
(1u << (X86::GR64_with_sub_8bitRegClassID - 64)) |
(1u << (X86::GR64_NOSPRegClassID - 64)) |
(1u << (X86::GR64PLTSafeRegClassID - 64)) |
(1u << (X86::GR64PLTSafe_and_GR64_TCRegClassID - 64)) |
(1u << (X86::GR64PLTSafe_and_GR64_TCW64RegClassID - 64)) |
(1u << (X86::GR64_NOREX_and_GR64PLTSafe_and_GR64_TCRegClassID - 64)) |
(1u << (X86::GR64_NOREX_NOSPRegClassID - 64)) |
(1u << (X86::GR64_ABCDRegClassID - 64)) |
(1u << (X86::GR64_NOSP_and_GR64_TCRegClassID - 64)) |
(1u << (X86::GR64_TC_and_GR64_NOSP_and_GR64_TCW64RegClassID - 64)) |
(1u << (X86::GR64_NOSP_and_GR64_TCW64RegClassID - 64)) |
(1u << (X86::GR64_TC_with_sub_8bitRegClassID - 64)) |
(1u << (X86::GR64_TCW64_and_GR64_TC_with_sub_8bitRegClassID - 64)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_TCRegClassID - 64)) |
(1u << (X86::GR64_TC_and_GR64_with_sub_16bit_in_GR16_NOREXRegClassID - 64)) |
(1u << (X86::GR64_TCW64_with_sub_8bitRegClassID - 64)) |
(1u << (X86::GR64_with_sub_16bit_in_GR16_NOREXRegClassID - 64)) |
(1u << (X86::GR64_TCRegClassID - 64)) |
(1u << (X86::GR64_TC_and_GR64_TCW64RegClassID - 64)) |
(1u << (X86::GR64_NOREX_and_GR64_TCW64RegClassID - 64)) |
(1u << (X86::GR64_NOREX_and_GR64_TCRegClassID - 64)) |
(1u << (X86::GR64_NOREXRegClassID - 64)) |
(1u << (X86::GR64_TCW64RegClassID - 64)) |
0,
// 96-127
(1u << (X86::GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_TCRegClassID - 96)) |
(1u << (X86::GR64_ADRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_AD_and_GR32_DCRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_DCRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_CB_and_GR32_DCRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_SIDIRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_BSI_and_GR32_SIDIRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_DIBP_and_GR32_SIDIRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_CBRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_BSIRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_BSIRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_DIBPRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_DIBPRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_BPSP_and_GR32_TCRegClassID - 96)) |
(1u << (X86::GR64_with_sub_32bit_in_GR32_BPSPRegClassID - 96)) |
(1u << (X86::GR64_and_LOW32_ADDR_ACCESSRegClassID - 96)) |
(1u << (X86::GR64_and_LOW32_ADDR_ACCESS_RBPRegClassID - 96)) |
0,
};
const uint32_t VECRRegBankCoverageData[] = {
// 0-31
(1u << (X86::FR16XRegClassID - 0)) |
(1u << (X86::FR32XRegClassID - 0)) |
(1u << (X86::FR16RegClassID - 0)) |
0,
// 32-63
(1u << (X86::FR32RegClassID - 32)) |
0,
// 64-95
(1u << (X86::FR64XRegClassID - 64)) |
(1u << (X86::FR64RegClassID - 64)) |
0,
// 96-127
(1u << (X86::VR512RegClassID - 96)) |
(1u << (X86::VR128XRegClassID - 96)) |
(1u << (X86::VR256XRegClassID - 96)) |
(1u << (X86::VR512_0_15RegClassID - 96)) |
(1u << (X86::VR128RegClassID - 96)) |
(1u << (X86::VR256RegClassID - 96)) |
0,
};
RegisterBank GPRRegBank(/* ID */ X86::GPRRegBankID, /* Name */ "GPR", /* Size */ 64, /* CoveredRegClasses */ GPRRegBankCoverageData, /* NumRegClasses */ 123);
RegisterBank VECRRegBank(/* ID */ X86::VECRRegBankID, /* Name */ "VECR", /* Size */ 512, /* CoveredRegClasses */ VECRRegBankCoverageData, /* NumRegClasses */ 123);
} // end namespace X86
RegisterBank *X86GenRegisterBankInfo::RegBanks[] = {
&X86::GPRRegBank,
&X86::VECRRegBank,
};
X86GenRegisterBankInfo::X86GenRegisterBankInfo()
: RegisterBankInfo(RegBanks, X86::NumRegisterBanks) {
// Assert that RegBank indices match their ID's
#ifndef NDEBUG
for (auto RB : enumerate(RegBanks))
assert(RB.index() == RB.value()->getID() && "Index != ID");
#endif // NDEBUG
}
} // end namespace llvm
#endif // GET_TARGET_REGBANK_IMPL