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) + "]";
-    }
 }