# HG changeset patch # User Thomas Wuerthinger # Date 1302510125 -7200 # Node ID f21664b3dd1ccaa46469e7e6711c92b79514cac8 # Parent 0309d394eb5fe39f9b8a42aecda342cba7fad7fb Keeping up-to-date with Maxine/CRI changes. diff -r 0309d394eb5f -r f21664b3dd1c c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotField.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotField.java Mon Apr 04 21:02:45 2011 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotField.java Mon Apr 11 10:22:05 2011 +0200 @@ -56,8 +56,8 @@ } @Override - public CiConstant constantValue(Object object) { - if (object == null) { + public CiConstant constantValue(CiConstant receiver) { + if (receiver == null) { if (constant == null && holder.isResolved() && holder.javaClass() == C1XOptions.class) { Field f; try { diff -r 0309d394eb5f -r f21664b3dd1c c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRuntime.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRuntime.java Mon Apr 04 21:02:45 2011 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRuntime.java Mon Apr 11 10:22:05 2011 +0200 @@ -145,6 +145,23 @@ } @Override + public RiType getRiType(CiKind kind) { + return getRiType(kind.toJavaClass()); + } + + @Override + public RiType getRiType(CiConstant constant) { + Object o = constant.asObject(); + if (o == null) return null; + return getRiType(o.getClass()); + } + + @Override + public boolean isExceptionType(RiType type) { + return type.isSubtypeOf(getRiType(Throwable.class)); + } + + @Override public RiSnippets getSnippets() { throw new UnsupportedOperationException("getSnippets"); } @@ -206,8 +223,8 @@ } @Override - public boolean compareConstantObjects(Object x, Object y) { - return x == y; + public boolean compareConstantObjects(CiConstant x, CiConstant y) { + return x.asObject() == y.asObject(); } @Override @@ -227,4 +244,9 @@ public boolean supportsArrayIntrinsics() { return true; } + + @Override + public int getArrayLength(CiConstant array) { + return Array.getLength(array.asObject()); + } } diff -r 0309d394eb5f -r f21664b3dd1c c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypePrimitive.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypePrimitive.java Mon Apr 04 21:02:45 2011 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypePrimitive.java Mon Apr 11 10:22:05 2011 +0200 @@ -104,7 +104,7 @@ } @Override - public boolean isInstance(Object obj) { + public boolean isInstance(CiConstant obj) { return false; } diff -r 0309d394eb5f -r f21664b3dd1c c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeResolved.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeResolved.java Mon Apr 04 21:02:45 2011 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeResolved.java Mon Apr 11 10:22:05 2011 +0200 @@ -123,7 +123,7 @@ } @Override - public boolean isInstance(Object obj) { + public boolean isInstance(CiConstant obj) { return javaMirror.isInstance(obj); } diff -r 0309d394eb5f -r f21664b3dd1c c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeUnresolved.java --- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeUnresolved.java Mon Apr 04 21:02:45 2011 +0200 +++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeUnresolved.java Mon Apr 11 10:22:05 2011 +0200 @@ -135,7 +135,7 @@ } @Override - public boolean isInstance(Object obj) { + public boolean isInstance(CiConstant obj) { throw unresolved("isInstance()"); }