Skip to content

FEX-2112

Compare
Choose a tag to compare
@Sonicadvance1 Sonicadvance1 released this 06 Dec 01:59
· 7815 commits to main since this release

Arm64

  • Reduce the chance of hanging on reentrant allocations (8ab6830)
  • Adds an inline syscall optimization (f746870)
  • COND_FGT should map to gt, not hi, as it is not FGTU (b45603d)
    • Fixes steamwebhelper burning all CPU cores!

FEXCore

  • Fixes CompileService race condition on thread creation (5345f7f)
  • Centralize alignment utility functions in one header (966272c)
  • Fixes ERROR_AND_DIE (fbd14b6)
  • Supports guest SIGILL (6e1ea92)
  • CPUID
    • Call handler functions directly (ffee22d)
  • OpcodeDispatcher
    • Remove debug message (d883b4b)
    • Implement BZHI (50c8d9e)
    • Amend return types of BitSize helpers (c63c5fb)
    • Implement MULX (498a845)
    • Resolve sign mismatches in loops (ad864e0)
    • Add helper for getting bit sizes (3a3cbf2)
    • Handle RORX (51d21d8)
    • Implement BMI2 SARX/SHLX/SHRX (e37a0bb)
    • Removes usage of SignalFrame stack on JITs (d81d5e2)
    • Use std::vector as the underlying container for std::stack (61ccec3)
    • Partial support for RIP adjust in signal handler (77093a7)
    • Resolve unused variable warnings (a04cc4d)
  • OpcodeDecoder
    • Shorten up GPR and MM base offset retrieval (59ed91c)
    • Convert enums into enum classes where applicable (d1fa8bc)
    • Add support for ADX (d3cd354)
  • Frontend
    • Handle VEX RXB bits (d47182b)
    • Mark modrm function LUT as static (c6662a4)
  • GDBStub
  • Fixes a few hangs and crashes (e027b83)
  • Interpreter
    • Build op handler table at compile-time (63f9e0b)
    • Mark F80CMP array as static constexpr (13ad5b6)
  • JIT
    • Eliminate redundant jump target map lookups (8ef0278)
    • Ensures signals in compileservice JIT space is handled (97e3a36)
  • JitSymbols
  • IR
    • Make some interface functions accept pointers to const (8c38f93)
    • Convert NodeID into a strong type (b93871f)
    • Add type alias for Node IDs (1f306d6)
  • RegisterAllocationPass
    • Resolve sign comparison mismatch in CalculateNodeInterference() (597e4e1)
    • Reduce usages of NodeIDs where applicable (19a0651)

Linux

  • Updates syscalls to 5.16 syscalls (c4d05fb)
  • Fixes sched_getaffinity (d5bf641)
  • Fixes MAP_32BIT error case (92ae6ae)
  • Fixes sigprocmask with new and old set being the same address (7bb7891)
  • Passthrough 32-bit syscalls that can be (3dc938b)
  • Emulate MAP_32BIT on mmap (081d016)
  • SignalDelegator update signal mask on return from sigsuspend (90511dd)
  • Updates 32-bit DRM emulation (a92233c)

Thunks

  • Fail loudly if thunking is enabled for a library that isn't installed (b1b6160)
  • ThunksDB
    • Updates file to include local libs (e0d40dd)

Tests

Misc

  • BucketList
  • CMake
    • Adds option to enable time-trace compile option (919e2bc)
  • CompileService
    • Store WorkItem instances as unique_ptr (ef772c3)
  • ELFCodeLoader
    • Fixes BRK allocation on some ELF loading (b327daf)
  • EnumUtils
    • Remove shift operators from helper macro (977d92b)
  • General
    • Migrate logging over to fmt where possible (513b02f)
  • RootFS
    • Keep rootfs around while in container (16f1ad4)
  • IR.json/json_ir_generator: Minor touchups to generated IR utilities (9b43f94)
  • Various packaging improvements (23e583e)

Frontend

  • Adds Socket logger and tool (6c93b6f)
  • FEXLoader
    • Change 32-bit memory check error to warning (82ebdf5)
    • Print memory map when 32-bit intersect happens (e6d285a)
  • Syscalls
    • Move construction of syscall name map into GetSyscallName() (0560e9b)