[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: singlestep and sparc32
From: |
Artyom Tarasenko |
Subject: |
[Qemu-devel] Re: singlestep and sparc32 |
Date: |
Mon, 19 Apr 2010 22:33:00 +0200 |
2010/4/19 Blue Swirl <address@hidden>:
> On 4/19/10, Artyom Tarasenko <address@hidden> 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/