6810855: KILL vs. TEMP ordering restrictions are too strong
authornever
Thu, 26 Feb 2009 16:57:21 -0800
changeset 2128 c08c265de2f5
parent 2127 268ea58ed775
child 2129 e810a33b5c67
6810855: KILL vs. TEMP ordering restrictions are too strong Reviewed-by: kvn
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;
       }
     }