< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/UnsafeLoadSnippets.java

Print this page

        

*** 22,31 **** --- 22,32 ---- */ package org.graalvm.compiler.hotspot.replacements; + import static org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_METAACCESS; import static org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.referentOffset; import static org.graalvm.compiler.replacements.SnippetTemplate.DEFAULT_REPLACER; import org.graalvm.compiler.api.replacements.Snippet; import org.graalvm.compiler.debug.DebugHandlersFactory;
*** 46,56 **** public class UnsafeLoadSnippets implements Snippets { @Snippet public static Object lowerUnsafeLoad(Object object, long offset) { Object fixedObject = FixedValueAnchorNode.getObject(object); ! if (object instanceof java.lang.ref.Reference && referentOffset() == offset) { return Word.objectToTrackedPointer(fixedObject).readObject((int) offset, BarrierType.PRECISE); } else { return Word.objectToTrackedPointer(fixedObject).readObject((int) offset, BarrierType.NONE); } } --- 47,57 ---- public class UnsafeLoadSnippets implements Snippets { @Snippet public static Object lowerUnsafeLoad(Object object, long offset) { Object fixedObject = FixedValueAnchorNode.getObject(object); ! if (object instanceof java.lang.ref.Reference && referentOffset(INJECTED_METAACCESS) == offset) { return Word.objectToTrackedPointer(fixedObject).readObject((int) offset, BarrierType.PRECISE); } else { return Word.objectToTrackedPointer(fixedObject).readObject((int) offset, BarrierType.NONE); } }
< prev index next >