diff options
Diffstat (limited to 'src/test/java/com/seaofnodes/simple/Eval2.java')
| -rw-r--r-- | src/test/java/com/seaofnodes/simple/Eval2.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/test/java/com/seaofnodes/simple/Eval2.java b/src/test/java/com/seaofnodes/simple/Eval2.java index 2da834e5..6ae8427c 100644 --- a/src/test/java/com/seaofnodes/simple/Eval2.java +++ b/src/test/java/com/seaofnodes/simple/Eval2.java @@ -179,7 +179,7 @@ public abstract class Eval2 { int path = r._inputs.find( prior ); // Parameters read from prior frame, Phis from local frame Frame frame = (r instanceof FunNode ? F._prior : F); - boolean isMain = r instanceof FunNode fun && fun.sig().isa(TypeFunPtr.MAIN); + boolean isMain = r instanceof FunNode fun && fun.sig().isa(CodeGen.CODE._main); // Parallel assign Phis. First parallel read and cache int i; @@ -341,7 +341,7 @@ public abstract class Eval2 { int num = type._fields.length; Object[] ptr = new Object[num]; for( int i=0; i<num; i++ ) - ptr[i] = val(alloc.in(2+i+num)); + ptr[i] = con(type._fields[i]._type.makeZero()); return ptr; } @@ -357,6 +357,8 @@ public abstract class Eval2 { } private static Object store( StoreNode st ) { + if( st._name.equals("#") ) + return "$mem"; // Eval stores the length in the java object[], no need to set it now TypeMemPtr tmp = (TypeMemPtr)st.ptr()._type; Object[] fs = (Object[])val(st.ptr()); int idx = tmp._obj.isAry() |
