This is a patch I've had in an earlier form for a while but never really developed due to experiencing random hangs when writing to the SPARC64 CPU timers.
Fortunately it seems the recent icount timer fixes have resolved the underlying issues and with this patch I am able to boot all my qemu-system-sparc64 OpenBIOS test images. I've marked this as an RFC for two reasons: firstly I'm not sure I've fully covered all the cases where we need to exit the TB in order to allow the timer interrupt to fire, and secondly I do occasionally see messages booting Milax in the form of "WARNING: Time of Day clock error: reason [Jumped by 0x134]". Hopefully more sets of eyes will be able to point me in the right direction related to the Time of Day (m48t59) error and the TB exits in order to get this ready for commit. Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> v4: - Convert sparc_tr_tb_stop() to use switch for DisasJumpType as suggested by Richard v3: - Implement feedback from Richard: use tb_cflags() for icount flag access, unconditionally exit the TB when setting the timer registers, introduce DISAS_EXIT to avoid repeating TB exit code pattern v2: - Rebase onto master Mark Cave-Ayland (1): SPARC64: add icount support target/sparc/translate.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 1 deletion(-) -- 2.11.0