< prev index next >
src/cpu/sparc/vm/compiledIC_sparc.cpp
Print this page
*** 51,68 ****
}
// ----------------------------------------------------------------------------
#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) {
--- 51,69 ----
}
// ----------------------------------------------------------------------------
#define __ _masm.
! address CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf, address mark) {
// Stub is fixed up when the corresponding call is converted from calling
// compiled code to calling interpreted code.
// set (empty), G5
// jmp -1
! if (mark == NULL) {
! 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) {
*** 78,93 ****
AddressLiteral addrlit(-1);
__ JUMP(addrlit, G3, 0);
__ delayed()->nop();
// Update current stubs pointer and restore code_end.
__ end_a_stub();
return base;
- #else
- ShouldNotReachHere();
- #endif
}
#undef __
int CompiledStaticCall::to_interp_stub_size() {
// This doesn't need to be accurate but it must be larger or equal to
--- 79,93 ----
AddressLiteral addrlit(-1);
__ JUMP(addrlit, G3, 0);
__ delayed()->nop();
+ assert(__ pc() - base <= to_interp_stub_size(), "wrong stub size");
+
// Update current stubs pointer and restore code_end.
__ end_a_stub();
return base;
}
#undef __
int CompiledStaticCall::to_interp_stub_size() {
// This doesn't need to be accurate but it must be larger or equal to
< prev index next >