github OFFTKP/felix86 26.11
felix86 26.11

2 hours ago

felix86 26.11 is released! Performance optimizations and compatibility improvements, once again.

Read the blog post: https://felix86.com/felix86-26-11/

Compatibility list: https://felix86.com/compat/

Twitter, Bluesky, Discord

What's Changed

  • Thunks: Fix missing == 0 on strcmp by @OFFTKP in #806
  • Chore: Remove unused enum by @OFFTKP in #808
  • Recompiler: Optimize PCMPEQ with same register by @OFFTKP in #807
  • Chore: Fix --info exit handling, kill-all robustness and missing executable error by @Miabeyefendi in #809
  • Chore: Print CLI fatal errors to stderr by @Miabeyefendi in #810
  • Common: Check second fdopen and report errno in binfmt registration by @Miabeyefendi in #811
  • Linux: Fix some argv[0] issues by @OFFTKP in #816
  • Translation, Common: Translate some strings, add Chinese language by @OFFTKP in #817
  • Linux: Make sure an assert doesn't happen by @OFFTKP in #818
  • Recompiler: Set code cache clears as pending when changing TF by @OFFTKP in #819
  • Recompiler: Place address cache relative to ThreadState by @OFFTKP in #820
  • Chore: Remove unused function from emulator.hpp by @OFFTKP in #821
  • Chore: Remove xthead leftovers, move compileNext to Recompiler by @OFFTKP in #822
  • Common: Make packaging slightly easier by @OFFTKP in #823
  • Thunks: Implement VK_EXT_pageable_device_local_memory by @OFFTKP in #825
  • Chore: Replace inaccurate_minmax and inaccurate_conversions with unsafe_math by @hazelwiss in #826
  • Recompiler: Implement self-validating blocks and fix potential SMC race by @OFFTKP in #824
  • Recompiler: Implemented more accurate paths for MIN/MAX by @hazelwiss in #827
  • Linux: Use std::map for guest tracking by @OFFTKP in #828
  • Linux, Recompiler: Don't protect pages for SMC if already protected by @OFFTKP in #829
  • Config: Remove alignment_check by @OFFTKP in #830
  • Recompiler: Fix some relocatable stuff by @OFFTKP in #831
  • Recompiler: Fix slight bug in SAR by @OFFTKP in #832
  • Chore: Update readme installation command by @OFFTKP in #833
  • Recompiler: Fix lock or with unaligned word by @OFFTKP in #834
  • Recompiler: Handle DIV/IDIV quotient overflow by @OFFTKP in #835
  • Recompiler: Implement FIP by @OFFTKP in #836
  • Chore: Deduplicate syscall ptrace stops and strace output by @lloyd-dps in #838
  • Chore: Remove unused declarations and accessors by @lloyd-dps in #837
  • Linux: Fix PTRACE_GET_SYSCALL_INFO size for syscall exit stops by @lloyd-dps in #839
  • Linux: Implement PTRACE_GETFPREGS and PTRACE_SETFPREGS by @lloyd-dps in #840
  • Linux: Don't wake sigsuspend and pause on guest-blocked signals by @lloyd-dps in #841
  • Linux: Keep the sigsuspend mask while delivering the waking signal by @lloyd-dps in #842
  • Linux: Restart syscalls when signal gets deferred before the interruptible thunk by @lloyd-dps in #843
  • Thunks: Make thunk storage global by @OFFTKP in #844
  • Recompiler: Implement some missing mnemonics by @lloyd-dps in #846
  • Linux: Add more restartable syscalls by @lloyd-dps in #845
  • Recompiler: Invert branch condition without XORI by @OFFTKP in #847
  • Recompiler: Track flags needed after each instruction by @OFFTKP in #848
  • Recompiler: Follow conditional jumps when scanning ahead by @OFFTKP in #849
  • Config: Remove inline_syscalls by @OFFTKP in #851
  • Recompiler: Fix CMP and CMOV fusion with memory sources and unsigned immediates by @lloyd-dps in #850
  • Recompiler: Add TEST/CMP+JCC fusing by @OFFTKP in #853
  • Recompiler: More accurate VROUND implementation for large values, NaNs and infinities. by @hazelwiss in #852
  • Linux: Fix dangling iovec pointers and unreceived messages in 32-bit recvmmsg by @lloyd-dps in #854
  • Linux: Handle SO_RCVTIMEO and SO_SNDTIMEO in 32-bit getsockopt by @lloyd-dps in #855
  • Linux: Use 32-bit masks for the legacy 32-bit sigprocmask by @lloyd-dps in #857
  • Linux: Don't assert on the new address for in-place 32-bit mremap by @lloyd-dps in #856
  • Linux: Bounds check the entry number in set_thread_area and get_thread_area by @lloyd-dps in #858
  • Linux: Pass through 32-bit sendto and recvfrom by @lloyd-dps in #859
  • Linux: Pass through 32-bit unlinkat, renameat2, utimensat, setxattr, lsetxattr and syncfs by @lloyd-dps in #860
  • Linux: Pass through 32-bit timer_delete, timer_getoverrun, timer_gettime and timer_settime by @lloyd-dps in #863
  • Linux: Pass through 32-bit setgroups, unshare, membarrier and getcpu by @lloyd-dps in #861
  • Linux: Implement 32-bit timer_create by @lloyd-dps in #862
  • Chore: Move compilation state to BlockState by @OFFTKP in #864
  • Recompiler, Chore: Split checkIfBreakpoint by @OFFTKP in #865
  • Linux, Recompiler: Fix dirty upper register halves in 32-bit mode by @OFFTKP in #866
  • Misc: Bump version by @OFFTKP in #867
  • Recompiler: Use JAL to mark link point instead of AUIPC by @OFFTKP in #868
  • Recompiler: Emit UD when extensions are missing instead of asserting by @OFFTKP in #869
  • Recompiler: Implement superblocks by @OFFTKP in #870

New Contributors

Full Changelog: 26.10...26.11

Don't miss a new felix86 release

NewReleases is sending notifications on new releases.