public MaskedLong combine(MaskedLong that) throws SolverException {
		if (!agrees(that)) {
			throw new SolverException("Cannot combine masked longs that disagree");
		}
		return fromMaskAndValue(this.msk | that.msk, this.val | that.val);
	}
Combine this and another masked long into one, by taking defined bits from either

<p>
If this masked long agrees with the other, then the two are combined. For each bit position
in the result, the defined bit from either corresponding position is taken. If neither is
defined, then the position is undefined in the result. If both are defined, they must agree.

@param that the other masked long
@return the combined masked long
@throws SolverException if this and the other masked long disagree
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/expr/MaskedLong.java