Mercurial > hg > graal-jvmci-8
diff graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java @ 18262:f7d45e2426d4
converted HotSpotObjectConstant to an interface
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 05 Nov 2014 21:07:59 +0100 |
parents | 8652481a1110 |
children | f2d1fbba41b6 |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java Wed Nov 05 21:07:59 2014 +0100 @@ -28,133 +28,10 @@ * Represents a constant non-{@code null} object reference, within the compiler and across the * compiler/runtime interface. */ -public final class HotSpotObjectConstant extends JavaConstant implements HotSpotConstant, VMConstant { - - private static final long serialVersionUID = 3592151693708093496L; - - public static JavaConstant forObject(Object object) { - if (object == null) { - return JavaConstant.NULL_OBJECT; - } else { - return new HotSpotObjectConstant(object, false); - } - } - - public static JavaConstant forBoxedValue(Kind kind, Object value) { - if (kind == Kind.Object) { - return HotSpotObjectConstant.forObject(value); - } else { - return JavaConstant.forBoxedPrimitive(value); - } - } - - public static Object asObject(Constant constant) { - if (JavaConstant.isNull(constant)) { - return null; - } else { - return ((HotSpotObjectConstant) constant).object; - } - } +public interface HotSpotObjectConstant extends HotSpotConstant, VMConstant { - public static Object asBoxedValue(Constant constant) { - if (JavaConstant.isNull(constant)) { - return null; - } else if (constant instanceof HotSpotObjectConstant) { - return ((HotSpotObjectConstant) constant).object; - } else { - return ((JavaConstant) constant).asBoxedPrimitive(); - } - } - - public static boolean isCompressed(Constant constant) { - if (JavaConstant.isNull(constant)) { - return HotSpotCompressedNullConstant.NULL_OBJECT.equals(constant); - } else { - return ((HotSpotObjectConstant) constant).compressed; - } - } - - private final Object object; - private final boolean compressed; - - private HotSpotObjectConstant(Object object, boolean compressed) { - super(LIRKind.reference(compressed ? Kind.Int : Kind.Object)); - this.object = object; - this.compressed = compressed; - assert object != null; - } - - public JavaConstant compress() { - assert !compressed; - return new HotSpotObjectConstant(object, true); - } + JavaConstant compress(); - public JavaConstant uncompress() { - assert compressed; - return new HotSpotObjectConstant(object, false); - } - - @Override - public boolean isNull() { - return false; - } - - @Override - public boolean isDefaultForKind() { - return false; - } - - @Override - public Object asBoxedPrimitive() { - throw new IllegalArgumentException(); - } - - @Override - public int asInt() { - throw new IllegalArgumentException(); - } - - @Override - public boolean asBoolean() { - throw new IllegalArgumentException(); - } - - @Override - public long asLong() { - throw new IllegalArgumentException(); - } + JavaConstant uncompress(); - @Override - public float asFloat() { - throw new IllegalArgumentException(); - } - - @Override - public double asDouble() { - throw new IllegalArgumentException(); - } - - @Override - public int hashCode() { - return System.identityHashCode(object); - } - - @Override - public boolean equals(Object o) { - return o == this || (o instanceof HotSpotObjectConstant && super.equals(o) && object == ((HotSpotObjectConstant) o).object); - } - - @Override - public String toValueString() { - if (object instanceof String) { - return (String) object; - } else { - return Kind.Object.format(object); - } - } - - @Override - public String toString() { - return (compressed ? "NarrowOop" : getKind().getJavaName()) + "[" + Kind.Object.format(object) + "]"; - } }