6810855: KILL vs. TEMP ordering restrictions are too strong
Reviewed-by: kvn
This commit is contained in:
parent
9b31d58b98
commit
114da9bcfc
@ -858,19 +858,7 @@ void InstructForm::build_components() {
|
|||||||
OperandForm* kill = (OperandForm*)_localNames[kill_name];
|
OperandForm* kill = (OperandForm*)_localNames[kill_name];
|
||||||
globalAD->syntax_err(_linenum, "%s: %s %s must be at the end of the argument list\n",
|
globalAD->syntax_err(_linenum, "%s: %s %s must be at the end of the argument list\n",
|
||||||
_ident, kill->_ident, kill_name);
|
_ident, kill->_ident, kill_name);
|
||||||
} else if (e->isa(Component::KILL)) {
|
} else if (e->isa(Component::KILL) && !e->isa(Component::USE)) {
|
||||||
kill_name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
// TEMPs are real uses and need to be among the first parameters
|
|
||||||
// listed, otherwise the numbering of operands and inputs gets
|
|
||||||
// screwy, so enforce this restriction during parse.
|
|
||||||
if (kill_name != NULL &&
|
|
||||||
e->isa(Component::TEMP) && !e->isa(Component::DEF)) {
|
|
||||||
OperandForm* kill = (OperandForm*)_localNames[kill_name];
|
|
||||||
globalAD->syntax_err(_linenum, "%s: %s %s must follow %s %s in the argument list\n",
|
|
||||||
_ident, kill->_ident, kill_name, opForm->_ident, name);
|
|
||||||
} else if (e->isa(Component::KILL)) {
|
|
||||||
kill_name = name;
|
kill_name = name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user