FEX 2201 Tagged!
Another release with a lot changes this month!
- We now support BMI2, RDTSCP, CLZero.
- We tell the guest what ARM CPU name we are running on.
- We expose the hybrid CPU flag flag on big.LITTLE ARM SoCs.
- Bunches of syscall fixes, JIT compile time speed increases, usability improvements.
- Tons more.
- A new FEXRootFSFetcher tool for downloading prebuilt RootFS images.
- A Python script for automatically setting up an Ubuntu PPA and RootFS.
FEXCore
Arm64
- Fixes vixl assertions around ubfm usage (5654f9a0)
- Fixes MapSelectCC FGT flag (13087f84)
CPUID
- Fixes another memory overflow issue (0e45b98f)
- Fixes crash on unknown CPU (be3e3a35)
- CPUID Expose Hybrid flag and CPU names (9394e49c)
Context
- Take some arguments as pointer-to-const (9d439047)
Dispatcher
- Disables unsync context message (154468c1)
- Adds more state reconstruction to state restore (fa6f1b1d)
OpcodeDispatcher
- Handle PDEP (0a3a270a)
- Handle PEXT (91984003)
- Implements RDTSCP (ee821b9c)
- Implements CLZero instruction (5f0dfcd7)
X86Tables
- Build Unknown op definition tables at compile time (e8670bba)
- Speed up initialization of X86Tables (e99a23cf)
HostFeatures
- Detect if the host CPU suports float exceptions (117cbde2)
- Consolidates HostFeatures flags (e24eb7a7)
IR
- Fixes sized constant mask (565d1e27)
Misc
- 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)
Linux Emulation/Syscalls
- Fixes pidfd_send_signal for 32-bit (ac63a2ba)
- Finish 32-bit msqid_ds usage (98210fdf)
- Implements the remaining 32-bit syscalls (bc120b9f)
- Fixes semid_ds_64 definition (f2fd9d9e)
- Fixes 32-bit shmctl (45430e95)
- Adds the safe syscall unimplemented gap for x86-64 (e05d116b)
- Enable warnings (75e5df54)
- Socket
- Resolve sign comparison mismatch cases (097f48f3)
Misc
CMake
- Adds an OVERRIDE_VERSION option (08085998)
- Adds a TUNE_CPU option (51466519)
- Adds experimental libc++ option (f3a27a57)
Build fixes
- 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)
Config
- Enables all host threads by default (edce9818)
- Sanitize Core option (9bffaeea)
Docs
- Adds documentation about the FEX monthly release process (a65e7a09)
GDBServer
- Fixes long string packet encodings (88ce9b5c)
Misc
- Stop hardcoding /usr/bin paths (1d5bd152)
- Improves compile ability for older libraries (c691d709)
- More AOT code movement (43dc232e)
- FEXMountDaemon squashfs fixes. (ea73c9d7)
- Update jemalloc for fixed libc overrides (c43af0e1)
- Implement thunk library generation using libclang (425d9323)
- {x32, x64}/Thread: Make use of .data() instead of .at(0) (b6499ac7)
- Adds a new ReentrantMutex to use for FEXCore (b9c49027)
- NetStream: Move NetBuf definition into cpp file (9860e8b7)
Tests
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)
RootFS
- Stop trying to retry rootfs after five times (a45bc759)
- Be more robust against stale lock files (d4b31cd4)
Tools
FEXConfig
- Removes jemalloc usage (c65be9f5)
FEXRootFSFetcher
- Remove 0x prefix on hash (b72245a2)
- Adds a new tool to help set up a new RootFS (72e8a997)
Scripts
- Adds a python script that can hand hold a user through FEX install (b276750c)
See the 2201 Release Notes or the detailed change log in Github.
Written on January 3, 2022