8256986: [PPC64] C2 crashes when accessing nonexisting jvms of CallLeafDirectNode
Reviewed-by: clanger
This commit is contained in:
parent
644271e7a4
commit
d51e2ab219
@ -1115,11 +1115,17 @@ int MachCallDynamicJavaNode::ret_addr_offset() {
|
||||
}
|
||||
|
||||
int MachCallRuntimeNode::ret_addr_offset() {
|
||||
if (rule() == CallRuntimeDirect_rule) {
|
||||
// CallRuntimeDirectNode uses call_c.
|
||||
#if defined(ABI_ELFv2)
|
||||
return 28;
|
||||
return 28;
|
||||
#else
|
||||
return 40;
|
||||
return 40;
|
||||
#endif
|
||||
}
|
||||
assert(rule() == CallLeafDirect_rule, "unexpected node with rule %u", rule());
|
||||
// CallLeafDirectNode uses bl.
|
||||
return 4;
|
||||
}
|
||||
|
||||
int MachCallNativeNode::ret_addr_offset() {
|
||||
@ -3578,6 +3584,7 @@ encode %{
|
||||
call->_tf = _tf;
|
||||
call->_entry_point = _entry_point;
|
||||
call->_cnt = _cnt;
|
||||
call->_guaranteed_safepoint = true;
|
||||
call->_oop_map = _oop_map;
|
||||
call->_jvms = _jvms;
|
||||
call->_jvmadj = _jvmadj;
|
||||
@ -3778,6 +3785,7 @@ encode %{
|
||||
call->_tf = _tf;
|
||||
call->_entry_point = _entry_point;
|
||||
call->_cnt = _cnt;
|
||||
call->_guaranteed_safepoint = false;
|
||||
call->_oop_map = _oop_map;
|
||||
guarantee(!_jvms, "You must clone the jvms and adapt the offsets by fix_jvms().");
|
||||
call->_jvms = NULL;
|
||||
@ -3785,7 +3793,6 @@ encode %{
|
||||
call->_in_rms = _in_rms;
|
||||
call->_nesting = _nesting;
|
||||
|
||||
|
||||
// New call needs all inputs of old call.
|
||||
// Req...
|
||||
for (uint i = 0; i < req(); ++i) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user