< prev index next >

src/cpu/ppc/vm/compiledIC_ppc.cpp

Print this page

        

*** 92,105 **** // // 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) { #ifdef COMPILER2 // Get the mark within main instrs section which is set to the address of the call. ! address call_addr = 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); --- 92,107 ---- // // 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 mark/* = NULL*/) { #ifdef COMPILER2 + if (mark == NULL) { // Get the mark within main instrs section which is set to the address of the call. ! 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,125 **** 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)); const int stub_start_offset = __ offset(); // Now, create the stub's code: // - load the TOC // - load the inline cache oop from the constant pool --- 117,127 ---- 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(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 >