< prev index next >
src/cpu/sparc/vm/compiledIC_sparc.cpp
Print this page
*** 51,74 ****
}
// ----------------------------------------------------------------------------
#define __ _masm.
! void CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf) {
#ifdef COMPILER2
// Stub is fixed up when the corresponding call is converted from calling
// compiled code to calling interpreted code.
// set (empty), G5
// jmp -1
address mark = cbuf.insts_mark(); // Get mark within main instrs section.
MacroAssembler _masm(&cbuf);
! address base =
! __ start_a_stub(to_interp_stub_size()*2);
! if (base == NULL) return; // CodeBuffer::expand failed.
// Static stub relocation stores the instruction address of the call.
__ relocate(static_stub_Relocation::spec(mark));
__ set_metadata(NULL, as_Register(Matcher::inline_cache_reg_encode()));
--- 51,75 ----
}
// ----------------------------------------------------------------------------
#define __ _masm.
! address CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf) {
#ifdef COMPILER2
// Stub is fixed up when the corresponding call is converted from calling
// compiled code to calling interpreted code.
// set (empty), G5
// jmp -1
address mark = cbuf.insts_mark(); // Get mark within main instrs section.
MacroAssembler _masm(&cbuf);
! address base = __ start_a_stub(to_interp_stub_size());
! if (base == NULL) {
! return NULL; // CodeBuffer::expand failed.
! }
// Static stub relocation stores the instruction address of the call.
__ relocate(static_stub_Relocation::spec(mark));
__ set_metadata(NULL, as_Register(Matcher::inline_cache_reg_encode()));
*** 79,88 ****
--- 80,90 ----
__ delayed()->nop();
// Update current stubs pointer and restore code_end.
__ end_a_stub();
+ return base;
#else
ShouldNotReachHere();
#endif
}
#undef __
< prev index next >