mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8255233: InterpreterRuntime::at_unwind should be a JRT_LEAF
Reviewed-by: coleenp, dholmes
This commit is contained in:
parent
bbf0a31e9e
commit
aaf4f690f0
3 changed files with 7 additions and 6 deletions
|
@ -551,7 +551,9 @@ void InterpreterMacroAssembler::remove_activation(
|
|||
br(Assembler::AL, fast_path);
|
||||
bind(slow_path);
|
||||
push(state);
|
||||
call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_unwind));
|
||||
set_last_Java_frame(esp, rfp, (address)pc(), rscratch1);
|
||||
super_call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::at_unwind), rthread);
|
||||
reset_last_Java_frame(true);
|
||||
pop(state);
|
||||
bind(fast_path);
|
||||
|
||||
|
|
|
@ -1003,7 +1003,9 @@ void InterpreterMacroAssembler::remove_activation(
|
|||
jmp(fast_path);
|
||||
bind(slow_path);
|
||||
push(state);
|
||||
call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_unwind));
|
||||
set_last_Java_frame(rthread, noreg, rbp, (address)pc());
|
||||
super_call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::at_unwind), rthread);
|
||||
reset_last_Java_frame(rthread, true);
|
||||
pop(state);
|
||||
NOT_LP64(get_thread(rthread);) // call_VM clobbered it, restore
|
||||
bind(fast_path);
|
||||
|
|
|
@ -1172,10 +1172,7 @@ JRT_ENTRY(void, InterpreterRuntime::at_safepoint(JavaThread* thread))
|
|||
}
|
||||
JRT_END
|
||||
|
||||
JRT_ENTRY(void, InterpreterRuntime::at_unwind(JavaThread* thread))
|
||||
// JRT_END does an implicit safepoint check, hence we are guaranteed to block
|
||||
// if this is called during a safepoint
|
||||
|
||||
JRT_LEAF(void, InterpreterRuntime::at_unwind(JavaThread* thread))
|
||||
// This function is called by the interpreter when the return poll found a reason
|
||||
// to call the VM. The reason could be that we are returning into a not yet safe
|
||||
// to access frame. We handle that below.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue