2010/4/19 Blue Swirl <blauwir...@gmail.com>: > On 4/19/10, Artyom Tarasenko <atar4q...@googlemail.com> wrote: >> is -single-step option supposed to work under qemu-system-sparc? Or is >> it only for non-pipelined CPUs? > > I've never used it.
is there another way to reduce a translation block? -icount 1 doesn't make a difference. >> I get pretty strange results: some addresses seem to be executed >> twice, and then qemu hangs on the last nop: > > One possibility is that we don't generate any code at all for nops > (sethi x, %g0). If you delete the "if (rd)" check in translate.c:1784, > does it help? Seems to make no difference at all. >> -------------- >> IN: >> 0x00000000: b 0xb788 >> -------------- >> IN: >> 0x00000004: rd %psr, %l0 >> -------------- >> IN: >> 0x00000004: rd %psr, %l0 >> -------------- >> IN: >> 0x00000008: nop >> -------------- >> IN: >> 0x00000008: nop >> -------------- >> IN: >> 0x0000000c: nop >> -------------- >> IN: >> 0x0000000c: nop >> >> ... skipped ... >> >> IN: >> 0x7000a58c: bg 0x7000a588 >> -------------- >> IN: >> 0x7000a590: nop >> -------------- >> IN: >> 0x7000a590: nop >> -------------- >> IN: >> 0x7000a594: b 0x7000a570 >> -------------- >> IN: >> 0x7000a594: b 0x7000a570 >> -------------- >> IN: >> 0x7000a578: be 0x7000a59c >> -------------- >> IN: >> 0x7000a580: stba %l1, [ %l0 ] #ASI_M_BYPASS >> -------------- >> IN: >> 0x7000a588: deccc %l2 >> -------------- >> IN: >> 0x7000a594: b 0x7000a570 >> -------------- >> IN: >> 0x7000a590: nop >> >> ^^^^^^^^^^^ That's the end >> >> Without -singlestep it seems to work better: >> >> >> 0x7000a588: deccc %l2 >> 0x7000a58c: bg 0x7000a588 >> 0x7000a590: nop >> >> -------------- >> IN: >> 0x7000a594: b 0x7000a570 >> 0x7000a598: inc %l4 >> >> -------------- >> IN: >> 0x7000a570: lduba [ %l4 ] #ASI_M_KERNELTXT, %l1 >> 0x7000a574: cmp %l1, 0xff >> 0x7000a578: be 0x7000a59c >> ... and so on ... -- Regards, Artyom Tarasenko solaris/sparc under qemu blog: http://tyom.blogspot.com/