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. > 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? > -------------- > 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/ >