comparison jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl.java @ 23679:b5557b757040

fix HotSpotVMConfig startup performance (JDK-8159167)
author Doug Simon <doug.simon@oracle.com>
date Wed, 15 Jun 2016 00:00:41 +0200
parents c9993da505a0
children 66059526b021
comparison
equal deleted inserted replaced
23678:e86a0b0ba969 23679:b5557b757040
21 * questions. 21 * questions.
22 */ 22 */
23 package jdk.vm.ci.hotspot; 23 package jdk.vm.ci.hotspot;
24 24
25 import static jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE; 25 import static jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE;
26 import jdk.vm.ci.hotspot.HotSpotVMConfig.CompressEncoding;
27 import jdk.vm.ci.meta.Constant; 26 import jdk.vm.ci.meta.Constant;
28 import jdk.vm.ci.meta.JavaConstant; 27 import jdk.vm.ci.meta.JavaConstant;
29 import jdk.vm.ci.meta.JavaKind; 28 import jdk.vm.ci.meta.JavaKind;
30 import jdk.vm.ci.meta.MemoryAccessProvider; 29 import jdk.vm.ci.meta.MemoryAccessProvider;
31 import jdk.vm.ci.meta.PrimitiveConstant; 30 import jdk.vm.ci.meta.PrimitiveConstant;
213 } 212 }
214 return HotSpotObjectConstantImpl.forObject(readRawObject(base, displacement, false)); 213 return HotSpotObjectConstantImpl.forObject(readRawObject(base, displacement, false));
215 } 214 }
216 215
217 @Override 216 @Override
218 public JavaConstant readNarrowOopConstant(Constant base, long displacement, CompressEncoding encoding) { 217 public JavaConstant readNarrowOopConstant(Constant base, long displacement) {
219 assert encoding.equals(runtime.getConfig().getOopEncoding()) : "unexpected oop encoding: " + encoding + " != " + runtime.getConfig().getOopEncoding();
220 return HotSpotObjectConstantImpl.forObject(readRawObject(base, displacement, true), true); 218 return HotSpotObjectConstantImpl.forObject(readRawObject(base, displacement, true), true);
221 } 219 }
222 220
223 private HotSpotResolvedObjectTypeImpl readKlass(Constant base, long displacement, boolean compressed) { 221 private HotSpotResolvedObjectTypeImpl readKlass(Constant base, long displacement, boolean compressed) {
224 assert (base instanceof HotSpotMetaspaceConstantImpl) || (base instanceof HotSpotObjectConstantImpl) : base.getClass(); 222 assert (base instanceof HotSpotMetaspaceConstantImpl) || (base instanceof HotSpotObjectConstantImpl) : base.getClass();
234 } 232 }
235 return HotSpotMetaspaceConstantImpl.forMetaspaceObject(klass, false); 233 return HotSpotMetaspaceConstantImpl.forMetaspaceObject(klass, false);
236 } 234 }
237 235
238 @Override 236 @Override
239 public Constant readNarrowKlassPointerConstant(Constant base, long displacement, CompressEncoding encoding) { 237 public Constant readNarrowKlassPointerConstant(Constant base, long displacement) {
240 HotSpotResolvedObjectTypeImpl klass = readKlass(base, displacement, true); 238 HotSpotResolvedObjectTypeImpl klass = readKlass(base, displacement, true);
241 if (klass == null) { 239 if (klass == null) {
242 return HotSpotCompressedNullConstant.COMPRESSED_NULL; 240 return HotSpotCompressedNullConstant.COMPRESSED_NULL;
243 } 241 }
244 return HotSpotMetaspaceConstantImpl.forMetaspaceObject(klass, true); 242 return HotSpotMetaspaceConstantImpl.forMetaspaceObject(klass, true);