# HG changeset patch # User Doug Simon # Date 1334924039 -7200 # Node ID af8958fe5a3a556108f65c0b7a6dc032e2e9b802 # Parent 97b1e0ab7442b4cc57b858cfa0e2ac84f002aff1 removed unwind stub from Graal compiled methods as it is only used by C1 diff -r 97b1e0ab7442 -r af8958fe5a3a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java Fri Apr 20 14:12:42 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java Fri Apr 20 14:13:59 2012 +0200 @@ -98,7 +98,6 @@ public long accessFieldStub; public long resolveStaticCallStub; public long inlineCacheMissStub; - public long unwindExceptionStub; public long handleExceptionStub; public long handleDeoptStub; public long monitorEnterStub; diff -r 97b1e0ab7442 -r af8958fe5a3a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/HotSpotAMD64Backend.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/HotSpotAMD64Backend.java Fri Apr 20 14:12:42 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/HotSpotAMD64Backend.java Fri Apr 20 14:13:59 2012 +0200 @@ -45,8 +45,6 @@ import com.oracle.max.asm.target.amd64.AMD64Assembler.ConditionFlag; import com.oracle.max.asm.target.amd64.*; import com.oracle.max.cri.ci.*; -import com.oracle.max.cri.ci.CiCallingConvention.Type; -import com.oracle.max.cri.ci.CiRegister.RegisterFlag; import com.oracle.max.cri.ri.*; import com.oracle.max.cri.xir.*; @@ -200,20 +198,6 @@ boolean frameOmitted = tasm.frameContext == null; if (!frameOmitted) { - CiRegister thread = r15; - CiRegister exceptionOop = regConfig.getCallingConventionRegisters(Type.RuntimeCall, RegisterFlag.CPU)[0]; - Label unwind = new Label(); - asm.bind(unwind); - tasm.recordMark(MARK_UNWIND_ENTRY); - CiAddress exceptionOopField = new CiAddress(CiKind.Object, thread.asValue(), config.threadExceptionOopOffset); - CiAddress exceptionPcField = new CiAddress(CiKind.Object, thread.asValue(), config.threadExceptionPcOffset); - asm.movq(exceptionOop, exceptionOopField); - asm.movslq(exceptionOopField, 0); - asm.movslq(exceptionPcField, 0); - - AMD64Call.directCall(tasm, asm, config.unwindExceptionStub, null); - AMD64Call.shouldNotReachHere(tasm, asm); - tasm.recordMark(MARK_EXCEPTION_HANDLER_ENTRY); AMD64Call.directCall(tasm, asm, config.handleExceptionStub, null); AMD64Call.shouldNotReachHere(tasm, asm); diff -r 97b1e0ab7442 -r af8958fe5a3a src/share/vm/graal/graalCodeInstaller.cpp --- a/src/share/vm/graal/graalCodeInstaller.cpp Fri Apr 20 14:12:42 2012 +0200 +++ b/src/share/vm/graal/graalCodeInstaller.cpp Fri Apr 20 14:13:59 2012 +0200 @@ -815,9 +815,6 @@ case MARK_OSR_ENTRY: _offsets.set_value(CodeOffsets::OSR_Entry, pc_offset); break; - case MARK_UNWIND_ENTRY: - _offsets.set_value(CodeOffsets::UnwindHandler, pc_offset); - break; case MARK_EXCEPTION_HANDLER_ENTRY: _offsets.set_value(CodeOffsets::Exceptions, pc_offset); break; diff -r 97b1e0ab7442 -r af8958fe5a3a src/share/vm/graal/graalCodeInstaller.hpp --- a/src/share/vm/graal/graalCodeInstaller.hpp Fri Apr 20 14:12:42 2012 +0200 +++ b/src/share/vm/graal/graalCodeInstaller.hpp Fri Apr 20 14:13:59 2012 +0200 @@ -31,7 +31,7 @@ MARK_VERIFIED_ENTRY = 0x0001, MARK_UNVERIFIED_ENTRY = 0x0002, MARK_OSR_ENTRY = 0x0003, - MARK_UNWIND_ENTRY = 0x0004, + //MARK_UNWIND_ENTRY = 0x0004, MARK_EXCEPTION_HANDLER_ENTRY = 0x0005, MARK_DEOPT_HANDLER_ENTRY = 0x0006, MARK_STATIC_CALL_STUB = 0x1000, diff -r 97b1e0ab7442 -r af8958fe5a3a src/share/vm/graal/graalCompilerToVM.cpp --- a/src/share/vm/graal/graalCompilerToVM.cpp Fri Apr 20 14:12:42 2012 +0200 +++ b/src/share/vm/graal/graalCompilerToVM.cpp Fri Apr 20 14:13:59 2012 +0200 @@ -824,7 +824,6 @@ set_long(env, config, "accessFieldStub", VmIds::addStub(Runtime1::entry_for(Runtime1::access_field_patching_id))); set_long(env, config, "resolveStaticCallStub", VmIds::addStub(SharedRuntime::get_resolve_static_call_stub())); set_long(env, config, "inlineCacheMissStub", VmIds::addStub(SharedRuntime::get_ic_miss_stub())); - set_long(env, config, "unwindExceptionStub", VmIds::addStub(Runtime1::entry_for(Runtime1::graal_unwind_exception_call_id))); set_long(env, config, "handleExceptionStub", VmIds::addStub(Runtime1::entry_for(Runtime1::handle_exception_nofpu_id))); set_long(env, config, "handleDeoptStub", VmIds::addStub(SharedRuntime::deopt_blob()->unpack())); set_long(env, config, "monitorEnterStub", VmIds::addStub(Runtime1::entry_for(Runtime1::monitorenter_id)));