Mercurial > hg > truffle
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 |