< prev index next >

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

Print this page
rev 56282 : [mq]: graal

*** 49,58 **** --- 49,59 ---- import org.graalvm.compiler.nodes.NamedLocationIdentity; import org.graalvm.compiler.nodes.NodeView; import org.graalvm.compiler.nodes.ValueNode; import org.graalvm.compiler.nodes.extended.ForeignCallNode; import org.graalvm.compiler.nodes.extended.LoadHubNode; + import org.graalvm.compiler.nodes.extended.LoadHubOrNullNode; import org.graalvm.compiler.nodes.extended.RawLoadNode; import org.graalvm.compiler.nodes.extended.StoreHubNode; import org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext; import org.graalvm.compiler.nodes.memory.Access; import org.graalvm.compiler.nodes.memory.address.AddressNode;
*** 775,807 **** private static native KlassPointer loadKlassFromObjectIntrinsic(Object object, long offset, @ConstantNodeParameter LocationIdentity locationIdentity, @ConstantNodeParameter JavaKind wordKind); @NodeIntrinsic(value = LoadHubNode.class) public static native KlassPointer loadHubIntrinsic(Object object); ! public static final LocationIdentity CLASS_STATE_LOCATION = NamedLocationIdentity.mutable("ClassState"); @Fold ! public static int instanceKlassInitStateOffset(@InjectedParameter GraalHotSpotVMConfig config) { return config.instanceKlassInitStateOffset; } @Fold public static int instanceKlassStateFullyInitialized(@InjectedParameter GraalHotSpotVMConfig config) { return config.instanceKlassStateFullyInitialized; } /** * * @param hub the hub of an InstanceKlass * @return true is the InstanceKlass represented by hub is fully initialized */ public static boolean isInstanceKlassFullyInitialized(KlassPointer hub) { ! return readInstanceKlassState(hub) == instanceKlassStateFullyInitialized(INJECTED_VMCONFIG); } ! private static byte readInstanceKlassState(KlassPointer hub) { ! return hub.readByte(instanceKlassInitStateOffset(INJECTED_VMCONFIG), CLASS_STATE_LOCATION); } public static final LocationIdentity KLASS_MODIFIER_FLAGS_LOCATION = NamedLocationIdentity.immutable("Klass::_modifier_flags"); @Fold --- 776,829 ---- private static native KlassPointer loadKlassFromObjectIntrinsic(Object object, long offset, @ConstantNodeParameter LocationIdentity locationIdentity, @ConstantNodeParameter JavaKind wordKind); @NodeIntrinsic(value = LoadHubNode.class) public static native KlassPointer loadHubIntrinsic(Object object); ! @NodeIntrinsic(value = LoadHubOrNullNode.class) ! public static native KlassPointer loadHubOrNullIntrinsic(Object object); ! ! static final LocationIdentity CLASS_INIT_STATE_LOCATION = NamedLocationIdentity.mutable("ClassInitState"); ! ! static final LocationIdentity CLASS_INIT_THREAD_LOCATION = NamedLocationIdentity.mutable("ClassInitThread"); @Fold ! static int instanceKlassInitStateOffset(@InjectedParameter GraalHotSpotVMConfig config) { return config.instanceKlassInitStateOffset; } @Fold + static int instanceKlassInitThreadOffset(@InjectedParameter GraalHotSpotVMConfig config) { + assert config.instanceKlassInitThreadOffset != -1; + return config.instanceKlassInitThreadOffset; + } + + @Fold public static int instanceKlassStateFullyInitialized(@InjectedParameter GraalHotSpotVMConfig config) { return config.instanceKlassStateFullyInitialized; } + @Fold + public static int instanceKlassStateBeingInitialized(@InjectedParameter GraalHotSpotVMConfig config) { + assert config.instanceKlassStateBeingInitialized != -1; + return config.instanceKlassStateBeingInitialized; + } + /** * * @param hub the hub of an InstanceKlass * @return true is the InstanceKlass represented by hub is fully initialized */ public static boolean isInstanceKlassFullyInitialized(KlassPointer hub) { ! return readInstanceKlassInitState(hub) == instanceKlassStateFullyInitialized(INJECTED_VMCONFIG); ! } ! ! static byte readInstanceKlassInitState(KlassPointer hub) { ! return hub.readByte(instanceKlassInitStateOffset(INJECTED_VMCONFIG), CLASS_INIT_STATE_LOCATION); } ! static Word readInstanceKlassInitThread(KlassPointer hub) { ! return hub.readWord(instanceKlassInitThreadOffset(INJECTED_VMCONFIG), CLASS_INIT_THREAD_LOCATION); } public static final LocationIdentity KLASS_MODIFIER_FLAGS_LOCATION = NamedLocationIdentity.immutable("Klass::_modifier_flags"); @Fold
< prev index next >