changeset 640:ed6404fac86b

6810855: KILL vs. TEMP ordering restrictions are too strong Reviewed-by: kvn
author never
date Thu, 26 Feb 2009 16:57:21 -0800
parents 523ded093c31
children dbbe28fc66b5
files src/share/vm/adlc/formssel.cpp
diffstat 1 files changed, 1 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/adlc/formssel.cpp	Thu Feb 26 14:26:02 2009 -0800
+++ b/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;
       }
     }