FEX 2103 Released!

This is our third tagged release, and it comes with tons of fixes, and performance improvements.

Compatibility

  • Support for unaligned atomic memory ops
  • Thread local mman cache invalidation
  • glib 2.32 support (cpuid fixes, faccessat2)
  • cmpxchg flag fixes
  • fixed cvtt* ops to actually truncate, both for x87 and sse
  • Implemented BTC, BTR and BTS atomic variants
  • Workaround crashes around exit_group for graceful exit
  • Fixed SAR8 & SAR16 sign extension
  • Added support for x87 rounding modes
  • Added support for x87 precision modes
  • Temporary fix for x87’s frem
  • Fixed select system calls to update the descriptors
  • Fixed handling of invalid ops when multiblock is enabled
  • Fixed an edge case bug in CreateElementPair
  • Fixed BRK handling
  • Fixed /proc/cpuinfo topology
  • Fixed compilation of superblocks with more than 256 spills
  • Fixed a bug in in the MUL -> SHL optimization

Performance

  • Added ir-cache that halves loading times when enabled (–aotir-capture && –aotir-load)
  • x87 ops no longer force interpreter for the entire superblock

Usability

  • uname now returns the host uname
  • Added checks for python in the CMake files

Misc

  • ThunkLibs now generate asm wrappers, so they can be compiled with older GCCs
  • Asserts on unsupported atomic ops
  • Removed erratic asserts in RA

The detailed change log is available on Github

Written on March 3, 2021