Mercurial > hg > graal-compiler
diff 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 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Tue Feb 28 17:53:07 2012 +0100 +++ b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Tue Feb 28 18:00:35 2012 +0100 @@ -644,6 +644,16 @@ // Pre-load the register-jump target early, to schedule it better. __ movptr(r11, Address(rbx, in_bytes(methodOopDesc::from_compiled_offset()))); +#ifdef GRAAL + // check if this call should be routed towards a specific entry point + __ cmpptr(Address(r15_thread, in_bytes(JavaThread::graal_alternate_call_target_offset())), 0); + Label no_alternative_target; + __ jcc(Assembler::equal, no_alternative_target); + __ movptr(r11, Address(r15_thread, in_bytes(JavaThread::graal_alternate_call_target_offset()))); + __ movptr(Address(r15_thread, in_bytes(JavaThread::graal_alternate_call_target_offset())), 0); + __ bind(no_alternative_target); +#endif + // Now generate the shuffle code. Pick up all register args and move the // rest through the floating point stack top. for (int i = 0; i < total_args_passed; i++) {