hrydgard/ppsspp — pull request #459 by unknownbrackets (2013-01-21 03:38:19+00:00)
Title: Jit branch debugging

This is like CONDITIONAL_DISABLE for branching. Off by default. It's not fast, but not really that slow either.

What it does is:
* Before the jit compare, flushes and runs the interpreter compare.
* Records the resulting dest PC, and then continues running jit.
* After the jit compare, checks the jit dest PC against the interpreter PC.
* Bails and logs if they don't match (same as a breakpoint.)

Unfortunately (fortunately?), I couldn't find any bad branches in casual browsing, but I think this is pretty useful for debugging. During this, I also (somewhat related):

* Added DELAYSLOT and LIKELY flags to the MIPS branch ops. Needed LIKELY, and DELAYSLOT should improve the cycle estimate.
* Prevented some stores into ZERO, just to ensure it never varies from 0.

Still haven't found the bug, though...

-[Unknown]