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