-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Great PowerPC emulation code resynchronisation and improvments:
- Add status file to make regression tracking easier - Move all micro-operations helpers definitions into a separate header: should never be seen outside of op.c - Update copyrights - Add new / missing PowerPC CPU definitions - Add definitions for PowerPC BookE - Add support for PowerPC 6xx/7xx software driven TLBs Allow use of PowerPC 603 as an example - Add preliminary code for POWER, POWER2, PowerPC 403, 405, 440, 601, 602 and BookE support - Avoid compiling priviledged only resources support for user-mode emulation - Remove unused helpers / micro-ops / dead code - Add instructions usage statistics dump: useful to figure which instructions need strong optimizations. - Micro-operation fixes: * add missing RETURN in some micro-ops * fix prototypes * use softfloat routines for all floating-point operations * fix tlbie instruction * move some huge micro-operations into helpers - emulation fixes: * fix inverted opcodes for fcmpo / fcmpu * condition register update is always to be done after the whole instruction has completed * add missing NIP updates when calling helpers that may generate an exception - optimizations and improvments: * optimize very often used instructions (li, mr, rlwixx...) * remove specific micro-ops for rarely used instructions * add routines for addresses computations to avoid bugs due to multiple different implementations * fix TB linking: do not reset T0 at the end of every TB. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2473 c046a42c-6fe2-441c-8c8c-71466251a162
- Loading branch information
j_mayer
committed
Mar 7, 2007
1 parent
1c7b375
commit 76a6625
Showing
19 changed files
with
7,753 additions
and
2,678 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
PowerPC emulation status. | ||
The goal of this file is to provide a reference status to avoid regressions. | ||
|
||
=============================================================================== | ||
PowerPC core emulation status | ||
|
||
PowerPC CPU known to work (ie booting at least Linux 2.4): | ||
* main stream PowerPC cores | ||
- PowerPC 603 & derivatives | ||
- PowerPC 604 & derivatives | ||
- PowerPC 740 & derivatives | ||
- PowerPC 750 & derivatives | ||
|
||
PowerPC that should work but are not supported by standard Linux kernel | ||
(then remain mostly untested) | ||
- PowerPC 745 | ||
- PowerPC 755 | ||
|
||
Work in progress: | ||
* embedded PowerPC cores | ||
- PowerPC 405 | ||
- BookE PowerPC | ||
- e500 core (Freescale PowerQUICC) | ||
* main stream PowerPC cores | ||
- PowerPC 601 | ||
- PowerPC 602 | ||
|
||
TODO: | ||
* embedded PowerPC cores | ||
- PowerPC 401 | ||
- PowerPC 403 | ||
- PowerPC 440 | ||
- PowerPC 460 | ||
* main stream PowerPC cores | ||
- PowerPC 7400 (aka G4) | ||
- PowerPC 7410 | ||
- PowerPC 7450 | ||
- PowerPC 7455 | ||
- PowerPC 7457 | ||
- PowerPC 7457A | ||
* original POWER | ||
- POWER | ||
- POWER2 | ||
* 64 bits PowerPC cores | ||
- PowerPC 620 | ||
- PowerPC 630 (aka POWER3) | ||
- PowerPC 631 (aka POWER3+) | ||
- POWER4 | ||
- POWER4+ | ||
- POWER5 | ||
- POWER5+ | ||
- PowerPC 970 | ||
* RS64 series | ||
- RS64 | ||
- RS64-II | ||
- RS64-III | ||
- RS64-IV | ||
|
||
=============================================================================== | ||
PowerPC microcontrollers emulation status | ||
|
||
TODO: | ||
- PowerPC 40x microcontrollers emulation | ||
- PowerQUICC microcontrollers emulation | ||
|
||
=============================================================================== | ||
PowerPC based platforms emulation status | ||
|
||
* PREP platform (RS/6000 7043...) - TO BE CHECKED (broken) | ||
- Gentoo Linux live CDROM 1.4 | ||
- Debian Linux 3.0 | ||
- Mandrake Linux 9 | ||
|
||
* heathrow PowerMac platform (beige PowerMac) - TO BE CHECKED (broken) | ||
- Gentoo Linux live CDROM 1.4 | ||
- Debian Linux 3.0 | ||
- Mandrake Linux 9 | ||
|
||
* mac99 platform (white and blue PowerMac, ...) | ||
- Gentoo Linux live CDROM 1.4 - boots, compiles linux kernel | ||
- Debian Linux woody - boots from CDROM and HDD | ||
- Mandrake Linux 9 - boots from CDROM, freezes during install | ||
|
||
TODO: | ||
- MCA based RS/6000 emulation | ||
- CHRP emulation (not PowerMac) | ||
- PPAR emulation | ||
- misc PowerPC reference boards emulation | ||
|
||
=============================================================================== | ||
(to be completed) |
Oops, something went wrong.