# HG changeset patch # User Doug Simon # Date 1415218079 -3600 # Node ID f7d45e2426d49b5fdc29e50baf80d414ea8a94e9 # Parent d66c79acfeace3036ef85f6f6500667cf24d1af7 converted HotSpotObjectConstant to an interface diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBytecodeLIRBuilder.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBytecodeLIRBuilder.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBytecodeLIRBuilder.java Wed Nov 05 21:07:59 2014 +0100 @@ -87,7 +87,7 @@ @Override public JavaConstant getClassConstant(ResolvedJavaType declaringClass) { - return HotSpotObjectConstant.forObject(((HotSpotResolvedJavaType) declaringClass).mirror()); + return HotSpotObjectConstantImpl.forObject(((HotSpotResolvedJavaType) declaringClass).mirror()); } @Override diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompare.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompare.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompare.java Wed Nov 05 21:07:59 2014 +0100 @@ -55,7 +55,7 @@ // compressed null masm.testl(asRegister(x), asRegister(x)); } else if (y instanceof HotSpotObjectConstant) { - if (HotSpotObjectConstant.isCompressed(y)) { + if (HotSpotObjectConstantImpl.isCompressed(y)) { // compressed oop crb.recordInlineDataInCode(y); masm.cmpl(asRegister(x), 0xDEADDEAD); @@ -96,7 +96,7 @@ // compressed null masm.cmpl(address.toAddress(), 0); } else if (y instanceof HotSpotObjectConstant) { - if (HotSpotObjectConstant.isCompressed(y) && crb.target.inlineObjects) { + if (HotSpotObjectConstantImpl.isCompressed(y) && crb.target.inlineObjects) { // compressed oop crb.recordInlineDataInCode(y); masm.cmpl(address.toAddress(), 0xDEADDEAD); diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Wed Nov 05 21:07:59 2014 +0100 @@ -620,7 +620,7 @@ if (HotSpotCompressedNullConstant.COMPRESSED_NULL.equals(c)) { return true; } else if (c instanceof HotSpotObjectConstant) { - return HotSpotObjectConstant.isCompressed(c); + return HotSpotObjectConstantImpl.isCompressed(c); } else { return super.canInlineConstant(c); } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotMove.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotMove.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotMove.java Wed Nov 05 21:07:59 2014 +0100 @@ -62,7 +62,7 @@ masm.movl((AMD64Address) crb.asAddress(result), 0); } } else if (input instanceof HotSpotObjectConstant) { - boolean compressed = HotSpotObjectConstant.isCompressed(input); + boolean compressed = HotSpotObjectConstantImpl.isCompressed(input); if (crb.target.inlineObjects) { crb.recordInlineDataInCode(input); if (isRegister(result)) { @@ -135,7 +135,7 @@ // compressed null masm.movl(address.toAddress(), 0); } else if (input instanceof HotSpotObjectConstant) { - if (HotSpotObjectConstant.isCompressed(input) && crb.target.inlineObjects) { + if (HotSpotObjectConstantImpl.isCompressed(input) && crb.target.inlineObjects) { // compressed oop crb.recordInlineDataInCode(input); masm.movl(address.toAddress(), 0xDEADDEAD); diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotAssembler.java --- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotAssembler.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotAssembler.java Wed Nov 05 21:07:59 2014 +0100 @@ -46,7 +46,7 @@ if (src.isNull()) { emitString("mov_b64 " + regName + ", 0x0; // null object"); } else { - Object obj = HotSpotObjectConstant.asObject(src); + Object obj = HotSpotObjectConstantImpl.asObject(src); // Get a JNI reference handle to the object. long refHandle = OkraUtil.getRefHandle(obj); // Get the clasname of the object for emitting a comment. diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java --- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java Wed Nov 05 21:07:59 2014 +0100 @@ -235,7 +235,7 @@ protected HSAILLIRInstruction createMove(AllocatableValue dst, Value src) { if (HotSpotCompressedNullConstant.COMPRESSED_NULL.equals(src)) { return new MoveToRegOp(Kind.Int, dst, JavaConstant.INT_0); - } else if (src instanceof HotSpotObjectConstant && HotSpotObjectConstant.isCompressed((JavaConstant) src)) { + } else if (src instanceof HotSpotObjectConstant && HotSpotObjectConstantImpl.isCompressed((JavaConstant) src)) { Variable uncompressed = newVariable(LIRKind.reference(Kind.Object)); append(new MoveToRegOp(Kind.Object, uncompressed, src)); CompressEncoding oopEncoding = config.getOopEncoding(); diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXWrapperBuilder.java --- a/graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXWrapperBuilder.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXWrapperBuilder.java Wed Nov 05 21:07:59 2014 +0100 @@ -190,7 +190,7 @@ } } - InvokeNode kernelStart = createInvoke(getClass(), "getKernelStart", ConstantNode.forConstant(HotSpotObjectConstant.forObject(kernel), providers.getMetaAccess(), getGraph())); + InvokeNode kernelStart = createInvoke(getClass(), "getKernelStart", ConstantNode.forConstant(HotSpotObjectConstantImpl.forObject(kernel), providers.getMetaAccess(), getGraph())); AllocaNode buf = append(AllocaNode.create(bufSize / wordSize, new BitSet())); ValueNode objectParametersOffsets; diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot.server/src/com/oracle/graal/hotspot/server/ReplacingStreams.java --- a/graal/com.oracle.graal.hotspot.server/src/com/oracle/graal/hotspot/server/ReplacingStreams.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.server/src/com/oracle/graal/hotspot/server/ReplacingStreams.java Wed Nov 05 21:07:59 2014 +0100 @@ -175,7 +175,7 @@ if (constant.getKind() != Kind.Object) { return obj; } - Object contents = HotSpotObjectConstant.asObject(constant); + Object contents = HotSpotObjectConstantImpl.asObject(constant); if (contents == null) { return obj; } @@ -185,12 +185,12 @@ } placeholder = objectMap.get(contents); if (placeholder != null) { - return HotSpotObjectConstant.forObject(placeholder); + return HotSpotObjectConstantImpl.forObject(placeholder); } if (contents instanceof Remote) { - return HotSpotObjectConstant.forObject(createRemoteCallPlaceholder(contents)); + return HotSpotObjectConstantImpl.forObject(createRemoteCallPlaceholder(contents)); } - return HotSpotObjectConstant.forObject(createDummyPlaceholder(contents)); + return HotSpotObjectConstantImpl.forObject(createDummyPlaceholder(contents)); } return obj; } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java --- a/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java Wed Nov 05 21:07:59 2014 +0100 @@ -104,7 +104,7 @@ NodeIterable filter = getConstantNodes(result); assertDeepEquals(1, filter.count()); - Object mirror = HotSpotObjectConstant.asObject(filter.first().asJavaConstant()); + Object mirror = HotSpotObjectConstantImpl.asObject(filter.first().asJavaConstant()); assertDeepEquals(Class.class, mirror.getClass()); assertDeepEquals(AheadOfTimeCompilationTest.class, mirror); @@ -132,7 +132,7 @@ StructuredGraph result = compile("getPrimitiveClassObject", false); NodeIterable filter = getConstantNodes(result); assertDeepEquals(1, filter.count()); - Object mirror = HotSpotObjectConstant.asObject(filter.first().asJavaConstant()); + Object mirror = HotSpotObjectConstantImpl.asObject(filter.first().asJavaConstant()); assertDeepEquals(Class.class, mirror.getClass()); assertDeepEquals(Integer.TYPE, mirror); @@ -160,7 +160,7 @@ NodeIterable filter = getConstantNodes(result); assertDeepEquals(1, filter.count()); - Object mirror = HotSpotObjectConstant.asObject(filter.first().asJavaConstant()); + Object mirror = HotSpotObjectConstantImpl.asObject(filter.first().asJavaConstant()); assertDeepEquals(String.class, mirror.getClass()); assertDeepEquals("test string", mirror); @@ -193,7 +193,7 @@ assertDeepEquals(1, getConstantNodes(result).count()); ConstantNode constant = getConstantNodes(result).first(); assertDeepEquals(Kind.Object, constant.getKind()); - assertDeepEquals(Boolean.TRUE, HotSpotObjectConstant.asObject(constant.asJavaConstant())); + assertDeepEquals(Boolean.TRUE, HotSpotObjectConstantImpl.asObject(constant.asJavaConstant())); } private StructuredGraph compile(String test, boolean compileAOT) { diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/InstalledCodeExecuteHelperTest.java --- a/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/InstalledCodeExecuteHelperTest.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/InstalledCodeExecuteHelperTest.java Wed Nov 05 21:07:59 2014 +0100 @@ -77,7 +77,7 @@ assert parameterTypes.length == args.length; for (int i = 0; i < argsToBind.length; i++) { ParameterNode param = graph.getParameter(i); - JavaConstant c = HotSpotObjectConstant.forBoxedValue(parameterTypes[i].getKind(), argsToBind[i]); + JavaConstant c = HotSpotObjectConstantImpl.forBoxedValue(parameterTypes[i].getKind(), argsToBind[i]); ConstantNode replacement = ConstantNode.forConstant(c, getMetaAccess(), graph); param.replaceAtUsages(replacement); } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Wed Nov 05 21:07:59 2014 +0100 @@ -236,7 +236,7 @@ @Override protected ValueNode staticFieldBase(StructuredGraph graph, ResolvedJavaField f) { HotSpotResolvedJavaField field = (HotSpotResolvedJavaField) f; - return ConstantNode.forConstant(HotSpotObjectConstant.forObject(field.getDeclaringClass().mirror()), metaAccess, graph); + return ConstantNode.forConstant(HotSpotObjectConstantImpl.forObject(field.getDeclaringClass().mirror()), metaAccess, graph); } @Override @@ -355,7 +355,7 @@ } else { throw GraalInternalError.shouldNotReachHere(); } - FloatingNode exceptionNode = ConstantNode.forConstant(HotSpotObjectConstant.forObject(exception), metaAccess, graph); + FloatingNode exceptionNode = ConstantNode.forConstant(HotSpotObjectConstantImpl.forObject(exception), metaAccess, graph); graph.replaceFixedWithFloating(node, exceptionNode); } else { diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java Wed Nov 05 21:07:59 2014 +0100 @@ -264,7 +264,7 @@ boolean compressed; long raw; if (constant instanceof HotSpotObjectConstant) { - compressed = HotSpotObjectConstant.isCompressed(constant); + compressed = HotSpotObjectConstantImpl.isCompressed(constant); raw = 0xDEADDEADDEADDEADL; } else if (constant instanceof HotSpotMetaspaceConstant) { HotSpotMetaspaceConstant meta = (HotSpotMetaspaceConstant) constant; @@ -288,7 +288,7 @@ }; } } else if (JavaConstant.isNull(constant)) { - boolean compressed = HotSpotObjectConstant.isCompressed(constant); + boolean compressed = HotSpotObjectConstantImpl.isCompressed(constant); size = target.getSizeInBytes(compressed ? Kind.Int : target.wordKind); builder = DataBuilder.zero(size); } else if (constant instanceof PrimitiveConstant) { diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantPool.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantPool.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantPool.java Wed Nov 05 21:07:59 2014 +0100 @@ -397,13 +397,13 @@ return lookupType(cpi, opcode); case String: Object string = runtime().getCompilerToVM().resolvePossiblyCachedConstantInPool(metaspaceConstantPool, cpi); - return HotSpotObjectConstant.forObject(string); + return HotSpotObjectConstantImpl.forObject(string); case MethodHandle: case MethodHandleInError: case MethodType: case MethodTypeInError: Object obj = runtime().getCompilerToVM().resolveConstantInPool(metaspaceConstantPool, cpi); - return HotSpotObjectConstant.forObject(obj); + return HotSpotObjectConstantImpl.forObject(obj); default: throw GraalInternalError.shouldNotReachHere("unknown constant pool tag " + tag); } @@ -428,7 +428,7 @@ if (result == null) { return null; } else { - return HotSpotObjectConstant.forObject(result); + return HotSpotObjectConstantImpl.forObject(result); } } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java Wed Nov 05 21:07:59 2014 +0100 @@ -49,10 +49,15 @@ @Override public Integer readArrayLength(JavaConstant array) { - if (array.getKind() != Kind.Object || array.isNull() || !HotSpotObjectConstant.asObject(array).getClass().isArray()) { + if (array.getKind() != Kind.Object || array.isNull()) { return null; } - return Array.getLength(HotSpotObjectConstant.asObject(array)); + + Object arrayObject = HotSpotObjectConstantImpl.asObject(array); + if (!arrayObject.getClass().isArray()) { + return null; + } + return Array.getLength(arrayObject); } @Override @@ -60,7 +65,7 @@ Object base; long displacement; if (baseConstant.getKind() == Kind.Object) { - base = HotSpotObjectConstant.asObject(baseConstant); + base = HotSpotObjectConstantImpl.asObject(baseConstant); displacement = initialDisplacement; if (base == null) { return null; @@ -115,7 +120,7 @@ } else { throw GraalInternalError.shouldNotReachHere(); } - return HotSpotObjectConstant.forObject(o); + return HotSpotObjectConstantImpl.forObject(o); } default: throw GraalInternalError.shouldNotReachHere(); @@ -127,7 +132,7 @@ Object base; long displacement; if (baseConstant.getKind() == Kind.Object) { - base = HotSpotObjectConstant.asObject(baseConstant); + base = HotSpotObjectConstantImpl.asObject(baseConstant); displacement = initialDisplacement; if (base == null) { return null; @@ -192,14 +197,14 @@ if (array.getKind() != Kind.Object || array.isNull()) { return null; } - Object a = HotSpotObjectConstant.asObject(array); + Object a = HotSpotObjectConstantImpl.asObject(array); if (index < 0 || index >= Array.getLength(a)) { return null; } if (a instanceof Object[]) { - return HotSpotObjectConstant.forObject(((Object[]) a)[index]); + return HotSpotObjectConstantImpl.forObject(((Object[]) a)[index]); } else { return JavaConstant.forBoxedPrimitive(Array.get(a, index)); } @@ -210,7 +215,7 @@ if (!source.getKind().isPrimitive()) { return null; } - return HotSpotObjectConstant.forObject(source.asBoxedPrimitive()); + return HotSpotObjectConstantImpl.forObject(source.asBoxedPrimitive()); } @Override @@ -218,13 +223,13 @@ if (!source.getKind().isObject()) { return null; } - return JavaConstant.forBoxedPrimitive(HotSpotObjectConstant.asObject(source)); + return JavaConstant.forBoxedPrimitive(HotSpotObjectConstantImpl.asObject(source)); } @Override public ResolvedJavaType asJavaType(JavaConstant constant) { if (constant instanceof HotSpotObjectConstant) { - Object obj = HotSpotObjectConstant.asObject(constant); + Object obj = HotSpotObjectConstantImpl.asObject(constant); if (obj instanceof Class) { return runtime.getHostProviders().getMetaAccess().lookupJavaType((Class) obj); } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaAccessProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaAccessProvider.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaAccessProvider.java Wed Nov 05 21:07:59 2014 +0100 @@ -62,7 +62,7 @@ if (constant.isNull() || !(constant instanceof HotSpotObjectConstant)) { return null; } - Object o = HotSpotObjectConstant.asObject(constant); + Object o = HotSpotObjectConstantImpl.asObject(constant); return fromObjectClass(o.getClass()); } @@ -308,7 +308,7 @@ } else { if (lookupJavaType.isArray()) { // TODO(tw): Add compressed pointer support. - int length = Array.getLength(HotSpotObjectConstant.asObject(constant)); + int length = Array.getLength(HotSpotObjectConstantImpl.asObject(constant)); ResolvedJavaType elementType = lookupJavaType.getComponentType(); Kind elementKind = elementType.getKind(); final int headerSize = HotSpotGraalRuntime.getArrayBaseOffset(elementKind); diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java --- 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) + "]"; - } } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstantImpl.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstantImpl.java Wed Nov 05 21:07:59 2014 +0100 @@ -0,0 +1,160 @@ +/* + * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.graal.hotspot.meta; + +import com.oracle.graal.api.meta.*; + +/** + * Represents a constant non-{@code null} object reference, within the compiler and across the + * compiler/runtime interface. + */ +public final class HotSpotObjectConstantImpl extends JavaConstant implements HotSpotObjectConstant { + + private static final long serialVersionUID = 3592151693708093496L; + + public static JavaConstant forObject(Object object) { + if (object == null) { + return JavaConstant.NULL_OBJECT; + } else { + return new HotSpotObjectConstantImpl(object, false); + } + } + + public static JavaConstant forBoxedValue(Kind kind, Object value) { + if (kind == Kind.Object) { + return HotSpotObjectConstantImpl.forObject(value); + } else { + return JavaConstant.forBoxedPrimitive(value); + } + } + + public static Object asObject(Constant constant) { + if (JavaConstant.isNull(constant)) { + return null; + } else { + return ((HotSpotObjectConstantImpl) constant).object; + } + } + + public static Object asBoxedValue(Constant constant) { + if (JavaConstant.isNull(constant)) { + return null; + } else if (constant instanceof HotSpotObjectConstantImpl) { + return ((HotSpotObjectConstantImpl) 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 ((HotSpotObjectConstantImpl) constant).compressed; + } + } + + private final Object object; + private final boolean compressed; + + private HotSpotObjectConstantImpl(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 HotSpotObjectConstantImpl(object, true); + } + + public JavaConstant uncompress() { + assert compressed; + return new HotSpotObjectConstantImpl(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(); + } + + @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 HotSpotObjectConstantImpl && super.equals(o) && object == ((HotSpotObjectConstantImpl) 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) + "]"; + } +} diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java Wed Nov 05 21:07:59 2014 +0100 @@ -210,7 +210,7 @@ * have a non-default value. */ assert !isStatic(); - Object object = HotSpotObjectConstant.asObject(receiver); + Object object = HotSpotObjectConstantImpl.asObject(receiver); // Canonicalization may attempt to process an unsafe read before // processing a guard (e.g. a null check or a type check) for this read @@ -236,7 +236,7 @@ if (isInObject(object)) { assert getName().equals("value") : "Unexpected field in " + StableOptionValue.class.getName() + " hierarchy:" + this; StableOptionValue option = (StableOptionValue) object; - return HotSpotObjectConstant.forObject(option.getValue()); + return HotSpotObjectConstantImpl.forObject(option.getValue()); } } } @@ -263,12 +263,12 @@ if (receiver == null) { assert isStatic(); if (holder.isInitialized()) { - return runtime().getHostProviders().getConstantReflection().readUnsafeConstant(getKind(), HotSpotObjectConstant.forObject(holder.mirror()), offset); + return runtime().getHostProviders().getConstantReflection().readUnsafeConstant(getKind(), HotSpotObjectConstantImpl.forObject(holder.mirror()), offset); } return null; } else { assert !isStatic(); - assert receiver.isNonNull() && isInObject(HotSpotObjectConstant.asObject(receiver)); + assert receiver.isNonNull() && isInObject(HotSpotObjectConstantImpl.asObject(receiver)); return runtime().getHostProviders().getConstantReflection().readUnsafeConstant(getKind(), receiver, offset); } } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java Wed Nov 05 21:07:59 2014 +0100 @@ -709,13 +709,13 @@ Object[] objArguments = new Object[arguments.length]; for (int i = 0; i < arguments.length; i++) { - objArguments[i] = HotSpotObjectConstant.asBoxedValue(arguments[i]); + objArguments[i] = HotSpotObjectConstantImpl.asBoxedValue(arguments[i]); } - Object objReceiver = receiver != null ? HotSpotObjectConstant.asObject(receiver) : null; + Object objReceiver = receiver != null ? HotSpotObjectConstantImpl.asObject(receiver) : null; try { Object objResult = javaMethod.invoke(objReceiver, objArguments); - return javaMethod.getReturnType() == void.class ? null : HotSpotObjectConstant.forBoxedValue(getSignature().getReturnKind(), objResult); + return javaMethod.getReturnType() == void.class ? null : HotSpotObjectConstantImpl.forBoxedValue(getSignature().getReturnKind(), objResult); } catch (IllegalAccessException | InvocationTargetException ex) { throw new IllegalArgumentException(ex); @@ -730,13 +730,13 @@ Object[] objArguments = new Object[arguments.length]; for (int i = 0; i < arguments.length; i++) { - objArguments[i] = HotSpotObjectConstant.asBoxedValue(arguments[i]); + objArguments[i] = HotSpotObjectConstantImpl.asBoxedValue(arguments[i]); } try { Object objResult = javaConstructor.newInstance(objArguments); assert objResult != null; - return HotSpotObjectConstant.forObject(objResult); + return HotSpotObjectConstantImpl.forObject(objResult); } catch (IllegalAccessException | InvocationTargetException | InstantiationException ex) { throw new IllegalArgumentException(ex); diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectTypeImpl.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectTypeImpl.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectTypeImpl.java Wed Nov 05 21:07:59 2014 +0100 @@ -281,7 +281,7 @@ public JavaConstant getEncoding(Representation r) { switch (r) { case JavaClass: - return HotSpotObjectConstant.forObject(mirror()); + return HotSpotObjectConstantImpl.forObject(mirror()); case ObjectHub: return klass(); default: @@ -343,7 +343,7 @@ @Override public boolean isInstance(JavaConstant obj) { if (obj.getKind() == Kind.Object && !obj.isNull()) { - return mirror().isInstance(HotSpotObjectConstant.asObject(obj)); + return mirror().isInstance(HotSpotObjectConstantImpl.asObject(obj)); } return false; } @@ -862,7 +862,7 @@ @Override public JavaConstant newArray(int length) { - return HotSpotObjectConstant.forObject(Array.newInstance(mirror(), length)); + return HotSpotObjectConstantImpl.forObject(Array.newInstance(mirror(), length)); } @Override diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedPrimitiveType.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedPrimitiveType.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedPrimitiveType.java Wed Nov 05 21:07:59 2014 +0100 @@ -280,7 +280,7 @@ @Override public JavaConstant newArray(int length) { - return HotSpotObjectConstant.forObject(Array.newInstance(mirror(), length)); + return HotSpotObjectConstantImpl.forObject(Array.newInstance(mirror(), length)); } @Override diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSnippetReflectionProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSnippetReflectionProvider.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSnippetReflectionProvider.java Wed Nov 05 21:07:59 2014 +0100 @@ -29,21 +29,21 @@ @Override public JavaConstant forObject(Object object) { - return HotSpotObjectConstant.forObject(object); + return HotSpotObjectConstantImpl.forObject(object); } @Override public Object asObject(JavaConstant constant) { - return HotSpotObjectConstant.asObject(constant); + return HotSpotObjectConstantImpl.asObject(constant); } @Override public JavaConstant forBoxed(Kind kind, Object value) { - return HotSpotObjectConstant.forBoxedValue(kind, value); + return HotSpotObjectConstantImpl.forBoxedValue(kind, value); } @Override public Object asBoxedValue(JavaConstant constant) { - return HotSpotObjectConstant.asBoxedValue(constant); + return HotSpotObjectConstantImpl.asBoxedValue(constant); } } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSpeculationLog.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSpeculationLog.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSpeculationLog.java Wed Nov 05 21:07:59 2014 +0100 @@ -30,6 +30,6 @@ @Override public JavaConstant speculate(Object reason) { addSpeculation(reason); - return HotSpotObjectConstant.forObject(reason); + return HotSpotObjectConstantImpl.forObject(reason); } } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetClassLoader0Node.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetClassLoader0Node.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetClassLoader0Node.java Wed Nov 05 21:07:59 2014 +0100 @@ -55,14 +55,14 @@ public Node canonical(CanonicalizerTool tool) { ValueNode javaClass = getJavaClass(); if (javaClass.isConstant()) { - Class c = (Class) HotSpotObjectConstant.asObject(javaClass.asJavaConstant()); + Class c = (Class) HotSpotObjectConstantImpl.asObject(javaClass.asJavaConstant()); if (c != null) { /* * This is an intrinsic for getClassLoader0, which occurs after any security checks. * We can't call that directly so just call getClassLoader. */ ClassLoader classLoader = c.getClassLoader(); - return ConstantNode.forConstant(HotSpotObjectConstant.forObject(classLoader), tool.getMetaAccess()); + return ConstantNode.forConstant(HotSpotObjectConstantImpl.forObject(classLoader), tool.getMetaAccess()); } } return this; diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetComponentTypeNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetComponentTypeNode.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetComponentTypeNode.java Wed Nov 05 21:07:59 2014 +0100 @@ -54,10 +54,10 @@ public Node canonical(CanonicalizerTool tool) { ValueNode javaClass = getJavaClass(); if (javaClass.isConstant()) { - Class c = (Class) HotSpotObjectConstant.asObject(javaClass.asJavaConstant()); + Class c = (Class) HotSpotObjectConstantImpl.asObject(javaClass.asJavaConstant()); if (c != null) { Class componentType = c.getComponentType(); - return ConstantNode.forConstant(HotSpotObjectConstant.forObject(componentType), tool.getMetaAccess()); + return ConstantNode.forConstant(HotSpotObjectConstantImpl.forObject(componentType), tool.getMetaAccess()); } } return this; diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetModifiersNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetModifiersNode.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetModifiersNode.java Wed Nov 05 21:07:59 2014 +0100 @@ -54,7 +54,7 @@ public Node canonical(CanonicalizerTool tool) { ValueNode javaClass = getJavaClass(); if (javaClass.isConstant()) { - Class c = (Class) HotSpotObjectConstant.asObject(javaClass.asJavaConstant()); + Class c = (Class) HotSpotObjectConstantImpl.asObject(javaClass.asJavaConstant()); if (c != null) { return ConstantNode.forInt(c.getModifiers()); } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetSuperclassNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetSuperclassNode.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetSuperclassNode.java Wed Nov 05 21:07:59 2014 +0100 @@ -54,10 +54,10 @@ public Node canonical(CanonicalizerTool tool) { ValueNode javaClass = getJavaClass(); if (javaClass.isConstant()) { - Class c = (Class) HotSpotObjectConstant.asObject(javaClass.asJavaConstant()); + Class c = (Class) HotSpotObjectConstantImpl.asObject(javaClass.asJavaConstant()); if (c != null) { Class superclass = c.getSuperclass(); - return ConstantNode.forConstant(HotSpotObjectConstant.forObject(superclass), tool.getMetaAccess()); + return ConstantNode.forConstant(HotSpotObjectConstantImpl.forObject(superclass), tool.getMetaAccess()); } } return this; diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsArrayNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsArrayNode.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsArrayNode.java Wed Nov 05 21:07:59 2014 +0100 @@ -54,7 +54,7 @@ public Node canonical(CanonicalizerTool tool) { ValueNode javaClass = getJavaClass(); if (javaClass.isConstant()) { - Class c = (Class) HotSpotObjectConstant.asObject(javaClass.asJavaConstant()); + Class c = (Class) HotSpotObjectConstantImpl.asObject(javaClass.asJavaConstant()); if (c != null) { return ConstantNode.forBoolean(c.isArray()); } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsInterfaceNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsInterfaceNode.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsInterfaceNode.java Wed Nov 05 21:07:59 2014 +0100 @@ -54,7 +54,7 @@ public Node canonical(CanonicalizerTool tool) { ValueNode javaClass = getJavaClass(); if (javaClass.isConstant()) { - Class c = (Class) HotSpotObjectConstant.asObject(javaClass.asJavaConstant()); + Class c = (Class) HotSpotObjectConstantImpl.asObject(javaClass.asJavaConstant()); if (c != null) { return ConstantNode.forBoolean(c.isInterface()); } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsPrimitiveNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsPrimitiveNode.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsPrimitiveNode.java Wed Nov 05 21:07:59 2014 +0100 @@ -54,7 +54,7 @@ public Node canonical(CanonicalizerTool tool) { ValueNode javaClass = getJavaClass(); if (javaClass.isConstant()) { - Class c = (Class) HotSpotObjectConstant.asObject(javaClass.asJavaConstant()); + Class c = (Class) HotSpotObjectConstantImpl.asObject(javaClass.asJavaConstant()); if (c != null) { return ConstantNode.forBoolean(c.isPrimitive()); } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/AheadOfTimeVerificationPhase.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/AheadOfTimeVerificationPhase.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/AheadOfTimeVerificationPhase.java Wed Nov 05 21:07:59 2014 +0100 @@ -80,7 +80,7 @@ return false; } - Object o = HotSpotObjectConstant.asObject(node.asJavaConstant()); + Object o = HotSpotObjectConstantImpl.asObject(node.asJavaConstant()); if (!(o instanceof String)) { return false; } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/LoadJavaMirrorWithKlassPhase.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/LoadJavaMirrorWithKlassPhase.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/LoadJavaMirrorWithKlassPhase.java Wed Nov 05 21:07:59 2014 +0100 @@ -60,9 +60,9 @@ } private ValueNode getClassConstantReplacement(StructuredGraph graph, PhaseContext context, JavaConstant constant) { - if (constant instanceof HotSpotObjectConstant && HotSpotObjectConstant.asObject(constant) instanceof Class) { + if (constant instanceof HotSpotObjectConstant && HotSpotObjectConstantImpl.asObject(constant) instanceof Class) { MetaAccessProvider metaAccess = context.getMetaAccess(); - ResolvedJavaType type = metaAccess.lookupJavaType((Class) HotSpotObjectConstant.asObject(constant)); + ResolvedJavaType type = metaAccess.lookupJavaType((Class) HotSpotObjectConstantImpl.asObject(constant)); JavaConstant klass; LocationNode location; if (type instanceof HotSpotResolvedObjectType) { @@ -94,7 +94,7 @@ Stamp stamp = StampFactory.exactNonNull(metaAccess.lookupJavaType(Class.class)); FloatingReadNode freadNode = graph.unique(FloatingReadNode.create(klassNode, location, null, stamp)); - if (HotSpotObjectConstant.isCompressed(constant)) { + if (HotSpotObjectConstantImpl.isCompressed(constant)) { return CompressionNode.compress(freadNode, oopEncoding); } else { return freadNode; diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteTargetNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteTargetNode.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteTargetNode.java Wed Nov 05 21:07:59 2014 +0100 @@ -51,7 +51,7 @@ private ConstantNode getConstantCallTarget(MetaAccessProvider metaAccess, Assumptions assumptions) { if (getCallSite().isConstant() && !getCallSite().isNullConstant()) { - CallSite callSite = (CallSite) HotSpotObjectConstant.asObject(getCallSite().asJavaConstant()); + CallSite callSite = (CallSite) HotSpotObjectConstantImpl.asObject(getCallSite().asJavaConstant()); MethodHandle target = callSite.getTarget(); if (!(callSite instanceof ConstantCallSite)) { if (assumptions == null || !assumptions.useOptimisticAssumptions()) { @@ -59,7 +59,7 @@ } assumptions.record(new Assumptions.CallSiteTargetValue(callSite, target)); } - return ConstantNode.forConstant(HotSpotObjectConstant.forObject(target), metaAccess, graph()); + return ConstantNode.forConstant(HotSpotObjectConstantImpl.forObject(target), metaAccess, graph()); } return null; } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CompositeValueClassSubstitutions.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CompositeValueClassSubstitutions.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CompositeValueClassSubstitutions.java Wed Nov 05 21:07:59 2014 +0100 @@ -61,7 +61,7 @@ if (param.isNull() || ImmutableCode.getValue()) { return null; } - return HotSpotObjectConstant.forObject(CompositeValueClass.get((Class) HotSpotObjectConstant.asObject(param))); + return HotSpotObjectConstantImpl.forObject(CompositeValueClass.get((Class) HotSpotObjectConstantImpl.asObject(param))); } } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotNodeClassSubstitutions.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotNodeClassSubstitutions.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotNodeClassSubstitutions.java Wed Nov 05 21:07:59 2014 +0100 @@ -60,7 +60,7 @@ if (param.isNull() || ImmutableCode.getValue()) { return null; } - return HotSpotObjectConstant.forObject(NodeClass.get((Class) HotSpotObjectConstant.asObject(param))); + return HotSpotObjectConstantImpl.forObject(NodeClass.get((Class) HotSpotObjectConstantImpl.asObject(param))); } } diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java Wed Nov 05 21:07:59 2014 +0100 @@ -507,7 +507,7 @@ for (ReturnNode ret : rets) { returnType = checkCounter.getMethod().getSignature().getReturnType(checkCounter.getMethod().getDeclaringClass()); String msg = "unbalanced monitors in " + graph.method().format("%H.%n(%p)") + ", count = %d"; - ConstantNode errMsg = ConstantNode.forConstant(HotSpotObjectConstant.forObject(msg), providers.getMetaAccess(), graph); + ConstantNode errMsg = ConstantNode.forConstant(HotSpotObjectConstantImpl.forObject(msg), providers.getMetaAccess(), graph); callTarget = graph.add(MethodCallTargetNode.create(InvokeKind.Static, checkCounter.getMethod(), new ValueNode[]{errMsg}, returnType)); invoke = graph.add(InvokeNode.create(callTarget, 0)); List stack = Collections.emptyList(); diff -r d66c79acfeac -r f7d45e2426d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/SystemIdentityHashCodeNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/SystemIdentityHashCodeNode.java Wed Nov 05 17:32:21 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/SystemIdentityHashCodeNode.java Wed Nov 05 21:07:59 2014 +0100 @@ -43,6 +43,6 @@ @Override protected JavaConstant evaluate(JavaConstant param, MetaAccessProvider metaAccess) { - return ImmutableCode.getValue() || param.isNull() ? null : JavaConstant.forInt(System.identityHashCode(HotSpotObjectConstant.asObject(param))); + return ImmutableCode.getValue() || param.isNull() ? null : JavaConstant.forInt(System.identityHashCode(HotSpotObjectConstantImpl.asObject(param))); } } diff -r d66c79acfeac -r f7d45e2426d4 src/cpu/sparc/vm/graalCodeInstaller_sparc.cpp --- a/src/cpu/sparc/vm/graalCodeInstaller_sparc.cpp Wed Nov 05 17:32:21 2014 +0100 +++ b/src/cpu/sparc/vm/graalCodeInstaller_sparc.cpp Wed Nov 05 21:07:59 2014 +0100 @@ -42,9 +42,9 @@ void CodeInstaller::pd_patch_OopConstant(int pc_offset, Handle& constant) { address pc = _instructions->start() + pc_offset; - Handle obj = HotSpotObjectConstant::object(constant); + Handle obj = HotSpotObjectConstantImpl::object(constant); jobject value = JNIHandles::make_local(obj()); - if (HotSpotObjectConstant::compressed(constant)) { + if (HotSpotObjectConstantImpl::compressed(constant)) { fatal("unimplemented: narrow oop relocation"); } else { NativeMovConstReg* move = nativeMovConstReg_at(pc); diff -r d66c79acfeac -r f7d45e2426d4 src/cpu/x86/vm/graalCodeInstaller_x86.cpp --- a/src/cpu/x86/vm/graalCodeInstaller_x86.cpp Wed Nov 05 17:32:21 2014 +0100 +++ b/src/cpu/x86/vm/graalCodeInstaller_x86.cpp Wed Nov 05 21:07:59 2014 +0100 @@ -60,9 +60,9 @@ void CodeInstaller::pd_patch_OopConstant(int pc_offset, Handle& constant) { address pc = _instructions->start() + pc_offset; - Handle obj = HotSpotObjectConstant::object(constant); + Handle obj = HotSpotObjectConstantImpl::object(constant); jobject value = JNIHandles::make_local(obj()); - if (HotSpotObjectConstant::compressed(constant)) { + if (HotSpotObjectConstantImpl::compressed(constant)) { address operand = Assembler::locate_operand(pc, Assembler::narrow_oop_operand); int oop_index = _oop_recorder->find_index(value); _instructions->relocate(pc, oop_Relocation::spec(oop_index), Assembler::narrow_oop_operand); diff -r d66c79acfeac -r f7d45e2426d4 src/share/vm/classfile/systemDictionary.hpp --- a/src/share/vm/classfile/systemDictionary.hpp Wed Nov 05 17:32:21 2014 +0100 +++ b/src/share/vm/classfile/systemDictionary.hpp Wed Nov 05 21:07:59 2014 +0100 @@ -201,7 +201,7 @@ GRAAL_ONLY(do_klass(HotSpotResolvedObjectTypeImpl_klass, com_oracle_graal_hotspot_meta_HotSpotResolvedObjectTypeImpl, Graal)) \ GRAAL_ONLY(do_klass(HotSpotMonitorValue_klass, com_oracle_graal_hotspot_meta_HotSpotMonitorValue, Graal)) \ GRAAL_ONLY(do_klass(HotSpotCompressedNullConstant_klass, com_oracle_graal_hotspot_meta_HotSpotCompressedNullConstant, Graal)) \ - GRAAL_ONLY(do_klass(HotSpotObjectConstant_klass, com_oracle_graal_hotspot_meta_HotSpotObjectConstant, Graal)) \ + GRAAL_ONLY(do_klass(HotSpotObjectConstantImpl_klass, com_oracle_graal_hotspot_meta_HotSpotObjectConstantImpl, Graal)) \ GRAAL_ONLY(do_klass(HotSpotMetaspaceConstant_klass, com_oracle_graal_hotspot_meta_HotSpotMetaspaceConstant, Graal)) \ GRAAL_ONLY(do_klass(HotSpotStackFrameReference_klass, com_oracle_graal_hotspot_HotSpotStackFrameReference, Graal)) \ GRAAL_ONLY(do_klass(CompilationTask_klass, com_oracle_graal_hotspot_CompilationTask, Graal)) \ diff -r d66c79acfeac -r f7d45e2426d4 src/share/vm/classfile/vmSymbols.hpp --- a/src/share/vm/classfile/vmSymbols.hpp Wed Nov 05 17:32:21 2014 +0100 +++ b/src/share/vm/classfile/vmSymbols.hpp Wed Nov 05 21:07:59 2014 +0100 @@ -308,7 +308,7 @@ GRAAL_ONLY(template(com_oracle_graal_hotspot_meta_HotSpotResolvedObjectTypeImpl, "com/oracle/graal/hotspot/meta/HotSpotResolvedObjectTypeImpl")) \ GRAAL_ONLY(template(com_oracle_graal_hotspot_meta_HotSpotMonitorValue, "com/oracle/graal/hotspot/meta/HotSpotMonitorValue")) \ GRAAL_ONLY(template(com_oracle_graal_hotspot_meta_HotSpotCompressedNullConstant, "com/oracle/graal/hotspot/meta/HotSpotCompressedNullConstant")) \ - GRAAL_ONLY(template(com_oracle_graal_hotspot_meta_HotSpotObjectConstant, "com/oracle/graal/hotspot/meta/HotSpotObjectConstant")) \ + GRAAL_ONLY(template(com_oracle_graal_hotspot_meta_HotSpotObjectConstantImpl, "com/oracle/graal/hotspot/meta/HotSpotObjectConstantImpl")) \ GRAAL_ONLY(template(com_oracle_graal_hotspot_meta_HotSpotMetaspaceConstant, "com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstant")) \ GRAAL_ONLY(template(com_oracle_graal_hotspot_HotSpotStackFrameReference, "com/oracle/graal/hotspot/HotSpotStackFrameReference")) \ GRAAL_ONLY(template(com_oracle_graal_hotspot_CompilationTask, "com/oracle/graal/hotspot/CompilationTask")) \ diff -r d66c79acfeac -r f7d45e2426d4 src/share/vm/graal/graalCodeInstaller.cpp --- a/src/share/vm/graal/graalCodeInstaller.cpp Wed Nov 05 17:32:21 2014 +0100 +++ b/src/share/vm/graal/graalCodeInstaller.cpp Wed Nov 05 21:07:59 2014 +0100 @@ -315,8 +315,8 @@ if (value->is_a(NullConstant::klass()) || value->is_a(HotSpotCompressedNullConstant::klass())) { return _oop_null_scope_value; } else { - assert(value->is_a(HotSpotObjectConstant::klass()), "unexpected constant type"); - oop obj = HotSpotObjectConstant::object(value); + assert(value->is_a(HotSpotObjectConstantImpl::klass()), "unexpected constant type"); + oop obj = HotSpotObjectConstantImpl::object(value); assert(obj != NULL, "null value must be in NullConstant"); return new ConstantOopWriteValue(JNIHandles::make_local(obj)); } @@ -571,13 +571,13 @@ Handle constant = CompilationResult_ConstantReference::constant(reference); if (constant->is_a(HotSpotMetaspaceConstant::klass())) { record_metadata_in_patch(constant, _oop_recorder); - } else if (constant->is_a(HotSpotObjectConstant::klass())) { - Handle obj = HotSpotObjectConstant::object(constant); + } else if (constant->is_a(HotSpotObjectConstantImpl::klass())) { + Handle obj = HotSpotObjectConstantImpl::object(constant); jobject value = JNIHandles::make_local(obj()); int oop_index = _oop_recorder->find_index(value); address dest = _constants->start() + CompilationResult_Site::pcOffset(patch); - if (HotSpotObjectConstant::compressed(constant)) { + if (HotSpotObjectConstantImpl::compressed(constant)) { #ifdef _LP64 _constants->relocate(dest, oop_Relocation::spec(oop_index), relocInfo::narrow_oop_in_const); #else @@ -907,7 +907,7 @@ oop reference = CompilationResult_DataPatch::reference(site); if (reference->is_a(CompilationResult_ConstantReference::klass())) { Handle constant = CompilationResult_ConstantReference::constant(reference); - if (constant->is_a(HotSpotObjectConstant::klass())) { + if (constant->is_a(HotSpotObjectConstantImpl::klass())) { pd_patch_OopConstant(pc_offset, constant); } else if (constant->is_a(HotSpotMetaspaceConstant::klass())) { record_metadata_in_patch(constant, _oop_recorder); diff -r d66c79acfeac -r f7d45e2426d4 src/share/vm/graal/graalJavaAccess.hpp --- a/src/share/vm/graal/graalJavaAccess.hpp Wed Nov 05 17:32:21 2014 +0100 +++ b/src/share/vm/graal/graalJavaAccess.hpp Wed Nov 05 21:07:59 2014 +0100 @@ -202,9 +202,9 @@ end_class \ start_class(HotSpotCompressedNullConstant) \ end_class \ - start_class(HotSpotObjectConstant) \ - oop_field(HotSpotObjectConstant, object, "Ljava/lang/Object;") \ - boolean_field(HotSpotObjectConstant, compressed) \ + start_class(HotSpotObjectConstantImpl) \ + oop_field(HotSpotObjectConstantImpl, object, "Ljava/lang/Object;") \ + boolean_field(HotSpotObjectConstantImpl, compressed) \ end_class \ start_class(HotSpotMetaspaceConstant) \ long_field(HotSpotMetaspaceConstant, primitive) \