-
aex-emu-2209
Release aex-emu-2209 - 64BitAllocator - Fixes a significant state tracking perf problem (123b6728) - Allocator - Simplify StealMemory, make it less chatty with kernel space (04678f84) - Arm64 - JIT - Rename CanUseSVE to HostSupportsSVE (7d8950de) - CI - Build Thunks (e544591c) - FDUtils - Don't make unknown get_fdpath fatal (336dedbe) - FEXRootFSFetcher - Fix crash if curl fails to download rootfs definition file (31fefaae) - FEXServer - Support socket path override (a2f4f494) - Github - Fix fresh runner rootfs checkout (d6199687) - HostRunner - Handle upper YMM lanes in sigsegv handler (d5c83a2e) - IRLoader - TestHarnessLoader - Don't build if not building tests (097184c3) - InterpreterOps - Extend SSAData size to accomodate 256-bit operations (98dbfbe6) - Linux - Emulate classic getdents syscall for x64 and x32 (9de25c20) - Termux - Add android-shmem library (0adbe311) - Thunks - Minor cleanups for signature-based function pointer thunking (e6acdcc5) - Support direct thunk config in configuration files (84a95ada) - Fix compile without jemalloc (d5138f50) - X11 - Support Variadic stack packing (fbb008e5) - Adds missing XLibint functions (998a3d83) - VectorOps - Extend VAnd/VBic/VOr/VXor (e776f4cd) - Extend VMov (e7d7dd13) - Extend VectorImm (8439cf41) - Extend VectorZero (d03b6a93) - Misc - Prepare for 22.09 tag - - See merge request aex-emu/aex!1977 (8f73fe5b) - New Register Allocator - - See merge request aex-emu/aex!1972 (6fd12b7b) - Quick fixes & workarounds - - See merge request aex-emu/aex!1973 (8d01985f) - Guest Build System: Add x86_32 toolchain, formalize things bit, cleanup FEXLinuxTests - - See merge request fex-emu-ng/FEXicorn2!1891 (7de8747f) - (b4b0c619) - Just in time OBJ/IR Caching - - See merge request fex-emu-ng/FEXicorn2!1842 (22967cb4) - New domain. (7f9edbf3) - x86_64/JIT: Resolve lingering fmt deprecation warning (37ccb139) - cmake - fix incorrect assumption about the value of git's core.abbrev (c03a7fd4) - unittests - Support skipping unit tests based on host feature support (1fe6fc3f) - ThunkLibs - Fix warning about "dangerous" use of tmpnam (12fee91e)
-
FEX-2208
FEX Release FEX-2208 - AppConfig - Fix bug with filename (ac23bce0b) - Arm64 - JIT - Remove unnecessary [[maybe_unused]] attributes (89aa59061) - Arm64Dispatcher - Amend memcpy in SpillSRA (f5e18ccea) - Arm64Emitter - Re-add use of stp/ldp with hosts that don't support SVE2 (858911972) - CMake - Support multiple json files in the root of Data/ (bd296d7a1) - CPUID - Detect Cortex-X1C (c9f0ecb1e) - Config - Support a global configuration file (3a64ea165) - Dispatcher - Fix SRA enabled check in signal delegator handlers (0dfe617d9) - Externals - Update fmt to 9.0.0 (54f62b670) - FEXBash - Changes PS1 to hopefully help users (a72ebfdec) - FEXConfig - Some quality of life improvements (164299ce2) - FEXCore - Fix-up edge case behaviour on faulting instructions (803723137) - Adds assume optimizing LogManager function (3d347ed56) - Support synchronizing RIP on block entry through config (80909eaa8) - FEXRootFSFetcher - Adds runtime checks for image mounting tools (cfd59db99) - Actually wire up -a -x (3aabe0772) - Add some options for automation without user intervention (f6fcfbabd) - FEXServer - Fix unsafe vector insert/removal (0982ec617) - HarnessHelpers - Handle SSE register offsets in CompareStates (0e93ba532) - Interpreter - Move argument names over to IR names (3f9a1c375) - JitSymbols - Only initialize perf map file if using (a984674da) - Linux - Fixes hang in close_range (4dfe0a059) - Only install syscall handlers for the arch we launched with (018661609) - Syscalls - Removes staging vector usage (6903159f3) - Telemetry - Support executable names through wineserver (ce0c24eee) - Thunks - Extends libGL interface to support more functions (1051cd97c) - Make glXGetProcAddress self-query work (dd7e1baa7) - Make unknown glXGetProcAddress non-fatal (ab228c1fc) - Use external Vulkan-Headers (9664d98ba) - Make GL guest thunks implicitly load libX11.so (5eab087cc) - X11 - Distinguish between host and guest pointers in XFree (6933c2aaf) - Misc - Disable UnitTestGenerator (45330fdd5) - Synchronized Block Linking (b9c9c7d67) - Implement signature-based thunking of function pointers (62d9961bd) - Cleanup syscalls headers (c3c52d01d) - json_ir_generator: Remove Args() functions from IR structs (98d935d97) - Fix SOMA and sigaction definition (b07660c4f) - improve compile ability for older linux (c1688fa39) - AVX initial groundwork (c17340547) - x86_64: Migrate args over to named IR arguments (3ac6ba0fe) - cmake - Remove the static-pie compilation option (a112db169) - drm - Update to v5.19 (1fa6bf1cc) - unittests - Adds 32-bit into test (f2602e313) - vixl - Update (9b685ba82)
-
FEX-2207
FEX Release FEX-2207 - AOTIR - Fix IRList delete (fb41ba17) - Fix RAData free (9242e598) - Arm64 - EncryptionOps - Fix register specifiers in PCLMUL movs (63b70ff3) - JIT - Use IR names in opcode implementations (19b0a9cd) - Backends - Unified dispatch, interface rework, cleanups (072690a1) - CI - Auto rootfs fetching (c027acec) - CMAKE - Create directories during configuration, fixes endless generation of unittests (e62bc24b) - CMake - Check for binfmt_misc conflicts before install (6d2f98a3) - CPUID - Enable the hypervisor bit (da8dbf17) - Common - Support application profiles for games launched through wine (3913dd6c) - Config - Fixes AppConfig for wine-preloader (ae6a57e6) - Context - Fix CreateThread partial initialization issue (eac579f7) - Decouple from CodeLoader, introduce generic CustomIREntrypoints (b0a31f71) - CoreState - Add register size constants (1c1ad876) - Dispatcher - Arm64 - Fix vixl assert (0f696c60) - Dispatchers - Use thread local emitters for backend callbacks (4f9bc705) - FDUtils - Fix get_fdpath (aa17f645) - FEXGDBReader - Fix install path (b3e090c8) - FEXRootFSFetcher - Update and fix xxhash file hashing (c0a89847) - FEXServer - Stop leaking FDs to subprocesses (b7806e47) - Minor changes (1f1d0706) - Adds -w option for waiting on current FEXServer (b020e593) - Adds new FEXServer service (5a19425b) - FEXServerClient - When running under pressure-vessel don't use FEXServer rootfs (9110546d) - IPR - Store copy of IRLists, Dispatcher cleanups (790bd974) - IR - Remove GuestCallDirect, GuestCallIndirect (e4d659a6) - add IsFragmentExit, IsBlockExit (2d3c6efa) - Invalidations - Move invalidation locks to Context (ffcde182) - Ioctl - Safely access v3d csd ioctl structure (158ba1ae) - Ioctl32 - Fix DRM_IOCTL_WAIT_VBLANK (982518d3) - JITs - Qualify external includes consistently (b05e5ce1) - Linux - Fixes for clone3 stack size (1494aac8) - Make `get_fdpath` more optimal (542ab046) - Fixes 32-bit allocator range scanning (4c73c715) - Fixes `open` syscall emulated path handling (43234939) - OpcodeDispatcher - Handle CLMUL opcode extension (9e9ceb38) - SMC - Track code pages before frontend decode (bbd9eb5b) - Scripts - Allow user override on tagged version (aafe7ff1) - TSO - Add auto migration optimisation for applications that don't need TSO (c99d1e48) - Tests - IRLoader - Silence missing override warning (ade3a527) - ThunkLibs - Fix Guest.h (302a6c96) - silence warnings (30a28ff1) - vulkan - Work around lack of generic callback support in VK_EXT_debug_report (4771a340) - Thunks - Implement generic callback support (aec5b21d) - Soften error condition to be non-fatal (3b8491b5) - Adds libvulkan steam pinned library thunking support (6b226dd6) - Fix std::set crash (6a43db8c) - Add fex:is_lib_loaded (88b94bef) - Support returning host function pointers to the guest (04a1ac96) - Support pressure-vessel prefixes (e2e6f2a9) - vulkan - Disable debug report callback (751b66d4) - ThunksDB - Fix String.find error check (d8fa53a4) - ValueDominanceValidation - Avoid stack exhaustion when aggregating predecessors (124097d5) - Vulkan - Handle queries for unknown functions more gracefully (e137c2ed) - Misc - Support EroFS (46fcbe2f) - Allow building thunks on a wider range of platforms (ad6fd5ab) - Fix inconsistent allocation schemes used for RegisterAllocationData (8a21ecab) - Make Dispatcher per Context from per Thread, Simplify TestHarnessRunner (0a62a4c5) - IR.json: Correct 'Dest' key to 'Desc' (51c5f945) - gdb - jit integration (4449b604) - unittests - Classify CPU based on CPU features (d005fdcd) - Disable known flake in posix tests (a97fb2f3) - Add FEXLinuxTests with a few tests (cb0935c9) - ThunkLibs - Fix test failures due to missing FEX_PACKFN_LINKAGE define (a2c9d5a3)
-
FEX-2206
FEX Release FEX-2206 - AOTIR - copy RAData and IRList, make sure data is accessible (da2e44d0) - AppConfig - Inject --no-sandbox in to steamwebhelper (c14c0c2e) - ArchHelpers - Adds relocation struct defines (b5ae9e4c) - Arm64 - Fix LDAPUR/STLUR DMB backpatch (27f2e0b0) - Adds support for RCPC2 extension (f8ba373e) - Fixes AtomicSwap (70988ccf) - Arm64Emitter - Optimize constants with ADRP and ADR (912dbfe5) - CMake - C/C++ flags for defined singed overflow warping (2e053492) - Add option to use the mold linker (58841142) - CompileService - Removes no longer necessary service thread (b1033ed7) - Config - Adds code cache config option (278ca52d) - Core - Adds Code Object Cache service (13f3c6e7) - context-wide guest code invalidations (d8109880) - EmulatedFiles - Fixes temporary file flags (4fbc266b) - F64 - Implement FCW using host rounding mode (db3854e3) - Fix FILD and FIST for Size < 8 (89d6752d) - FEXBash - Set PS1 to make it more obvious when running under FEX (ec38d58b) - FEXCore - Adds refcount_shared_mutex class (1e597bfb) - Reclaimable thread pool allocator (8a7f3955) - FEXLoader - Fix create_directories check for aotir .path file writting (90f338d7) - FEXLogServer - Stop improper use of std::erase_if (d523b7a6) - FEXRootFSFetcher - Don't continue download (fa87c73b) - JitSymbols - Print file+offset if possible (a7156276) - Linux - Fixes 32-bit mmap (3fd136b0) - MemAllocator32Bit - Add missing lock to shmdt, fix error returns (b2b4c2bd) - OpcodeDispatcher - Implement SHA256 instructions (3bbff8a9) - Handle SHA-1 instructions (8dd9a5bd) - Implements support for PAUSE (da480208) - Fixes pextrb with high registers (fe11bd22) - Remove debugging dump statement (c8dc663b) - Adds support for non-temporal loadstores (ba78dff1) - ScopedSignalMask - Add shared mutex support, move constructors (8e36f533) - Syscalls - Fixes clone3 stack pointer (0ed96544) - Linux - Add guest[Mmap/Munmap] (b9d878b1) - Refactor guest mman tracking (ce0f5db6) - TestHarnessRunner - Use guest mapper for test harness files (b78af2fd) - X86Tables - Leave shouldn't end block (4f426326) - Misc - Struct verifier fixes and reenable (c6153d6a) - v5.18 support (969d8f86) - Fix dangling curl hyphen (1dee54a9) - SMC detection via segfaults (5460a24e) - Standarized TODO markers: FEX_TODO, FEX_TODO_ISSUE (73d43c1d) - Clean up and document ScopedSignalMask (5379f0a9) - Object cache named region no-op implementation (ee2d417d) - JIT relocation handling support (c5dacab2) - 32-bit FSGS instruction fixes. (9bc631a4) - V5.17 support (2f7dcb8d) - Emulate reduced-precision X87 with 64-bit host FPU ops (42a63209) - mtrack - Fixes 32-bit shmat, shmdt tracking, guaranteed invalidation atomicity (d82d2944) - unittests - Reenable atomic tests on ARMv8.0 (0fc6d6b6) - Investigate failing CI changes (7227ee9b) - Workaround runner issues (ce5297b7)
-
FEX-2204
FEX Release FEX-2204 - CPUID - Adds 4000_0001h function (977bda97) - Documentation - Adds hypervisor CPUID information (1f1c2149) - FEXCore - Delete IR after it is used (a247df50) - Fixes #1618 (60c7ea6e) - Removes unused debug data (8422fc63) - FileManager - Fix realpath failed on debian buster (91665fdf) - JIT - Adds comment to EmitDetectionString (d39df8d3) - JITArm64 - Get long divide out of the hot path (8ad14728) - JITs - Emit identification string in the code buffers (23a1c64b) - Linux - Fixes MAP_32BIT supported range (fad91bb8) - OpcodeDispatcher - Fixes SIGILL on unsupported host instructions (042cd354) - Fixes FNINIT (187c6418) - Scripts - Updates AArch64 fit for Clang 14 (6b3cd3d3) - SignalDelegator - Adds missing include (b43937a7) - Softfloat - Fixes FSCALE (56779245) - TestHarnessRunner - Flush log on asserts (ebd0edba) - Misc - GDBServer improvements: Three's a crowd (7b0265ff) - Gdbstub improvements: The sequel (6a5abd36) - GDBServer improvements (53ffe5df) - Adds a cmake option for forcing a termux build (5de6c866) - Change page define usages over to self-defined (f5f9512d) - Disables GUI applications in a Termux build (fb27cb43) - Update ReleaseProcess docs for Termux (94664580) - docs - Remove stale text (5cc0c0a3)
-
FEX-2203
FEX Release FEX-2203 - ARMJIT - Switches over to loading pointers from state (1ef78d0a) - Arm64Emitter - Allow non-optimizing LoadConstant (e9c7c761) - CPUID - Implements leaf 4000_0000 (4a3cbf1b) - ELFCodeLoader - Fixes typo in AT_BASE calculation (43fada75) - FEXCore - Adds support for RDRAND/RDSEED (bebcab02) - FEXGetConfig - Fix --current-rootfs option (76f86e51) - FEXLoader - Adds back required MAP_GROWSDOWN (252dcfe2) - Removes memory mapping check on startup (a8e5a0a6) - IR - New IR JSON format (3e8c6d0b) - JIT - Implements x87 fallback helpers as lookups in to state (b65194f4) - JITx86 - Switches over to loading pointers from state (99dcda7f) - Linux - Fix missing types for syscall strace (64d1840f) - x32: Fixes tricky stat64 defines (287c65dc) - Make sure to use correct accessors for sigevent (62397bb1) - LinuxAllocator - Fixes bug with old kernels and hint allocation (08938ecb) - OpcodeDispatcher - Fixes CMPXCHG8B/16B with 66h/72h/73h prefix (d8a3687a) - Implements all the 3DNow! instructions (ac32ecad) - Fixes weirdo edge case in segment moving (ffcaf294) - Scripts - Stop using deprecated Distutils (46ac05e3) - Updates CPU fitting script for latest CPUs (2af23d9b) - Telemetry - Fix missing telemetry names (30803c66) - TestHarnessRunner - Wire up environment variable option setting (3ba2d6cf) - UContext - Fixes 32-bit siginfo_t copying definition (cb491a8a) - Misc - Adds tsl::robin_map (a7ad7f44) - Update vixl to fix assert (57a56545) - Termux fixes (b4e05659) - Allow classifying syscalls with flags (2933a00b) - Improve compatibility with older uapi kernel headers (fa554d30) - Updates vixl for new cursor updating methods (5ec6ee5b) - Adds option to disable ccache (0db7205f) - Fixes Host and guest thunks install path (a5fb7e73) - Removes MAP_GROWSDOWN usage (afa7172c) - Miscellaneous thunk cleanups (4bb3a54c) - Enable proper IDE integration of thunk libraries (5854d4ad) - Updates Readme to fix install script (defd3be3) - Some fixes for older environments (1b99495b) - unittests - Disables Interpreter tests when its disabled (34530236)
-
FEX-2202
FEX Release FEX-2202 - AArch64 - Single instruction optimization for AESKeyGenAssist (6744a06a) - APITests - Fixes InterruptableConditionVariable test to use the syscal… (82e59777) - CMake - Always use local xxhash to statically link (59781431) - Adds TUNE_ARCH option (e36beb8d) - CPUID - Fixes ASAN problem with reading midr (6022715a) - External - Point vixl submodule towards FEX's fork (a3a138ef) - Externals - Update vixl (8e3893df) - FEXCore - Defer a significant number of ALU flag calculation (832d013c) - FEXLoader - Resolve the absolute path to rootfs if possible (023aaaae) - FEXLogServer - Stop duplicating and dropping messages (eb17edec) - FEXRootFSFetcher - Fixes some edge case behaviours (13f35f7b) - Check if curl is installed and fail before running (784cbdd9) - IR - Fixes some wrong offsets in passes (c252f8bf) - Fixes SSA ID printing (a2aa9f3f) - JIT - Fixes signed displacement wraparound on 32-bit (e2798e37) - Linux - Fixes for older build environments (ade0d0f2) - Fixes 32-bit getsockopt and setsockopt (d9149548) - Handles the remaining 32-bit siginfo_t usage (7768f696) - Fixes emulatedpath with symlink following (5dda3a15) - OpcodeDispatcher - Fixes CRC32 decoding in 0F_38 table (1c242061) - Implements PCMPGTQ (caffad85) - Implements CRC32 instruction (b7a76af7) - Removes extraneous extract in VFCMP (4c92b562) - Fixes ptest flags calculation. (0a8717d9) - SocketLogging - Fixes MsgHandler not syncing with Assert level (9eb5ba5a) - Softfloat - Stop doing special handling for FREM (9d084519) - ThunkLibs - Add meta data to libvulkan_device (a0026c92) - Misc - Fixes FEXConfig build (d308a438) - Adds an option to disable the IR interpreter (11a51055) - Fix pressure vessel hangs (334a8ef8) - Fixes some of the warnings that cropped up (bf581dec) - externals - Update fmt to 8.1.1 (140e9824) - unittests - Revise POSIX tests known failures and disabled (ea76de0f) - Fixes ROOTFS needing to be defined prior to cmake (7c08b67d) - Adds a BCD unit test (609587f9)
-
FEX-2201
FEX Release FEX-2201 - Arm64 - Fixes vixl assertions around ubfm usage (5654f9a0) - Fixes MapSelectCC FGT flag (13087f84) - CMake - Adds an OVERRIDE_VERSION option (08085998) - Adds a TUNE_CPU option (51466519) - Adds experimental libc++ option (f3a27a57) - CPUID - Fixes another memory overflow issue (0e45b98f) - Fixes crash on unknown CPU (be3e3a35) - Config - Enables all host threads by default (edce9818) - Sanitize Core option (9bffaeea) - Context - Take some arguments as pointer-to-const (9d439047) - Dispatcher - Disables unsync context message (154468c1) - Adds more state reconstruction to state restore (fa6f1b1d) - Docs - Adds documentation about the FEX monthly release process (a65e7a09) - FEXConfig - Removes jemalloc usage (c65be9f5) - FEXCore - Don't use Run() inside RunUntilExit() (0bf57765) - Fixes a memcpy overflow in processor brand (340699ca) - Fixes FEXCore_Base config dependency (95bd309d) - Implements recoverable INTO instruction (cd4269f4) - Reorganizes some AOT related code (d4655fbb) - FEXRootFSFetcher - Remove 0x prefix on hash (b72245a2) - Adds a new tool to help set up a new RootFS (72e8a997) - GDBServer - Fixes long string packet encodings (88ce9b5c) - HostFeatures - Detect if the host CPU suports float exceptions (117cbde2) - Consolidates HostFeatures flags (e24eb7a7) - IR - Fixes sized constant mask (565d1e27) - Linux - Fixes pidfd_send_signal for 32-bit (ac63a2ba) - Finish 32-bit msqid_ds usage (98210fdf) - Implements the remaining 32-bit syscalls (bc120b9f) - Fixes build on Ubuntu 20.04 take 3 (8f835678) - Fixes build on Ubuntu 20.04 take 2 (059e8a90) - Fixes build on Ubuntu 20.04 (02005e71) - Fixes Ubuntu 20.04 compilation on AArch64 (47bd4795) - Fixes semid_ds_64 definition (f2fd9d9e) - Fixes 32-bit shmctl (45430e95) - Adds the safe syscall unimplemented gap for x86-64 (e05d116b) - LinuxSyscalls - Enable warnings (75e5df54) - NetStream - Move NetBuf definition into cpp file (9860e8b7) - OpcodeDispatcher - Handle PDEP (0a3a270a) - Handle PEXT (91984003) - RootFS - Stop trying to retry rootfs after five times (a45bc759) - Be more robust against stale lock files (d4b31cd4) - Scripts - Adds a python script that can hand hold a user through FEX install (b276750c) - X86Tables - Build Unknown op definition tables at compile time (e8670bba) - Misc - Stop hardcoding /usr/bin paths (1d5bd152) - Improves compile ability for older libraries (c691d709) - More AOT code movement (43dc232e) - FEXMountDaemon squashfs fixes. (ea73c9d7) - Implements RDTSCP (ee821b9c) - Update jemalloc for fixed libc overrides (c43af0e1) - CPUID Expose Hybrid flag and CPU names (9394e49c) - Speed up initialization of X86Tables (e99a23cf) - Implement thunk library generation using libclang (425d9323) - Implements CLZero instruction (5f0dfcd7) - {x32, x64}/Thread: Make use of .data() instead of .at(0) (b6499ac7) - Adds a new ReentrantMutex to use for FEXCore (b9c49027) - gvisor - Disables flaky test (e62cb417) - unittests - Fixes a missing dependency on ASM tests (b078f511) - Enables remaining unaligned atomic tests on ARMv8.0 (fd042476) - Fixes known failures (5c4112f1) - x32 - Socket - Resolve sign comparison mismatch cases (097f48f3)
-
FEX-2112
FEX Release FEX-2112 - Arm64 - Reduce the chance of hanging on reentrant allocations (8ab6830f) - Adds an inline syscall optimization (f7468703) - BucketList - Minor API touchups (baadf0b9) - CMake - Adds option to enable time-trace compile option (919e2bc3) - CPUID - Call handler functions directly (ffee22d3) - CompileService - Store WorkItem instances as unique_ptr (ef772c3e) - Dispatcher - Removes usage of SignalFrame stack on JITs (d81d5e21) - Use std::vector as the underlying container for std::stack (61ccec37) - Partial support for RIP adjust in signal handler (77093a7f) - ELFCodeLoader - Fixes BRK allocation on some ELF loading (b327daf5) - EnumUtils - Remove shift operators from helper macro (977d92b7) - FEXCore - Fixes CompileService race condition on thread creation (5345f7fa) - Centralize alignment utility functions in one header (966272ce) - Fixes ERROR_AND_DIE (fbd14b65) - Supports guest SIGILL (6e1ea92c) - FEXLoader - Change 32-bit memory check error to warning (82ebdf52) - Print memory map when 32-bit intersect happens (e6d285a7) - Frontend - Handle VEX RXB bits (d47182b6) - Mark modrm function LUT as static (c6662a46) - GDBStub - Fixes a few hangs and crashes (e027b83a) - General - Migrate logging over to fmt where possible (513b02fd) - IR - Make some interface functions accept pointers to const (8c38f936) - Convert NodeID into a strong type (b93871ff) - Add type alias for Node IDs (1f306d66) - Interpreter - Build op handler table at compile-time (63f9e0b4) - InterpreterCore - Dispatcher - Resolve unused variable warnings (a04cc4dc) - InterpreterOps - Mark F80CMP array as static constexpr (13ad5b66) - JIT - Eliminate redundant jump target map lookups (8ef02783) - Ensures signals in compileservice JIT space is handled (97e3a364) - JitSymbols - Make use of fmt (db0740be) - Linux - Fixes sched_getaffinity (d5bf6414) - Fixes MAP_32BIT error case (92ae6ae2) - Fixes sigprocmask with new and old set being the same address (7bb78912) - Passthrough 32-bit syscalls that can be (3dc938b8) - Emulate MAP_32BIT on mmap (081d0169) - SignalDelegator update signal mask on return from sigsuspend (90511ddd) - OpcodeDecoder - Shorten up GPR and MM base offset retrieval (59ed91c5) - Convert enums into enum classes where applicable (d1fa8bcf) - Add support for ADX (d3cd354c) - OpcodeDispatcher - Remove debug message (d883b4bf) - Implement BZHI (50c8d9ed) - Amend return types of BitSize helpers (c63c5fb6) - Implement MULX (498a845c) - Resolve sign mismatches in loops (ad864e0e) - Add helper for getting bit sizes (3a3cbf2b) - Handle RORX (51d21d86) - Implement BMI2 SARX/SHLX/SHRX (e37a0bbd) - RegisterAllocationPass - Resolve sign comparison mismatch in CalculateNodeInterference() (597e4e1d) - Reduce usages of NodeIDs where applicable (19a06519) - RootFS - Keep rootfs around while in container (16f1ad46) - Syscalls - Move construction of syscall name map into GetSyscallName() (0560e9be) - Tests - Minor cleanup (2a894bc1) - Thunks - Fail loudly if thunking is enabled for a library that isn't installed (b1b61608) - ThunksDB - Updates file to include local libs (e0d40dd4) - Misc - Adds Socket logger and tool (6c93b6f7) - IR.json/json_ir_generator: Minor touchups to generated IR utilities (9b43f94f) - Updates syscalls to 5.16 syscalls (c4d05fb8) - Various packaging improvements (23e583e1) - Various thunk library cleanups (3730a428) - Updates 32-bit DRM emulation (a92233c7) - jit - arm64 - COND_FGT should map to gt, not hi, as it is not FGTU (b45603d1) - unittests - Enables 32-bit host runner (cabb58ad)
-
FEX-2111
FEX Release FEX-2111 - ALUOps - Fix left-over printf specifier in fmt log (aa1c47cd) - Allocator - Reserve upper 128TB of VA on 64-bit process (cae2f8ca) - Arm64 - Fixes paranoid TSO mode (8b645465) - Consolidate HandleSIGBUS (babb81a2) - Don't fall back to native (a3b39afe) - Make sure to spill static FPRs on guest signal (98ba0bfa) - Be more explicit about x87 ABI usage (bdc66a33) - CPUID - Adds support for hybrid flag (a9d31227) - Cmake - Change static-pie message to indicate compiled without it (e547f0ca) - Core - Mark relevant Interpreter/JIT functions as [[nodiscard]] (43454abc) - DeadContextStoreElimination - Fix missing printf specifier entry (b1ab252c) - FEXConfig - Fixes timeout in select causing 100% CPU load (8aebbbd0) - Frontend - Handle VEX source operands (7e9201cf) - IR - Fixes memory ops having a duplicate size field (56e5e78b) - Add handling for ANDN operations (34b2f93d) - Interpreter - Splits ops in to separate files (e9937d9a) - JIT - Fixes asserts added to the JIT (28d084bf) - JITSymbols - Allow grouping JIT symbols by guest named regions (ff74e0a0) - Change over to runtime enablement of symbols (8b3c4615) - Linux - Fixes execve on softlinks in rootfs (a393d660) - Implements virtio ioctls for 32-bit (e0343647) - Fixes FEXLoader argument passing (f9078f8d) - FM - Follow more symlinks in emulation (09ee6d3b) - OpcodeDispatcher - Implement BLSR/BLSMSK (b4a71a21) - Implement handling for BLSI (285ef387) - Handle BMI1 BEXTR (76538be0) - Deduplicate OpToIndex definition (031fa8a7) - RAPass - Add debug compile option to disable spill slot reuse (36612233) - SignalDelegator - No longer do magic on SIGCHLD (95457bc7) - Syscall - Fix 32-bit nanosleep always passing valid remainder (9e8af234) - Telemetry - Adds telemetry for when an application tears (235367b6) - TestHarnessRunner - Make argument check more strict (eb8a8bf9) - Convert LOGMAN_THROW_A into error log and exit (c9c35262) - Thunks - Fix missing libdrm include path (fa1648c6) - Respect DESTDIR environment variable (6cd73a67) - XCB Add missing header file (8dfe305a) - vulkan - Suppress compiler warnings about unknown attributes (64aa4f00) - X86Tables - Make flag helper functions constexpr (d09706aa) - Misc - Fixes environment loader not hooked up to ArgumentLoader (8f170d4a)
-
FEX-2110
FEX Release FEX-2110 - AOTIR - fix use after free (327c4d55) - Config - Check for container-manager and redirect (56bddd3a) - Core - Minor documentation and code splitting (fb01e8bf) - FEXConfig - Change shortcut for opening application profile (a56463a7) - FEXLoader - Flush log output (360c4a20) - FEXMountDaemon - Fixes shutdown race conditions (c9a62658) - FileManager - Allow reading real root (ba174e5c) - Interpreter - Changes basic loadstores to sized accesses (08f56540) - Linux - Implements support for POSIX message queues on 32-bit (21ff4339) - Implements support for timer_create (f232dceb) - Fixes timex definition for 32-bit syscalls (368095f9) - Fixes rlimit syscalls for 32-bit (e91061f7) - OpcodeDispatcher - Ensure some x87 templates get passed long constants (1fa3afd0) - Scripts - Adds a new script for extracting function definitions (9d460e80) - Softfloat - Allow forcing use of some x87 on x86 host (d004fee7) - StructVerifier - Fix struct match and minor fixes (2b757a9b) - Thunks - Support versioned libraries (0dc8e233) - Install a global thunksDB for our current thunks (72125c9c) - Adds a few missing libGL thunk functions (9a07b550) - Some minor X related thunk changes (e0b878f1) - Expands Xext thunked functions listo (073224ff) - Expands what asound thunking supports (00511c16) - Adds a new Thunks database config file (66c7fdb6) - Makes file searches a bit easier (a48ed376) - Adds init helpers with function call (98bee5a6) - ThunkHelpers script improvements (8d13261a) - Minor fixes to the config and loading (d93edb2d) - Misc - Vulkan thunks (b3efb1d2) - Adds support for setting host environment variables from config (d5f9f43a) - Build fix for ENABLE_JITSYMBOLS (591fc001) - RA validation (3744ec2a)
-
FEX-2109
FEX Release FEX-2109 - Arm64 - Fixes SRA spilling on signal (35c66429) - Reimplements support for binfmt_misc without update-binfmts (5d73ac32) - Arm64Emitter - Resolves some IWYU warnings (c206942b) - Config - Moves non-OS specific configuration loading to FEXCore (6da33306) - EmulatedFiles - Fixes openat for emulated files not using FDCWD (109c42a6) - FEXBash - Allow creating a bash instance easily (9140ba28) - FEXConfig - Load application config and advanced tab (3e05544e) - FEXCore - Return the ParentThread with InitCore (97f413cf) - Minor symbol visibility fixes (5debdf8d) - Use GetCursorAddress when able (8eb0df96) - FEXLoader - Fixes potential bug in log output to stdout/stderr (10922293) - FEXMountDaemon - Fixes dangling mounts problem (dd343165) - Fixes some minor issues (ad34cddb) - Early fork to deparent child (7795078f) - Hangover - Initial support for the syscall handling. (77db25fc) - Linux - Setup signal mask correctly to block signal-in-signal situations (70931bf3) - sigaltstack ignore SS_ONSTACK (c74620f0) - Handle fpstate in the signal delegator correctly (1c4503e2) - Fixes 32-bit interval timers (425ee98f) - Fix V3d and VC4 ioctl definitions (0c484ac4) - x86: Initial V3D and VC4 ioctl emulation (127d7c1a) - Fixes accidental execve escape (1c3be542) - Fixes 32-bit syscalls that use 64-bit values (6afc3ca1) - Implements support for clone with namespaces (7aae9b7e) - Fixes readlinkat for self (8dd41e7f) - Implements pivot_root syscall (cce3f365) - RA - Add max NoteCount assert (c645d868) - SignalDelegator - More splitting and cleanup (097b3ad8) - Misc - Fix unaligned CASPair on ARMv8.0 (2c02dcac) - Syscall fixes (befd0aa9) - Properly implement single CAS on ARMv8.0 (25e95855) - Move BucketList into it's own file (4f66d3e9) - Gvisor fixes (d600b34b) - Massive amount of IWYU cleanup (10793e89) - Fixes Callback interface to take a thread argument (fa224a35) - Fixes jemalloc library ordering (b373d0fc) - Proton 6.3 32-bit fixes (8099dfc8) - OpcodeDispatcher: Implements undocumented repne on string ops (926ddabb) - 32-bit wine fixes (6a08587d) - Updates jemalloc to fix missing alias posix_memalign (63af80fc) - Adds new FEXGetConfig program (43052a57) - Implements support for offline *only* telemetry (b120a8ea) - Rebase skmp/no sra (0be16bae) - unittests - Hotfix for older nasm (9563b5aa) - x86 - Fixes siginfo_t si_addr for SIGBUS/SIGSEGV (6b878394)
-
FEX-2108
FEX Release FEX-2108 - 64BitAllocator - Convert std::vector table into std::array (ec6cc5cb) - AArch64 - Workaround static-pie crashing (4c431518) - Arm64 - Fixes fill and spill slot offset calculation (6ac23003) - CPUID - Update TM and TM2 CPUID bits (d142d7c3) - CPack - Update package name to remove conflict (2d11df03) - FEXLoader - stderr on immediate failure (84dee03a) - FEXMountDaemon - Make squashfs mounting more robust (ff98a43f) - FlexBitSet - Use non-template type parameter for index parameters (7931dc2c) - GdbStub - Fix memory leak in GdbServerLoop() (749f1eba) - General - Remove redundant string constructions in log calls related to IR op name retrieval (80caf903) - Jits - Migrate logs over to fmt where applicable (7052d022) - Linux - Implements support for vsyscall (a5b142cf) - Implements rt_{tg,}sigqueueinfo (1a64c908) - Implements a base implementation of signalfd{4,} (2db44cf2) - Remove logs about parent or child stack usage (336eb9a8) - OpDispatcher - Fixes imul flags calculations (7dd70039) - OpcodeDispatcher - Split the opcode handling to multiple files (2fd41de5) - RCLSE - Fixes an assumption in RCLSE (896aa528) - Misc - Linux: Implements support for signals 32 and 33 (7e8577a5) - Wine fixes (de0337db) - Cleanup compile service on fork (a48e41e4) - Adds an option to stall processes on launch (03159648) - Adds an option to disable jemalloc from cmake (dec82219) - binfmt_misc: Support loading ELFs from FD and support preserve (007b1cbe) - Fixes bug in RAPass (b0a28e59) - Works around static-pie crashing (62775161) - Adds cmake option ENABLE_STATIC_PIE (aa767b39) - Fixes some issues I found when running under tsan and asan (14480f3e) - Fixes binfmt_misc install when not installed to /usr (04aacea5) - Validation Passes: Remove unused variables (7f5b3524) - Fixes flag setting for 8bit and 16bit LOCK ALU ops (3a0da68b) - Adds a convenience of named thunk configs (f4e044a5) - Update man page to show JSON key for config options (108081e2) - Fixes Host thunks lib not being able to GL (6ff9b966) - Allocator fixes (a24d63b5) - Atomic improvements (53417e53) - Actually fix jemalloc for FEXConfig (35a4f52d) - Switch some memory allocations over to mmap (1eee2dd0) - Update jemalloc to fix glibc override. (0d9ab9ca) - Fix jemalloc malloc replace (a9bb33b8) - Fixes old kernel defines for sockios (8f09bd92) - Use externals xxhash if not found installed (0a8ee430)
-
FEX-2107
FEX Release FEX-2107 - ARM64 - Fixes bugs in unaligned atomic signal handlers (12cc979e) - Arm64 - Use regular function pointers with CAS handling functions (49fa69d4) - CPUID - Improvements to have a more sane configuration (9635b344) - Context - Add alias for exit handler (52e2c4ab) - Place return value from GenerateIR into a struct (09071e42) - Move GPR size retrieval to its own function (adcee996) - Core - Remove unused DefaultFallbackCore (d2771669) - After fork make sure to cleanup stacks (3252f793) - FEXConfig - Have it create AppConfig folder on save (4880097f) - FEXLoader - Make use of unique_ptr for syscall handlers (36b5863c) - FileManager - Minor changes (dc664b1e) - Frontend - Make lookup tables static in MapModRMToReg (1f89ca72) - General - Resolve -Wcast-qual warnings (f088d970) - Resolve -Wignored-qualifiers warnings (fb7964e6) - HostAllocator - Make Create64BitAllocator() return a unique_ptr (38d25d97) - OpcodeDispatcher - Make use of if constexpr (81ce7b3f) - Mark lookup tables as static in Get{Src,Dst}Size (09363f1b) - Make GPR indices in SyscallOp constexpr (a8855a33) - Passes - Replace <iostream> header with narrower equivalents (98714a49) - Return by unique_ptr where applicable (12efcdc9) - RegisterAllocationPass - Prevent leaks in BucketList (74f63c90) - Syscalls - Add helper for version testing (58c66b73) - Signals - Add missing arguments to pidfd_send_signal syscall (af112f4c) - Misc - Fixes PT_LOAD with zero file size (7d0535e0) - Moves ELF handlers from FEXCore to frontend (176b3292) - Remove logs that are just noise at this point (2d830454) - Wrap 32-bit epoll_ctl argument in compat_ptr (76a054e5) - Implements support for deferred signal handler installation (336ecb8c) - Implements 32-bit sigpending (26531e9b) - Implements support for cpack debian package building (282402a8) - Fixes a couple of 32-bit checks (28254a31) - Implements 32-bit iret instruction (910c624a) - Lower priority of AOT compilation threads. (767ea0fc) - Implements 32-bit truncate64 syscall (087e5a95) - Fixes fixed stack offset for 32-bit applications (67e6ffbc) - Fixes debug strace output (6734d745) - Fixes a 32-bit processes wanting another TLS space (332123a3) - Fix Star Wars Knights of the Old Republic 2 (24fdbe4e) - Disable flaky posix test (424b93b5) - Fixes FEXBash with squashfs (42f1dfee) - Fixes typo on extension check for squashfs (a67bdddb) - Support Squashfs based rootfs files (52426ae9) - Enables transparent huge pages in our 64-bit VA allocator (779aca7e) - Removes more libnuma references (afd35be9) - Remove most warnings in FEX again (50b5ad57) - Fixes a crash in 32-bit applications with tmpfile (0a03fbdf) - syscalls - Disallow disabling CPUID from arch_prctl (3d25f594) - x32 - Fixes fcntl OP_GETLK64_32 (861d89e8) - Fixes sendmmsg cmsg alignment (59c36ebc) - Fixes shmdt, sendmsg, recvmsg syscalls (3a11b88d) - Implement chown32/fchown32/lchown32 (5d7822c9) - Socket - Amend std::vector initialization bug in sendmmsg (bdfbebe2) - Thread - Implement setfsuid32/setfsgid32 (01667bdf) - Implement getgroups32/setgroups32 (c7cd2241) - Time - Implement settimeofday (fd8dcda6) - Fix a few edge cases in time related syscalls (8e6328e9) - Implement futimesat (4a1da852) - Implement utimes (35157c12)
-
FEX-2106
FEX Release FEX-2106 - AOTIR - .aotir files are now streamed out (dc7437b8) - CodeLoader - Add type aliases for mapper and unmapper functions (69035348) - Config - Avoid a few minor string copies where trivially possible (97c4ba01) - Move strings where applicable (0c234416) - ConstProp - Separate out constituent chunks of const prop (4fa8522d) - Core - return unique_ptr by default for cores (c98fb7ae) - DecodedOperand - Convert operand type into an enum class (98383095) - Add helper functions for type testing (71c32c01) - Externals - Add fmtlib as an external (8b587306) - FEXConfig - Allow lower GL versions (4243ed19) - Fixes INotify watcher never coming up (4c02c9f0) - GdbServer - Migrate logging/string handling to fmt where applicable (e78d3d1a) - General - Place more compiler specifics into CompilerDefs.h (130f82a3) - Add missing const specifiers where applicable (36a77bb3) - IR - Make use of defaulted operator== (83bf79ab) - IRParser - Minor cleanup (6d20ae5d) - Make use of fmt where applicable (104fabc1) - Convert array of std::string over to array of std::string_view (37689279) - InternalThreadState - Make SignalEvent an enum class (294ec80a) - LogManager - Add fmt-capable logging functions (0a7f0a34) - SignalDelegator - Minor changes (57df4c6d) - Syscalls - Thread - Replace std::unexpected with std::terminate (b9e53b6c) - Utils - Add header for bit-related utilities (f6997264) - Add CompilerDefs.h for compiler-specifics (4c275ecc) - Misc - Fixes 32-bit applications crashing (08fad8fb) - Fixes crash in 32-bit pselect6 and pselect6_time64 (16bb64aa) - {x32, x64}/EPoll: Prevent edge-case out-of-bounds access scenarios (b9a8c383) - Fixes floating point conversion rounding bugs (5ac9b455) - Implements SSE4.1 (c6e09dde) - Fixes semctl and msgctl (61f73cf0) - Adds drm headers to an external repository (9716a4f0) - Implements more syscalls for supporting a higher guest kernel version (edd1dfdf) - Implements SSE4.1 insertps (16467c0f) - Implements pidfd_getfd syscall (7b418088) - Multi threaded AOTGen (6cba775d) - ppoll fixes (370f36c8) - Ignore non-canonical addresses in FS/GS setting (42bb27b1) - Removes syscall forward errno preprocessor implementation (c103f547) - Disable userfaultfd until supported (7ecaf24e) - Fix fadvise64 (52f7ea54) - Handle FD flag remapping correctly (023a32ea) - Sigaction fixes (36980131) - Emulate MAP_32BIT in mmap (b2eb13fa) - Use epoll syscalls directly (27b6497b) - Fix uname (66ee89ec) - Support redirecting thread-self exe softlink (bee73199) - Return ENOSYS on too large of syscall number (0e6db843) - Fix two EmuFD issues (b45538f0) - Handles symlinks in rootfs in openat (eb02afe9) - Microoptimization for the DRM ioctls (e282fd22) - Fixes JITSymbols for x86-64 JIT (3147f0d8) - x32 - FD - Construct vectors in place (e469031c)
-
FEX-2105
FEX Release FEX-2105 - AOTIR - Add install rule for FEXUpdateAOTIRCache (517b5757) - Offline Generation (fd6d33d1) - Switch over to mmap-based loading (a30866a8) - Deps - Require xxhash 0.7.3, ubuntu 20.04 ships with that version (e9a32da9) - ELF - Simpler loader, uses mmap (08bc7a83) - IR - Fix RIP relocation edge-cases (7d4380fe) - Remove Entry from OP_HEADER, pass as parameter to CompileCode (db776fae) - JIT - Add reason 1 (0xCD) to OP_BREAK implementations (605994dc) - LookupCache - Add new entries to L1C (7d5157b6) - Oops - Missed line on FEXConfig SDL2 (c495d812) - Misc - Fixes host thread stacks ending up in lower 32-bit VA (623b29de) - Handle more cases of an application pinging self (9be67fb2) - Fixes ioctl returning error (cb9286c1) - Updates binfmt_misc files to support AppImage (693097c5) - Adds Nouveau and Lima ioctl32 handlers (5b017f9a) - Implements support for CLFLUSH (8d1f9a90) - Remove reliance on librt and libnuma (6dc69063) - Redirect applications using execve with self (2916c4f3) - Initial base implementation of sigtimedwait (04137d0d) - More ioctl32 emulation (afa81294) - Workaround fixes in sendmsg/recvmsg (866baf66) - 64-bit allocator and ioctl emulation (235e05e8) - Removes xxhash version check (3e1da51c) - Fixes SDL2 interface check...again. (4efe973b) - Memory layout optimizations (528b01ad) - Enables ARMv8.4 CI runner (cd0492a1) - Optimizes CPUID generation a bit (aae4de10) - Work around M1 Parallels hypervisor not showing CPU type (a6d94250) - Only use SDL2 import target if it exists (2ab8a970) - Adds Long Divide removal pass (bab59279) - Changes LogMan assert to defines (c3ad5710) - Switch from fasthash64 to xxhash's XXH3 (60671ee6) - Naked mman usage removal (6635765e) - Fixes ELFCodeLoader2 loading relative ELF files (3e4ff23a) - Declare missing template specialization for GetListIfExists (3419f40c) - Use cmake SDL2 target properties (8260ddda) - Use mcpu=native with Clang 12 (872e49f0) - Fixes OpenAt breaking with anonymous objects (f0f6bc7a) - Emulated Files: Don't precalculate /proc/pid path, it changes after fork (e7179ff8) - First step in paranoid TSO mode (6cc7d065) - Switches FEX over to using jemalloc (93b9ca4b) - Default hidden visibility and strip symbols (4a504bdd) - Enables GCC 32-bit unit tests (5e6c6adf) - Fixes segment register override on string instructions. (50c3ee04) - Adds some more CPUID functions (c0ef6da6) - Fixes ordering problem of tag generation in release script (20634114) - Fixes Zext semantics on atomic ops with x64 JIT (4a5eefec) - Updates a couple POSIX test case failures (eaad9e99) - Allows overriding FEX folder locations with environment variables (62406a45) - Adds use-after-scope to the ASAN options (03537d35) - Removes getenv usage for aotir (1d4b81f5) - Fixes GCC tests (c26f19ed) - Adds support for Arm64 JIT to Print (9619cea0) - Fixes memory leak in CPU backends (44dbecc2) - Implements a minimal siginfo_t in the dispatcher's signal handler (41563220) - Fixes eventfd and eventfd2 (8319a855) - Fixes truncate and creat (8ad45071) - Fixes clock_nanosleep (c7620504) - Fixes FEXConfig filling in unnamed options (648ef617) - Fixes wrapping cmdline arguments (5fac51f6) - Fixes pselect6 signal arg pack argument (be03767c) - Updates release script to match what I want it to be (adeea56e)
-
-
FEX-2103
FEX Release 21-03
-
FEX-2102
FEX Release 21-02
-