Jit: Check the FIFO on EIEIO instructions

The gather pipe optimization postpones checking the FIFO until the end
of the current block (or 32 bytes have been written). This is usually
safe, but is not correct across EIEIO instructions.

This is inferred from a block in NBA2K11 which synchronizes the FIFO
by writing a byte to it, executing eieio, and checking if PI_FIFO_WPTR
has changed. This is not currently an issue, but will become an issue
if the gather pipe optimization is applied to more stores.
This commit is contained in:
hthh
2016-06-13 17:25:24 +10:00
parent 4c9c456846
commit bbc0f0c744
5 changed files with 21 additions and 3 deletions

View File

@ -103,6 +103,7 @@ protected:
bool generatingTrampoline = false;
u8* trampolineExceptionHandler;
bool mustCheckFifo;
int fifoBytesThisBlock;
PPCAnalyst::BlockStats st;