Skip to content

mmx: Fix codegen and enable CI

amyspark requested to merge amyspark/orc:fix-mmx-support into main

Hey all,

This MR fixes the MMX codegen and implements target-specific CI for x86.

The issues found were:

  • Untested usage of SSE4.1 instructions against MMX registers (these resulted in SIGinvalid or SIGILL in CI)
  • The SSE backend lacked checks to ensure the MMX registers quantity and size
  • The split instructions did not copy to the second bank destination, thus operating against the overwritten source register
  • The register allocator never checked whether the search went beyond the scalar bounds, thus assigning registers from the vector range under starvation conditions (like x86 or MMX)

It requires !152 (merged) merged beforehand, with the extended commit as explained in my review of it, since @turran identified the movw codegen issue.

Fixes #56 (closed)

Merge request reports