diff options
author | Eric Christopher <echristo@gcc.gnu.org> | 2007-05-26 01:58:51 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gcc.gnu.org> | 2007-05-26 01:58:51 +0000 |
commit | 8536ebb582cb5f4a7d78342ac9e8bd0f7f065503 (patch) | |
tree | 462b9a3aa0607bc89e104a65edaa0f8e40184f77 /gcc | |
parent | 9a3e1f0aaacb49b394a204ca7ad0cc4cf62a7084 (diff) | |
download | gcc-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/ChangeLog | 41 | ||||
-rw-r--r-- | gcc/config.gcc | 3 | ||||
-rw-r--r-- | gcc/config/i386/sfp-machine.h | 7 | ||||
-rw-r--r-- | gcc/config/i386/t-darwin | 3 | ||||
-rw-r--r-- | gcc/config/i386/t-darwin64 | 3 |
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' |