@@ -38,17 +38,6 @@ unsigned CodeGenInstAlias::ResultOperand::getMINumOperands() const {
38
38
return MIOpInfo->getNumArgs ();
39
39
}
40
40
41
- static const Record *getInitValueAsRegClass (const Init *V) {
42
- if (const auto *VDefInit = dyn_cast<DefInit>(V)) {
43
- const Record *R = VDefInit->getDef ();
44
- if (R->isSubClassOf (" RegisterClass" ))
45
- return R;
46
- if (R->isSubClassOf (" RegisterOperand" ))
47
- return R->getValueAsDef (" RegClass" );
48
- }
49
- return nullptr ;
50
- }
51
-
52
41
using ResultOperand = CodeGenInstAlias::ResultOperand;
53
42
54
43
static Expected<ResultOperand> matchSimpleOperand (const Init *Arg,
@@ -64,16 +53,12 @@ static Expected<ResultOperand> matchSimpleOperand(const Init *Arg,
64
53
const Record *ArgRec = ArgDef->getDef ();
65
54
66
55
// Match 'RegClass:$name' or 'RegOp:$name'.
67
- if (const Record *ArgRC = getInitValueAsRegClass (Arg)) {
68
- if (OpRC->isSubClassOf (" RegisterClass" )) {
69
- if (!T.getRegisterClass (OpRC).hasSubClass (&T.getRegisterClass (ArgRC)))
70
- return createStringError (
71
- " argument register class" + ArgRC->getName () +
72
- " is not a subclass of operand register class " +
73
- OpRC->getName ());
74
- }
75
- // FIXME: Do some validation on RegClassByHwMode
76
-
56
+ if (const Record *ArgRC = T.getInitValueAsRegClass (Arg)) {
57
+ if (!T.getRegisterClass (OpRC).hasSubClass (&T.getRegisterClass (ArgRC)))
58
+ return createStringError (
59
+ " argument register class" + ArgRC->getName () +
60
+ " is not a subclass of operand register class " +
61
+ OpRC->getName ());
77
62
if (!ArgName)
78
63
return createStringError (" register class argument must have a name" );
79
64
return ResultOperand::createRecord (ArgName->getAsUnquotedString (),
0 commit comments