Mercurial > hg > truffle
changeset 18283:b2eb7302706c
added HotSpotObjectConstant.getNodeClass()
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 06 Nov 2014 13:26:33 +0100 |
parents | ecf3de366ecc |
children | 29ba2a7cdfcb |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstantImpl.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotNodeClassSubstitutions.java |
diffstat | 3 files changed, 19 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java Thu Nov 06 13:24:16 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java Thu Nov 06 13:26:33 2014 +0100 @@ -23,6 +23,7 @@ package com.oracle.graal.hotspot.meta; import com.oracle.graal.api.meta.*; +import com.oracle.graal.graph.*; /** * Represents a constant non-{@code null} object reference, within the compiler and across the @@ -49,4 +50,12 @@ */ @PureFunction int getIdentityHashCode(); + + /** + * Gets the result of {@link NodeClass#get(Class)} for the {@link Class} object represented by + * this constant. + * + * @return {@code null} if this constant does not represent a {@link Class} object + */ + JavaConstant getNodeClass(); }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstantImpl.java Thu Nov 06 13:24:16 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstantImpl.java Thu Nov 06 13:26:33 2014 +0100 @@ -23,6 +23,7 @@ package com.oracle.graal.hotspot.meta; import com.oracle.graal.api.meta.*; +import com.oracle.graal.graph.*; /** * Represents a constant non-{@code null} object reference, within the compiler and across the @@ -109,6 +110,13 @@ return System.identityHashCode(object); } + public JavaConstant getNodeClass() { + if (object instanceof Class) { + return HotSpotObjectConstantImpl.forObject(NodeClass.get((Class<?>) object)); + } + return null; + } + @Override public boolean isNull() { return false;
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotNodeClassSubstitutions.java Thu Nov 06 13:24:16 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotNodeClassSubstitutions.java Thu Nov 06 13:26:33 2014 +0100 @@ -60,7 +60,8 @@ if (param.isNull() || ImmutableCode.getValue()) { return null; } - return HotSpotObjectConstantImpl.forObject(NodeClass.get((Class<?>) HotSpotObjectConstantImpl.asObject(param))); + HotSpotObjectConstant c = (HotSpotObjectConstant) param; + return c.getNodeClass(); } }