On 08/02/2017 02:59 AM, James Hogan wrote:
Commit e350d8ca3ac7 ("target/mips: optimize indirect branches") made
indirect branches able to directly find the next TB and jump straight to
it without breaking out of translated code and going around the main
execution loop. This breaks the assumption in target/mips/translate.c
that BS_STOP is sufficient to cause pending interrupts to be handled,
since interrupts are only checked in the main loop.
Fix a few of these assumptions by using gen_save_pc to update the saved
PC and using BS_EXCP instead of BS_STOP:
I don't like the name, BS_EXCP, because this isn't an exception.
But, since one of the first things we'll do in 2.11 is land LLuis' generic
translation framework, and rename all of these exit conditions, this is ok. It
certainly is the minimal change for 2.10, and this does work.
Reviewed-by: Richard Henderson <r...@twiddle.net>
r~