Software 42365 Published by

The FEX-EMU, which enables the execution of x86 and x86-64 binaries on an AArch64 host, has been updated.



FEX Release FEX-2305

- ARM64Dispatcher
- Fix compiling with mingw (a33443db6)

- ARM64Emitter
- Ensure platform register is saved on win32 (73ede9d00)

- ARMEmitter
- Handle SVE2 integer add/subtract wide category (c9fb9c4ca)
- Handle SVE Integer Multiply-Add - Unpredicated group (7747ac8de)
- Fix treating 32-bit elements as 64-bit with ld1w (100b4d4a5)
- Finish off SVE2 Integer - Predicated group (719803bc5)
- Handle SVE Inc/Dec by Predicate Count category (22936144c)
- Handle SVE Element Count category (7f0cccfbe)
- Handle SVE predicate count group (aea90287e)
- Handle floating-point multiply add (indexed) groups (734468067)
- Handle SVE Floating Point Multiply-Add group (3275dabd8)
- Handle SVE floating-point compare with zero group (11d396ca0)
- Handle SVE Floating-point Serial Reduction (Predicated) group (cd40a8556)
- Handle SVE Floating Point Unary Operations - Unpredicated group (9b70c1d4a)
- Handle LDR (vector) (5e8d9601e)
- Move op and assertions into SVEFloatArithmeticPredicated helper (1c3af30e9)
- Handle SVE Write FFR group (3b74e34b4)
- Move SVEBitwiseShiftbyVector into private section (054430f00)
- Remove unused helper functions (94e059160)
- Fully handle SVE Integer Misc - Unpredicated (3bd4b23af)
- Simplify uses of IsXOrWRegister (060745f98)

- ASIMDOps
- Remove unnecessary template constraints (2321d2ad9)

- ScalarOps
- Move base opcodes into helper functions (4b8ac0f8c)

- Allocator
- Adds VirtualAlloc with memory Base hint function (ba45bf4ae)
- Ensure uses of aligned allocations use aligned_free (c140dd7da)
- Remove pointer indirection overhead (18154183a)
- Disable glibc sbrk allocations (e4fadd699)

- AllocatorHooks
- Adds some mingw allocator helpers (86e09a00f)

- Arm64
- Reclaim SRA registers on 32-bit (3a81efdb2)

- VectorOps
- Remove a few unnecessary EORs from comparisons in SVE path (55d65f3ae)
- Handle 64-bit elements in VSShr (72df6a26d)
- Remove unnecessary EOR in VAddP/VFAddP SVE path (1f512b098)

- Arm64Emitter
- Replace x18 usage with x30 (121d9fda2)

- CI
- Adds glibc faulting testing (27c03f98d)

- CMake
- Get past configuration when mingw is used (aba42570a)

- CPUID
- Disable RDTSCP under wine (f7d827a26)
- Fix std::min type cast (fbc5d583a)
- Enable FAST REP MOVS (6e0a1a5f1)

- CPUInfo
- Add mingw helper for CalculateNumberOfCPUs (1fad26d72)
- Switch away from using get_nprocs_conf (7f243ee08)

- Config
- Move path generation to the frontend (da126141d)

- Core
- Add a new log message for unsupported instruction (88dba60be)

- CoreState
- Fix SynchronousFaultData padding type (68599bf12)

- Dispatcher
- Disable signal handling under mingw (0fa4390e4)
- Fixes restoring of AVX state (28c168ea0)

- Docs
- Adds programming concerns documentation (bfd606ec3)

- FEXConfig
- Fixes misalignment when advanced option is changed. (4f20dba50)

- FEXCore
- Moves SIGBUS handler to FEXCore/Utils (86af1f6a6)
- Compile without exceptions (37b5bc49c)
- Stop exposing the x86 table data symbols (590422b29)
- Fixup cmake file for mingw (b5420f5db)
- Switch to xbyak for CPUID fetch helpers. (7a774a8d8)
- Stop leaking AVX configuration state (5c62ea21f)
- IR_INC dependency on FEXCore_Base (1771d086e)
- Adds fexctl container alias objects (a8ed2af65)

- FEXLoader
- Don't build with mingw (892c07a5e)
- Move to Tools folder (307158d42)
- Move ELFCodeLoader2 to remove 2 (eadce2854)

- FEXServerClient
- Insert missing padding in message packet (73caa6725)

- FHU

- FS
- Create WIN32 helpers for some functions. (af15277fc)

- FM
- Removes double syscall issue with `GetEmulatedFDPath` (b2a3c6a04)
- Remove unused FD to Name mapping (1aeab04c9)

- FileLoading
- Add WIN32 specific loading path (c94268789)

- Frontend
- Remove errant header (4bffdc634)

- GdbServer
- Disable under mingw (f673afc38)

- HostFeatures
- Mark DCZID related utilities as [[maybe_unused]] (5e105e86a)

- IR

- Passes
- Changes vector to fextl (2d05ffe3a)

- Interpreter
- Separate fallback OpHandler from F80 fallbacks (6e52a16ef)

- IntrusiveIRList
- Ensure this is using the FEX allocator (82f7bb282)

- Ioctl
- Add default handler for drm (db706bb28)
- Ensure DRM name check uses strncmp (c1dab3e6c)

- LogManager
- Remove unused handler (1e4a6d432)

- LookupCache
- Removes unnecessary recursive lock_guard (6dfea8a80)

- Netstream
- Disable on WIN32 (2ff509610)

- ObjectCache
- Ensure correctly packed config option (059472fce)

- OpDispatcher
- Implements REP MOVS as Memcpy IR op (11c6f9764)

- OpcodeDispatcher
- Simplify PCMPXSTRIOpImpl (30974fb2c)
- Handle PCMPISTRI/VPCMPISTRI (88247141d)
- Handle VPMASKMOVD/VPMASKMOVQ (238ffdf89)
- Handle VCVTPD2PS/VCVTPS2PD (35f192b6f)
- Handle VCVTSD2SS/VCVTSS2SD (512d6d006)
- Handle PCMPESTRI/VPCMPESTRI (a12802e74)
- Move usages of `And(Not(` to Andn (f55a653e9)
- Implement support for 32-bit SALC instruction (df354e37d)
- Handle store variants of VMASKMOVPD/VMASKMOVPS (cf66643c6)
- Handle load variants of VMASKMOVPD/VMASKMOVPS (5cdde0bef)
- Handle VMPSADBW (2c2abc550)
- Handle VPSLLVD/VPSLLVQ (54e784742)
- Handle VPSRLVD/VPSRLVQ (91f056bd2)
- Handle VCVTSI2SD/VCVTSI2SS (41477db7a)
- Handle VPINSRB/VPINSRD/VPINSRQ/VPINSRW (8633528ce)
- Handle VPSADBW (1087c45b6)
- Handle VTESTPD/VTESTPS (6517f7eb3)
- Handle VPMADDUBSW (c14f4355b)
- Handle VPMOVMSKB (6645e68c9)
- Pass full register size through VExtractToGPR (e92cfc4d7)

- RA
- Use FindFirstSetBit helper (cfc1aa593)

- SignalDelegator
- Make sure to save and restore `InSyscallInfo` (456e9dbde)
- Calculate siginfo layout (886c56288)
- Moves all signal handling to the frontend (9432a84cb)
- Cleanup unused functions (ad332e3c3)

- StringConv
- Convert to conversion functions that don't use std::string (c5da0e7ac)

- StringUtils
- Stop allocating TrimTokens (f45ea1e0f)

- Telemetry
- Disable on WIN32 (cbe55b076)

- Threads
- Moves pthread logic to FEXLoader (874ae5b0f)
- Adds SetThreadName helper (797737a84)
- Disable glibc allocator fault testing with `exit` (6d4cef723)

- Thunks
- Fixes xcb helper thread creation (542aeed7b)
- Disable under mingw (4a11111ab)
- Enable ccache if available (c03ed529e)
- Make xcb's callback more robust. (e8bf7a1a4)

- VEXTables
- Adds a missing class of AVX instructions (a351620c6)

- Misc
- Win32 memory allocation fixes (468f7471e)
- Get mingw compiling libFEXCore (7552ad29f)
- Disable AOT and object cache under mingw (361e684c6)
- Disable Break/INT operations on mingw (4c74913ed)
- llvm-mingw: Fix SoftFloat compiling (2b5ddb6b9)
- Add in jemalloc glibc hooking again (1a91d849f)
- Update drm headers to v6.2 (1c2fd72c8)
- cpp-optparse: Update to latest optparse (7916281ee)
- More glibc allocation removals. (f806ca688)
- Move FEX away from the remaining glibc allocations that we can (aac4e25ca)
- Add support for thunking Wayland (21838fe03)
- Convert most std::string over to fextl (9183cf144)
- Convert most things to fextl (e3f6ef6b1)

- fextl
- :fmt: Remove fwrite usage (d7bc0370e)
- Bulk merge (bba8716c7)

- memory
- Don't allow arrays in fextl::make_unique (65fa49589)

- gvisor
- Disable timerfd test (780491d61)

- mingw
- Disable compiling Common/Linux/Tools (d7f9c7ece)

- unittests
- Add missing VPMASKMOVQ store test (e71f3e898)
- Change alignment directive in 256-bit VPSADBW test to 32 (d1ece88be)

- gcc
- Disable mcount_pic test (a78860c19)

- x32
- Fixes clock_nanosleep syscall (1f44037d9)



Release FEX Release FEX-2305 · FEX-Emu/FEX