qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [ADD] PPC processor emulation


From: Gwenole Beauchesne
Subject: Re: [Qemu-devel] [ADD] PPC processor emulation
Date: Tue, 18 Nov 2003 15:52:37 +0100 (CET)

On Tue, 18 Nov 2003, Johan Rydberg wrote:

> Gwenole Beauchesne <address@hidden> wrote:
> 
> : I will commit a newer version tonight. The "JIT1" engine is not committed
> : yet either.
> 
> How have you implemented the JIT1?  As QEMU, translating basic blocks?

The initial plan was to write a simple JIT comparable to the B2/JIT with
some improvements I had started (e.g. lazy byteswapping, fixing interblock
register reallocation). But due to lack of time, I switched to dyngen-like
translation for now. When time comes, next level will use stats gathered
with jit1 and optimize specific traces.

The goal is to provide decent MacOS Classic emulation with SheepShaver:
- fix remaining little endian & 64-bit bugs in SheepShaver core
- determine how "new" NewWorld ROMs (the parcels based ones) work
- possibly teach MacOS 9 to work without address translation like MacOS 
8.6 currently
- possibly port native quickdraw acceleration code from BeOS version to 
Unix video code.

Next, I can experiment with JIT2 and other things but spare time
converging towards zero, that will be hard.

BTW, I have no intention to emulate the PowerPC MMU.

> What performance have achived?

There is no block chaining yet and mul/div/sub are missing right now.
Performance improvement over a predecode cache mechanism (storing pointers
to instruction handlers into a table) is only around 2.1x at this time on
a ppc 7410/400 (with the ssbench "coin 1 100" test). The former having a
slow-down factor around 20 vs. native execution, IIRC.

I will make proper benchmarks later as I first want to review currently
generated code and implement the following host-specific optimizations:

- Optimize immediate related instructions. i.e. hand assemble addi & the
like instructions. I already have runtime assemblers for AMD64, IA-32, and
PPC so that's not a trouble.

- Asm optimize condition codes related operations. e.g. current emulation
of "adde" & friends is costly and can easily make use of host flags to
compute ppc flags.

>  And how do you hande condition codes?

The current approach is to compute them when Rc bit is set.

Bye,
Gwenole.




reply via email to

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