private boolean registersOverlap(Register reg1, Register reg2) {
		if (reg1 == null || reg2 == null) {
			return false;
		}
		Address reg1MinAddr = reg1.getAddress();
		Address reg2MinAddr = reg2.getAddress();

		Address reg1MaxAddr = reg1MinAddr;
		int size = reg1.getMinimumByteSize();
		if (size > 1) {
			reg1MaxAddr = reg1MinAddr.add(size - 1);
		}
		if (reg2MinAddr.compareTo(reg1MaxAddr) > 0) {
			return false;
		}
		if (reg1MaxAddr.compareTo(reg2MinAddr) < 0) {
			return false;
		}

		Address reg2MaxAddr = reg2MinAddr;
		size = reg1.getMinimumByteSize();
		if (size > 1) {
			reg2MaxAddr = reg2MinAddr.add(size - 1);
		}
		if (reg1MinAddr.compareTo(reg2MaxAddr) > 0) {
			return false;
		}
		if (reg2MaxAddr.compareTo(reg1MinAddr) < 0) {
			return false;
		}

		return true;
	}
Perform register markup with explicit and implied register variable
reference.

@param inst instruction
@param opIndex
@param func function containing instruction
@param primaryRef primary reference or null
@param referencedVariable option variable referenced by primaryRef
@param regIndexMap register index map
@param representationList
@return true if primaryRef was included in register mark-up
Ghidra/Features/Base/src/main/java/ghidra/program/model/listing/CodeUnitFormat.java