protected void add0(BigFloat other) {
		int d = this.scale - other.scale;

		if (d > fracbits) {
			return;
		}
		else if (d < -fracbits) {
			this.copyFrom(other);
			return;
		}
		boolean residue;
		BigFloat a;
		BigFloat b;

		if (d >= 0) {
			a = this;
			b = other;
		}
		else {
			d = -d;
			a = other;
			b = this;
		}

		residue = b.unscaled.getLowestSetBit() < d - 1;
		this.scale = a.scale - 1;
		this.unscaled = a.unscaled.shiftLeft(1).add(b.unscaled.shiftRight(d - 1));

		scaleUpTo(fracbits + 1);
		internalRound(residue);
	}
{@code this-=other}

@param other a BigFloat
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcode/floatformat/BigFloat.java