1 |
asvitkine |
1.1 |
====== PowerPC Emulator Testsuite ====== |
2 |
|
|
|
3 |
|
|
The PowerPC Emulator Tester is a self-contained testsuite I wrote for the [[en:projects:sheepshaver|SheepShaver]] emulation engine. It was a very handy tool during the development of the SheepShaver PowerPC Emulator and considerably reduced debugging time when AltiVec emulation was added. I hope this would be useful to other PowerPC Emulator authors. The code is distributed under the terms of the [[http://www.gnu.org/copyleft/gpl.html|GNU General Public License]] (GPL). |
4 |
|
|
|
5 |
|
|
It's not terrific code and can largely be improved and cleaned up, but it provides reasonnable information to chase down a bug. |
6 |
|
|
|
7 |
|
|
See [[#links|links]] for other testsuites. As of **2006/07/04**, the current SheepShaver CVS branch contains a more accurate FPU emulation engine. It passes VEX tests with more precision & exception bits. All the following glibc tests pass on PPC: ''test-fenv'', ''test-arith{,f}'', ''test-{float,double}''. Almost all of them pass on x86-64 too (modulo a few errors in ''test-float''), provided that GCC >= 4.0.1 is used. The more accurate engine is enabled with ''PPC_ENABLE_FPU_EXCEPTIONS''. |
8 |
|
|
|
9 |
|
|
===== Features ===== |
10 |
|
|
|
11 |
|
|
* Self-contained. No guest OS nor any complicated run-time environment is required. Your CPU emulator simply needs to support a special opcode (''0x18000000'', OP=6) that terminates execution of the current basic block. |
12 |
|
|
|
13 |
|
|
* Supports several CPU cores: SheepShaver, [[http://microlib.org/projects/ppc750sim/|Microlib PPC 750 Simulator]], [[http://model3emu.sourceforge.net/|Sega Model 3 Arcade Emulator]], [[http://www.qemu.org/|QEMU]]. |
14 |
|
|
|
15 |
|
|
* Supports the AltiVec ISA. |
16 |
|
|
|
17 |
|
|
* Generates more than 2 million tests with specific values to trigger condition codes changes, unspecified results (matches a PowerPC 7410, aka my Powerbook G4). |
18 |
|
|
|
19 |
|
|
===== Downloads ===== |
20 |
|
|
|
21 |
|
|
* The primary source is available in SheepShaver CVS. |
22 |
|
|
|
23 |
|
|
* It is recommended that you first run the tester on a native PowerPC platform to generate a results file. For reference, here is the [[this>projects/ppctester/files/ppc-testresults.dat.bz2|PowerPC Emulator Tester results file]] I use for SheepShaver. This was generated with AltiVec tests enabled. This is for revision 1.30+ of the file. md5sum is: ''3e29432abb6e21e625a2eef8cf2f0840''. |
24 |
|
|
|
25 |
|
|
===== Links ===== |
26 |
|
|
|
27 |
|
|
* [[http://www.valgrind.org/|Valgrind]] contains an interesting testsuite for the VEX. |
28 |
|
|
* [[http://perso.magic.fr/l_indien/qemu-ppc/|Qemu-PPC]] contains part of the original ALU tests used in VEX. |