< prev index next >
src/cpu/ppc/vm/compiledIC_ppc.cpp
Print this page
@@ -92,14 +92,16 @@
//
// Usage of r1 and r2 in the stubs allows to distinguish them.
const int IC_pos_in_java_to_interp_stub = 8;
#define __ _masm.
-address CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf) {
+address CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf, address mark/* = NULL*/) {
#ifdef COMPILER2
+ if (mark == NULL) {
// Get the mark within main instrs section which is set to the address of the call.
- address call_addr = cbuf.insts_mark();
+ mark = cbuf.insts_mark();
+ }
// Note that the code buffer's insts_mark is always relative to insts.
// That's why we must use the macroassembler to generate a stub.
MacroAssembler _masm(&cbuf);
@@ -115,11 +117,11 @@
Register reg_scratch = R11_scratch1;
// Create a static stub relocation which relates this stub
// with the call instruction at insts_call_instruction_offset in the
// instructions code-section.
- __ relocate(static_stub_Relocation::spec(call_addr));
+ __ relocate(static_stub_Relocation::spec(mark));
const int stub_start_offset = __ offset();
// Now, create the stub's code:
// - load the TOC
// - load the inline cache oop from the constant pool
< prev index next >