aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Christopher <echristo@gcc.gnu.org>2007-05-26 01:58:51 +0000
committerEric Christopher <echristo@gcc.gnu.org>2007-05-26 01:58:51 +0000
commit8536ebb582cb5f4a7d78342ac9e8bd0f7f065503 (patch)
tree462b9a3aa0607bc89e104a65edaa0f8e40184f77 /gcc
parent9a3e1f0aaacb49b394a204ca7ad0cc4cf62a7084 (diff)
downloadgcc-8536ebb582cb5f4a7d78342ac9e8bd0f7f065503.zip
gcc-8536ebb582cb5f4a7d78342ac9e8bd0f7f065503.tar.gz
gcc-8536ebb582cb5f4a7d78342ac9e8bd0f7f065503.tar.bz2
config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp to x86-darwin configurations.
2007-05-25 Eric Christopher <echristo@apple.com> * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp to x86-darwin configurations. * config/i386/t-darwin: Add softfp support. * config/i386/t-darwin64: Ditto. * config/i386/sfp-machine.h: If mach then don't use aliasing, emit a stub to call. From-SVN: r125085
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog41
-rw-r--r--gcc/config.gcc3
-rw-r--r--gcc/config/i386/sfp-machine.h7
-rw-r--r--gcc/config/i386/t-darwin3
-rw-r--r--gcc/config/i386/t-darwin643
5 files changed, 40 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3b03140..ad0d988 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2007-05-25 Eric Christopher <echristo@apple.com>
+
+ * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
+ to x86-darwin configurations.
+ * config/i386/t-darwin: Add softfp support.
+ * config/i386/t-darwin64: Ditto.
+ * config/i386/sfp-machine.h: If mach then don't use
+ aliasing, emit a stub to call.
+
2007-05-25 Kazu Hirata <kazu@codesourcery.com>
* cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
@@ -283,7 +292,7 @@
support for complex modes. Fill in DECL_RESULT for stubdecl.
(mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
- * config/mips/mips16.S
+ * config/mips/mips16.S
(RET, ARG1, ARG2): New.
(MERGE_GPRf, MERGE_GPRt): New.
(DELAYt, DELAYf): New.
@@ -352,7 +361,7 @@
(__mips16_call_stub_dc_6): New.
(__mips16_call_stub_dc_9): New.
(__mips16_call_stub_dc_10): New.
-
+
* config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
* config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
* config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
@@ -373,7 +382,7 @@
PR target/30474
* config/score/score.c (score_print_operand): Make sure that only
lower bits are used.
-
+
2007-05-22 Ian Lance Taylor <iant@google.com>
* tree-vrp.c (avoid_overflow_infinity): New static function,
@@ -898,7 +907,7 @@
* stmt.c (expand_case): Do not call squeeze_notes.
2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
-
+
PR middle-end/7651
PR c++/11856
PR c/12963
@@ -941,7 +950,7 @@
* doc/invoke.texi (Wreturn-type): Complete description.
(Wextra): Delete item about return-type warning.
* c-decl.c: Delete redundant Wextra warning.
-
+
2007-05-20 Uros Bizjak <ubizjak@gmail.com>
PR target/31585
@@ -990,26 +999,26 @@
2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
Anatoly Sokolov <aesok@dol.ru>
- * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
+ * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
avr_epilogue_uses) : Add declaration.
* config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
* config/avr/constraints.md (R): New constraint.
- config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
+ config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
(*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
(*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
- (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
+ (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
call_prologue_saves, epilogue_restores, return_from_epilogue,
- return_from_main_epilogue, return_from_interrupt_epilogue,
+ return_from_main_epilogue, return_from_interrupt_epilogue,
return_from_naked_epilogue, prologue, epilogue): New patterns.
(jump): Handle symbol reference.
- * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
- avr_output_function_prologue, avr_output_function_epilogue): Remove
+ * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
+ avr_output_function_prologue, avr_output_function_epilogue): Remove
functions.
- (avr_init_machine_status, expand_prologue, expand_epilogue,
- avr_asm_function_end_prologue, avr_epilogue_uses,
+ (avr_init_machine_status, expand_prologue, expand_epilogue,
+ avr_asm_function_end_prologue, avr_epilogue_uses,
avr_asm_function_begin_epilogue): New functions.
- (prologue_size, epilogue_size, jump_tables_size): Remove global
+ (prologue_size, epilogue_size, jump_tables_size): Remove global
variables.
(TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
(TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
@@ -1254,7 +1263,7 @@
and soft-fp/t-softfp to tmake_file.
(i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
-
+
* config/i386/t-linux64 (softfp_wrap_start): New.
(softfp_wrap_end): New.
* config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
@@ -1262,7 +1271,7 @@
2007-05-16 Rafael Avila de Espindola <espindola@google.com>
- * c-common.c (c_common_signed_or_unsigned_type): Emulate
+ * c-common.c (c_common_signed_or_unsigned_type): Emulate
c_common_unsigned_type behavior.
2007-05-16 Paolo Bonzini <bonzini@gnu.org>
diff --git a/gcc/config.gcc b/gcc/config.gcc
index fb346a0..977aafe 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1052,11 +1052,12 @@ i[34567]86-*-darwin*)
# support.
with_arch=${with_arch:-nocona}
with_cpu=${with_cpu:-generic}
+ tmake_file="${tmake_file} i386/t-fprules-softfp64 soft-fp/t-softfp"
;;
x86_64-*-darwin*)
with_arch=${with_arch:-nocona}
with_cpu=${with_cpu:-generic}
- tmake_file="t-darwin ${cpu_type}/t-darwin64 t-slibgcc-darwin"
+ tmake_file="t-darwin ${cpu_type}/t-darwin64 t-slibgcc-darwin i386/t-fprules-softfp64 soft-fp/t-softfp"
tm_file="${tm_file} ${cpu_type}/darwin64.h"
;;
i[34567]86-*-elf*)
diff --git a/gcc/config/i386/sfp-machine.h b/gcc/config/i386/sfp-machine.h
index 4a4e354..e03ae5f 100644
--- a/gcc/config/i386/sfp-machine.h
+++ b/gcc/config/i386/sfp-machine.h
@@ -127,6 +127,13 @@ struct fenv
#define __BYTE_ORDER __LITTLE_ENDIAN
/* Define ALIASNAME as a strong alias for NAME. */
+#if defined __MACH__
+/* Mach-O doesn't support aliasing. If these functions ever return
+ anything but int we need to revisit this... */
+#define strong_alias(name, aliasname) \
+ int aliasname (TFtype a, TFtype b) { return name(a, b); }
+#else
# define strong_alias(name, aliasname) _strong_alias(name, aliasname)
# define _strong_alias(name, aliasname) \
extern __typeof (name) aliasname __attribute__ ((alias (#name)));
+#endif
diff --git a/gcc/config/i386/t-darwin b/gcc/config/i386/t-darwin
index fb5bbe7..6feb48a 100644
--- a/gcc/config/i386/t-darwin
+++ b/gcc/config/i386/t-darwin
@@ -2,3 +2,6 @@ MULTILIB_OPTIONS = m64
MULTILIB_DIRNAMES = x86_64
LIB2_SIDITI_CONV_FUNCS=yes
LIB2FUNCS_EXTRA = $(srcdir)/config/darwin-64.c
+
+softfp_wrap_start := '\#ifdef __x86_64__'
+softfp_wrap_end := '\#endif'
diff --git a/gcc/config/i386/t-darwin64 b/gcc/config/i386/t-darwin64
index 5143e38..2e55cb7 100644
--- a/gcc/config/i386/t-darwin64
+++ b/gcc/config/i386/t-darwin64
@@ -1,2 +1,5 @@
LIB2_SIDITI_CONV_FUNCS=yes
LIB2FUNCS_EXTRA = $(srcdir)/config/darwin-64.c
+
+softfp_wrap_start := '\#ifdef __x86_64__'
+softfp_wrap_end := '\#endif'