diff options
author | Felix Fietkau <nbd@openwrt.org> | 2016-01-25 13:20:52 +0100 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2016-03-06 17:03:01 -0500 |
commit | 5a92dd95c77cee81755f1a441ae0b71e3ae2bcdb (patch) | |
tree | a7a12a71e2a505ed4a5c20c1356fc2d7cf2cb2f1 /arch/powerpc | |
parent | 9543656cc32fda48fc463f332ee20e91eed2b768 (diff) | |
download | musl-5a92dd95c77cee81755f1a441ae0b71e3ae2bcdb.tar.gz musl-5a92dd95c77cee81755f1a441ae0b71e3ae2bcdb.tar.bz2 musl-5a92dd95c77cee81755f1a441ae0b71e3ae2bcdb.tar.xz musl-5a92dd95c77cee81755f1a441ae0b71e3ae2bcdb.zip |
add powerpc soft-float support
Some PowerPC CPUs (e.g. Freescale MPC85xx) have a completely different
instruction set for floating point operations (SPE).
Executing regular PowerPC floating point instructions results in
"Illegal instruction" errors.
Make it possible to run these devices in soft-float mode.
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/bits/fenv.h | 5 | ||||
-rw-r--r-- | arch/powerpc/reloc.h | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/arch/powerpc/bits/fenv.h b/arch/powerpc/bits/fenv.h index 2f722e6b..c5a3e5c5 100644 --- a/arch/powerpc/bits/fenv.h +++ b/arch/powerpc/bits/fenv.h @@ -1,3 +1,7 @@ +#ifdef _SOFT_FLOAT +#define FE_ALL_EXCEPT 0 +#define FE_TONEAREST 0 +#else #define FE_TONEAREST 0 #define FE_TOWARDZERO 1 #define FE_UPWARD 2 @@ -24,6 +28,7 @@ #define FE_ALL_INVALID 0x01f80700 #endif +#endif typedef unsigned fexcept_t; typedef double fenv_t; diff --git a/arch/powerpc/reloc.h b/arch/powerpc/reloc.h index b8b6589f..1b4cab36 100644 --- a/arch/powerpc/reloc.h +++ b/arch/powerpc/reloc.h @@ -1,4 +1,10 @@ -#define LDSO_ARCH "powerpc" +#ifdef _SOFT_FLOAT +#define FP_SUFFIX "-sf" +#else +#define FP_SUFFIX "" +#endif + +#define LDSO_ARCH "powerpc" FP_SUFFIX #define TPOFF_K (-0x7000) |