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) {