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>();
     }