On Wed, Dec 30, 2009 at 03:39:32PM +0100, Alexander Graf wrote:
>
> Am 29.12.2009 um 22:07 schrieb Aurelien Jarno <aurel...@aurel32.net>:
>
>> On Tue, Dec 29, 2009 at 04:09:17PM +0100, Stefan Weil wrote:
>>> Test environment:
>>>
>>> * ppc-softmmu/qemu-system-ppc running on x86_64 host
>>> * emulated ppc is running debian lenny
>>>
>>>
>>>
>>> While debugging on the emulated ppc (each time when
>>> a shared library is loaded after "r" command?),
>>> qemu-system-ppc prints this error message:
>>>
>>> invalid/unsupported opcode: 00 - 00 - 00 (00000000) 4800fa44 1
>>>
>>>
>>>
>>> If logging is enabled, the error message goes to qemu.log:
>>>
>>> IN:
>>> 0xc0013488:  nop
>>> 0xc001348c:  rlwinm  r3,r3,0,0,19
>>> 0xc0013490:  li      r4,128
>>> 0xc0013494:  mtctr   r4
>>> 0xc0013498:  mr      r6,r3
>>> 0xc001349c:  dcbst   r0,r3
>>>
>>> invalid/unsupported opcode: 00 - 00 - 00 (00000000) 4800fa44 1
>>> IN:
>>> 0x4800fa40:  twge    r2,r2
>>> 0x4800fa44:  .long 0x0
>>>
>>
>> The problem is that QEMU doesn't stop the decoding of instructions  
>> when
>> it encounters a trap instruction. We should probably either end the TB
>> in that case, or avoid printing "invalid/unsupported opcode", as this
>> instruction will actually never been executed.
>
> Given how seldom they occur, it's probably best (easiest to read) to end 
> the TB.
>

The question is to know if there are other conditions than branches and
trap where code can be translated, but then never executed.

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurel...@aurel32.net                 http://www.aurel32.net


Reply via email to