about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-09-25 17:30:56 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-09-25 17:30:56 +0000
commit775e99641eca25a0dc9049253fe12b02c568f97a (patch)
tree0daf5dd6ca3a423faf9a7b6044d884dc11c572c6
parent02c48b21b58ab810a7e7cd09e5b674567ba364de (diff)
downloadglibc-775e99641eca25a0dc9049253fe12b02c568f97a.tar.gz
glibc-775e99641eca25a0dc9049253fe12b02c568f97a.tar.xz
glibc-775e99641eca25a0dc9049253fe12b02c568f97a.zip
Use soft-fp fma for no-FPU ColdFire (bug 13304).
Systems without floating-point exceptions and rounding modes should
use the soft-fp versions of fmaf and fma, not the sysdeps/ieee754
versions that rely on setting rounding to zero and testing for the
"inexact" exception; this has been noted on
<https://sourceware.org/glibc/wiki/PortStatus> for some time.  This
patch makes no-FPU ColdFire use the soft-fp files; sfp-machine.h is
made to include the nios2 version of sfp-machine.h which seems
sufficiently generic for 32-bit systems.

	[BZ #13304]
	* sysdeps/m68k/coldfire/nofpu/s_fma.c: New file.
	* sysdeps/m68k/coldfire/nofpu/s_fmaf.c: Likewise.
	* sysdeps/m68k/coldfire/nofpu/sfp-machine.h: Likewise.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/m68k/coldfire/nofpu/s_fma.c1
-rw-r--r--sysdeps/m68k/coldfire/nofpu/s_fmaf.c1
-rw-r--r--sysdeps/m68k/coldfire/nofpu/sfp-machine.h1
4 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d76c280c67..ba7aa4e421 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,11 @@
 2015-09-25  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #13304]
+	* sysdeps/m68k/coldfire/nofpu/s_fma.c: New file.
+	* sysdeps/m68k/coldfire/nofpu/s_fmaf.c: Likewise.
+	* sysdeps/m68k/coldfire/nofpu/sfp-machine.h: Likewise.
+
+	[BZ #13304]
 	* sysdeps/microblaze/s_fma.c: New file.
 	* sysdeps/microblaze/s_fmaf.c: Likewise.
 	* sysdeps/microblaze/sfp-machine.h: Likewise.
diff --git a/sysdeps/m68k/coldfire/nofpu/s_fma.c b/sysdeps/m68k/coldfire/nofpu/s_fma.c
new file mode 100644
index 0000000000..d9613fa67c
--- /dev/null
+++ b/sysdeps/m68k/coldfire/nofpu/s_fma.c
@@ -0,0 +1 @@
+#include <soft-fp/fmadf4.c>
diff --git a/sysdeps/m68k/coldfire/nofpu/s_fmaf.c b/sysdeps/m68k/coldfire/nofpu/s_fmaf.c
new file mode 100644
index 0000000000..aa5c9b2d91
--- /dev/null
+++ b/sysdeps/m68k/coldfire/nofpu/s_fmaf.c
@@ -0,0 +1 @@
+#include <soft-fp/fmasf4.c>
diff --git a/sysdeps/m68k/coldfire/nofpu/sfp-machine.h b/sysdeps/m68k/coldfire/nofpu/sfp-machine.h
new file mode 100644
index 0000000000..e4ad79e6bd
--- /dev/null
+++ b/sysdeps/m68k/coldfire/nofpu/sfp-machine.h
@@ -0,0 +1 @@
+#include <sysdeps/nios2/sfp-machine.h>