“Floating point unit” related to MSR[FP] is not available with e200 cores.
However floating point capability is offered by SPE unit (MSR[SPE]).
The SPE natively offers single precision floating point only. If double precision is selected it is being performed software way.
CodeWarrior generally offers following options:
‘hardware’ , ’software’ , ‘DPFP’, ‘SPFP’ and ‘SPFP only’
‘DPFP’ and ‘hardware’ options cannot be used (it‘ll lead to some exception as it would use instructions not supported by e200).
Only ’software’, ‘SPFP’ and ‘SPFP only’ can be used.
Description:
’software’ - all float operations are performed software way without SPE
‘SPFP’ - single precision uses SPE, double precision is emulated
‘SPFP only’ - retypes double format to single precision (decrease precision)