6
6
7
7
include "llvm/Target/Target.td"
8
8
9
-
10
9
// INSTRINFO: #if defined(GET_INSTRINFO_MC_DESC) || defined(GET_INSTRINFO_CTOR_DTOR)
11
10
// INSTRINFO-NEXT: namespace {
12
11
// INSTRINFO-NEXT: enum RegClassByHwModeUses : uint16_t {
@@ -24,6 +23,33 @@ include "llvm/Target/Target.td"
24
23
// INSTRINFO: { YRegs_EvenIfRequired, 0|(1<<MCOI::LookupRegClassByHwMode), MCOI::OPERAND_REGISTER, 0 }, { XRegs_EvenIfRequired, 0|(1<<MCOI::LookupRegClassByHwMode), MCOI::OPERAND_REGISTER, 0 },
25
24
26
25
26
+ // INSTRINFO: extern const int16_t MyTargetRegClassByHwModeTables[4][3] = {
27
+ // INSTRINFO-NEXT: { // DefaultMode
28
+ // INSTRINFO-NEXT: MyTarget::PtrRegs32RegClassID,
29
+ // INSTRINFO-NEXT: MyTarget::XRegsRegClassID,
30
+ // INSTRINFO-NEXT: MyTarget::YRegsRegClassID,
31
+ // INSTRINFO-NEXT: },
32
+ // INSTRINFO-NEXT: { // EvenMode
33
+ // INSTRINFO-NEXT: -1, // Missing mode entry
34
+ // INSTRINFO-NEXT: MyTarget::XRegs_EvenRegClassID,
35
+ // INSTRINFO-NEXT: MyTarget::YRegs_EvenRegClassID,
36
+ // INSTRINFO-NEXT: },
37
+ // INSTRINFO-NEXT: { // OddMode
38
+ // INSTRINFO-NEXT: -1, // Missing mode entry
39
+ // INSTRINFO-NEXT: MyTarget::XRegs_OddRegClassID,
40
+ // INSTRINFO-NEXT: -1, // Missing mode entry
41
+ // INSTRINFO-NEXT: },
42
+ // INSTRINFO-NEXT: { // Ptr64
43
+ // INSTRINFO-NEXT: MyTarget::PtrRegs64RegClassID,
44
+ // INSTRINFO-NEXT: -1, // Missing mode entry
45
+ // INSTRINFO-NEXT: -1, // Missing mode entry
46
+ // INSTRINFO-NEXT: },
47
+ // INSTRINFO-NEXT: };
48
+
49
+ // INSTRINFO: static inline void InitMyTargetMCInstrInfo(
50
+ // INSTRINFO-NEXT: II->InitMCInstrInfo(MyTargetDescs.Insts, MyTargetInstrNameIndices, MyTargetInstrNameData, nullptr, nullptr, 321, &MyTargetRegClassByHwModeTables[0][0], 3);
51
+
52
+
27
53
28
54
// ASMMATCHER: enum MatchClassKind {
29
55
// ASMMATCHER: MCK_LAST_TOKEN = OptionalMatchClass,
0 commit comments