< prev index next >

src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl.java

Print this page

        

*** 107,123 **** throw new IllegalArgumentException(String.valueOf(bits)); } } } ! private boolean verifyReadRawObject(Object expected, Constant base, long displacement, boolean compressed) { ! if (compressed == runtime.getConfig().useCompressedOops) { ! Object obj = asObject(base); ! if (obj != null) { ! assert expected == UNSAFE.getObject(obj, displacement) : "readUnsafeOop doesn't agree with unsafe.getObject"; ! } ! } if (base instanceof HotSpotMetaspaceConstant) { MetaspaceWrapperObject metaspaceObject = HotSpotMetaspaceConstantImpl.getMetaspaceObject(base); if (metaspaceObject instanceof HotSpotResolvedObjectTypeImpl) { if (displacement == runtime.getConfig().classMirrorOffset) { assert expected == ((HotSpotResolvedObjectTypeImpl) metaspaceObject).mirror(); --- 107,117 ---- throw new IllegalArgumentException(String.valueOf(bits)); } } } ! private boolean verifyReadRawObject(Object expected, Constant base, long displacement) { if (base instanceof HotSpotMetaspaceConstant) { MetaspaceWrapperObject metaspaceObject = HotSpotMetaspaceConstantImpl.getMetaspaceObject(base); if (metaspaceObject instanceof HotSpotResolvedObjectTypeImpl) { if (displacement == runtime.getConfig().classMirrorOffset) { assert expected == ((HotSpotResolvedObjectTypeImpl) metaspaceObject).mirror();
*** 134,148 **** Object base = asObject(baseConstant); if (base == null) { assert !compressed; displacement += asRawPointer(baseConstant); ret = UNSAFE.getUncompressedObject(displacement); } else { assert runtime.getConfig().useCompressedOops == compressed; ret = UNSAFE.getObject(base, displacement); } - assert verifyReadRawObject(ret, baseConstant, initialDisplacement, compressed); return ret; } /** * Reads a value of this kind using a base address and a displacement. No bounds checking or --- 128,142 ---- Object base = asObject(baseConstant); if (base == null) { assert !compressed; displacement += asRawPointer(baseConstant); ret = UNSAFE.getUncompressedObject(displacement); + assert verifyReadRawObject(ret, baseConstant, initialDisplacement); } else { assert runtime.getConfig().useCompressedOops == compressed; ret = UNSAFE.getObject(base, displacement); } return ret; } /** * Reads a value of this kind using a base address and a displacement. No bounds checking or
< prev index next >