553 push(arg_1); |
553 push(arg_1); |
554 MacroAssembler::call_VM_leaf_base(entry_point, 3); |
554 MacroAssembler::call_VM_leaf_base(entry_point, 3); |
555 } |
555 } |
556 |
556 |
557 |
557 |
558 // Jump to from_interpreted entry of a call unless single stepping is possible |
558 void InterpreterMacroAssembler::prepare_to_jump_from_interpreted() { |
559 // in this thread in which case we must call the i2i entry |
|
560 void InterpreterMacroAssembler::jump_from_interpreted(Register method, Register temp) { |
|
561 // set sender sp |
559 // set sender sp |
562 lea(rsi, Address(rsp, wordSize)); |
560 lea(rsi, Address(rsp, wordSize)); |
563 // record last_sp |
561 // record last_sp |
564 movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), rsi); |
562 movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), rsi); |
|
563 } |
|
564 |
|
565 |
|
566 // Jump to from_interpreted entry of a call unless single stepping is possible |
|
567 // in this thread in which case we must call the i2i entry |
|
568 void InterpreterMacroAssembler::jump_from_interpreted(Register method, Register temp) { |
|
569 prepare_to_jump_from_interpreted(); |
565 |
570 |
566 if (JvmtiExport::can_post_interpreter_events()) { |
571 if (JvmtiExport::can_post_interpreter_events()) { |
567 Label run_compiled_code; |
572 Label run_compiled_code; |
568 // JVMTI events, such as single-stepping, are implemented partly by avoiding running |
573 // JVMTI events, such as single-stepping, are implemented partly by avoiding running |
569 // compiled code in threads for which the event is enabled. Check here for |
574 // compiled code in threads for which the event is enabled. Check here for |