@Override
	public ProgramLocation getProgramLocation(int row, int col, ListingField bf) {
		Object obj = bf.getProxy().getObject();
		if (!(obj instanceof CodeUnit)) {
			return null;
		}

		CodeUnit cu = (CodeUnit) obj;
		Program program = cu.getProgram();
		ProgramContext context = program.getProgramContext();
		Address curAddress = cu.getMinAddress();
		Function function = program.getListing().getFunctionAt(curAddress);
		CodeUnit prevCu = program.getListing().getCodeUnitBefore(curAddress);
		Address prevAddress = prevCu != null ? prevCu.getMinAddress() : null;
		List<Register> transitionRegisters =
			getTransitionRegisters(context, function, curAddress, prevAddress);
		String[] registerNames = getRegisterNames(transitionRegisters);
		return new RegisterTransitionFieldLocation(program, cu.getMinAddress(), registerNames, row,
			col);
	}
Returns the FactoryField for the given object at index index.
@param varWidth the amount of variable width spacing for any fields
before this one.
@param proxy the object whose properties should be displayed.
Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/RegisterTransitionFieldFactory.java