[Bug 1740] Change PowerPC multi-libs for e200 and e500 cores

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Fri Feb 25 00:49:45 UTC 2011


https://www.rtems.org/bugzilla/show_bug.cgi?id=1740

--- Comment #13 from dufault at hda.com 2011-02-24 18:49:43 CST ---
(In reply to comment #12)

> > I guess you are not aware what you are saying here?
> 
> Yes, I know what I am saying here.  The embedded floating point unit requires
> software support for full IEEE 754 conformance (see also Signal Processing
> Engine (SPE) Programming Environments Manual: 3.3.1.4
> IEEE Std 754™ Compliance).
> 
> The test results look not that bad, even without this software support and
> options (3):

I don't think full IEEE 754 conformance is needed.  Even with full support I
expect RTEMS will use an similar to that which QNX uses (see
http://www.qnx.com/developers/docs/6.4.1/neutrino/technotes/freescale_e500_spe_support.html)
that makes it optional.

In that you can read:

"By default, the EFP hardware is reasonable for handling floating point. In
addition, as with all software implementations, you'll need to be aware of the
significant performance decrease when you use full IEEE 754 compliance.  You'll
need to review the E500 documentation to determine if the default hardware
behaviour is adequate for your needs..."

Full compliace is available via the Linux math_efp.c file:

http://lxr.free-electrons.com/source/arch/powerpc/math-emu/math_efp.c?a=powerpc

That file can't be used directly due to the GPL, however, it's from Freescale
with all rights reserved:

Copyright (C) 2006-2008 Freescale Semiconductor, Inc. All rights reserved.
Author: Ebony Zhu,   <ebony.zhu at freescale.com>  Yu Liu,     
<yu.liu at freescale.com>

Perhaps someone from RTEMS can contact the authors about getting a version with
an exemption?

I'd also like to discuss the SPE issue a little more. Sebastian earlier asked:
"You can use -mspe in your BSP and application code.  Do you really need a
libc,
libm, libgcc with -mspe?"

and I have to answer "I don't know", I'm concerned about callbacks from
contexts without the SPE into code compiled with -mspe.  It can be handled by
disabling the SPE in all contexts where its use isn't expected, and then
handling the enable in a "no SPE available" exception, but I'm not sure I like
that in a real-time OS and I want to understand the benefits and drawbacks of
the recommended approach.

-- 
Configure bugmail: https://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the bugs mailing list