66 67 static final int SRC_ARG = 0; 68 static final int SRC_POS_ARG = 1; 69 static final int DEST_ARG = 2; 70 static final int DEST_POS_ARG = 3; 71 static final int LENGTH_ARG = 4; 72 73 @Input NodeInputList<ValueNode> args; 74 75 @OptionalInput(State) FrameState stateDuring; 76 77 @OptionalInput(Memory) protected MemoryNode lastLocationAccess; 78 79 protected JavaKind elementKind; 80 81 protected int bci; 82 83 public BasicArrayCopyNode(NodeClass<? extends AbstractMemoryCheckpoint> type, ValueNode src, ValueNode srcPos, ValueNode dest, ValueNode destPos, ValueNode length, JavaKind elementKind, int bci) { 84 super(type, StampFactory.forKind(JavaKind.Void)); 85 this.bci = bci; 86 args = new NodeInputList<>(this, new ValueNode[]{src, srcPos, dest, destPos, length}); 87 this.elementKind = elementKind != JavaKind.Illegal ? elementKind : null; 88 } 89 90 public BasicArrayCopyNode(NodeClass<? extends AbstractMemoryCheckpoint> type, ValueNode src, ValueNode srcPos, ValueNode dest, ValueNode destPos, ValueNode length, JavaKind elementKind) { 91 super(type, StampFactory.forKind(JavaKind.Void)); 92 this.bci = BytecodeFrame.INVALID_FRAMESTATE_BCI; 93 args = new NodeInputList<>(this, new ValueNode[]{src, srcPos, dest, destPos, length}); 94 this.elementKind = elementKind != JavaKind.Illegal ? elementKind : null; 95 } 96 97 public ValueNode getSource() { 98 return args.get(SRC_ARG); 99 } 100 101 public ValueNode getSourcePosition() { 102 return args.get(SRC_POS_ARG); 103 } 104 105 public ValueNode getDestination() { 106 return args.get(DEST_ARG); 107 } 108 109 public ValueNode getDestinationPosition() { 110 return args.get(DEST_POS_ARG); 111 } 112 113 public ValueNode getLength() { 114 return args.get(LENGTH_ARG); | 66 67 static final int SRC_ARG = 0; 68 static final int SRC_POS_ARG = 1; 69 static final int DEST_ARG = 2; 70 static final int DEST_POS_ARG = 3; 71 static final int LENGTH_ARG = 4; 72 73 @Input NodeInputList<ValueNode> args; 74 75 @OptionalInput(State) FrameState stateDuring; 76 77 @OptionalInput(Memory) protected MemoryNode lastLocationAccess; 78 79 protected JavaKind elementKind; 80 81 protected int bci; 82 83 public BasicArrayCopyNode(NodeClass<? extends AbstractMemoryCheckpoint> type, ValueNode src, ValueNode srcPos, ValueNode dest, ValueNode destPos, ValueNode length, JavaKind elementKind, int bci) { 84 super(type, StampFactory.forKind(JavaKind.Void)); 85 this.bci = bci; 86 this.args = new NodeInputList<>(this, new ValueNode[]{src, srcPos, dest, destPos, length}); 87 this.elementKind = elementKind != JavaKind.Illegal ? elementKind : null; 88 } 89 90 public BasicArrayCopyNode(NodeClass<? extends AbstractMemoryCheckpoint> type, ValueNode src, ValueNode srcPos, ValueNode dest, ValueNode destPos, ValueNode length, JavaKind elementKind) { 91 this(type, src, srcPos, dest, destPos, length, elementKind, BytecodeFrame.INVALID_FRAMESTATE_BCI); 92 } 93 94 public ValueNode getSource() { 95 return args.get(SRC_ARG); 96 } 97 98 public ValueNode getSourcePosition() { 99 return args.get(SRC_POS_ARG); 100 } 101 102 public ValueNode getDestination() { 103 return args.get(DEST_ARG); 104 } 105 106 public ValueNode getDestinationPosition() { 107 return args.get(DEST_POS_ARG); 108 } 109 110 public ValueNode getLength() { 111 return args.get(LENGTH_ARG); |