comparison graal/GraalCompiler/src/com/sun/c1x/graph/GraphBuilder.java @ 2837:7b5831f0e913

Merge.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Tue, 31 May 2011 13:42:01 +0200
parents a75ef246fab3 c1c8a0291771
children 75e0d39833a0 c061a6be3728
comparison
equal deleted inserted replaced
2836:a75ef246fab3 2837:7b5831f0e913
609 private void genThrow(int bci) { 609 private void genThrow(int bci) {
610 Value exception = frameState.apop(); 610 Value exception = frameState.apop();
611 append(new NullCheck(exception, graph)); 611 append(new NullCheck(exception, graph));
612 Instruction entry = handleException(exception, bci); 612 Instruction entry = handleException(exception, bci);
613 if (entry == null) { 613 if (entry == null) {
614 entry = new Unwind(exception, graph); 614 entry = new Unwind(exception, graph.end(), graph);
615 } 615 }
616 append(entry); 616 append(entry);
617 } 617 }
618 618
619 private void genCheckCast() { 619 private void genCheckCast() {
1078 assert lock != null; 1078 assert lock != null;
1079 assert frameState.locksSize() > 0 && frameState.lockAt(frameState.locksSize() - 1) == lock; 1079 assert frameState.locksSize() > 0 && frameState.lockAt(frameState.locksSize() - 1) == lock;
1080 1080
1081 // Exit the monitor and unwind the stack. 1081 // Exit the monitor and unwind the stack.
1082 genMonitorExit(lock); 1082 genMonitorExit(lock);
1083 append(new Unwind(frameState.apop(), graph)); 1083 append(new Unwind(frameState.apop(), graph.end(), graph));
1084 1084
1085 // The sync handler is always the last thing to add => we can clear the frameState. 1085 // The sync handler is always the last thing to add => we can clear the frameState.
1086 frameState = null; 1086 frameState = null;
1087 lastInstr = null; 1087 lastInstr = null;
1088 } 1088 }
1147 append(lockAddress); 1147 append(lockAddress);
1148 } 1148 }
1149 append(new MonitorExit(rootMethodSynchronizedObject, lockAddress, lockNumber, graph)); 1149 append(new MonitorExit(rootMethodSynchronizedObject, lockAddress, lockNumber, graph));
1150 frameState.unlock(); 1150 frameState.unlock();
1151 } 1151 }
1152 append(new Unwind(frameState.apop(), graph)); 1152 append(new Unwind(frameState.apop(), graph.end(), graph));
1153 } else { 1153 } else {
1154 assert frameState.stackSize() == 1; 1154 assert frameState.stackSize() == 1;
1155 1155
1156 if (block.handler.catchType().isResolved()) { 1156 if (block.handler.catchType().isResolved()) {
1157 Instruction catchSuccessor = createTarget(blockFromBci[block.handler.handlerBCI()], frameState); 1157 Instruction catchSuccessor = createTarget(blockFromBci[block.handler.handlerBCI()], frameState);