private void applyProcessorLabels(List<Option> options, Program program) {
		int id = program.startTransaction("Finalize load");
		try {
			Language lang = program.getLanguage();
			// always create anchored symbols for memory mapped registers
			// which may be explicitly referenced by pcode
			for (Register reg : lang.getRegisters()) {
				Address addr = reg.getAddress();
				if (addr.isMemoryAddress()) {
					createSymbol(program, reg.getName(), addr, null, false, true, true);
				}
			}
			// optionally create default symbols defined by pspec
			if (shouldApplyProcessorLabels(options)) {
				boolean anchorSymbols = shouldAnchorSymbols(options);
				List<AddressLabelInfo> labels = lang.getDefaultSymbols();
				for (AddressLabelInfo info : labels) {
					createSymbol(program, info.getLabel(), info.getAddress(), info.getDescription(), info.isEntry(),
						info.isPrimary(), anchorSymbols);
				}
			}
			GhidraProgramUtilities.resetAnalysisFlags(program);
		}
		finally {
			program.endTransaction(id, true);
		}
	}
Releases the given consumer from each of the provided {@link Loaded loaded programs}

@param loadedPrograms A list of {@link Loaded loaded programs} which are no longer being used
@param consumer The consumer that was marking the {@link Program}s as being used
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/AbstractProgramLoader.java