On Wed, 3 Sep 2014, Maciej W. Rozycki wrote: > (floating-point environment is of course unsupported for soft-float > targets and for the SPE FPU another change is required to implement > floating-point environment handling to complement one proposed here).
Support for SPE will depend on the C library just as soft-float support will, because of the need to have trapping on exceptions other than "inexact" enabled in the processor at all times with the kernel then using the prctl settings to determine whether that trap is for emulation or to produce SIGFPE. (The relevant support is in glibc 2.19 for soft-float and e500, in the form of __atomic_feholdexcept, __atomic_feclearexcept and __atomic_feupdateenv functions. I intend to implement the GCC side - conditional on being configured for glibc 2.19 or later on the target, as specified with --with-glibc-version or detected by configure's examination of target headers - once the hard-float support is in GCC. I believe the support in question will be identical for soft-float and e500, since it will be calling libc functions instead of manipulating processor state.) -- Joseph S. Myers jos...@codesourcery.com