< prev index next >
src/hotspot/share/adlc/formssel.cpp
Print this page
*** 917,927 ****
// Add parameters that "do not appear in match rule".
bool has_temp = false;
const char *name;
const char *kill_name = NULL;
for (_parameters.reset(); (name = _parameters.iter()) != NULL;) {
! OperandForm *opForm = (OperandForm*)_localNames[name];
Effect* e = NULL;
{
const Form* form = _effects[name];
e = form ? form->is_effect() : NULL;
--- 917,927 ----
// Add parameters that "do not appear in match rule".
bool has_temp = false;
const char *name;
const char *kill_name = NULL;
for (_parameters.reset(); (name = _parameters.iter()) != NULL;) {
! OpClassForm *opForm = (OpClassForm*)_localNames[name];
Effect* e = NULL;
{
const Form* form = _effects[name];
e = form ? form->is_effect() : NULL;
*** 934,944 ****
// uses so their operand numbering must directly follow the real
// inputs from the match rule. Fixing the numbering seems
// complex so simply enforce the 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 be at the end of the argument list\n",
_ident, kill->_ident, kill_name);
} else if (e->isa(Component::KILL) && !e->isa(Component::USE)) {
kill_name = name;
}
--- 934,944 ----
// uses so their operand numbering must directly follow the real
// inputs from the match rule. Fixing the numbering seems
// complex so simply enforce the restriction during parse.
if (kill_name != NULL &&
e->isa(Component::TEMP) && !e->isa(Component::DEF)) {
! OpClassForm* kill = (OpClassForm*)_localNames[kill_name];
globalAD->syntax_err(_linenum, "%s: %s %s must be at the end of the argument list\n",
_ident, kill->_ident, kill_name);
} else if (e->isa(Component::KILL) && !e->isa(Component::USE)) {
kill_name = name;
}
*** 2348,2358 ****
if (_matrule) _matrule->append_components(_localNames, _components);
// Add parameters that "do not appear in match rule".
const char *name;
for (_parameters.reset(); (name = _parameters.iter()) != NULL;) {
! OperandForm *opForm = (OperandForm*)_localNames[name];
if ( _components.operand_position(name) == -1 ) {
_components.insert(name, opForm->_ident, Component::INVALID, false);
}
}
--- 2348,2358 ----
if (_matrule) _matrule->append_components(_localNames, _components);
// Add parameters that "do not appear in match rule".
const char *name;
for (_parameters.reset(); (name = _parameters.iter()) != NULL;) {
! OpClassForm *opForm = (OpClassForm*)_localNames[name];
if ( _components.operand_position(name) == -1 ) {
_components.insert(name, opForm->_ident, Component::INVALID, false);
}
}
< prev index next >