8293844: C2: Verify Location::{oop,normal} types in PhaseOutput::FillLocArray
Reviewed-by: kvn, dlong
This commit is contained in:
parent
357a2cc22a
commit
26e08cf3d0
@ -930,8 +930,16 @@ void PhaseOutput::FillLocArray( int idx, MachSafePointNode* sfpt, Node *local,
|
||||
t->base() == Type::VectorD || t->base() == Type::VectorX ||
|
||||
t->base() == Type::VectorY || t->base() == Type::VectorZ) {
|
||||
array->append(new_loc_value( C->regalloc(), regnum, Location::vector ));
|
||||
} else if (C->regalloc()->is_oop(local)) {
|
||||
assert(t->base() == Type::OopPtr || t->base() == Type::InstPtr ||
|
||||
t->base() == Type::AryPtr,
|
||||
"Unexpected type: %s", t->msg());
|
||||
array->append(new_loc_value( C->regalloc(), regnum, Location::oop ));
|
||||
} else {
|
||||
array->append(new_loc_value( C->regalloc(), regnum, C->regalloc()->is_oop(local) ? Location::oop : Location::normal ));
|
||||
assert(t->base() == Type::Int || t->base() == Type::Half ||
|
||||
t->base() == Type::FloatCon || t->base() == Type::FloatBot,
|
||||
"Unexpected type: %s", t->msg());
|
||||
array->append(new_loc_value( C->regalloc(), regnum, Location::normal ));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user