mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-07 04:05:14 +02:00
233 lines
5.8 KiB
JSON
233 lines
5.8 KiB
JSON
{
|
|
"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/<RootFS name>/",
|
|
"Or if you have XDG_DATA_HOME the config will search in that directory",
|
|
"\teg: $XDG_DATA_HOME/.fex-emu/RootFS/<RootFS name>/"
|
|
]
|
|
},
|
|
"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, <Folder>]"
|
|
]
|
|
},
|
|
"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, <Filename>]"
|
|
]
|
|
}
|
|
},
|
|
"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"
|
|
]
|
|
}
|
|
},
|
|
"Misc": {
|
|
"AOTIRCapture": {
|
|
"Type": "bool",
|
|
"Default": "false",
|
|
"Desc": [
|
|
"Captures IR and generates an AOT IR cache.",
|
|
"Captures both the loaded executable and libraries it loads."
|
|
]
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|