This repository was archived by the owner on Aug 27, 2022. It is now read-only.
File tree 1 file changed +10
-3
lines changed
1 file changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -1115,11 +1115,17 @@ int MachCallDynamicJavaNode::ret_addr_offset() {
1115
1115
}
1116
1116
1117
1117
int MachCallRuntimeNode::ret_addr_offset() {
1118
+ if (rule() == CallRuntimeDirect_rule) {
1119
+ // CallRuntimeDirectNode uses call_c.
1118
1120
#if defined(ABI_ELFv2)
1119
- return 28;
1121
+ return 28;
1120
1122
#else
1121
- return 40;
1123
+ return 40;
1122
1124
#endif
1125
+ }
1126
+ assert(rule() == CallLeafDirect_rule, "unexpected node with rule %u", rule());
1127
+ // CallLeafDirectNode uses bl.
1128
+ return 4;
1123
1129
}
1124
1130
1125
1131
int MachCallNativeNode::ret_addr_offset() {
@@ -3578,6 +3584,7 @@ encode %{
3578
3584
call->_tf = _tf;
3579
3585
call->_entry_point = _entry_point;
3580
3586
call->_cnt = _cnt;
3587
+ call->_guaranteed_safepoint = true;
3581
3588
call->_oop_map = _oop_map;
3582
3589
call->_jvms = _jvms;
3583
3590
call->_jvmadj = _jvmadj;
@@ -3778,14 +3785,14 @@ encode %{
3778
3785
call->_tf = _tf;
3779
3786
call->_entry_point = _entry_point;
3780
3787
call->_cnt = _cnt;
3788
+ call->_guaranteed_safepoint = false;
3781
3789
call->_oop_map = _oop_map;
3782
3790
guarantee(!_jvms, "You must clone the jvms and adapt the offsets by fix_jvms().");
3783
3791
call->_jvms = NULL;
3784
3792
call->_jvmadj = _jvmadj;
3785
3793
call->_in_rms = _in_rms;
3786
3794
call->_nesting = _nesting;
3787
3795
3788
-
3789
3796
// New call needs all inputs of old call.
3790
3797
// Req...
3791
3798
for (uint i = 0; i < req(); ++i) {
You can’t perform that action at this time.
0 commit comments