PowerPC BSP mvme5500 and hardfloat.

Greg Menke gregory.d.menke at nasa.gov
Thu Dec 12 16:02:44 UTC 2013


If in hard-float gcc is free to use fpu registers as general pupose, if 
soft-float then no fp registers are used.  Many functions in newlib etc 
(particularly the printf family) use fp registers, or even initialize 
local fp vars and so have a floating point "presence".  If you really 
need soft-float (eg no fpu) then you have to build the entire toolchain; 
cross-compiler, newlib and rtems all with soft-float.  Essentially, its 
tricky to have a mix of floating point and integer only tasks on the 
ppc, so its easies to make all tasks FP or everything soft-float.

Greg



On 12/12/2013 10:44 AM, Kate Feng wrote:
> Hi Joel,
>
>      I understood what you tried to point out about the surprise from the
> compiler.  The ISR is supposed to be written as short as possible
> to the point that only a few hardware registers are needed to be
> programmed. All the non-essential stuff (e.g. a = b; where a, b are
> struct timespec) can be done via the rtems_event_send(), which is
> implemented outside the ISR.  Look at the BSP code in GT64260eth_isr() of
> network/if_100MHz/GT64260eth.c and i82544EI_isr() of
> network/if_1GHz/if_wm.c.  Did you see that any surprise could be
> triggered by the modern compiler ?   If it does, then either the code
> should be rewritten or there is a bug in the compiler.
> BTW, which version of gcc compiler do you mean ?
>
> Cheers,
> Kate Feng
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20131212/3a160a41/attachment-0001.html>


More information about the users mailing list