public Varnode left(Varnode val1, Varnode val2, ContextEvaluator evaluator) {
		if (val1 == null || val2 == null) {
			return null;
		}
		Long val1Const = getConstant(val1, evaluator);
		if (val1Const == null)
			return null;
		Long val2Const = getConstant(val2, evaluator);
		if (val2Const == null)
			return null;
		long lresult = val1Const << val2Const;
		lresult = lresult & (0xffffffffffffffffL >>> ((8 - val1.getSize()) * 8));
		Varnode result = createVarnode(lresult, val1.getSpace(), val1.getSize());
		return result;
	}
Add two varnodes together to get a new value
This could create a new space and return a varnode pointed into that space

@param val1 first value
@param val2 second value
@return varnode that could be a constant, or an offset into a space, or null
Ghidra/Features/Base/src/main/java/ghidra/program/util/VarnodeContext.java