Daniel Jacobowitz wrote:
On Sun, Apr 06, 2008 at 10:25:38AM -0700, Michael Eager wrote:
For an instruction supported on all variants (both BookE and E500)
with a double precision FPU.

I think you have your terminology switched.  E500 is (very
approximately) an implementation of Book E; the FPR-based FPU is
usually called "classic FP" and dates back long before Book E,
at least to the 601.

Perhaps.

BookE, like some other PPC versions, has FP registers.

gcc uses E500 to mean specifically the PPC 8540:
The 8540 does FP operations in GPRs, which the docs
describe as defined in the SPE APU.

e500.h:
#define TARGET_E500 (rs6000_cpu == PROCESSOR_PPC8540)
#define TARGET_E500_SINGLE (TARGET_HARD_FLOAT && rs6000_float_gprs == 1)
#define TARGET_E500_DOUBLE (TARGET_HARD_FLOAT && rs6000_float_gprs == 2)

I'm just going with the flow:  gcc describes doing FP ops in
GPRS as a E500 feature.  Maybe there should be some better terminology.

I think that the ppc feature options are a bit confusing and indirect.
For example, rather than defining TARGET_FPRS directly, it's
defined backwards, by reference to doing float in GPRS:
#define TARGET_FPRS (rs6000_float_gprs == 0)

Perhaps there should be "TARGET_FPS" and "TARGET_FGPRS".

I'm happy to adopt whatever terminology is reasonable to make the
code more understandable.



--
Michael Eager    [EMAIL PROTECTED]
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077

Reply via email to