Mercurial > hg > graal-jvmci-8
comparison graal/GraalCompiler/src/com/sun/c1x/lir/LIRList.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 | b2c1e959be46 |
children | 6ab73784566a |
comparison
equal
deleted
inserted
replaced
2659:40248577d587 | 2660:9f557e940180 |
---|---|
191 | 191 |
192 public void throwException(CiValue exceptionPC, CiValue exceptionOop, LIRDebugInfo info) { | 192 public void throwException(CiValue exceptionPC, CiValue exceptionOop, LIRDebugInfo info) { |
193 append(new LIROp2(LIROpcode.Throw, exceptionPC, exceptionOop, CiValue.IllegalValue, info, CiKind.Illegal, true)); | 193 append(new LIROp2(LIROpcode.Throw, exceptionPC, exceptionOop, CiValue.IllegalValue, info, CiKind.Illegal, true)); |
194 } | 194 } |
195 | 195 |
196 public void unwindException(CiValue exceptionPC, CiValue exceptionOop, LIRDebugInfo info) { | |
197 append(new LIROp2(LIROpcode.Unwind, exceptionPC, exceptionOop, CiValue.IllegalValue, info)); | |
198 } | |
199 | |
200 public void compareTo(CiValue left, CiValue right, CiValue dst) { | 196 public void compareTo(CiValue left, CiValue right, CiValue dst) { |
201 append(new LIROp2(LIROpcode.CompareTo, left, right, dst)); | 197 append(new LIROp2(LIROpcode.CompareTo, left, right, dst)); |
202 } | 198 } |
203 | 199 |
204 public void cmp(Condition condition, CiValue left, CiValue right, LIRDebugInfo info) { | 200 public void cmp(Condition condition, CiValue left, CiValue right, LIRDebugInfo info) { |