mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-14 09:00:40 +02:00
x86 has six instructions that will fault on us that we mostly handled. A few of these weren't being handled correctly. One problem is that RIP needs to synchronize differently depending on which fault instruction it is. Some instructions fault at the instruction RIP, some at the instruction afterwards. Additionally some of the metadata generated around the signal delegation wasn't correct. With behaviour of all of these instructions changed, it will now be easier to switch over to non-faulting guest synchronous signals off of these instructions. This doesn't go far enough to change that behaviour yet. I noticed this when looking at Elden Ring's weird faulting behaviour with ud2 and `int 0x2d`. This made me investigate since I had a suspicion that we weren't handling both cases correctly. With this change, Elden Ring is now stabilized and works under FEX.