comparison graal/GraalCompiler/src/com/sun/c1x/graph/GraphBuilder.java @ 2834:bfce42cd9c07

Graph duplication now passes all tests
author Lukas Stadler <lukas.stadler@jku.at>
date Tue, 31 May 2011 13:34:52 +0200
parents 27c00b180416
children c1c8a0291771
comparison
equal deleted inserted replaced
2829:27c00b180416 2834:bfce42cd9c07
1077 assert lock != null; 1077 assert lock != null;
1078 assert frameState.locksSize() > 0 && frameState.lockAt(frameState.locksSize() - 1) == lock; 1078 assert frameState.locksSize() > 0 && frameState.lockAt(frameState.locksSize() - 1) == lock;
1079 1079
1080 // Exit the monitor and unwind the stack. 1080 // Exit the monitor and unwind the stack.
1081 genMonitorExit(lock); 1081 genMonitorExit(lock);
1082 append(new Unwind(frameState.apop(), graph)); 1082 append(new Unwind(frameState.apop(), graph.end(), graph));
1083 1083
1084 // The sync handler is always the last thing to add => we can clear the frameState. 1084 // The sync handler is always the last thing to add => we can clear the frameState.
1085 frameState = null; 1085 frameState = null;
1086 lastInstr = null; 1086 lastInstr = null;
1087 } 1087 }
1146 append(lockAddress); 1146 append(lockAddress);
1147 } 1147 }
1148 append(new MonitorExit(rootMethodSynchronizedObject, lockAddress, lockNumber, graph)); 1148 append(new MonitorExit(rootMethodSynchronizedObject, lockAddress, lockNumber, graph));
1149 frameState.unlock(); 1149 frameState.unlock();
1150 } 1150 }
1151 append(new Unwind(frameState.apop(), graph)); 1151 append(new Unwind(frameState.apop(), graph.end(), graph));
1152 } else { 1152 } else {
1153 assert frameState.stackSize() == 1; 1153 assert frameState.stackSize() == 1;
1154 1154
1155 if (block.handler.catchType().isResolved()) { 1155 if (block.handler.catchType().isResolved()) {
1156 Instruction catchSuccessor = createTarget(block.handlerBlock, frameState); 1156 Instruction catchSuccessor = createTarget(block.handlerBlock, frameState);