public MaskedLong divideSigned(MaskedLong that) {
		if (this.isFullyDefined() && that.isFullyDefined()) {
			long newVal = this.val / that.val;
			return fromMaskAndValue(-1, newVal);
		}
		else if (that.isFullyDefined()) {
			// If it's a power of 2, re-write as bit shift
			if (Long.bitCount(that.val) == 1) {
				return shiftRight(Long.numberOfTrailingZeros(that.val));
			}
			// Ditto from #divideUnsigned
			else if (Long.numberOfLeadingZeros(this.msk) +
				Long.numberOfTrailingZeros(~this.msk) == Long.SIZE) {
				return fromMaskAndValue(this.msk, this.val / that.val);
			}
		}
		throw new UnsupportedOperationException("Cannot divide unknown values, yet.");
	}
Compute the arithmetic product of this and another masked long

@param that the other masked long.
@return the result.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/expr/MaskedLong.java