--- a/hotspot/src/cpu/x86/vm/x86_64.ad Thu Apr 11 23:06:33 2013 -0400
+++ b/hotspot/src/cpu/x86/vm/x86_64.ad Wed Apr 24 20:55:28 2013 -0400
@@ -1388,48 +1388,6 @@
}
//=============================================================================
-
-// emit call stub, compiled java to interpreter
-void emit_java_to_interp(CodeBuffer& cbuf)
-{
- // Stub is fixed up when the corresponding call is converted from
- // calling compiled code to calling interpreted code.
- // movq rbx, 0
- // jmp -5 # to self
-
- address mark = cbuf.insts_mark(); // get mark within main instrs section
-
- // 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);
-
- address base =
- __ start_a_stub(Compile::MAX_stubs_size);
- if (base == NULL) return; // CodeBuffer::expand failed
- // static stub relocation stores the instruction address of the call
- __ relocate(static_stub_Relocation::spec(mark), RELOC_IMM64);
- // static stub relocation also tags the Method* in the code-stream.
- __ mov_metadata(rbx, (Metadata*) NULL); // method is zapped till fixup time
- // This is recognized as unresolved by relocs/nativeinst/ic code
- __ jump(RuntimeAddress(__ pc()));
-
- // Update current stubs pointer and restore insts_end.
- __ end_a_stub();
-}
-
-// size of call stub, compiled java to interpretor
-uint size_java_to_interp()
-{
- return 15; // movq (1+1+8); jmp (1+4)
-}
-
-// relocation entries for call stub, compiled java to interpretor
-uint reloc_java_to_interp()
-{
- return 4; // 3 in emit_java_to_interp + 1 in Java_Static_Call
-}
-
-//=============================================================================
#ifndef PRODUCT
void MachUEPNode::format(PhaseRegAlloc* ra_, outputStream* st) const
{
@@ -2089,8 +2047,8 @@
RELOC_DISP32);
}
if (_method) {
- // Emit stub for static call
- emit_java_to_interp(cbuf);
+ // Emit stub for static call.
+ CompiledStaticCall::emit_to_interp_stub(cbuf);
}
%}