The main fix is patch 3, with the earlier patches setting the stage and the latter ones simplifying other things at least a little in exchange.
1: correct MMIO emulation cache bounds check 2: allocate emulation cache entries dynamically 3: correct read/write split at page boundaries 4: slightly improve CMPXCHG16B emulation 5: drop redundant access splitting Jan
