Mercurial > hg > graal-jvmci-8
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); |