Mercurial > hg > truffle
changeset 16584:ab84673bedc2
change assertions in VirtualObject to look at the LIRKind
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Wed, 23 Jul 2014 13:56:02 +0200 |
parents | 342fe74e3b90 |
children | 0d3a4532a28c |
files | graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/VirtualObject.java |
diffstat | 1 files changed, 16 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- 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; }