Mercurial > hg > truffle
comparison src/cpu/x86/vm/sharedRuntime_x86_64.cpp @ 4993:897b7d18bebc
added RiCompiledMethod.execute and the required VM infrastructure
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Tue, 28 Feb 2012 18:00:35 +0100 |
parents | 0d2a2797a61f |
children | 6766253384bf |
comparison
equal
deleted
inserted
replaced
4992:f86ddbd42a7b | 4993:897b7d18bebc |
---|---|
641 __ movptr(saved_sp, r11); | 641 __ movptr(saved_sp, r11); |
642 | 642 |
643 // Will jump to the compiled code just as if compiled code was doing it. | 643 // Will jump to the compiled code just as if compiled code was doing it. |
644 // Pre-load the register-jump target early, to schedule it better. | 644 // Pre-load the register-jump target early, to schedule it better. |
645 __ movptr(r11, Address(rbx, in_bytes(methodOopDesc::from_compiled_offset()))); | 645 __ movptr(r11, Address(rbx, in_bytes(methodOopDesc::from_compiled_offset()))); |
646 | |
647 #ifdef GRAAL | |
648 // check if this call should be routed towards a specific entry point | |
649 __ cmpptr(Address(r15_thread, in_bytes(JavaThread::graal_alternate_call_target_offset())), 0); | |
650 Label no_alternative_target; | |
651 __ jcc(Assembler::equal, no_alternative_target); | |
652 __ movptr(r11, Address(r15_thread, in_bytes(JavaThread::graal_alternate_call_target_offset()))); | |
653 __ movptr(Address(r15_thread, in_bytes(JavaThread::graal_alternate_call_target_offset())), 0); | |
654 __ bind(no_alternative_target); | |
655 #endif | |
646 | 656 |
647 // Now generate the shuffle code. Pick up all register args and move the | 657 // Now generate the shuffle code. Pick up all register args and move the |
648 // rest through the floating point stack top. | 658 // rest through the floating point stack top. |
649 for (int i = 0; i < total_args_passed; i++) { | 659 for (int i = 0; i < total_args_passed; i++) { |
650 if (sig_bt[i] == T_VOID) { | 660 if (sig_bt[i] == T_VOID) { |