[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] OS/2 Bootloader Some weird behaviour of branch instruct

From: J. Mayer
Subject: Re: [Qemu-devel] OS/2 Bootloader Some weird behaviour of branch instruction
Date: Wed, 25 May 2005 22:57:11 +0200

On Wed, 2005-05-25 at 21:59 +0300, Tero Kaarlela wrote:
> I have just realized that when running in LE mode in_asm dump is not 
> useful because it shows code in BE-format. I'll try to make it print in 
> LE format. And those invalid opcodes is this because after OS/2 crashes 
> Qemu tries to start its own code but crashes because before this 
> Processor should be returned to BE-format?

It should display insns in little-endian format, if you're up to date.
Take a look at the code in disas.c and ppc-dis.c, you'll see the case is

But the 0x3c opcode is valid ... on POWER2 (namely stfq).
Then I guess you choose a platform which is a RS/6000 with a POWER2, not
a PowerPC.
I'm afraid POWER1 & POWER2 won't be emuled soon, if they'll ever be...
Please check this point.

Another point:
>     I took a look at qemu in_asm & cpu debugging with OS/2 bootloader 
> under Qemu -prep. And there is something weird happening in my opinion:
> This happens after boot.cfg has been gone through and kernel bootstrap 
> task should start:
> IN:
> 0xf0107068:  .long 0x10009d81
> 0xf010706c:  tdi    0,r0,27776
> 0xf0107070:  bl    F011EDF0    <<= Shouldnt this branch to F011EDF0 
> instead of going on???

As this is a subroutine call, I guess this routine as already been called from 
somewhere else.
As Qemu only displays blocks at translation time, you don't have any dump any 
when calling a routine twice.

J. Mayer <address@hidden>
Never organized

reply via email to

[Prev in Thread] Current Thread [Next in Thread]