public TaintVec setShifted(int right, ShiftMode mode) {
		right = mode.adjustRight(right, length);
		if (right > length || -right > length) {
			return setEmpties();
		}
		if (right < 0) {
			TaintSet start = sets[0];
			for (int i = 0; i < length; i++) {
				int src = mode.adjustSrc(i - right, length);
				if (src < 0 || src >= length) {
					break;
				}
				sets[i] = src == 0 ? start : sets[src];
			}
		}
		else {
			TaintSet start = sets[length - 1];
			for (int i = 0; i < length - 1; i++) {
				int src = mode.adjustSrc(i - right, length);
				if (src < 0 || src >= length) {
					break;
				}
				sets[i] = src == length - 1 ? start : sets[src];
			}
		}
		return this;
	}
Shift this vector some number of elements, in place

@param right the number of elements to shift right, or negative for left
@return this vector
Ghidra/Debug/TaintAnalysis/src/main/java/ghidra/taint/model/TaintVec.java