FEX 2102 Released!

This is our second tagged release, and it comes with several improvements and fixes.

Compatibility

  • Unaligned cmpxchg & cmpxchg8b on ARMv8.1+
  • Mutliblock now gracefully handles unsupported / invalid instructions. This makes it safe to always enable multi block
  • Several fixes for 32-bit binaries: branch handling, signal return, memory allocation, ioctl32 for x86-64 host
  • Improved BRK handling

Perfomance

  • Much reduced stuttering during JIT compilation. The JIT optimizer is now over 3x as fast.
  • Per-thread IR Caching with cached RA, for faster recovery from code cache resets

Usability

  • Defaults now to jit, multiblock, 5000 instructions.
  • CPUID returns fex version

Misc

  • Cleaned up IR printing, extended asm tests to test IR dumping & IR printing
  • Integrated gcc target tests to our CI
  • Removed many warnings

The detailed change log is available on Github

Written on February 8, 2021