diff c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntries.java @ 1941:79d04223b8a5

Added caching for resolved types and resolved fields. This is crucial, because the local load elimination will lead to wrong results, if field equality (of two RiField objects with the same object and the same RiType) is not given. The caching makes sure that the default equals implementation is sufficient.
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Tue, 28 Dec 2010 18:33:26 +0100
parents 9b22e3e5df8e
children 177398c6147d
line wrap: on
line diff
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntries.java	Mon Dec 27 20:35:47 2010 +0100
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntries.java	Tue Dec 28 18:33:26 2010 +0100
@@ -45,7 +45,7 @@
 
     int RiMethod_accessFlags(long vmId);
 
-    RiType RiSignature_lookupType(String returnType, long accessingClassVmId);
+    RiType RiSignature_lookupType(String returnType, HotSpotTypeResolved accessingClass);
 
     Object RiConstantPool_lookupConstant(long vmId, int cpi);
 
@@ -57,7 +57,7 @@
 
     RiField RiConstantPool_lookupField(long vmId, int cpi, byte byteCode);
 
-    RiConstantPool RiType_constantPool(long vmId);
+    RiConstantPool RiType_constantPool(HotSpotTypeResolved klass);
 
     void installMethod(HotSpotTargetMethod targetMethod);
 
@@ -67,15 +67,15 @@
 
     RiExceptionHandler[] RiMethod_exceptionHandlers(long vmId);
 
-    RiMethod RiType_resolveMethodImpl(long vmId, String name, String signature);
+    RiMethod RiType_resolveMethodImpl(HotSpotTypeResolved klass, String name, String signature);
 
-    boolean RiType_isSubtypeOf(long vmId, RiType other);
+    boolean RiType_isSubtypeOf(HotSpotTypeResolved klass, RiType other);
 
     RiType getPrimitiveArrayType(CiKind kind);
 
     RiType RiType_arrayOf(long vmId);
 
-    RiType RiType_componentType(long vmId);
+    RiType RiType_componentType(HotSpotTypeResolved klass);
 
     RiType getType(Class<?> javaClass);