Mercurial > hg > graal-jvmci-8
diff src/cpu/sparc/vm/sharedRuntime_sparc.cpp @ 10684:6ff467cdb105
Code installer changes for SPARC.
author | twisti |
---|---|
date | Tue, 09 Jul 2013 14:39:34 -0700 |
parents | 0d40e1cf70db |
children | 6b0fd0964b87 |
line wrap: on
line diff
--- a/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Tue Jul 09 22:05:40 2013 +0200 +++ b/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Tue Jul 09 14:39:34 2013 -0700 @@ -1826,6 +1826,31 @@ 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 pointer to the HotSpotInstalledCode object. + + // Load the nmethod pointer from the HotSpotInstalledCode object +// __ movq(j_rarg3, Address(j_rarg3, sizeof(oopDesc))); + + // Check whether the nmethod was invalidated +// __ testq(j_rarg3, j_rarg3); +// Label invalid_nmethod; +// __ jcc(Assembler::zero, invalid_nmethod); + + // Perform a tail call to the verified entry point of the nmethod. +// __ jmp(Address(j_rarg3, nmethod::verified_entry_point_offset())); + +// __ bind(invalid_nmethod); + +// __ jump(RuntimeAddress(StubRoutines::throw_InvalidInstalledCodeException_entry())); + __ stop("_CompilerToVMImpl_executeCompiledMethod not implemented"); + return; + } +#endif + // Now write the args into the outgoing interpreter space bool has_receiver = false; Register receiver_reg = noreg;