protected String getOffcutLabelStringForInstruction(Address offcutAddress,
			Instruction instruction, Address markupAddress) {
		Program program = instruction.getProgram();
		Symbol offsym = program.getSymbolTable().getPrimarySymbol(offcutAddress);
		Address instructionAddress = instruction.getMinAddress();
		long diff = offcutAddress.subtract(instructionAddress);
		if (!offsym.isDynamic()) {
			return getDefaultOffcutString(offsym, instruction, diff, false);
		}

		Symbol containingSymbol = program.getSymbolTable().getPrimarySymbol(instructionAddress);
		if (containingSymbol != null) {
			String displayName = containingSymbol.getName();
			if (markupAddress != null) {
				displayName = addNamespace(program, containingSymbol.getParentNamespace(),
					displayName, markupAddress);
			}
			return simplifyTemplate(displayName) + PLUS + diff;
		}
		return getDefaultOffcutString(offsym, instruction, diff, false);
	}
Generate label string.  This may serve two use cases:
<ul>
<li>Generating operand label at markupAddress for referenced instruction and offcutAddress</li>
<li>Generating offcut label for an offcutAddress with instruction (markupAddress=null)</li>
</ul>
@param offcutAddress address for which generated label represents
@param instruction instruction containing offcut address
@param markupAddress address where a label will be referenced from (may be null)
@return generated offcut label
Ghidra/Features/Base/src/main/java/ghidra/program/model/listing/CodeUnitFormat.java