mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 11:04:34 +02:00
7077312: Provide a CALL effect for instruct declaration in the ad file
Abstracted way to declare that the MachNode has the effect of a call (kills caller save registers, preserves callee save registers) Reviewed-by: twisti, never
This commit is contained in:
parent
89d4179a4b
commit
9d8e44db59
11 changed files with 93 additions and 36 deletions
|
@ -31,7 +31,8 @@ InstructForm::InstructForm(const char *id, bool ideal_only)
|
|||
: _ident(id), _ideal_only(ideal_only),
|
||||
_localNames(cmpstr, hashstr, Form::arena),
|
||||
_effects(cmpstr, hashstr, Form::arena),
|
||||
_is_mach_constant(false)
|
||||
_is_mach_constant(false),
|
||||
_has_call(false)
|
||||
{
|
||||
_ftype = Form::INS;
|
||||
|
||||
|
@ -62,7 +63,8 @@ InstructForm::InstructForm(const char *id, InstructForm *instr, MatchRule *rule)
|
|||
: _ident(id), _ideal_only(false),
|
||||
_localNames(instr->_localNames),
|
||||
_effects(instr->_effects),
|
||||
_is_mach_constant(false)
|
||||
_is_mach_constant(false),
|
||||
_has_call(false)
|
||||
{
|
||||
_ftype = Form::INS;
|
||||
|
||||
|
@ -1754,6 +1756,7 @@ static int effect_lookup(const char *name) {
|
|||
if(!strcmp(name, "USE_KILL")) return Component::USE_KILL;
|
||||
if(!strcmp(name, "TEMP")) return Component::TEMP;
|
||||
if(!strcmp(name, "INVALID")) return Component::INVALID;
|
||||
if(!strcmp(name, "CALL")) return Component::CALL;
|
||||
assert( false,"Invalid effect name specified\n");
|
||||
return Component::INVALID;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue