bugfixes
authoradam <adam@megacz.com>
Mon, 4 Jul 2005 23:14:59 +0000 (23:14 +0000)
committeradam <adam@megacz.com>
Mon, 4 Jul 2005 23:14:59 +0000 (23:14 +0000)
darcs-hash:20050704231459-5007d-b7607cae4600e8d7b14cc5f853ac4474c5fbb4bf.gz

src/org/ibex/classgen/JSSA.java
src/org/ibex/classgen/Poop.java [new file with mode: 0644]

index 513cab7..1220b34 100644 (file)
@@ -52,7 +52,7 @@ public class JSSA extends MethodGen implements CGConst {
             for(int i=0; i<sp; i++) stacks[newPC][i] = new Phi();
         }
         if (stacks[newPC].length != sp) throw new IllegalArgumentException("stack depth disagreement");
             for(int i=0; i<sp; i++) stacks[newPC][i] = new Phi();
         }
         if (stacks[newPC].length != sp) throw new IllegalArgumentException("stack depth disagreement");
-        for(int i=0; i<stacks[newPC].length; i++) stacks[pc][i].merge(stack[i]);
+        for(int i=0; i<stacks[newPC].length; i++) stacks[newPC][i].merge(stack[i]);
     }
     
     private Object[] ops = new Object[65535];
     }
     
     private Object[] ops = new Object[65535];
@@ -74,7 +74,7 @@ public class JSSA extends MethodGen implements CGConst {
 
     private void push(Expr e) {
         if (e.getType() == Type.VOID) throw new IllegalArgumentException("can't push a void");
 
     private void push(Expr e) {
         if (e.getType() == Type.VOID) throw new IllegalArgumentException("can't push a void");
-        if (stack[sp+1] == null) stack[sp+1] = new Phi();
+        if (stack[sp] == null) stack[sp] = new Phi();
         stack[sp++].merge(e);
     }
     private Expr pop() {
         stack[sp++].merge(e);
     }
     private Expr pop() {
diff --git a/src/org/ibex/classgen/Poop.java b/src/org/ibex/classgen/Poop.java
new file mode 100644 (file)
index 0000000..d73d3b2
--- /dev/null
@@ -0,0 +1,12 @@
+package org.ibex.classgen;
+public class Poop {
+    public static int i;
+    public static void bar(int k) {
+        i = k+3;
+    }
+    public static void main() {
+        i = 5;
+        bar(i-3);
+        i += 3;
+    }
+}