private void markupGlueCode(Listing listing, SymbolTable symbolTable, Instruction instruction,
			Address symbolAddress) {

		Object[] operandObjects0 = instruction.getOpObjects(0);//op objects from 0th operand
		if (operandObjects0.length != 1) {
			return;
		}
		if (!(operandObjects0[0] instanceof Register)) {
			return;
		}
		Register register = (Register) operandObjects0[0];
		if (!register.getName().equals("r12")) {
			return;
		}
		if (!instruction.getMnemonicString().equals("lwz")) {
			return;
		}
		Function function = listing.getFunctionContaining(instruction.getMinAddress());
		if (function == null) {
			return;
		}
		if (function.getSymbol().getSource() == SourceType.IMPORTED ||
			function.getSymbol().getSource() == SourceType.USER_DEFINED) {
			return;
		}
		Symbol symbol = symbolTable.getPrimarySymbol(symbolAddress);
		if (symbol == null || symbol.isDynamic()) {
			return;
		}
		try {
			Namespace glueNamespace = getNamespace(symbolTable, PefConstants.GLUE);
			function.getSymbol().setNamespace(glueNamespace);
			function.getSymbol().setName(symbol.getName(), SourceType.ANALYSIS);
		}
		catch (Exception e) {//don't care
		}
	}
Checks for glue code and propagates the function name up.
<p>
If the instruction is in the form of:
<p>
<code>lwz r12,0x20(r2)</code>
<p>
Then it renames the function containing the instruction
with the symbol's name defined at the address computed
using 0x20(r2).
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/PefAnalyzer.java