comparison src/cpu/x86/vm/interp_masm_x86_64.cpp @ 710:e5b0439ef4ae

6655638: dynamic languages need method handles Summary: initial implementation, with known omissions (x86/64, sparc, compiler optim., c-oops, C++ interp.) Reviewed-by: kvn, twisti, never
author jrose
date Wed, 08 Apr 2009 10:56:49 -0700
parents bd441136a5ce
children 3f06f139ef53
comparison
equal deleted inserted replaced
709:1d037ecd7960 710:e5b0439ef4ae
549 mov(c_rarg2, arg_3); 549 mov(c_rarg2, arg_3);
550 } 550 }
551 MacroAssembler::call_VM_leaf_base(entry_point, 3); 551 MacroAssembler::call_VM_leaf_base(entry_point, 3);
552 } 552 }
553 553
554 // Jump to from_interpreted entry of a call unless single stepping is possible 554 void InterpreterMacroAssembler::prepare_to_jump_from_interpreted() {
555 // in this thread in which case we must call the i2i entry
556 void InterpreterMacroAssembler::jump_from_interpreted(Register method, Register temp) {
557 // set sender sp 555 // set sender sp
558 lea(r13, Address(rsp, wordSize)); 556 lea(r13, Address(rsp, wordSize));
559 // record last_sp 557 // record last_sp
560 movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), r13); 558 movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), r13);
559 }
560
561
562 // Jump to from_interpreted entry of a call unless single stepping is possible
563 // in this thread in which case we must call the i2i entry
564 void InterpreterMacroAssembler::jump_from_interpreted(Register method, Register temp) {
565 prepare_to_jump_from_interpreted();
561 566
562 if (JvmtiExport::can_post_interpreter_events()) { 567 if (JvmtiExport::can_post_interpreter_events()) {
563 Label run_compiled_code; 568 Label run_compiled_code;
564 // JVMTI events, such as single-stepping, are implemented partly by avoiding running 569 // JVMTI events, such as single-stepping, are implemented partly by avoiding running
565 // compiled code in threads for which the event is enabled. Check here for 570 // compiled code in threads for which the event is enabled. Check here for