# HG changeset patch # User never # Date 1235696241 28800 # Node ID c08c265de2f598563aa7c1655ad80a32a4cd6990 # Parent 268ea58ed7752895d4a7dac4add90ad7739416e6 6810855: KILL vs. TEMP ordering restrictions are too strong Reviewed-by: kvn diff -r 268ea58ed775 -r c08c265de2f5 hotspot/src/share/vm/adlc/formssel.cpp --- a/hotspot/src/share/vm/adlc/formssel.cpp Thu Feb 26 14:26:02 2009 -0800 +++ b/hotspot/src/share/vm/adlc/formssel.cpp Thu Feb 26 16:57:21 2009 -0800 @@ -858,19 +858,7 @@ 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)) { - 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)) { + } else if (e->isa(Component::KILL) && !e->isa(Component::USE)) { kill_name = name; } }