{ "Options": { "CPU": { "Core": { "Type": "uint32", "Default": "FEXCore::Config::ConfigCore::CONFIG_IRJIT", "TextDefault": "irjit", "ShortArg": "c", "Choices": [ "irint", "irjit", "host" ], "ArgumentHandler": "CoreHandler", "Desc": [ "Which CPU core to use", "host only exists on x86_64", "[irint, irjit, host]" ] }, "Multiblock": { "Type": "bool", "Default": "true", "ShortArg": "m", "Desc": [ "Controls multiblock code compilation" ] }, "MaxInst": { "Type": "int32", "Default": "5000", "ShortArg": "n", "Desc": [ "Maximum number of instruction to store in a block" ] }, "Threads": { "Type": "uint32", "Default": "1", "ShortArg": "T", "Desc": [ "Number of physical hardware threads to tell the process we have.", "0 will auto detect." ] } }, "Emulation": { "RootFS": { "Type": "str", "Default": "", "ShortArg": "R", "Desc": [ "Which Root filesystem prefix to use", "This can be a filesystem path", "\teg: ~/RootFS/Debian_x86_64", "Or this can be a name of a rootfs", "If the named rootfs exists in the FEX data folder then it will use that one", "\teg: $HOME/.fex-emu/RootFS//", "Or if you have XDG_DATA_HOME the config will search in that directory", "\teg: $XDG_DATA_HOME/.fex-emu/RootFS//" ] }, "ThunkHostLibs": { "Type": "str", "Default": "", "ShortArg": "t", "Desc": [ "Folder to find the host-side thunking libraries." ] }, "ThunkGuestLibs": { "Type": "str", "Default": "", "ShortArg": "j", "Desc": [ "Folder to find the guest-side thunking libraries." ] }, "ThunkConfig": { "Type": "str", "Default": "", "ShortArg": "k", "Desc": [ "A json file specifying where to overlay the thunks." ] }, "Env": { "Type": "strarray", "Default": "", "ShortArg": "E", "Desc": [ "Adds an environment variable to the emulated environment." ] } }, "Debug": { "SingleStep": { "Type": "bool", "Default": "false", "ShortArg": "S", "Desc": [ "Single stepping configuration." ] }, "GdbServer": { "Type": "bool", "Default": "false", "ShortArg": "G", "Desc": [ "Enables the GDB server." ] }, "DumpIR": { "Type": "str", "Default": "no", "Desc": [ "Folder to dump the IR in to.", "[no, stdout, stderr, ]" ] }, "DumpGPRs": { "Type": "bool", "Default": "false", "ShortArg": "g", "Desc": [ "When the test harness ends, print the GPR state." ] }, "O0": { "Type": "bool", "Default": "false", "ShortArg": "O0", "Desc": [ "Disables optimizations passes for debugging." ] } }, "Logging": { "SilentLog": { "Type": "bool", "Default": "true", "ShortArg": "s", "Desc": [ "Disables logging" ] }, "OutputLog": { "Type": "str", "Default": "stdout", "ShortArg": "o", "Desc": [ "File to write FEX output to.", "[stdout, stderr, ]" ] } }, "Hacks": { "SMCChecks": { "Type": "uint8", "Default": "FEXCore::Config::CONFIG_SMC_MMAN", "TextDefault": "mman", "ArgumentHandler": "SMCCheckHandler", "Desc": [ "Checks code for modification before execution.", "\tnone: No checks", "\tmman: Invalidate on mmap, mprotect, munmap", "\tfull: Validate code before every run (slow)" ] }, "TSOEnabled": { "Type": "bool", "Default": "true", "Desc": [ "Controls TSO IR ops.", "Highly likely to break any multithreaded application if disabled." ] }, "ABILocalFlags": { "Type": "bool", "Default": "false", "Desc": [ "When enabled enables an optimization around flags.", "Assumes flags are not used across cals.", "Hand-written assembly can violate this assumption." ] }, "ABINoPF": { "Type": "bool", "Default": "false", "Desc": [ "When enabled enables an optimization around parity flag calculation.", "Removes the calculation of the parity flag from GPR instructions.", "Assuming no uses rely on it" ] }, "ParanoidTSO": { "Type": "bool", "Default": "false", "Desc": [ "Makes TSO operations even more strict.", "Forces vector loadstores to also become atomic." ] } }, "Misc": { "AOTIRCapture": { "Type": "bool", "Default": "false", "Desc": [ "Captures IR and generates an AOT IR cache.", "Captures both the loaded executable and libraries it loads." ] }, "AOTIRGenerate": { "Type": "bool", "Default": "false", "Desc": [ "Scans file for executable code and generates an AOT IR cache.", "Does not run the executable." ] }, "AOTIRLoad": { "Type": "bool", "Default": "false", "Desc": [ "Loads an AOT IR cache for the loaded executable." ] } } }, "UnnamedOptions": { "Misc": { "IS_INTERPRETER": { "Type": "bool", "Default": "false" }, "INTERPRETER_INSTALLED": { "Type": "bool", "Default": "false" }, "APP_FILENAME": { "Type": "str", "Default": "" }, "IS64BIT_MODE": { "Type": "bool", "Default": "false" } } } }