--- a/hotspot/src/cpu/sparc/vm/sparc.ad Thu Apr 11 23:06:33 2013 -0400
+++ b/hotspot/src/cpu/sparc/vm/sparc.ad Wed Apr 24 20:55:28 2013 -0400
@@ -1656,53 +1656,6 @@
}
//=============================================================================
-
-// emit call stub, compiled java to interpretor
-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.
- // set (empty), G5
- // jmp -1
-
- address mark = cbuf.insts_mark(); // get mark within main instrs section
-
- 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));
-
- __ set_metadata(NULL, reg_to_register_object(Matcher::inline_cache_reg_encode()));
-
- __ set_inst_mark();
- AddressLiteral addrlit(-1);
- __ JUMP(addrlit, G3, 0);
-
- __ delayed()->nop();
-
- // Update current stubs pointer and restore code_end.
- __ end_a_stub();
-}
-
-// size of call stub, compiled java to interpretor
-uint size_java_to_interp() {
- // This doesn't need to be accurate but it must be larger or equal to
- // the real size of the stub.
- return (NativeMovConstReg::instruction_size + // sethi/setlo;
- NativeJump::instruction_size + // sethi; jmp; nop
- (TraceJumps ? 20 * BytesPerInstWord : 0) );
-}
-// relocation entries for call stub, compiled java to interpretor
-uint reloc_java_to_interp() {
- return 10; // 4 in emit_java_to_interp + 1 in Java_Static_Call
-}
-
-
-//=============================================================================
#ifndef PRODUCT
void MachUEPNode::format( PhaseRegAlloc *ra_, outputStream *st ) const {
st->print_cr("\nUEP:");
@@ -2576,15 +2529,15 @@
enc_class Java_Static_Call (method meth) %{ // JAVA STATIC CALL
// CALL to fixup routine. Fixup routine uses ScopeDesc info to determine
// who we intended to call.
- if ( !_method ) {
+ if (!_method) {
emit_call_reloc(cbuf, $meth$$method, relocInfo::runtime_call_type);
} else if (_optimized_virtual) {
emit_call_reloc(cbuf, $meth$$method, relocInfo::opt_virtual_call_type);
} else {
emit_call_reloc(cbuf, $meth$$method, relocInfo::static_call_type);
}
- if( _method ) { // Emit stub for static call
- emit_java_to_interp(cbuf);
+ if (_method) { // Emit stub for static call.
+ CompiledStaticCall::emit_to_interp_stub(cbuf);
}
%}