private AddressSet getCodeUnitDifferences(AddressSetView addrs, TaskMonitor monitor)
			throws CancelledException {

		AddressSet differences = new AddressSet();
		// Get the instruction differences.
		monitorMsg = "Checking Instruction Differences";
		InstructionComparator instComp = new InstructionComparator();
		AddressSet instrDiffs = instComp.getAdjustedCuiDiffs(addrs, monitor);
		instrDiffs = instrDiffs.intersect(pgmMemComp.getAddressesInCommon());
		differences.add(instrDiffs);
		// Get the defined data differences.
		monitorMsg = "Checking Defined Data Differences";
		DefinedDataComparator dataComp = new DefinedDataComparator();
		AddressSet dataDiffs = dataComp.getAdjustedCuiDiffs(addrs, monitor);
		differences.add(dataDiffs);
		AddressSet contextRegDifferences = getContextRegisterDifferences(addrs, monitor);
		differences.add(contextRegDifferences);
		return differences;
	}
Determines the addresses for the code units that differ between program1
and program2.

@param addrs the addresses to check for differences.
The addresses in this address set should be derived from program1.
@param monitor the task monitor for indicating the progress of
determining differences. This monitor reports the progress to the user.

@return the addresses where there were different code units.
The addresses in this address set are derived from program1.
@throws CancelledException if the user cancelled the Diff.
Ghidra/Features/Base/src/main/java/ghidra/program/util/ProgramDiff.java