aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2013-11-05 17:08:30 +0100
committerUros Bizjak <uros@gcc.gnu.org>2013-11-05 17:08:30 +0100
commit02ac9503fda84a6a5973c0ddc02c4407194145bb (patch)
tree701e939718c2586014d56b1c40b3359df5fab2bb /gcc
parentb1705a63884677d72924b7044610eb687287688b (diff)
downloadgcc-02ac9503fda84a6a5973c0ddc02c4407194145bb.zip
gcc-02ac9503fda84a6a5973c0ddc02c4407194145bb.tar.gz
gcc-02ac9503fda84a6a5973c0ddc02c4407194145bb.tar.bz2
i386-c.c (ix86_target_macros): Define _SOFT_FLOAT for !TARGET_80387.
gcc/ * config/i386/i386-c.c (ix86_target_macros): Define _SOFT_FLOAT for !TARGET_80387. * config/i386/rtemself.h (TARGET_OS_CPP_BUILTINS): Do not define _SOFT_FLOAT here. (LONG_DOUBLE_TYPE_SIZE): New define. (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Ditto. libgcc/ * config/i386/32/sfp-machine.h (_FP_MUL_MEAT_S): Define. (_FP_MUL_MEAT_D): Ditto. (_FP_DIV_MEAT_S): Ditto. (_FP_DIV_MEAT_D): Ditto. * config.host (i[34567]86-*-rtems*): Remove i386/t-softfp, add t-softfp-sfdf and t-softfp to tmake_file. M gcc/config/i386/i386-c.c M gcc/config/i386/rtemself.h M gcc/ChangeLog M libgcc/ChangeLog M libgcc/config.host M libgcc/config/i386/32/sfp-machine.h From-SVN: r204404
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog27
-rw-r--r--gcc/config/i386/i386-c.c3
-rw-r--r--gcc/config/i386/rtemself.h12
3 files changed, 29 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6067ee5..5da271f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2013-11-05 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386-c.c (ix86_target_macros): Define _SOFT_FLOAT
+ for !TARGET_80387.
+ * config/i386/rtemself.h (TARGET_OS_CPP_BUILTINS): Do not define
+ _SOFT_FLOAT here.
+ (LONG_DOUBLE_TYPE_SIZE): New define.
+ (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Ditto.
+
2013-11-05 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58724
@@ -123,7 +132,8 @@
(asan_add_global): Ditto.
* asan.h (asan_function_start): New prototype.
* final.c (final_start_function): Call asan_function_start.
- * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v1 to __asan_init_v3.
+ * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v1
+ to __asan_init_v3.
2013-11-04 Wei Mi <wmi@google.com>
@@ -162,10 +172,8 @@
* builtins.def (ATTR_NOTHROWCALL_LEAF_LIST): Define.
* sync-builtins.def: Use ATTR_NOTHROWCALL_LEAF_LIST for all sync
builtins that take pointers.
- * lto-opts.c (lto_write_options): Write -fnon-call-exceptions
- if set.
- * lto-wrapper.c (merge_and_complain): Collect
- OPT_fnon_call_exceptions.
+ * lto-opts.c (lto_write_options): Write -fnon-call-exceptions if set.
+ * lto-wrapper.c (merge_and_complain): Collect OPT_fnon_call_exceptions.
(run_gcc): Pass -fnon-call-exceptions.
2013-11-04 Jakub Jelinek <jakub@redhat.com>
@@ -186,13 +194,11 @@
2013-11-04 Joseph Myers <joseph@codesourcery.com>
- * doc/cpp.texi (__GCC_IEC_559, __GCC_IEC_559_COMPLEX): Document
- macros.
+ * doc/cpp.texi (__GCC_IEC_559, __GCC_IEC_559_COMPLEX): Document macros.
* target.def (float_exceptions_rounding_supported_p): New hook.
* targhooks.c (default_float_exceptions_rounding_supported_p): New
function.
- * targhooks.h (default_float_exceptions_rounding_supported_p):
- Declare.
+ * targhooks.h (default_float_exceptions_rounding_supported_p): Declare.
* doc/tm.texi.in (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P):
New @hook.
* doc/tm.texi: Regenerate.
@@ -245,8 +251,7 @@
Implement -fsanitize=vla-bound.
* opts.c (common_handle_option): Handle vla-bound.
- * sanitizer.def (BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE):
- Define.
+ * sanitizer.def (BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE): Define.
* flag-types.h (enum sanitize_code): Add SANITIZE_VLA.
* asan.c (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR.
diff --git a/gcc/config/i386/i386-c.c b/gcc/config/i386/i386-c.c
index 690169d..1c053b1 100644
--- a/gcc/config/i386/i386-c.c
+++ b/gcc/config/i386/i386-c.c
@@ -474,6 +474,9 @@ ix86_target_macros (void)
builtin_define_std ("i386");
}
+ if (!TARGET_80387)
+ cpp_define (parse_in, "_SOFT_FLOAT");
+
if (TARGET_LONG_DOUBLE_64)
cpp_define (parse_in, "__LONG_DOUBLE_64__");
diff --git a/gcc/config/i386/rtemself.h b/gcc/config/i386/rtemself.h
index 08ef18c..0871791 100644
--- a/gcc/config/i386/rtemself.h
+++ b/gcc/config/i386/rtemself.h
@@ -26,7 +26,15 @@ along with GCC; see the file COPYING3. If not see
builtin_define ("__rtems__"); \
builtin_define ("__USE_INIT_FINI__"); \
builtin_assert ("system=rtems"); \
- if (!TARGET_80387) \
- builtin_define ("_SOFT_FLOAT"); \
} \
while (0)
+
+#undef LONG_DOUBLE_TYPE_SIZE
+#define LONG_DOUBLE_TYPE_SIZE (TARGET_80387 ? 80 : 64)
+
+#undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
+#ifdef _SOFT_FLOAT
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
+#else
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 80
+#endif