private static synchronized GdisConfig checkLanguage(Language lang) {
		LanguageID languageId = lang.getLanguageID();
		if (configCache.containsKey(languageId)) {
			return configCache.get(languageId);
		}
		GdisConfig config = new GdisConfig(lang);
		if (config.architecture == UNSUPPORTED) {
			Msg.warn(GNUExternalDisassembler.class,
				"Language not supported (ldefs 'gnu' map entry not found): " + languageId);
		}
		else if (gdisDataDirectory == null) {
			config = null;
			if (!missingExtensionReported) {
				missingExtensionReported = true;
				Msg.showError(GNUExternalDisassembler.class, null, "GNU Disassembler Not Found",
					"External Disassembler extension module not installed: " +
						GNU_DISASSEMBLER_MODULE_NAME);
			}
		}
		else if (config.gdisExecFile == null) {
			boolean usingDefault = config.usingDefault;
			config = null;
			if (usingDefault) {
				if (!missingExtensionReported) {
					missingExtensionReported = true;
					Msg.showError(GNUExternalDisassembler.class, null, "GNU Disassembler Not Found",
						"External GNU Disassembler not found (requires install and build of " +
							GNU_DISASSEMBLER_MODULE_NAME + " extension): " + GDIS_EXE);
				}
			}
			else {
				Msg.showError(GNUExternalDisassembler.class, null, "GNU Disassembler Not Found",
					"External GNU Disassembler not found for language (" + lang.getLanguageID() +
						", see LanguageMap.txt)");
			}
		}
		configCache.put(languageId, config);
		return config;
	}
Returns the map from context register values to disassembly display prefixes
@return map values->prefixes
Ghidra/Extensions/SleighDevTools/src/main/java/ghidra/app/util/disassemble/GNUExternalDisassembler.java