src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/ArrayRangeWriteBarrier.java
changeset 48861 47f19ff9903c
parent 47216 71c04702a3d5
child 50858 2d3e99a72541
equal deleted inserted replaced
48860:5bce1b7e7800 48861:47f19ff9903c
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 package org.graalvm.compiler.hotspot.nodes;
    23 package org.graalvm.compiler.hotspot.nodes;
    24 
    24 
    25 import org.graalvm.compiler.graph.NodeClass;
    25 import org.graalvm.compiler.graph.NodeClass;
       
    26 import org.graalvm.compiler.nodeinfo.InputType;
    26 import org.graalvm.compiler.nodeinfo.NodeInfo;
    27 import org.graalvm.compiler.nodeinfo.NodeInfo;
    27 import org.graalvm.compiler.nodes.ValueNode;
    28 import org.graalvm.compiler.nodes.ValueNode;
       
    29 import org.graalvm.compiler.nodes.memory.address.AddressNode;
    28 import org.graalvm.compiler.nodes.spi.Lowerable;
    30 import org.graalvm.compiler.nodes.spi.Lowerable;
    29 
    31 
    30 @NodeInfo
    32 @NodeInfo
    31 public abstract class ArrayRangeWriteBarrier extends WriteBarrier implements Lowerable {
    33 public abstract class ArrayRangeWriteBarrier extends WriteBarrier implements Lowerable {
    32 
    34 
    33     public static final NodeClass<ArrayRangeWriteBarrier> TYPE = NodeClass.create(ArrayRangeWriteBarrier.class);
    35     public static final NodeClass<ArrayRangeWriteBarrier> TYPE = NodeClass.create(ArrayRangeWriteBarrier.class);
    34     @Input ValueNode object;
    36     @Input(InputType.Association) AddressNode address;
    35     @Input ValueNode startIndex;
       
    36     @Input ValueNode length;
    37     @Input ValueNode length;
    37 
    38 
    38     protected ArrayRangeWriteBarrier(NodeClass<? extends ArrayRangeWriteBarrier> c, ValueNode object, ValueNode startIndex, ValueNode length) {
    39     private final int elementStride;
       
    40 
       
    41     protected ArrayRangeWriteBarrier(NodeClass<? extends ArrayRangeWriteBarrier> c, AddressNode address, ValueNode length, int elementStride) {
    39         super(c);
    42         super(c);
    40         this.object = object;
    43         this.address = address;
    41         this.startIndex = startIndex;
       
    42         this.length = length;
    44         this.length = length;
       
    45         this.elementStride = elementStride;
    43     }
    46     }
    44 
    47 
    45     public ValueNode getObject() {
    48     public AddressNode getAddress() {
    46         return object;
    49         return address;
    47     }
       
    48 
       
    49     public ValueNode getStartIndex() {
       
    50         return startIndex;
       
    51     }
    50     }
    52 
    51 
    53     public ValueNode getLength() {
    52     public ValueNode getLength() {
    54         return length;
    53         return length;
    55     }
    54     }
       
    55 
       
    56     public int getElementStride() {
       
    57         return elementStride;
       
    58     }
    56 }
    59 }