Mercurial > hg > truffle
diff graal/GraalCompiler/src/com/sun/c1x/value/FrameStateBuilder.java @ 2771:056e392d63d4
Connected local variables to start node. No more need for frame state to emit locals.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Tue, 24 May 2011 09:49:04 +0200 |
parents | 43ffa0e47a46 |
children | 015be60afcf3 |
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/value/FrameStateBuilder.java Mon May 23 21:22:06 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/value/FrameStateBuilder.java Tue May 24 09:49:04 2011 +0200 @@ -49,13 +49,15 @@ this.locals = new Value[method.maxLocals()]; this.stack = new Value[method.maxStackSize()]; + int javaIndex = 0; int index = 0; if (!isStatic(method.accessFlags())) { // add the receiver and assume it is non null - Local local = new Local(method.holder().kind(), index, graph); + Local local = new Local(method.holder().kind(), javaIndex, graph); local.setFlag(Value.Flag.NonNull, true); local.setDeclaredType(method.holder()); - storeLocal(index, local); + storeLocal(javaIndex, local); + javaIndex = 1; index = 1; } RiSignature sig = method.signature(); @@ -68,8 +70,9 @@ if (type.isResolved()) { local.setDeclaredType(type); } - storeLocal(index, local); - index += kind.sizeInSlots(); + storeLocal(javaIndex, local); + javaIndex += kind.sizeInSlots(); + index++; } this.locks = new ArrayList<Value>(); }