Mercurial > hg > graal-jvmci-8
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); |