src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/ZeroMemoryNode.java
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 54724 62f373a53296
child 58679 9c3209ff7550
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/ZeroMemoryNode.java	Thu Oct 17 20:27:44 2019 +0100
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/ZeroMemoryNode.java	Thu Oct 17 20:53:35 2019 +0100
@@ -48,19 +48,21 @@
     public static final NodeClass<ZeroMemoryNode> TYPE = NodeClass.create(ZeroMemoryNode.class);
 
     @Input ValueNode length;
+    private final boolean isAligned;
 
-    public ZeroMemoryNode(ValueNode address, ValueNode length, LocationIdentity locationIdentity) {
-        this(OffsetAddressNode.create(address), length, locationIdentity, BarrierType.NONE);
+    public ZeroMemoryNode(ValueNode address, ValueNode length, boolean isAligned, LocationIdentity locationIdentity) {
+        this(OffsetAddressNode.create(address), length, isAligned, locationIdentity, BarrierType.NONE);
     }
 
-    public ZeroMemoryNode(AddressNode address, ValueNode length, LocationIdentity locationIdentity, BarrierType type) {
+    public ZeroMemoryNode(AddressNode address, ValueNode length, boolean isAligned, LocationIdentity locationIdentity, BarrierType type) {
         super(TYPE, address, locationIdentity, StampFactory.forVoid(), type);
         this.length = length;
+        this.isAligned = isAligned;
     }
 
     @Override
     public void generate(NodeLIRBuilderTool gen) {
-        gen.getLIRGeneratorTool().getArithmetic().emitZeroMemory(gen.operand(getAddress()), gen.operand(length));
+        gen.getLIRGeneratorTool().emitZeroMemory(gen.operand(getAddress()), gen.operand(length), isAligned);
     }
 
     @Override
@@ -69,5 +71,5 @@
     }
 
     @NodeIntrinsic
-    public static native void zero(Word address, long length, @ConstantNodeParameter LocationIdentity locationIdentity);
+    public static native void zero(Word address, long length, @ConstantNodeParameter boolean isAligned, @ConstantNodeParameter LocationIdentity locationIdentity);
 }