comparison 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
comparison
equal deleted inserted replaced
1940:e92a9a73324e 1941:79d04223b8a5
43 43
44 String RiMethod_signature(long vmId); 44 String RiMethod_signature(long vmId);
45 45
46 int RiMethod_accessFlags(long vmId); 46 int RiMethod_accessFlags(long vmId);
47 47
48 RiType RiSignature_lookupType(String returnType, long accessingClassVmId); 48 RiType RiSignature_lookupType(String returnType, HotSpotTypeResolved accessingClass);
49 49
50 Object RiConstantPool_lookupConstant(long vmId, int cpi); 50 Object RiConstantPool_lookupConstant(long vmId, int cpi);
51 51
52 RiMethod RiConstantPool_lookupMethod(long vmId, int cpi, byte byteCode); 52 RiMethod RiConstantPool_lookupMethod(long vmId, int cpi, byte byteCode);
53 53
55 55
56 RiType RiConstantPool_lookupType(long vmId, int cpi); 56 RiType RiConstantPool_lookupType(long vmId, int cpi);
57 57
58 RiField RiConstantPool_lookupField(long vmId, int cpi, byte byteCode); 58 RiField RiConstantPool_lookupField(long vmId, int cpi, byte byteCode);
59 59
60 RiConstantPool RiType_constantPool(long vmId); 60 RiConstantPool RiType_constantPool(HotSpotTypeResolved klass);
61 61
62 void installMethod(HotSpotTargetMethod targetMethod); 62 void installMethod(HotSpotTargetMethod targetMethod);
63 63
64 long installStub(HotSpotTargetMethod targetMethod); 64 long installStub(HotSpotTargetMethod targetMethod);
65 65
66 HotSpotVMConfig getConfiguration(); 66 HotSpotVMConfig getConfiguration();
67 67
68 RiExceptionHandler[] RiMethod_exceptionHandlers(long vmId); 68 RiExceptionHandler[] RiMethod_exceptionHandlers(long vmId);
69 69
70 RiMethod RiType_resolveMethodImpl(long vmId, String name, String signature); 70 RiMethod RiType_resolveMethodImpl(HotSpotTypeResolved klass, String name, String signature);
71 71
72 boolean RiType_isSubtypeOf(long vmId, RiType other); 72 boolean RiType_isSubtypeOf(HotSpotTypeResolved klass, RiType other);
73 73
74 RiType getPrimitiveArrayType(CiKind kind); 74 RiType getPrimitiveArrayType(CiKind kind);
75 75
76 RiType RiType_arrayOf(long vmId); 76 RiType RiType_arrayOf(long vmId);
77 77
78 RiType RiType_componentType(long vmId); 78 RiType RiType_componentType(HotSpotTypeResolved klass);
79 79
80 RiType getType(Class<?> javaClass); 80 RiType getType(Class<?> javaClass);
81 81
82 boolean RiMethod_hasBalancedMonitors(long vmId); 82 boolean RiMethod_hasBalancedMonitors(long vmId);
83 83