aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorChung-Ju Wu <jasonwucj@gmail.com>2018-04-25 12:08:14 +0000
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>2018-04-25 12:08:14 +0000
commitba169b74244d4c485f53841733dd82e7e48dc9bd (patch)
tree67d56c909b9c27ae9703d806717695925d0e6283 /libgcc
parentbfeb66850ffd5f25430db8a42f1dbfdc224a4ac2 (diff)
downloadgcc-ba169b74244d4c485f53841733dd82e7e48dc9bd.zip
gcc-ba169b74244d4c485f53841733dd82e7e48dc9bd.tar.gz
gcc-ba169b74244d4c485f53841733dd82e7e48dc9bd.tar.bz2
[NDS32] Fix incorrect settings in sfp-machine.h and t-nds32-newlib for hard fp.
libgcc/ * config/nds32/sfp-machine.h: Fix settings for NDS32_ABI_2FP_PLUS. * config/nds32/t-nds32-newlib (HOST_LIBGCC2_CFLAGS): Use -fwrapv. From-SVN: r259645
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog5
-rw-r--r--libgcc/config/nds32/sfp-machine.h19
-rw-r--r--libgcc/config/nds32/t-nds32-newlib2
3 files changed, 25 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 8d413b5..e5f44b3 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com>
+
+ * config/nds32/sfp-machine.h: Fix settings for NDS32_ABI_2FP_PLUS.
+ * config/nds32/t-nds32-newlib (HOST_LIBGCC2_CFLAGS): Use -fwrapv.
+
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/linux-unwind.h: Add (__CET__ & 2) != 0 check
diff --git a/libgcc/config/nds32/sfp-machine.h b/libgcc/config/nds32/sfp-machine.h
index 499bdad..bfbdaf9 100644
--- a/libgcc/config/nds32/sfp-machine.h
+++ b/libgcc/config/nds32/sfp-machine.h
@@ -76,6 +76,25 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
R##_c = FP_CLS_NAN; \
} while (0)
+#ifdef NDS32_ABI_2FP_PLUS
+#define FP_RND_NEAREST 0x0
+#define FP_RND_PINF 0x1
+#define FP_RND_MINF 0x2
+#define FP_RND_ZERO 0x3
+#define FP_RND_MASK 0x3
+
+#define _FP_DECL_EX \
+ unsigned long int _fcsr __attribute__ ((unused)) = FP_RND_NEAREST
+
+#define FP_INIT_ROUNDMODE \
+ do { \
+ _fcsr = __builtin_nds32_fmfcsr (); \
+ } while (0)
+
+#define FP_ROUNDMODE (_fcsr & FP_RND_MASK)
+
+#endif
+
/* Not checked. */
#define _FP_TININESS_AFTER_ROUNDING 0
diff --git a/libgcc/config/nds32/t-nds32-newlib b/libgcc/config/nds32/t-nds32-newlib
index 1ea2bc3..a59646f 100644
--- a/libgcc/config/nds32/t-nds32-newlib
+++ b/libgcc/config/nds32/t-nds32-newlib
@@ -19,7 +19,7 @@
# <http://www.gnu.org/licenses/>.
# Compiler flags to use when compiling 'libgcc2.c'
-HOST_LIBGCC2_CFLAGS = -O2
+HOST_LIBGCC2_CFLAGS = -O2 -fwrapv
#LIB1ASMSRC = nds32/lib1asmsrc-newlib.S