# HG changeset patch # User Lukas Stadler # Date 1406116562 -7200 # Node ID ab84673bedc21c4d30f10f2135bb5610adf13db5 # Parent 342fe74e3b90f52cbb8de2564972cfe12306f08c change assertions in VirtualObject to look at the LIRKind diff -r 342fe74e3b90 -r ab84673bedc2 graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/VirtualObject.java --- a/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/VirtualObject.java Wed Jul 23 11:53:47 2014 +0200 +++ b/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/VirtualObject.java Wed Jul 23 13:56:02 2014 +0200 @@ -140,22 +140,30 @@ for (int i = 0; i < values.length; i++) { ResolvedJavaField field = fields[fieldIndex++]; Kind valKind = values[i].getKind().getStackKind(); - if ((valKind == Kind.Double || valKind == Kind.Long) && field.getKind() == Kind.Int) { - assert fields[fieldIndex].getKind() == Kind.Int; - fieldIndex++; + if (field.getKind() == Kind.Object) { + assert values[i].getLIRKind().isReference(0) : field + ": " + valKind + " != " + field.getKind(); } else { - assert valKind == field.getKind().getStackKind() : field + ": " + valKind + " != " + field.getKind().getStackKind(); + if ((valKind == Kind.Double || valKind == Kind.Long) && field.getKind() == Kind.Int) { + assert fields[fieldIndex].getKind() == Kind.Int; + fieldIndex++; + } else { + assert valKind == field.getKind().getStackKind() : field + ": " + valKind + " != " + field.getKind(); + } } } assert fields.length == fieldIndex : type + ": fields=" + Arrays.toString(fields) + ", field values=" + Arrays.toString(values); } else { Kind componentKind = type.getComponentType().getKind().getStackKind(); - for (int i = 0; i < values.length; i++) { - assert values[i].getKind().getStackKind() == componentKind || componentKind.getBitCount() >= values[i].getKind().getStackKind().getBitCount() : values[i].getKind() + " != " + - componentKind; + if (componentKind == Kind.Object) { + for (int i = 0; i < values.length; i++) { + assert values[i].getLIRKind().isReference(0) : values[i].getKind() + " != " + componentKind; + } + } else { + for (int i = 0; i < values.length; i++) { + assert values[i].getKind() == componentKind || componentKind.getBitCount() >= values[i].getKind().getBitCount() : values[i].getKind() + " != " + componentKind; + } } } - } return true; }