@Override
	protected RelocationResult processRelocation(ElfRelocation relocation, ElfSymbol elfSymbol,
			Address relocationAddress) throws MemoryAccessException {

		lastSymbolAddr = null;
		lastElfSymbol = null;

		int typeId = relocation.getType();
		int symbolIndex = relocation.getSymbolIndex();

		saveValueForNextReloc = nextRelocationHasSameOffset(relocation);

		RelocationResult lastResult = RelocationResult.FAILURE;
		if (getElfHeader().is64Bit()) {

			MIPS_Elf64Relocation mips64Relocation = (MIPS_Elf64Relocation) relocation;

			// Each relocation can pack up to 3 relocations for 64-bit
			for (int n = 0; n < 3; n++) {

				if (n == 1) {
					// The symbol used by the second pack slot is encoded in the info
					// field of the relocation.  This could be any symbol and
					// does not need to match the first packed entry.
					symbolIndex = mips64Relocation.getSpecialSymbolIndex();
				}
				else if (n == 2) {
					// The third pack slot should not be referring to any symbol.
					// Clear out symbol index to catch any errors in relocations
					// using symbolIndex.
					symbolIndex = 0;
				}

				int relocType = typeId & 0xff;
				typeId >>= 8;
				int nextRelocType = (n < 2) ? (typeId & 0xff) : 0;
				if (nextRelocType == MIPS_ElfRelocationType.R_MIPS_NONE.typeId) {
					saveValueForNextReloc = false;
				}

				RelocationResult result =
					doRelocate(mips64Relocation, relocationAddress, relocType, symbolIndex);

				if (result.status() == Status.FAILURE || result.status() == Status.UNSUPPORTED) {
					return result;
				}
				lastResult = result;

				if (nextRelocType == MIPS_ElfRelocationType.R_MIPS_NONE.typeId) {
					break;
				}
			}
			return lastResult;
		}

		return doRelocate(relocation, relocationAddress, typeId, symbolIndex);
	}
{@link MIPS_ElfRelocationContext} provides extended relocation context with the ability
to retain deferred relocation lists.  In addition, the ability to generate a section GOT
table is provided to facilitate relocations encountered within object modules.
Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationContext.java