hotspot/src/share/vm/adlc/formssel.cpp
changeset 2128 c08c265de2f5
parent 2125 592f115cc6b4
child 2129 e810a33b5c67
equal deleted inserted replaced
2127:268ea58ed775 2128:c08c265de2f5
   856       if (kill_name != NULL &&
   856       if (kill_name != NULL &&
   857           e->isa(Component::TEMP) && !e->isa(Component::DEF)) {
   857           e->isa(Component::TEMP) && !e->isa(Component::DEF)) {
   858         OperandForm* kill = (OperandForm*)_localNames[kill_name];
   858         OperandForm* kill = (OperandForm*)_localNames[kill_name];
   859         globalAD->syntax_err(_linenum, "%s: %s %s must be at the end of the argument list\n",
   859         globalAD->syntax_err(_linenum, "%s: %s %s must be at the end of the argument list\n",
   860                              _ident, kill->_ident, kill_name);
   860                              _ident, kill->_ident, kill_name);
   861       } else if (e->isa(Component::KILL)) {
   861       } else if (e->isa(Component::KILL) && !e->isa(Component::USE)) {
   862         kill_name = name;
       
   863       }
       
   864 
       
   865       // TEMPs are real uses and need to be among the first parameters
       
   866       // listed, otherwise the numbering of operands and inputs gets
       
   867       // screwy, so enforce this restriction during parse.
       
   868       if (kill_name != NULL &&
       
   869           e->isa(Component::TEMP) && !e->isa(Component::DEF)) {
       
   870         OperandForm* kill = (OperandForm*)_localNames[kill_name];
       
   871         globalAD->syntax_err(_linenum, "%s: %s %s must follow %s %s in the argument list\n",
       
   872                              _ident, kill->_ident, kill_name, opForm->_ident, name);
       
   873       } else if (e->isa(Component::KILL)) {
       
   874         kill_name = name;
   862         kill_name = name;
   875       }
   863       }
   876     }
   864     }
   877 
   865 
   878     const Component *component  = _components.search(name);
   866     const Component *component  = _components.search(name);