#34

iOS: AVX without AVX2 (MADEIRA_FEX_AVX=2), WOW64 hot SMC pages, rpmalloc spans and lock sleep

Open125hzwants to merge intofrom

The FEX side of the Madeira pull request for the 2026-10-25 to 10-28 work (it pins this branch's head, and its xtajit64.dll / xtajit.dll are built from it). On top of ios-port-2607 (f59cab95).

Commits (oldest first):

  • 13b91afdc Windows/iOS: hot SMC pages for data that shares a page with code
  • 29c7f2c38 Windows/iOS: invalidations under a code-invalidation lock this thread holds (also in #33)
  • 18ee4b534 Windows/iOS: a per-thread ring of executed block entries (also in #33)
  • 564c107df Windows/iOS: the block ring records each block's length (also in #33)
  • 693cbc510 External/rpmalloc: a waiter on the iOS allocator lock sleeps instead of spinning
  • f23fca2f5 External/rpmalloc: 4 MB spans for the iOS host allocator
  • 9d2c04e3f WOW64 iOS: hot self-modifying-code pages, as in the ARM64EC module
  • 82750c0cf CPUID: MADEIRA_FEX_AVX=2 reports AVX without AVX2 (VAES, VPCLMULQDQ hidden too)

Each behaviour change has its own switch, named in its commit message.

🤖 Generated with Claude Code