| Branch: | Revision:

root / target-ppc / op_helper.h @ bd7d9a6d

History | View | Annotate | Download (9.2 kB)

# Date Author Comment
6676f424 08/25/2008 02:16 am aurel32

Revert commits 5082 and 5083

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

61c04807 08/24/2008 10:05 pm aurel32

PPC: Switch a few instructions to TCG

Signed-off-by: Aurelien Jarno <>

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

894efddb 05/06/2008 05:58 pm aurel32

PPC: fix efstst* instructions

(Tristan Gingold)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

1cdb9c3d 04/08/2008 12:24 am aurel32

Revert revisions r4168 and r4169. That's work in progress, not ready for trunk yet.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

e755699d 04/08/2008 12:00 am aurel32

Always enable precise emulation when softfloat is used

The patch below changes the way to enable softfloat on the PPC target. It
is now enabled when softfloat is used. The rationale behind this change
is that persons who want precise emulation prefer precision over emulation...

0ca9d380 03/13/2008 09:19 pm aurel32

Use float32/64 instead of float/double

The patch below uses the float32 and float64 types instead of the float
and double types in the PPC code. This doesn't change anything when
using softfloat-native as the types are the same, but that helps
compiling the PPC target with softfloat....

e7c24003 11/22/2007 01:00 pm j_mayer

Add new sane low-level memory accessors for PowerPC that do proper
size or zero extension, with homogenous names.
Fix load & store strings: those are now endian-sensitive, by definition.
Fix dcbz: must always align the target address to a cache line boundary....

7863667f 11/16/2007 04:11 pm j_mayer

Always make PowerPC hypervisor mode memory accesses and instructions
available for full system emulation, then removing all #if TARGET_PPC64H
from micro-ops and code translator.
Add new macros to dramatically simplify memory access tables definitions
in target-ppc/translate.c....

3cd7d1dd 11/12/2007 03:56 am j_mayer

Allow use of SPE extension by all PowerPC targets,
adding gprh registers to store GPR MSBs when GPRs are 32 bits.
Remove not-needed-anymore ppcemb-linux-user target.
Keep ppcemb-softmmu target, which provides 1kB pages support
and 36 bits physical address space....

c3e10c7b 11/11/2007 02:18 am j_mayer

Optimize PowerPC overflow flag computation in most useful cases.
Use the same routines to check overflow for addo, subfo and PowerPC 405
multiply and add cases.
Fix carry reset in addme(o) and subfme(o) cases.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

056401ea 11/04/2007 04:55 am j_mayer

PowerPC 601 need specific callbacks for its BATs setup.
Implement PowerPC 601 HID0 register, needed for little-endian mode support.
As a consequence, we need to merge hflags coming from MSR with other ones.
Use little-endian mode from hflags instead of MSR during code translation....

603fccce 10/28/2007 02:54 pm j_mayer

Make Alpha and PowerPC targets use shared helpers
for clz, clo, ctz, cto and ctpop.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

7c58044c 10/27/2007 08:54 pm j_mayer

Fix PowerPC FPSCR update and floating-point exception generation
in most useful cases.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

9d901a20 10/26/2007 02:28 am j_mayer

Use host-utils for PowerPC 64 64x64 bits multiplications.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

0411a972 10/26/2007 12:35 am j_mayer

Gprof prooved the PowerPC emulation spent too much time in MSR load and store
routines. Coming back to a raw MSR storage model then speed-up the emulation.
Improve fast MSR updates (wrtee wrteei and mtriee cases).
Share rfi family instructions helpers code to avoid bug in duplicated code....

b068d6a7 10/07/2007 08:13 pm j_mayer

PowerPC target optimisations: make intensive use of always_inline.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

d63001d1 10/04/2007 03:51 am j_mayer

Make PowerPC cache line size implementation dependant.
Implement dcbz tunable cache line size for PowerPC 970.
Make hardware reset vector implementation dependant.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

7dbe11ac 10/01/2007 08:16 am j_mayer

Handle all MMU models in switches, even if it's just to abort because of lack
of supporting code.
Implement 74xx software TLB model.
Keep 74xx with software TLB disabled, as Linux is not able to handle TLB miss
on those processors.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

5356c7b5 10/01/2007 04:59 am j_mayer

Remove definitions for deprecated SLB & TLB related op helpers.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

be147d08 09/30/2007 04:03 pm j_mayer
  • Update OEA environment, following the PowerPC 2.04 specification:
    - New mtmsr/mtmsrd form that just update RI and EE bits
    - New hrfid, lq and stq instructions
    - Add support for supervisor and hypervisor modes process priority update
    - Code provision for hypervisor SPR accesses...
c80f84e3 09/30/2007 04:18 am j_mayer

Implement Process Priority Register as defined in the PowerPC 2.04 spec.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

d7e4b87e 09/30/2007 04:11 am j_mayer

Implement new floating-point instructions (fre, frin, friz, frip, frim)
as defined in the PowerPC 2.04 specification.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

a750fc0b 09/27/2007 02:54 am j_mayer Great rework and cleanups to ease PowerPC implementations definitions.
  • cleanup cpu.h, removing definitions used only in translate.c/translate_init.c
  • add new flags to define instructions sets more precisely
  • various changes in MMU models definitions
  • add definitions for PowerPC 440/460 support (insns and SPRs)....
a4bb6c3e 09/21/2007 08:28 am j_mayer

Rework PowerPC 440 TLB management (thanks to Hollis Blanchard)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

5eb7995e 09/19/2007 08:44 am j_mayer

Code provision for PowerPC BookE MMU model support.
Better MSR flags initialisation.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

5fafdf24 09/17/2007 12:08 am ths

find -type f | xargs sed -i 's/[\t ]$//g' # on most files

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

35cdaad6 04/24/2007 09:50 am j_mayer

Code provision for new PowerPC embedded target support with:
- 1 kB page size
- 64 bits GPR
- 64 bits physical address space
- SPE extension support.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

a496775f 04/16/2007 10:10 am j_mayer

Fix a lot of debug traces for PowerPC emulation: use logfile instead of stdout

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

a42bd6cc 03/30/2007 01:22 pm j_mayer

Fix rfi instruction: do not depend on current execution mode
but on the execution mode that will be effective after the return.
Add rfci, rfdi and rfmci for BookE PowerPC.
Extend mfdcr / mtdcr and implement mfdrcx / mtdcrx.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

426613db 03/23/2007 11:45 am j_mayer

Add missing PowerPC 64 instructions
PowerPC 64 fixes.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

e864cabd 03/23/2007 12:17 am j_mayer

PowerPC bugfixes:
- must clear carry bit when doing addic with a zero immediate value
- fix missing RETURN in micro-operation that would lead to random failures
and crashes
- add USE_PRECISE_EMULATION compilation-time option to choose between
getting exact floating point results and fast but less accurate computation....

1698b741 03/21/2007 10:21 am j_mayer

Fix compilation on 32 bits hosts (pb reported by Thiemo Seufer)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

0487d6a8 03/21/2007 12:11 am j_mayer

PowerPC 2.03 SPE extension - first pass.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

36f69651 03/18/2007 10:47 am j_mayer

As icbi is not a priviledge instruction and is treated as a load by the MMU
it needs to be implemented for every MMU translation mode.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

d9bce9d9 03/17/2007 04:02 pm j_mayer

Make it safe to use 64 bits GPR and/or 64 bits host registers.
For "symetry", add 64 bits versions of all modified functions.
As a side effect, add a lot of code provision for PowerPC 64 support.
Move overflow and carry checks in common routines for simple cases....

76a66253 03/07/2007 10:32 am j_mayer

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...