What's Changed
- This version add lots on unconnected new things, like a PPC64LE backend, Vulkan overlay support or more Dynarec finetuning!
=> Vulkan x64 overlay support. That means using the linux version of Steam, Fossilize & GameOverlayUI will work.
=> Many dynarec refactors, especially on ARM64 & LA64 with fixes to speed regression introduced with the the last 2 releases and improved compatibility.
=> Support for SteamRT3 & new Proton 11
=> New PCC64LE in the work. Not finished, but usable already. Note that the platform seems to use a 64k pagesize by default, so compatibility will suffer on this platform.
More details in New release blog
Contributions
- [WRAPPER] Wrapped more symbols for gio2 and glib2 by @ksco in #3330
- [ELF] Fix SIGSEGV when calling dlinfo RTLD_DI_LINKMAP for emulated code by @matthewabbott in #3331
- Bundle fixes by @LukeShortCloud in #3332
- [LA64_DYNAREC] Refined more RCL/RCR opcodes by @ksco in #3333
- [LA64_DYNAREC] Refined more RCL opcodes by @ksco in #3335
- [WRAPPER][BOX32] Wrapped 1 more symbol for sdl2 by @ksco in #3336
- [LA64_DYNAREC] More work on safeflags, removed some obeslete code ([ARM_DYNAREC] too) by @ksco in #3339
- [RCFILE] Apply safeflags=2 for libjvm by @ksco in #3340
- [LA64_DYNAREC] Enabled 1 more pattern for nativeflags by @ksco in #3341
- Change signal handling function to use signal_to_x64 by @Aqua-Peak in #3307
- [WRAPPER] Make libresolv symbols runtime-resolved (res_*/dn_expand) by @yzewei in #3342
- [LA64_DYNAREC] Refined RCR32 opcode by @ksco in #3343
- [WRAPPER] Wrapped more gtk classes and functions by @ksco in #3344
- [LA64_DYNAREC] Enabled more patterns for nativeflags by @ksco in #3345
- [LA64_DYNAREC] Fix IDIV Ew dividend construction by @yzewei in #3346
- [WRAPPER] More work on gtk wrapping by @ksco in #3347
- [LA64_DYNAREC] Fixed F0 20 LOCK AND opcode by @ksco in #3348
- [LA64_DYNAREC] Fixed 66 0F 73 /6 PSLLQ opcode by @ksco in #3349
- [LA64_DYNAREC] Removed LASX from hard dependencies by @ksco in #3350
- [LA64_DYNAREC] Added non-LASX path for some SSE opcodes by @ksco in #3356
- [LA64_DYNAREC] Fix IDIV Ew with sign-extended DX:AX by @yzewei in #3354
- [LA64_DYNAREC] Fixed DIV Ew as well by @ksco in #3355
- [LA64_DYNAREC] Refined more opcodes by @ksco in #3358
- [LA64_DYNAREC] Handled more invalid opcodes by @ksco in #3359
- [LA64_DYNAREC] Fixed geted16 ([RV64_DYNAREC] too) by @ksco in #3360
- [DYNAREC] Fixed RDFSBASE and WRFSBASE opcodes by @ksco in #3361
- [LA64_DYNAREC] Fixed a special-case of SHLD/SHRD opcodes ([RV64_DYNAREC] too) by @ksco in #3362
- [LA64_DYNAREC] Small fixes to AVX VPSRAW/VPSRAD opcodes by @ksco in #3363
- [ELFLOADER] Added support for memfd created library by @ksco in #3364
- A small change to test runner by @ksco in #3366
- [WRAPPER] Wrapped more symbols for libresolv by @ksco in #3365
- [LA64_DYNAREC] Small optim to a few sign-exntension opcodes by @ksco in #3372
- [LA64_DYNAREC] Enabled CALLRET optim for FAR opcodes by @ksco in #3368
- [WRAPPER] Try dlopen(libbsd) before dlopen(NULL) by @yzewei in #3373
- [LA64_DYNAREC] Small fix to iret_to_next by @ksco in #3375
- [WRAPPER] Provide weak arc4random in libc by @yzewei in #3376
- [LA64_DYNAREC] Fixed CALL FAR opcode ([ARM64_DYNAREC] too) by @ksco in #3377
- [LA64_DYNAREC] Fixed some typos for 16-bit LOCK INC/DEC opcodes by @ksco in #3378
- [LA64_DYNAREC] Minor optimizations for non-lbt path by @ksco in #3379
- [LA64_DYNAREC] Fixed more issues for non-lbt path by @ksco in #3380
- [INTERP] Added DE /2 /3 opcodes by @ksco in #3381
- [INTERP] Fixed subnormal handling of f16 to f32 by @ksco in #3382
- WRAPPER] Add missing libc/selinux/ssl symbols by @yzewei in #3385
- Some more minor changes to test runner by @ksco in #3387
- [RCFILE] Removed an invalid profile by @ksco in #3388
- [RV64_DYNAREC] Fix delta_ip range checks ([LA64_DYNAREC] too) by @Aqua-Peak in #3386
- [ARM64_DYNAREC] Fixed a typo in iret_to_next() by @ksco in #3391
- [ARM64_DYNAREC] Fixed 32-bit VGATHER opcodes ([INTERP] too) by @ksco in #3392
- [LA64_DYNAREC] Fixed 32-bit VGATHER opcodes by @ksco in #3393
- [DYNAREC] Fixed a CRC32 decoding issue ([INTERP] too) by @ksco in #3395
- [RCFILE] Made file priority outweighs BOX64_ARCH by @ksco in #3398
- [WRAPPER] Wrapped 1 more dbus symbol SDL3 uses by @ksco in #3401
- [LA64_DYNAREC] Refined more 16-bit rotate opcodes by @ksco in #3403
- [LA64_DYNAREC] Refined more 16bit shift opcodes by @ksco in #3404
- [WRAPPER] wrapped ncurses curterm via set_curterm; add selinux symbol to (mkdir, find) by @yzewei in #3400
- [LA64_DYNAREC] Refactored the handling of deferred flags by @ksco in #3405
- [LA64_DYNAREC] Fixed AVX VPMASKMOVD/Q opcode by @ksco in #3406
- [BOX32] Removed redundant logging prefix by @ksco in #3407
- [WRAPPER] torch running miss symbol by @yzewei in #3411
- [SYSINFO] Refactored sysinfo module by @ksco in #3410
- [WRAPPER] fenv exception mask transform by @yzewei in #3412
- [LA64_DYNAREC] Removed fastnan path on certain opcodes ([RV64_DYNAREC] too) by @ksco in #3414
- [WRAPPER] Wrapped a few more symbols for libc by @ksco in #3413
- [LA64_DYNAREC] Removed more fastnan path on certain opcodes ([RV64_DYNAREC] too) by @ksco in #3417
- Updated README by @ksco in #3418
- [WRAPPER] Submitted some leftovers by @ksco in #3419
- [WRAPPER] Wrapped more symbols for libnettle8 and lzma by @ksco in #3420
- [SYSCALL] Added 2 more syscalls by @ksco in #3421
- [WRAPPER] Wrapped libc argp_parse by @ksco in #3423
- [WRAPPER] add libc/libselinux/libgmp missing symbols by @yzewei in #3422
- [WRAPPER] Wrapped more symbols for pam and libm by @ksco in #3424
- [DYNAREC] Small optimization for PUSH imm opcodes by @ksco in #3426
- [LA64_DYNAREC] Fixed regression introduced in b798e0d by @ksco in #3427
- [WRAPPER] Add lzma/nettle symbols by @yzewei in #3425
- [BOX32] Fixed wrong offset for many x11 32-bit structures by @ksco in #3428
- [LA64_DYNAREC] Fixed a typo in emit_rcr8c and some cosmetic changes too by @ksco in #3429
- [ELFLOADER] Small log prefix fix by @ksco in #3430
- [SYSINFO] Fixed a missing initialization by @ksco in #3431
- [RCFILE] Updated ZenlessZoneZero profile by @ksco in #3432
- [RCFILE] Revealed a secret by @ksco in #3433
- [SYSINFO] Fixed initialization errors in sysinfo by @ksco in #3434
- [SYSINFO] Fixed initialization errors in sysinfo cont'd by @ksco in #3435
- [DOCS] A Small polish to README by @ksco in #3436
- [CORE] Fixed zydis initialization regression introduced in #3434 by @ksco in #3437
- [LA64_DYNAREC] Fixed 66 0F 15 UNPCKHPD opcode by @ksco in #3438
- [LA64_DYNAREC] Fixed AVX VCMPSS/D opcodes by @ksco in #3439
- [LA64_DYNAREC] Fixed AVX VMOVSS/D opcodes by @ksco in #3440
- [LA64_DYNAREC] Fixed and refined 66F30F opcodes by @ksco in #3441
- [LA64_DYNAREC] Workaround for emit_sbb8 lbt path by @ksco in #3442
- [LA64_DYNAREC] Fixed 6B IMUL load immediate ([RV64_DYNAREC] too) by @ksco in #3443
- [ENV] Added a new option for debugging, and made it default by @ksco in #3444
- [LA64_DYNAREC] Added 66 D9 /6 FNSTENV opcode by @ksco in #3445
- [DYNAREC] Aligned fpu_reset_cache implementation by @ksco in #3446
- [LA64_DYNAREC] Added and fixed fastround=0 path for some opcodes by @ksco in #3448
- [WRAPPER] Add missing libc/crypto/ssl/glib/gomp/sqlite symbols by @yzewei in #3450
- [ELF] Fixed mangohud integration regression for OpenGL introduced by the Vulkan Overlays support by @ksco in #3451
- [SYSINFO] Support model name by @zqb-all in #3454
- [WRAPPER] Fixed the xmlCreatePushParserCtxt function by @yzewei in #3456
- [WRAPPER] Wrapped more symbols for libgl by @ksco in #3449
- [CORE][LA64] Fixed non-lasx resolving order by @ksco in #3458
- [WRAPPER] Fixed atfork handler by @devarajabc in #3460
- [ELF] Fix ABS_ADDR for LA64 ABI 1.0 by @xiangzhai in #3461
- [SYSINFO] Fixed reentrancy handling by @ksco in #3463
- [LA64_DYNAREC] Improved 0F AE opcodes by @ksco in #3466
- [WRAPPER] fix libc argp_parse bridging; add selinux symbols by @yzewei in #3462
- [STEAM] Registered VERSION_CODENAME env. var. for better compatibility by @ksco in #3465
- [WRAPPER] Fixed __cxa_atexit where dso_handle can be NULL (for #3467) by @ksco in #3468
- [ELF] Clean up native symbol resolving stuff by @ksco in #3469
- Fix missing braces in x64run0f.c opcode 0x00 handler by @devarajabc in #3471
- x87: Manually raise FE_OVERFLOW/FE_UNDERFLOW flags in LD2D conversion by @yzewei in #3472
- Fix undefined behavior in EXTRQ/INSERTQ by @devarajabc in #3473
- Fix missing return in openat syscall wrapper by @devarajabc in #3477
- [LA64_DYNAREC] Fix call_c arg setup clobbering A0-mapped regs by @yzewei in #3476
- Fix memory leak of mmaplist_t->chunks and allocator mismatch by @devarajabc in #3479
- Add missing ClearCache after ARCH_UDF by @devarajabc in #3480
- Fix incorrect page-alignment test preventing mprotect() by @devarajabc in #3481
- Fix 32-bit shift overflow in 64-bit BTR/BTC by @devarajabc in #3483
- [LA64_DYNAREC] Close the fastnan path for MINSS/MAXSS/VMINSS/VMAXSS to correct NaN semantics. by @yzewei in #3486
- [DEBIAN] Support RISCV by @zqb-all in #3488
- [FIX]: separate sse4_2 and sha_ni by @yzewei in #3490
- Snapdragon 8 Elite Gen 5 optimization flags by @airidosas252 in #3489
- [DYNAREC] Added STRONGMEM=4 by @ksco in #3491
- Fix incorrect bit shift in fpu_do_free by @devarajabc in #3492
- Fix incorrect dlinfo RTLD_DI_LINKMAP usage in initWrappedLib by @kg233 in #3494
- [ARM64_DYNAREC] Fix BICxw flag handling by @devarajabc in #3495
- [WRAPPER] Wrapped 1 more symbol for libc by @ksco in #3497
- [ARM64_DYNAREC] Fix operator precedence issue by @devarajabc in #3498
- Fix size calculation in my_strlcat by @devarajabc in #3500
- [BUNDLE] Add libmbed libraries by @LukeShortCloud in #3501
- [BUNDLE] Add libpng12 libraries by @LukeShortCloud in #3502
- [BUNDLE] Fix 'libstdc++.so.6' download by @LukeShortCloud in #3503
- [BUNDLE] Add 'libz.so' libraries by @LukeShortCloud in #3504
- [WRAPPER] Fix libpam conversation callback ABI by @yzewei in #3506
- x87: Fix FPREM/FPREM1 semantics in dynarec and interpreter by @yzewei in #3505
- Fix epoll_create1 flag register in my_syscall handling by @devarajabc in #3507
- [BUNDLE] Better explain why it is needed by @LukeShortCloud in #3509
- Bundle libstdcpp5 by @LukeShortCloud in #3510
- Fix dst->key.which to src->key.which in SDL event by @devarajabc in #3511
- Fix use-before-set in inplace_XRRMonitorInfo_enlarge by @devarajabc in #3512
- [BOX32] Fix ARPL (0x63) semantics and add regression test by @FrontMage in #3513
- [ENV] Added a new env. var. BOX64_FORCE_LD_PRELOAD by @ksco in #3514
- [BOX32][WRAPPER] Fix inverted condition in del_cond() by @devarajabc in #3517
- [BOX32] Fix missing get_attr() by @devarajabc in #3518
- [BOX32] Add MAP_FAILED check in my32_prepare_thread by @devarajabc in #3520
- [BOX32][WRAPPER] Fix XRRGetPanning shrinking wrong variable by @devarajabc in #3521
- [CI] Add stale issues workflow by @LukeShortCloud in #3522
- [WRAPPER] Add SDL3 (libSDL3.so.0) wrapper for OldUnreal game support by @runlevel5 in #3530
- Fix fesetenv/feupdateenv SIGSEGV on ppc64le with x86 FE_DFL_ENV sentinel by @runlevel5 in #3533
- [LA64_DYNAREC] Removed many redundant native mnemonics printer by @ksco in #3538
- Added some auto-generated leftovers by @ksco in #3539
- [ELFLOADER] Added back MAP_FIXED flag by @ksco in #3540
- [INTERP][COSIM] Disabled GPF emissions in cosim mode by @ksco in #3541
- [BUNDLE] Add missing symlink by @LukeShortCloud in #3508
- Fix ELF loader crash on hosts with >4KB page sizes (e.g. 64KB) by @runlevel5 in #3546
- [WRAPPER] Fix my_fegetround() to convert native rounding mode to x86 format by @runlevel5 in #3548
- [WRAPPER] Reworked libxml2 by @ksco in #3550
- [DYNAREC] Replace hardcoded jmpnext trampoline size with per-arch JMPNEXT_SIZE macro by @runlevel5 in #3551
- [WRAPPER] Add libomp.so.5 wrapper by @runlevel5 in #3543
- [DYNAREC] Fix protectDB/protectDBJumpTable stripping PROT_WRITE from data regions on large-page hosts (fix #3556) by @runlevel5 in #3557
- Add per-thread native sigaltstack for internal signal handlers by @runlevel5 in #3559
- [TOOLS] Add rbtree_walk() and optional dynablock size histogram by @runlevel5 in #3558
- [BUNDLE] Add manual symlinks first by @LukeShortCloud in #3561
- [wrapped] Add some missing symbols by @yzewei in #3549
- [RV64_DYNAREC] fix rv64 epilog by @zqb-all in #3565
- [RV64_DYNAREC] Fix OF flag position in copyUCTXreg2Emu by @zqb-all in #3567
- [BOX32] Fix ELF loading on 64KB page systems by @runlevel5 in #3566
- [RV64_DYNAREC] Use SRLIW for 32-bit SF extraction in emit_cmp32_0 by @zqb-all in #3569
- [BOX32][WRAPPER] Enable __isoc99_vfscanf and __isoc99_vsscanf in wrapped libc by @runlevel5 in #3570
- [LA64_DYNAREC] Fixed non-lbt path of SF computation in emit_cmp32_0 by @ksco in #3572
- [WRAPPER] Fix SDL Vulkan bridge2 passing wrong fnc2 (regression from c7bc293) by @runlevel5 in #3578
- Fix execl/execle/execlp varargs argument corruption by @gigachadmma69 in #3582
- [WRAPPER] Fix xmlMemGet typo by @xiangzhai in #3585
- [WRAPPER] Fix g_type_module_register_type forgot to findFct other callbacks for my_GTypeInfo_t by @xiangzhai in #3586
- Hook ogg_sync_pageout to fix use-after-free in statically-linked libogg by @runlevel5 in #3589
- [PPC64LE] Add PPC64LE platform support (interpreter-only) by @runlevel5 in #3591
- dynarec: fail-close readable-range guards for FillBlock/native-call probes by @FrontMage in #3590
- [BOX32][WRAPPER] Add libSDL2-2.0.so.1 to 32-bit library list by @runlevel5 in #3595
- [BOX32][WRAPPER] Add libpulse-simple wrapper for BOX32 by @runlevel5 in #3598
- Bundle emulated libs list by @LukeShortCloud in #3600
- [WRAPPERHELPER] Added an x86-specific inclusion specification file by @rajdakin in #3601
- [WRAPPER] Add libvpx wrapper for VP8/VP9 codec support by @runlevel5 in #3594
- [WRAPPERHELPER] Fixed x86-specific inclusion specification file by @rajdakin in #3602
- Implement SDL3 callback wrappers for timer, event, hint, and log functions by @gigachadmma69 in #3581
- Enable 7 missing functions in Box32 libc and librt wrappers by @gigachadmma69 in #3583
- Enable seekdir, telldir, getdelim, getline in Box32 libc wrapper by @gigachadmma69 in #3580
- wrapped32: enable missing libm and libpthread entries by @gigachadmma69 in #3584
- [WRAPPER] Add libayatana-indicator3.so.7 and libayatana-ido3-0.4.so.0 wrappers by @runlevel5 in #3553
- [BOX32][WRAPPER] Add libogg wrapper for BOX32 by @runlevel5 in #3596
- cpuid: Enable Invariant TSC bit for Intel CPU type by @gigachadmma69 in #3579
- [WRAPPER] Fix atexit in the shared library failed to be called by @xiangzhai in #3611
- [Fix] Crash caused by concurrent operation of the exit phase and worker threads (teardown lifecycle race) by @yzewei in #3610
- [BOX32][WRAPPER] Add wrapper for libvorbis by @runlevel5 in #3597
- Fix segfault when BOX64_VERSION env var is set (ftrace NULL dereference) by @yoinks-yoinks in #3613
- wrapped32: enable 65 missing libresolv entries by @gigachadmma69 in #3603
- [LA64_DYNAREC] Use a new printer by @ksco in #3614
- Implement ov_read_filter callback wrapper for libvorbisfile by @gigachadmma69 in #3604
- [LA64_DYNAREC] Matched old format on the new printer by @ksco in #3618
- [PPC64LE] Add PPC64LE dynarec infrastructure with MOV opcodes by @runlevel5 in #3592
- [BOX32] Fix copy-paste bug in SDL_ShowMessageBox by @devarajabc in #3619
- [BUNDLE] Remove libvorbis by @LukeShortCloud in #3625
- [PPC64LE_DYNAREC] Add stack and basic opcodes (PUSH/POP, NOP, XCHG, LEAVE) by @runlevel5 in #3620
- [BUNDLE] Mention AlmaLinux Vault repository by @LukeShortCloud in #3628
- [BUNDLE] Add 'libassuan.so.0' by @LukeShortCloud in #3629
- [LA64_DYNAREC] fix COMISS/UCOMISS flags state handling by @yzewei in #3631
- [BOX32] Fix vorbis pcmout/lapout/analysis_buffer pointer conversion by @runlevel5 in #3630
- [BUNDLE] Remove libogg by @LukeShortCloud in #3626
- [WRAPPER] Fix dbus callback return type and format string bugs by @gigachadmma69 in #3634
- [WRAPPER] fix CRYPTO_get_ex_new_index callbacks && add some symbol by @yzewei in #3637
- Fix box64 -t for systems with page sizes larger than 4K by @runlevel5 in #3638
- Fix ALSA callback copy-paste bugs in find* lookup functions by @gigachadmma69 in #3639
- [PPC64LE_DYNAREC] Add MOV, NOP/XCHG, MOVSXD, CWDE/CDQ opcodes by @runlevel5 in #3633
- [WRAPPER] Wrapped icuuc68 and icui18n68 by @ksco in #3640
- [LA64_DYNAREC] Added 66 0F 38 41 PHMINPOSUW opcode by @ksco in #3641
- [TEST] Go more aggressive on buffer size by @ksco in #3643
- [LA64_DYNAREC] Fixed 0F 6E MOVD opcode decoding error by @ksco in #3644
- [LA64_DYNAREC] Added fastnan=0 path to F3 0F 51 SQRTSS opcode by @ksco in #3646
- [LA64_DYNAREC] Fixed register conflicts for 66 0F BA opcodes by @ksco in #3647
- [LA64_DYNAREC] Fixed MULX opcode by @ksco in #3649
- [WOW64] Fix build with llvm-mingw 20260224 by @AndreRH in #3653
- [LA64_DYNAREC] Fixed scratch register conflict for 66 0F 38 63 PCMPISTRI opcode ([RV64_DYNAREC] too) by @ksco in #3654
- [INTERP] Added a bunch of NEG opcode, DynaRec TBD by @ksco in #3655
- [LA64_DYNAREC] Fixed MULX again, but it's 32bit path this time by @ksco in #3658
- [LA64_DYNAREC] Fixed F0 F7 /3 LOCK NEG opcode by @ksco in #3656
- [RV64_DYNAREC] config vector before VLE in sse_get_reg_vector by @zqb-all in #3624
- [WOW64] Fixed build on my machine by @ksco in #3660
- [CI] Added *.def to CI workflow dispatch path by @ksco in #3662
- [PPC64LE_DYNAREC] Add ADD opcodes (0x00-0x05) and emitters by @runlevel5 in #3652
- [ARM64_DYNAREC] Fixed scratch register conflict for BZHI opcode by @ksco in #3661
- [WRAPPER] Wrapped more symbols used by rpcs3 by @ksco in #3665
- [WRAPPERHELPER] Added support for versioned symbols (libpthread) and other minor features by @rajdakin in #3671
- [WRAPPERHELPER] Added typedef translation pre-reservation by @rajdakin in #3672
- [WRAPPER] Wrapped 1 more symbol for libc by @rroohhh in #3673
- [INTERP] Fixed RDRAND and RDPID by @ksco in #3674
- [INTERP] Fixed RDRAND and RDPID again by @ksco in #3675
- [LA64_DYNAREC] Added SGDT/SIDT opcodes by @ksco in #3676
- [PPC64LE_DYNAREC] Add OR (0x08-0x0D), AND (0x20-0x25), XOR (0x30-0x35) and SUB (0x28-0x2D) opcodes and emitters by @runlevel5 in #3668
- [LA64_DYNAREC] Refactored AVX infrastructure by @ksco in #3679
- [LA64_DYNAREC] Fixed AVX VRSQRTSS/VRCPSS opcodes by @ksco in #3680
- [LA64_DYNAREC] Fixed x87 FISTTP fastround=0 path by @ksco in #3681
- [PPC64LE_DYNAREC] Add helper macros by @runlevel5 in #3677
- [LA64_DYNAREC] Fixed VCVTPS2PH opcode by @ksco in #3685
- [LA64_DYNAREC] Fixed AVX to SSE migration by @ksco in #3682
- [WRAPPER] Add wrapper for libmvec.so.1 by @runlevel5 in #3683
- [LA64_DYNAREC] Fixed scratch conflicts for VCVTPS2PH opcode by @ksco in #3687
- [LA64_DYNAREC] Fixed avx_get_reg for readonly 128bit case by @ksco in #3688
- [WRAPPER] ioctl number x86_64 -> ppc64le translation by @runlevel5 in #3689
- [WRAPPER] Ported the steam vulkan hack to 64-bit by @ksco in #3692
- [RCFILE] Fix one game profile by @Mikura-Kyouka in #3695
- [WRAPPER] Fixed 5d9e853 by @ksco in #3696
- [WRAPPER] Wrapped 1 more symbol for libc by @ksco in #3698
- [PPC64LE_DYNAREC] Add CMP, TEST, ADC and SBB opcodes by @runlevel5 in #3684
- [CI] Bumped llvm-mingw to 20260311 by @ksco in #3700
- [RV64_DYNAREC] Fixed LOOP opcodes by @ksco in #3701
- [RV64_DYNAREC] Fixed 66 0F 3A ROUND opcodes sign-bit preserving by @ksco in #3702
- [PPC64LE_DYNAREC] Add opcodes (0x80-0x83) by @runlevel5 in #3706
- [WRAPPER] Add missing cairo/ssl/gssapi/harfbuzz/selinux symbols by @yzewei in #3708
- [TEST] Made json buffer dynamic by @ksco in #3711
- [LA64_DYNAREC] Added !fastnan handling for DIVSS opcode by @ksco in #3712
- [LA64_DYNAREC] Fixed AVX VPINSRB opcode by @ksco in #3713
- [LA64_DYNAREC] Removed assert in x87_get_current_cache ([RV64_DYNAREC] too) by @ksco in #3710
- [LA64_DYNAREC] Fixed SSE PCMPEQQ opcode by @ksco in #3714
- [TEST] Tracked MMX registers by @ksco in #3715
- [PPC64LE_DYNAREC] Add more opcodes by @runlevel5 in #3709
- [INTERP] Fixed cvtf32_16 by @ksco in #3718
- [INTERP][DYNAREC] Fixed CRC32 register preservation by @ksco in #3719
- [LA64_DYNAREC] Fixed F0 80 /4 LOCK AND opcode by @ksco in #3721
- [ARM64_DYNAREC] Fixed register conflicts for ARPL opcode by @ksco in #3722
- [ARM64_DYNAREC] Fixed 16-bit LOCK XOR opcode by @ksco in #3723
- [ARM64_DYNAREC] Aligned UD flags with interpreter for ANDN opcode by @ksco in #3724
- [INTERP][ARM64_DYNAREC] Fixed BZHI PF computation by @ksco in #3726
- [ARM64_DYNAREC] Fixed a typo in 16-bit LOCK SUB opcode by @ksco in #3727
- [ARM64_DYNAREC] Fixed 16-bit LOCK OR opcode by @ksco in #3728
- [INTERP] Fixed VPSLLW/D opcodes by @ksco in #3729
- [WRAPPER] Fix XML_ParserCreate_MM wrapping by @zqb-all in #3686
- [INTERP] Fixed cvtf32_16 again by @ksco in #3731
- [ARM64_DYNAREC] Fixed BSF/BSR PF computation by @ksco in #3732
- [ARM64_DYNAREC] Fixed IOC bit reset for CVTTPD2PI/CVTPD2PI opcodes by @ksco in #3733
- [INTERP] Fixed a regression introduced in #3719 by @ksco in #3735
- [LA64_DYNAREC] Fixed CF tracing for ADC/SBB opcodes by @ksco in #3736
- [LA64_DYNAREC] Fixed Gx equals Ex case for VCVTPD2DQ by @ksco in #3737
- [INTERP] Fixed BZHI opcode by @ksco in #3738
- [INTERP][DYNAREC] Reworked PF computaion for ANDN opcode by @ksco in #3740
- [LA64_DYNAREC] Reworked fastnan handling by @ksco in #3739
- [LA64_DYNAREC] Fixed BSF/BSR PF computation by @ksco in #3741
- [LA64_DYNAREC] Fixed LOCK NEG opcode by @ksco in #3742
- [INTERP] Fixed nan propagation edge-cases for various opcodes by @ksco in #3734
- [INTERP] Fixed cvtf16_32 SNaN handling by @ksco in #3751
- [ARM64_DYNAREC] Fixed CF computation for 16-bit LOCK ADC/SBB by @ksco in #3752
- [ARM64_DYNAREC] Fixed nan propagation typo for VADDSS/D and other similar opcodes by @ksco in #3753
- [ARM64_DYNAREC] Fixed nan propagation for ADDPS and similar opcodes by @ksco in #3754
- [ARM64_DYNAREC] Fixed IOC bit reset for CVTTPS2PI/CVTPS2PI opcodes by @ksco in #3755
- [ARM64_DYNAREC] Fixed ANDN PF computation (again) by @ksco in #3756
- [ARM64_DYNAREC] Fixed YMM zero tracking for dynablock entry instructions by @ksco in #3757
- [ARM64_DYNAREC] Refined SNaN propagation for various opcodes by @ksco in #3758
- Fixed sse42_compare_string_explicit_len for length=INT_MIN by @ksco in #3759
- [ARM64_DYNAREC] Fixed CMPXCHG8B CASPALw equal case by @ksco in #3760
- [ARM64_DYNAREC] Fixed cmpxchg modreg ed=rax case by @ksco in #3761
- [ARM64_DYNAREC] Fixed a edge case of df tracking for LOCK CMPXCHG16B opcode by @ksco in #3762
- [INTERP] Fixed ADC/SBB opcodes CAS retry corrupting CF by @ksco in #3764
- [ARM64_DYNAREC] Fixed ADC/SBB opcodes CAS retry corrupting CF by @ksco in #3765
- [DYNAREC] Fixed XADD where source register overlapping memory base by @ksco in #3766
- [INTERP] Fixed cvtf32_16 SNaN -> QNaN conversion by @ksco in #3767
- [ARM64_DYNAREC] Fixed a regression introduced in #3766 by @ksco in #3768
- [ARM64_DYNAREC] Removed VMASKMOVPS/D ymm zero gate by @ksco in #3769
- [INTERP] Fixed BEXTR opcode by @ksco in #3770
- [ARM64_DYNAREC] Better fix for #3762 by @ksco in #3772
- [TEST] Supported baking env variables settings into test by @ksco in #3773
- [TEST] Support array values in baked-in variables for combinatorial runs by @ksco in #3774
- [ARM64_DYNAREC] Fixed uninitilized scratch registers for VCVTTPD2DQ opcode by @ksco in #3776
- [ARM64_DYNAREC] Fixed LOCK NOT opcode non atomics path by @ksco in #3777
- [TEST][BOX32] Added proper handling for running 32-bit tests on non-Box32 builds by @ksco in #3780
- [TEST] Optimized combo with dynarec=0 by @ksco in #3781
- [BOX32] Add library path used by Debian "cross" packages by @a9ix in #3785
- [LA64_DYNAREC] Fixed LOCK XADD opcode flags computation by @ksco in #3786
- [LA64_DYNAREC] Fixed PCMPESTRI opcode by @ksco in #3787
- [LA64_DYNAREC] Fixed BSF/BSR pf computtation by @ksco in #3788
- [TEST] Refactored arg parsing and allow to run single combo by number by @ksco in #3789
- [DYNAREC] Fixed callret=2 with always_test out-of-bounds read by @ksco in #3790
- [LA64_DYNAREC] Fixed dec32 non-lbt path SF computation by @ksco in #3792
- [LA64_DYNAREC] Fixed amadd_db.b use in lock opcodes by @ksco in #3793
- [DYNAREC] Fixed 69 IMUL opcode load immediate by @ksco in #3795
New Contributors
- @matthewabbott made their first contribution in #3331
- @Aqua-Peak made their first contribution in #3307
- @yzewei made their first contribution in #3342
- @zqb-all made their first contribution in #3454
- @kg233 made their first contribution in #3494
- @FrontMage made their first contribution in #3513
- @runlevel5 made their first contribution in #3530
- @gigachadmma69 made their first contribution in #3582
- @yoinks-yoinks made their first contribution in #3613
- @rroohhh made their first contribution in #3673
- @Mikura-Kyouka made their first contribution in #3695
Full Changelog: v0.4.0...v0.4.2