From 22f4a99d713b8e9219384af67ea7e91d33a047a4 Mon Sep 17 00:00:00 2001
From: Kyle Moffett <Kyle.D.Moffett@boeing.com>
Date: Thu, 29 Apr 2010 21:47:25 -0400
Subject: [PATCH] powerpcspe: New unofficial Debian port

The 'powerpcspe' architecture is a binary-incompatible variant of
PowerPC/POWER designed and supported by FreeScale and IBM.  It is also
known under the trade names "e500"/"MPC8500" and "e200"/"MPC5xx".

Additional information can be found at:
  http://en.wikipedia.org/wiki/PowerPC_e500
  http://en.wikipedia.org/wiki/PowerPC_e200

In particular, the 'powerpcspe' architecture lacks the classic FPU with
dedicated FPRs found on most other PowerPC systems.  It is replaced with
a set of "SPE" instructions which perform floating-point operations on
the integer registers.

In an unfortunate choice of architecture design, the instructions used
for the "SPE" operations overlap with those for the AltiVec unit on most
other modern PowerPC cores.

The "e500v2"-series chips have 64-bit GPRs, where the high 32-bits are
accesible only via the special "SPE" instructions, allowing them to make
efficient use of the "double" datatype.

The relative rare "e500v1"-series chips have only 32-bit GPRs, and
require software traps and emulation to support native "double".

The "e200z3" and "e200z6" chips have no support for floating point at
all, but with software traps and emulation are binary-compatible with
the "e500"-series chips.

The Debian port to this architecture specifically chooses to optimize
for the higher-end chips (e500v2), as most of the others are targeted at
automotive applications or no longer in production.

The specific GNU triplet for this arch is "powerpc-linux-gnuspe".  Like
the ARM EABI port (arm-linux-gnueabi) the naming seems unfortunate here;
an architecture triplet such as "powerpcspe-linux-gnu" would have been
far more appropriate.  As a result, we end up adding an extra "ostable"
entry instead of one in "cputable".

At this time the 'powerpcspe' architecture port is still very much an
unofficial port.  While we hope that will change in the future, it is
entirely possible that the embedded niche of the processor will make
such an official Debian port problematic.

Signed-off-by: Kyle Moffett <Kyle.D.Moffett@boeing.com>
---
 ostable      |    1 +
 triplettable |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/ostable b/ostable
index 2ef2cdd..17b7581 100644
--- a/ostable
+++ b/ostable
@@ -17,6 +17,7 @@
 uclibceabi-linux	linux-uclibceabi	linux[^-]*-uclibceabi
 uclibc-linux		linux-uclibc		linux[^-]*-uclibc
 gnueabi-linux		linux-gnueabi		linux[^-]*-gnueabi
+gnuspe-linux		linux-gnuspe		linux[^-]*-gnuspe
 gnulp-linux		linux-gnulp		linux[^-]*-gnulp
 gnu-linux		linux-gnu		linux[^-]*(-gnu.*)?
 gnu-kfreebsd		kfreebsd-gnu		kfreebsd[^-]*(-gnu.*)?
diff --git a/triplettable b/triplettable
index 1a2c666..5b297c8 100644
--- a/triplettable
+++ b/triplettable
@@ -5,6 +5,7 @@
 # <Debian triplet>	<Debian arch>
 uclibceabi-linux-arm	uclibc-linux-armel
 uclibc-linux-<cpu>	uclibc-linux-<cpu>
+gnuspe-linux-powerpc	powerpcspe
 gnueabi-linux-arm	armel
 gnulp-linux-i386	lpia
 gnu-linux-<cpu>		<cpu>
-- 
1.7.0

