[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
handled.
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
more
when calling a routine twice.
--
J. Mayer <address@hidden>
Never organized