Serious bug in 4.9.0 (FP ctxt corruption on some ppc-e500 BSPs except mvme3100)

Joel Sherrill joel.sherrill at
Sat Sep 27 17:11:24 UTC 2008

Till Straumann wrote:
> The new multilib variant m8540 by default enables -mfloat-gprs=single
> and is as such useless for now since we don't implement context-switching
> the upper 32-bit of e500 GPRs.
So what is required to implement "proper context switching"?
I can't see that it is a whole lot.

+ what is the cpp conditional to detect the "proper way"?
+ what does it change in the context structures?
+ what does it change in the context switch code?
+ Does it change anything in ISR processing?

> *********************************
> -> Any e500 MUST use -msoft-float
> *********************************
> (and may therefore as well use -mpowerpc -msoft-float)
> There are several new BSPs which use -m8540 without soft-float which
> will experience corruption of floating-point data since FP registers
> are not properly saved/restored.
> In the future -- once we have proper context-switching in place -- the
> new multilib variant may indeed be useful but ATM it must not be used!
> -- Till
> _______________________________________________
> rtems-users mailing list
> rtems-users at

Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985

More information about the users mailing list