@Test
	public void testFunctionRegParamDiff7() throws Exception {
	
		// different named registers as different params.
	
		int transactionID1 = p1.startTransaction("Test Transaction");
		Register clReg = p1.getRegister("CL");
		Function function1 = p1.getFunctionManager().getFunctionAt(addr(p1, 0x10048a3));
		function1.updateFunction(null, null, FunctionUpdateType.CUSTOM_STORAGE, true,
			SourceType.USER_DEFINED, new ParameterImpl(null, DataType.DEFAULT, clReg, p1),
			new ParameterImpl(null, DataType.DEFAULT, 0x8, p1),
			new ParameterImpl(null, DataType.DEFAULT, 0xc, p1));
		assertEquals(3, function1.getParameterCount());
		p1.endTransaction(transactionID1, true);
	
		int transactionID = p2.startTransaction("Test Transaction");
		Register dlReg = p2.getRegister("DL");
		Function function2 = p2.getFunctionManager().getFunctionAt(addr(p2, 0x10048a3));
		function2.updateFunction(null, null, FunctionUpdateType.CUSTOM_STORAGE, true,
			SourceType.USER_DEFINED, new ParameterImpl(null, DataType.DEFAULT, 0x4, p2),
			new ParameterImpl(null, DataType.DEFAULT, 0x8, p2),
			new ParameterImpl(null, DataType.DEFAULT, dlReg, p2));
		assertEquals(3, function2.getParameterCount());
		p2.endTransaction(transactionID, true);
	
		AddressSet expectedDiffs = new AddressSet(addr(0x10048a3), addr(0x10048a3));
		checkDiff(expectedDiffs, ProgramDiffFilter.FUNCTION_DIFFS);
	}
Test that ProgramDiff can determine that function parameter types are
different.
Ghidra/Features/Base/src/test.slow/java/ghidra/program/util/ProgramDiff3Test.java