644 BeginLockScopeNode beginLockScope = graph.add(new BeginLockScopeNode(lock.getStackKind(), monitorID.getLockDepth())); |
644 BeginLockScopeNode beginLockScope = graph.add(new BeginLockScopeNode(lock.getStackKind(), monitorID.getLockDepth())); |
645 graph.addBeforeFixed(migrationEnd, beginLockScope); |
645 graph.addBeforeFixed(migrationEnd, beginLockScope); |
646 |
646 |
647 // write the displaced mark to the correct stack slot |
647 // write the displaced mark to the correct stack slot |
648 AddressNode addressDisplacedMark = createOffsetAddress(graph, beginLockScope, runtime.getVMConfig().basicLockDisplacedHeaderOffset); |
648 AddressNode addressDisplacedMark = createOffsetAddress(graph, beginLockScope, runtime.getVMConfig().basicLockDisplacedHeaderOffset); |
649 WriteNode writeStackSlot = graph.add(new WriteNode(addressDisplacedMark, DISPLACED_MARK_WORD_LOCATION, loadDisplacedHeader, BarrierType.NONE)); |
649 WriteNode writeStackSlot = graph.add(new WriteNode(addressDisplacedMark, DISPLACED_MARK_WORD_LOCATION, loadDisplacedHeader, BarrierType.NONE, false)); |
650 graph.addBeforeFixed(migrationEnd, writeStackSlot); |
650 graph.addBeforeFixed(migrationEnd, writeStackSlot); |
651 |
651 |
652 // load the lock object from the osr buffer |
652 // load the lock object from the osr buffer |
653 AddressNode addressLockObject = createOffsetAddress(graph, buffer, offsetLockObject); |
653 AddressNode addressLockObject = createOffsetAddress(graph, buffer, offsetLockObject); |
654 ReadNode loadObject = graph.add(new ReadNode(addressLockObject, any(), lock.stamp(NodeView.DEFAULT), BarrierType.NONE)); |
654 ReadNode loadObject = graph.add(new ReadNode(addressLockObject, any(), lock.stamp(NodeView.DEFAULT), BarrierType.NONE)); |
774 if (runtime.getVMConfig().useCompressedClassPointers) { |
774 if (runtime.getVMConfig().useCompressedClassPointers) { |
775 writeValue = HotSpotCompressionNode.compress(value, runtime.getVMConfig().getKlassEncoding()); |
775 writeValue = HotSpotCompressionNode.compress(value, runtime.getVMConfig().getKlassEncoding()); |
776 } |
776 } |
777 |
777 |
778 AddressNode address = createOffsetAddress(graph, object, runtime.getVMConfig().hubOffset); |
778 AddressNode address = createOffsetAddress(graph, object, runtime.getVMConfig().hubOffset); |
779 return graph.add(new WriteNode(address, HUB_WRITE_LOCATION, writeValue, BarrierType.NONE)); |
779 return graph.add(new WriteNode(address, HUB_WRITE_LOCATION, writeValue, BarrierType.NONE, false)); |
780 } |
780 } |
781 |
781 |
782 @Override |
782 @Override |
783 protected BarrierType fieldLoadBarrierType(ResolvedJavaField f) { |
783 protected BarrierType fieldLoadBarrierType(ResolvedJavaField f) { |
784 HotSpotResolvedJavaField loadField = (HotSpotResolvedJavaField) f; |
784 HotSpotResolvedJavaField loadField = (HotSpotResolvedJavaField) f; |