Mercurial > hg > truffle
diff src/cpu/sparc/vm/sharedRuntime_sparc.cpp @ 9934:0f7ca53be929
CR-806: Changes to build Graal for SPARC
author | Morris Meyer <morris.meyer@oracle.com> |
---|---|
date | Fri, 07 Jun 2013 15:43:00 -0400 |
parents | c6a1ffc707ff |
children | 0d40e1cf70db |
line wrap: on
line diff
--- a/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Fri Jun 07 16:10:07 2013 +0200 +++ b/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Fri Jun 07 15:43:00 2013 -0400 @@ -1826,6 +1826,20 @@ verify_oop_args(masm, method, sig_bt, regs); vmIntrinsics::ID iid = method->intrinsic_id(); + +#ifdef GRAAL + if (iid == vmIntrinsics::_CompilerToVMImpl_executeCompiledMethod) { + // We are called from compiled code here. The three object arguments + // are already in the correct registers (j_rarg0, jrarg1, jrarg2). The + // fourth argument (j_rarg3) is a raw pointer to the nmethod. Make a tail + // call to its verified entry point. + __ set(nmethod::verified_entry_point_offset(), O0); + __ JMP(O0, 0); + __ delayed()->nop(); + return; + } +#endif + // Now write the args into the outgoing interpreter space bool has_receiver = false; Register receiver_reg = noreg;