FEX-2201
Changes
A large amount of 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
CPUID
- Fixes another memory overflow issue (0e45b98)
- Fixes crash on unknown CPU (be3e3a3)
- CPUID Expose Hybrid flag and CPU names (9394e49)
Context
- Take some arguments as pointer-to-const (9d43904)
Dispatcher
OpcodeDispatcher
- Handle PDEP (0a3a270)
- Handle PEXT (9198400)
- Implements RDTSCP (ee821b9)
- Implements CLZero instruction (5f0dfcd)
X86Tables
- Build Unknown op definition tables at compile time (e8670bb)
- Speed up initialization of X86Tables (e99a23c)
HostFeatures
IR
- Fixes sized constant mask (565d1e2)
Misc
- Don't use Run() inside RunUntilExit() (0bf5776)
- Fixes a memcpy overflow in processor brand (340699c)
- Fixes FEXCore_Base config dependency (95bd309)
- Implements recoverable INTO instruction (cd4269f)
- Reorganizes some AOT related code (d4655fb)
Linux Emulation/Syscalls
- Fixes pidfd_send_signal for 32-bit (ac63a2b)
- Finish 32-bit msqid_ds usage (98210fd)
- Implements the remaining 32-bit syscalls (bc120b9)
- Fixes semid_ds_64 definition (f2fd9d9)
- Fixes 32-bit shmctl (45430e9)
- Adds the safe syscall unimplemented gap for x86-64 (e05d116)
- Enable warnings (75e5df5)
- Socket
- Resolve sign comparison mismatch cases (097f48f)
Misc
CMake
- Adds an OVERRIDE_VERSION option (0808599)
- Adds a TUNE_CPU option (5146651)
- Adds experimental libc++ option (f3a27a5)
Build fixes
- Fixes build on Ubuntu 20.04 take 3 (8f83567)
- Fixes build on Ubuntu 20.04 take 2 (059e8a9)
- Fixes build on Ubuntu 20.04 (02005e7)
- Fixes Ubuntu 20.04 compilation on AArch64 (47bd479)
Config
Docs
- Adds documentation about the FEX monthly release process (a65e7a0)
GDBServer
- Fixes long string packet encodings (88ce9b5)
Misc
- Stop hardcoding /usr/bin paths (1d5bd15)
- Improves compile ability for older libraries (c691d70)
- More AOT code movement (43dc232)
- FEXMountDaemon squashfs fixes. (ea73c9d)
- Update jemalloc for fixed libc overrides (c43af0e)
- Implement thunk library generation using libclang (425d932)
- {x32, x64}/Thread: Make use of .data() instead of .at(0) (b6499ac)
- Adds a new ReentrantMutex to use for FEXCore (b9c4902)
- NetStream: Move NetBuf definition into cpp file (9860e8b)
Tests
gvisor
- Disables flaky test (e62cb41)
unittests
- Fixes a missing dependency on ASM tests (b078f51)
- Enables remaining unaligned atomic tests on ARMv8.0 (fd04247)
- Fixes known failures (5c4112f)
RootFS
- Stop trying to retry rootfs after five times (a45bc75)
- Be more robust against stale lock files (d4b31cd)
Tools
FEXConfig
- Removes jemalloc usage (c65be9f)
FEXRootFSFetcher
Scripts
- Adds a python script that can hand hold a user through FEX install (b276750)