Mercurial > hg > graal-jvmci-8
diff graal/GraalCompiler/src/com/sun/c1x/lir/LIRAssembler.java @ 2660:9f557e940180
Removed exception optimization that immediately unwinds if it is guaranteed that there is no local exception handler.
Reason to remove the optimization: In case of a local exception handler that has been really executed, we need a type check on the exception object and a conditional jump from the throw anyway.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Wed, 11 May 2011 16:40:22 +0200 |
parents | 91d3952f7eb7 |
children | 0ea5f12e873a |
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/lir/LIRAssembler.java Wed May 11 16:25:15 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/lir/LIRAssembler.java Wed May 11 16:40:22 2011 +0200 @@ -367,8 +367,7 @@ break; case Throw: - case Unwind: - emitThrow(op.operand1(), op.operand2(), op.info, op.code == LIROpcode.Unwind); + emitThrow(op.operand1(), op.operand2(), op.info); break; default: @@ -465,7 +464,7 @@ protected abstract void emitVolatileMove(CiValue inOpr, CiValue result, CiKind kind, LIRDebugInfo info); - protected abstract void emitThrow(CiValue inOpr1, CiValue inOpr2, LIRDebugInfo info, boolean unwind); + protected abstract void emitThrow(CiValue inOpr1, CiValue inOpr2, LIRDebugInfo info); protected abstract void emitLogicOp(LIROpcode code, CiValue inOpr1, CiValue inOpr2, CiValue dst);