aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
AgeCommit message (Collapse)AuthorFilesLines
2013-02-24mips16.S: Don't build for microMIPS.Catherine Moore12-259/+1067
libgcc/ 2013-02-24 Catherine Moore <clm@codesourcery.com> Joseph Myers <joseph@codesourcery.com> Chao-ying Fu <fu@mips.com> * config/mips/mips16.S: Don't build for microMIPS. * config/mips/linux-unwind.h: Handle microMIPS frame. * config/mips/crtn.S (fini, init): New labels. gcc/ 2013-02-24 Catherine Moore <clm@codesourcery.com> Maciej W. Rozycki <macro@codesourcery.com> Tom de Vries <tom@codesourcery.com> Nathan Sidwell <nathan@codesourcery.com> Iain Sandoe <iain@codesourcery.com> Nathan Froyd <froydnj@codesourcery.com> Chao-ying Fu <fu@mips.com> * doc/extend.texi: (micromips, nomicromips, nocompression): Document new function attributes. * doc/invoke.texi (minterlink-compressed, mmicromips, m14k, m14ke, m14kec): Document new options. (minterlink-mips16): Update documentation. * doc/md.texi (ZC, ZD): Document new constraints. * configure.ac (gcc_cv_as_micromips): Check if linker supports the .set micromips directive. * configure: Regenerate. * config.in: Regenerate. * config/mips/mips-tables.opt: Regenerate. * config/mips/micromips.md: New file. * constraints.md (ZC, AD): New constraints. * config/mips/predicates.md (movep_src_register): New predicate. (movep_src_operand): New predicate. (non_volatile_mem_operand): New predicate. * config/mips/mips.md (multimem): New type. (length): Differentiate between 17-bit and 18-bit branch offsets. (MOVEP1, MOVEP2): New mode iterator. (mov_<load>l): Use ZC constraint. (mov_<load>r): Likewise. (mov_<store>l): Likewise. (mov_<store>r): Likewise. (*branch_equality<mode>_inverted): Add microMIPS support. (*branch_equality<mode>): Likewise. (*jump_absolute): Likewise. (indirect_jump_<mode>): Likewise. (tablejump_<mode>): Likewise. (<optab>_internal): Likewise. (sibcall_internal): Likewise. (sibcall_value_internal): Likewise. (prefetch): Use constraint ZD. * config/mips/mips.opt (minterlink-compressed): New option. (minterlink-mips16): Now an alias for minterlink-compressed. (mmicromips): New option. * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint. (compare_and_swap_12): Likewise. (sync_add<mode>): Likewise. (sync_<optab>_12): Likewise. (sync_old_<optab>_12): Likewise. (sync_new_<optab>_12): Likewise. (sync_nand_12): Likewise. (sync_old_nand_12): Likewise. (sync_new_nand_12): Likewise. (sync_sub<mode>): Likewise. (sync_old_add<mode>): Likewise. (sync_old_sub<mode>): Likewise. (sync_new_add<mode>): Likewise. (sync_new_sub<mode>): Likewise. (sync_<optab><mode>): Likewise. (sync_old_<optab><mode>): Likewise. (sync_new_<optab><mode>): Likewise. (sync_nand<mode>): Likewise. (sync_old_nand<mode>): Likewise. (sync_new_nand<mode>): Likewise. (sync_lock_test_and_set<mode>): Likewise. (test_and_set_12): Likewise. (atomic_compare_and_swap<mode>): Likewise. (atomic_exchange<mode>_llsc): Likewise. (atomic_fetch_add<mode>_llsc): Likewise. * config/mips/mips-cpus.def (m14kc, m14k): New processors. * config/mips/mips-protos.h (umips_output_save_restore): New prototype. (umips_save_restore_pattern_p): Likewise. (umips_load_store_pair_p): Likewise. (umips_output_load_store_pair): Likewise. (umips_movep_target_p): Likewise. (umips_12bit_offset_address_p): Likewise. * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS. (mips_base_mips16): Rename this... (mips_base_compression_flags): ...to this. Update all uses. (mips_attribute_table): Add micromips, nomicromips and nocompression. (mips_mips16_decl_p): Delete. (mips_nomips16_decl_p): Delete. (mips_get_compress_on_flags): New function. (mips_get_compress_off_flags): New function. (mips_get_compress_mode): New function. (mips_get_compress_on_name): New function. (mips_get_compress_off_name): New function. (mips_insert_attributes): Support multiple compression types. (mips_merge_decl_attributes): Likewise. (umips_12bit_offset_address_p): New function. (mips_start_function_definition): Emit .set micromips directive. (mips_call_may_need_jalx_p): New function. (mips_function_ok_for_sibcall): Add microMIPS support. (mips_print_operand_punctuation): Support short delay slots and compact jumps. (umips_swm_mask, umips_swm_encoding): New. (umips_build_save_restore): New function. (mips_for_each_saved_gpr_and_fpr): Add microMIPS support. (was_mips16_p): Remove. (old_compression_mode): New. (mips_set_compression_mode): New function. (mips_set_current_function): Add microMIPS support. (mips_option_override): Likewise. (umips_save_restore_pattern_p): New function. (umips_output_save_restore): New function. (umips_load_store_pair_p_1): New function. (umips_load_store_pair_p): New function. (umips_output_load_store_pair_1): New function. (umips_output_load_store_pair): New function. (umips_movep_target_p) New function. (mips_prepare_pch_save): Add microMIPS support. * config/mips/mips.h (TARGET_COMPRESSION): New. (TARGET_CPU_CPP_BUILTINS): Update macro to use new compression flags and to support microMIPS. (MIPS_ISA_LEVEL_SPEC): Add m14k processors. (MIPS_ARCH_FLOAT_SPEC): Likewise. (ISA_HAS_LWXS): Include TARGET_MICROMIPS. (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS. (ASM_SPEC): Support mmicromips and mno-micromips. (M16STORE_REG_P): New macro. (MIPS_CALL): Support TARGET_MICROMIPS. (MICROMIPS_J): New macro. (mips_base_mips16): Rename this... (mips_base_compression_flags): ...to this. (UMIPS_12BIT_OFFSET_P): New macro. * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS. (MULTILIB_DIRNAMES): Likewise. gcc/testsuite/ 2013-02-24 Catherine Moore <clm@codesourcery.com> Richard Sandiford <rdsandiford@googlemail.com> * gcc.target/mips/mips.exp: Add microMIPS support. * gcc.target/mips/umips-movep-2.c: New test. * gcc.target/mips/umips-lwp-2.c: New test. * gcc.target/mips/umips-swp-5.c: New test. * gcc.target/mips/umips-constraints-1.c: New test. * gcc.target/mips/umips-lwp-3.c: New test. * gcc.target/mips/umips-swp-6.c: New test. * gcc.target/mips/umips-constraints-2.c: New test. * gcc.target/mips/umips-save-restore-1.c: New test. * gcc.target/mips/umips-lwp-4.c: New test. * gcc.target/mips/umips-swp-7.c: New test. * gcc.target/mips/umips-save-restore-2.c: New test. * gcc.target/mips/umips-lwp-swp-volatile.c: New test. * gcc.target/mips/umips-lwp-5.c: New test. * gcc.target/mips/umips-save-restore-3.c: New test. * gcc.target/mips/umips-lwp-6.c: New test. * gcc.target/mips/umips-swp-1.c: New test. * gcc.target/mips/umips-lwp-7.c: New test. * gcc.target/mips/umips-swp-2.c: New test. * gcc.target/mips/umips-lwp-8.c: New test. * gcc.target/mips/umips-swp-3.c: New test. * gcc.target/mips/umips-movep-1.c: New test. * gcc.target/mips/umips-lwp-1.c: New test. * gcc.target/mips/umips-swp-4.c: New test. Co-Authored-By: Chao-ying Fu <fu@mips.com> Co-Authored-By: Iain Sandoe <iain@codesourcery.com> Co-Authored-By: Joseph Myers <joseph@codesourcery.com> Co-Authored-By: Maciej W. Rozycki <macro@codesourcery.com> Co-Authored-By: Nathan Froyd <froydnj@codesourcery.com> Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com> Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com> Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r196246
2013-02-22[AArch64] Add missing copyright and build dependency for ↵James Greenhalgh2-1/+21
aarch64-simd-builtins.def gcc/ * config/aarch64/aarch64-simd-builtins.def: Add copyright header. * config/aarch64/t-aarch64 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def. From-SVN: r196224
2013-02-22re PR sanitizer/56393 (SIGSEGV when -fsanitize=address and dynamic lib with ↵Jakub Jelinek1-2/+4
global objects) PR sanitizer/56393 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o if not linking a shared library. * lib/asan-dg.exp (asan_link_flags): Add -B${gccpath}/libsanitizer/asan/ to flags. * asan/Makefile.am (nodist_toolexeclib_HEADERS): Set to libasan_preinit.o. (libasan_preinit.o): Depend on asan_preinit.o. * asan/Makefile.in: Regenerated. * asan/asan_preinit.cc: New file, synced from upstream. * asan/asan_rtl.cc: Remove preinit stuff, synced from upstream. From-SVN: r196222
2013-02-22arm.md (split for extendsidi): Update condition.Greta Yorsh2-13/+10
2013-02-22 Greta Yorsh <Greta.Yorsh@arm.com> * config/arm/arm.md (split for extendsidi): Update condition. (zero_extend<mode>di2,extend<mode>di2): Add an alternative. * config/arm/iterators.md (qhs_extenddi_cstr): Likewise. (qhs_zextenddi_cstr): Likewise. From-SVN: r196220
2013-02-21libsanitizer merge from upstream r175733Kostya Serebryany1-1/+2
From-SVN: r196201
2013-02-20i386.c (initial_ix86_tune_features): Turn on fp reassociation for avx2 targets.Igor Zamyatin1-1/+1
* config/i386/i386.c (initial_ix86_tune_features): Turn on fp reassociation for avx2 targets. From-SVN: r196164
2013-02-19Add support for the CLZ insnEdgar E. Iglesias3-0/+25
Add support for the CLZ insn * config/microblaze/microblaze.c: microblaze_has_clz = 0 Add version check for v8.10.a to enable microblaze_has_clz * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined version and TARGET_PATTERN_COMPARE check * config/microblaze/microblaze.md: New clzsi2 instruction From-SVN: r196158
2013-02-19microblaze.md (call_value_intern): Check symbol is function before branching.Edgar E. Iglesias1-3/+11
* config/microblaze/microblaze.md (call_value_intern): Check symbol is function before branching. From-SVN: r196157
2013-02-19re PR target/52555 (ICE unrecognizable insn with -ffast-math and ↵Aldy Hernandez1-1/+1
__attribute__((optimize(xx)))) PR target/52555 * genopinit.c (raw_optab_handler): Use this_fn_optabs. (swap_optab_enable): Same. (init_all_optabs): Use argument instead of global. * tree.h (struct tree_optimization_option): New field target_optabs. * expr.h (init_all_optabs): Add argument to prototype. (TREE_OPTIMIZATION_OPTABS): New. (save_optabs_if_changed): Protoize. * optabs.h: Declare this_fn_optabs. * optabs.c (save_optabs_if_changed): New. Declare this_fn_optabs. (init_optabs): Add argument to init_all_optabs() call. * function.c (invoke_set_current_function_hook): Handle per function optabs. * function.h (struct function): New field optabs. * config/mips/mips.c (mips_set_mips16_mode): Handle when optimization_current_node has changed. * target-globals.h (save_target_globals_default_opts): Protoize. * target-globals.c (save_target_globals_default_opts): New. c-family/ * c-common.c (handle_optimize_attribute): Call save_optabs_if_changed. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r196129
2013-02-18re PR target/56347 (FAIL: gfortran.dg/integer_exponentiation_2.f90 -O2 ↵John David Anglin1-0/+15
execution test) PR target/56347 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark registers %fr12 and %fr12R as call used. From-SVN: r196123
2013-02-18re PR target/56214 (FAIL: gcc.c-torture/execute/20050121-1.c compilation, ICE)John David Anglin2-30/+13
PR target/56214 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode and HImode, require all displacements to be an integer multiple of the mode size. * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses, only allow QImode and HImode when reload is in progress and strict is true. Likewise for symbolic addresses. Use base14_operand to check displacements in REG+BASE addresses. From-SVN: r196122
2013-02-17Free variable local allocs at block ends.Edgar E. Iglesias1-0/+26
* config/microblaze/microblaze.md (save_stack_block): Define. (restore_stack_block): Likewise. From-SVN: r196110
2013-02-16Add TARGET_SUPPORTS_PIC flag and check that the flag_pic = 2Edgar E. Iglesias3-0/+17
* config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1. * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1. * config/microblaze/microblaze.c (microblaze_option_override): Bail out early for PIC modes when target does not support PIC. * gcc.dg/20020312-2.c: Define MicroBlaze PIC register From-SVN: r196104
2013-02-16microblaze.c (microblaze_asm_trampoline_template): Replace with a microblaze ↵Edgar E. Iglesias2-12/+9
version. * config/microblaze/microblaze.c (microblaze_asm_trampoline_template): Replace with a microblaze version. (microblaze_trampoline_init): Adapt for microblaze. * gcc/config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for microblaze. From-SVN: r196103
2013-02-13i386.c (ix86_asan_shadow_offset): Revert last change.Jakub Jelinek1-2/+1
* config/i386/i386.c (ix86_asan_shadow_offset): Revert last change. * asan/asan_mapping.h (SHADOW_OFFSET): Set to (1ULL << 44) on x86-64. From-SVN: r196017
2013-02-13libsanitizer merge from upstream r175049Kostya Serebryany1-1/+3
From-SVN: r196009
2013-02-13mn10300.c (mn10300_scan_for_setlb_lcc): Fix loop discovery code.Richard Biener1-12/+2
2013-02-13 Richard Biener <rguenther@suse.de> * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Fix loop discovery code. From-SVN: r195998
2013-02-12re PR target/54222 ([avr] Implement fixed-point support)Georg-Johann Lay1-0/+31
gcc/ PR target/54222 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders. (umulsidi3_insn, mulsidi3_insn): New insns. libgcc/ PR target/54222 * config/avr/t-avr (LIB2FUNCS_EXCLUDE): Add: _usmulUHA, _usmulUSA, _ssmulHA, _ssmulSA. (LIB1ASMFUNCS): Add: _muldi3_6, _mulsidi3, _umulsidi3, _usmuluha3, _ssmulha3, _usmulusa3, _ssmulsa3. * config/avr/lib1funcs.S (__muldi3_6): Break out of __muldi3. (__muldi3): XCALL __muldi3_6 instead of rcall. (__umulsidi3, __mulsidi3): New functions. (do_prologue_saves, do_epilogue_restores): New .macros. (__divdi3_moddi3): Use them. * config/avr/lib1funcs-fixed.S (__usmuluha3, __ssmulha3) (__usmulusa3, __ssmulsa3): New functions. From-SVN: r195978
2013-02-12arm-protos.h (struct cpu_vec_costs): New struct type.Christophe Lyon2-0/+156
2013-02-05 Christophe Lyon <christophe.lyon@linaro.org> * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type. (struct tune_params): Add vec_costs field. * config/arm/arm.c (arm_builtin_vectorization_cost) (arm_add_stmt_cost): New functions. (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST) (TARGET_VECTORIZE_ADD_STMT_COST): Define. (arm_default_vec_cost): New struct of type cpu_vec_costs. (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune) (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune) (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune) (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field. From-SVN: r195977
2013-02-12extend.texi: Document Function Multiversioning and "default" parameter ↵Sriraman Tallam1-15/+10
string to target... * doc/extend.texi: Document Function Multiversioning and "default" parameter string to target attribute. * g++.dg/ext/mv12.C: New test. * g++.dg/ext/mv12.h: New file. * g++.dg/ext/mv12-aux.C: New file. * g++.dg/ext/mv13.C: New test. * config/i386/i386.c (get_builtin_code_for_version): Return 0 if target attribute parameter is "default". (ix86_compare_version_priority): Remove checks for target attribute. (ix86_mangle_function_version_assembler_name): Change error to sorry. Remove check for target attribute equal to NULL. Add assert. (ix86_generate_version_dispatcher_body): Change error to sorry. From-SVN: r195967
2013-02-11re PR libitm/55693 (libitm.c++/eh-1.C execution test fails on darwin from ↵Iain Sandoe2-3/+3
r193271) /libgcc 2013-02-11 Iain Sandoe <iain@codesourcery.com> Jack Howarth <howarth@bromo.med.uc.edu> Patrick Marlier <patrick.marlier@gmail.com> PR libitm/55693 * config/darwin-crt-tm.c: Remove dummy functions hack. /gcc 2013-02-11 Iain Sandoe <iain@codesourcery.com> Jack Howarth <howarth@bromo.med.uc.edu> Patrick Marlier <patrick.marlier@gmail.com> PR libitm/55693 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and define ENDFILE_SPEC as TM_DESTRUCTOR. * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR. /libitm 2013-02-11 Iain Sandoe <iain@codesourcery.com> Jack Howarth <howarth@bromo.med.uc.edu> Patrick Marlier <patrick.marlier@gmail.com> PR libitm/55693 * alloc_cpp.cc: Enable function declarations on darwin. * eh_cpp.cc: Likewise. Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu> Co-Authored-By: Patrick Marlier <patrick.marlier@gmail.com> From-SVN: r195960
2013-02-11re PR sanitizer/55617 (static constructors are not being instrumented ↵Alexander Potapenko1-22/+42
correctly on darwin) 2013-02-11 Alexander Potapenko <glider@google.com> Jack Howarth <howarth@bromo.med.uc.edu> Jakub Jelinek <jakub@redhat.com> PR sanitizer/55617 * config/darwin.c (cdtor_record): Rename ctor_record. (sort_cdtor_records): Rename sort_ctor_records. (finalize_dtors): New routine to sort destructors by priority before use in assemble_integer. (machopic_asm_out_destructor): Use finalize_dtors if needed. testsuite: 2013-02-11 Alexander Potapenko <glider@google.com> Jack Howarth <howarth@bromo.med.uc.edu> Jakub Jelinek <jakub@redhat.com> PR sanitizer/55617 * g++.dg/asan/pr55617.C: Run on all targets. Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu> Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r195956
2013-02-09* config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.David Edelsohn1-0/+3
From-SVN: r195917
2013-02-09re PR target/56256 (inline asm with {|} alternatives in it no longer accepted)Jakub Jelinek1-0/+6
PR target/56256 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define. * gcc.target/powerpc/pr56256.c: New test. From-SVN: r195913
2013-02-08re PR target/56043 (ICE in rs6000_builtin_vectorized_libmass for vsx-mass-1.c)Michael Meissner1-2/+7
[gcc] 2013-02-07 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/56043 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): If there is no implicit builtin declaration, just return NULL. [gcc/testsuite] 2013-02-07 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/56043 * gcc.target/powerpc/vsx-mass-1.c: Only run this test on powerpc*-*-linux*. From-SVN: r195898
2013-02-08sse.md (FMAMODEM): New mode iterator.Uros Bizjak1-27/+31
* config/i386/sse.md (FMAMODEM): New mode iterator. (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM mode iterator. Do not use TARGET_SSE_MATH in insn constraint. From-SVN: r195896
2013-02-08gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only when ↵Uros Bizjak2-2/+10
HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set. * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set. * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto. From-SVN: r195895
2013-02-08config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULTEdgar E. Iglesias7-14/+55
gcc: * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT (microblaze*-*-elf): Likewise * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to LINK_SPEC * config/microblaze/microblaze-c.c: Add builtin defines for _LITTLE_ENDIAN and _BIG_ENDIAN * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and add to TARGET_DEFAULT flags. Expand ASM_SPEC and LINK_SPEC. Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN * config/microblaze/microblaze.md: Update extendsidi2 and movdi_internal instructions to use low-order / high-order reg print_operands * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian options and inversemask / mask of LITTLE_ENDIAN * config/microblaze/t-microblaze: Expand multilib options to include mlittle- endian (le) and update exceptions patterns gcc/testsuite: * 20101011-1.c: Add __MICROBLAZE__ exception to set DO_TEST 0 From-SVN: r195893
2013-02-08i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.Uros Bizjak1-3/+2
* config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro. From-SVN: r195881
2013-02-08re PR target/54222 ([avr] Implement fixed-point support)Georg-Johann Lay6-378/+775
gcc/ PR target/54222 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add. * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators. (round<mode>3, round<mode>3_const): New expanders for fixed-mode. (*round<mode>3.libgcc): New insns for fixed-modes. * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME. (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs. (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs. * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline implementations. Define to __builtin_avr_absFX, __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively. (roundFX, countlsFX): Define to __builtin_avr_roundFX, __builtin_avr_countlsFX, respectively. * config/avr/avr-c.c (target.h): Include it. (enum avr_builtin_id): New enum. (avr_resolve_overloaded_builtin): New static function. (avr_register_target_pragmas): Use it to set targetm.resolve_overloaded_builtin. * config/avr/avr.c (avr_init_builtins): Supply myriads of local tree nodes used by DEF_BUILTIN. (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them. (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR. <AVR_BUILTIN_xxBITS>: Same. libgcc/ PR target/54222 * config/avr/lib2funcs.c: New C sources for modules for libgcc.a. * config/avr/lib2-object.mk: New iterator to build objects from it. * config/avr/t-avr: Iterate lib2-object.mk to build objects from lib2funcs.c. (LIB2FUNCS_EXCLUDE): Add _clrsbdi2. (LIB1ASMFUNCS): Add: _ssabs_1, _mask1, _ret, _roundqq3, _rounduqq3, _round_s2, _round_u2, _round_2_const, _addmask_2, _round_s4, _round_u4, _round_4_const, _addmask_4, _round_x8, _rounddq3 _roundudq3, _roundda3 _rounduda3, _roundta3 _rounduta3. * config/avr/lib1funcs-fixed.S: Implement them. gcc/testsuite/ PR target/54222 * gcc.target/avr/torture/builtins-4-roundfx.c: New test. * gcc.target/avr/torture/builtins-5-countlsfx.c: New test. From-SVN: r195878
2013-02-07re PR bootstrap/56227 (Bootstrap failure on MinGW building ggc-page.c)Uros Bizjak1-1/+2
PR bootstrap/56227 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT instead of "ll". * config/i386/i386.c (ix86_print_operand): Ditto. lto/ChangeLog: PR bootstrap/56227 * lto.c (lto_resolution_ready): Use %wx instead of HOST_WIDE_INT_PRINT_HEX_PURE in the argument to internal_error. From-SVN: r195860
2013-02-07re PR target/56228 (Indirect call fails to assemble)Jakub Jelinek1-8/+11
PR target/56228 * config/rs6000/rs6000.md (ptrm): New mode attr. (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11, call_value_indirect_aix<pttrsize>, call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of m in constraints. * gcc.dg/pr56228.c: New test. From-SVN: r195840
2013-02-07re PR target/54009 (incorrect code generated for DFmode lo_sum mem)Alan Modra1-39/+71
gcc/ PR target/54009 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM addresses won't wrap when offsetting. (rs6000_secondary_reload): Provide secondary reloads needed for wrapping LO_SUM addresses. gcc/testsuite/ PR target/54009 * gcc.target/powerpc/pr54009.c: New test. From-SVN: r195836
2013-02-07gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define MACH, just __MACH__.Thomas Schwinge1-1/+1
gcc/ * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define MACH, just __MACH__. From-SVN: r195826
2013-02-05re PR sanitizer/55374 ([asan] -static-libasan -static-libstdc++ doesn't work)Jakub Jelinek1-1/+9
PR sanitizer/55374 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define. (STATIC_LIBTSAN_LIBS): Likewise. * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define. (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC is defined, don't add anything else beyond that. (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define. (LINK_COMMAND_SPEC): Use them. From-SVN: r195761
2013-02-05re PR sanitizer/55374 ([asan] -static-libasan -static-libstdc++ doesn't work)Eric Botcazou1-0/+2
PR sanitizer/55374 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard. From-SVN: r195749
2013-02-04re PR sanitizer/55617 (static constructors are not being instrumented ↵Alexander Potapenko1-4/+47
correctly on darwin) 2013-02-04 Alexander Potapenko <glider@google.com> Jack Howarth <howarth@bromo.med.uc.edu> Jakub Jelinek <jakub@redhat.com> PR sanitizer/55617 * config/darwin.c (sort_ctor_records): Stabilized qsort on constructor priority by using original position. (finalize_ctors): New routine to sort constructors by priority before use in assemble_integer. (machopic_asm_out_constructor): Use finalize_ctors if needed. Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu> Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r195735
2013-02-04re PR libstdc++/54314 (undefined references to 'construction vtable for ↵Jakub Jelinek2-6/+7
std::ostream-in-std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >') PR libstdc++/54314 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn about visibility on artificial decls. * config/sol2.c (solaris_assemble_visibility): Likewise. From-SVN: r195723
2013-02-04re PR target/56186 (function return ABI change for 128-bit types on Win64)Kai Tietz1-7/+16
PR target/56186 * config/i386/i386.c (function_value_ms_64): Add additional valtype argument and improve checking of return-argument types for 16-byte modes. (ix86_function_value_1): Add additional valtype argument on call of function_value_64. (return_in_memory_ms_64): Sync 16-byte sized mode handling with handling infunction_value_64 function. From-SVN: r195721
2013-02-03divtab.c: Fix formatting and comments throughout the file.Oleg Endo15-850/+672
* config/sh/divtab.c: Fix formatting and comments throughout the file. * config/sh/sh4-300.md: Likewise. * config/sh/sh4a.md: Likewise. * config/sh/constraints.md: Likewise. * config/sh/sh.md: Likewise. * config/sh/netbsd-elf.h: Likewise. * config/sh/predicates.md: Likewise. * config/sh/sh-protos.h: Likewise. * config/sh/ushmedia.h: Likewise. * config/sh/linux.h: Likewise. * config/sh/sh.c: Likewise. * config/sh/superh.h: Likewise. * config/sh/elf.h: Likewise. * config/sh/sh4.md: Likewise. * config/sh/sh.h: Likewise. From-SVN: r195703
2013-02-03constraints.md: Adjust unused letters.John David Anglin6-396/+517
* config/pa/constraints.md: Adjust unused letters. Change "T" constraint to match_test floating_point_store_memory_operand(). * config/pa/predicates.md (reg_plus_base_memory_operand): New. (base14_operand): New. (floating_point_store_memory_operand): New. (integer_store_memory_operand): Revise to use base14_operand and reg_plus_base_memory_operand. (move_dest_operand): Allow symbolic_memory_operands. (symbolic_memory_operand): Check for LO_SOM. (symbolic_operand): Change default case to break. * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force CONST_DOUBLE values to be reloaded by putting them into memory when the destination is a floating point register. (movdf): Remove code to handle CONST_DOUBLE. (movsf): Likewise. (reload_indf_r1): New. (reload_insf_r1): New. Consistently use "Q" and "T" constraints with integer and floating point move instructions, respectively. (movdi): Remove FAIL. Change predicate for source operand unamed DImode move from general_operand to move_src_operand. (umulsidi3): Change predicate for destination operand to register_operand. Likewise for similar unamed patterns. * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare. * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis. (hppa_legitimize_address): Simplify mask calculation. (pa_emit_move_sequence): Revised handling of secondary reloads from REG+D addresses for floating point loads and stores. Directly handle loading CONST0_RTX (mode) to a floating point register. (pa_secondary_reload): Handle reloading DF and SFmode constant values to floating point registers. Don't restrict secondary reloads to floating point registers to integer modes. Revise some comments and cleanup some code. (TARGET_LEGITIMATE_ADDRESS_P): Define. (pa_legitimate_address_p): New. (pa_legitimize_reload_address): New. * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New. (STRICT_REG_OK_FOR_BASE_P): New. (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments. (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address. From-SVN: r195702
2013-02-01re PR c++/54601 (AIX uses atexit which causes unloading of shared modules to ↵David Edelsohn1-1/+2
break) PR target/54601 libgcc/ * config.host (powerpc-ibm-aix[56789]): Add t-aix-cxa to tmake_file. Add crtcxa to extra_parts. * config/rs6000/exit.h: New file. * config/rs6000/cxa_atexit.c: New file. * config/rs6000/cxa_finalize.c: New file. * config/rs6000/crtcxa.c: New file. * config/rs6000/t-aix-cxa: New file. * config/rs6000/libgcc-aix-cxa.ver: New file. gcc/ * configure.ac (cxa_atexit): Add AIX. * configure: Regenerate. * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o. From-SVN: r195675
2013-02-01alpha: widening multiply patternRichard Henderson1-0/+15
* config/alpha/alpha.md (umulditi3): New. From-SVN: r195668
2013-02-01ppc64: widening multiply patternsRichard Henderson1-0/+28
* config/rs6000/rs6000.md (smulditi3): New. (umulditi3): New. From-SVN: r195667
2013-02-01xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.David Edelsohn1-2/+20
* config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2. (ASM_OUTPUT_ALIGNED_LOCAL): New. From-SVN: r195660
2013-01-31lib1funcs.S: Add support for e3v5 architecture variant.Nick Clifton8-123/+484
* config/v850/lib1funcs.S: Add support for e3v5 architecture variant. * config/v850/constraints.md (Q): Define as a memory constraint. * config/v850/predicates.md (label_ref_operand): New predicate. (e3v5_shift_operand): New predicate. (ior_operator): New predicate. * config/v850/t-v850: Add e3v5 multilib. * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype. (v850_gen_movdi): Prototype. * config/v850/v850.c: Add support for e3v5 architecture. Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to TARGET_V850E_UP. (construct_save_jarl): Add e3v5 long JARL support. (v850_adjust_insn_length): New function. Adjust length of call insns when using e3v5 instructions. (v850_gen_movdi): New function: Generate instructions to move a DImode value. * config/v850/v850.h (TARGET_CPU_v850e3v5): Define. (CPP_SPEC): Define __v850e3v5__ as appropriate. (TARGET_USE_FPU): Enable for e3v5. (CONST_OK_FOR_W): New macro. (ADJUST_INSN_LENGTH): Define. * config/v850/v850.md (UNSPEC_LOOP): Define. (attr cpu): Add v850e3v5. Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP. (movdi): New pattern. (movdi_internal): New pattern. (cbranchsf4): Conditionalize on TARGET_USE_FPU. (cbranchdf4): Conditionalize on TARGET_USE_FPU. (cstoresf4): Likewise. (cstoredf4): Likewise. (insv): New pattern. (rotlso3_a): New pattern. (rotlsi3_b): New pattern (rotlsi3_v850e3v5): New pattern. (doloop_begin): New pattern. (fix_loop_counter): New pattern. (doloop_end): New pattern. (branch_normal): Add e3v5 long branch support. (branch_invert): Likewise. (branch_z_normal): Likewise. (branch_z_invert): Likewise. (branch_nz_normal): Likewise. (branch_nz_invert): Likewise. (call_internal_short): Add e3v5 register-indirect JARL support. (call_internal_long): Likewise. (call_value_internal_short): Likewise. (call_value_internal_long): Likewise. * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options. (mloop): New option. * config.gcc: Add support for configuring v840e3v5 target. * doc/invoke.texi: Document new v850 specific command line options. From-SVN: r195623
2013-01-30re PR sanitizer/55374 ([asan] -static-libasan -static-libstdc++ doesn't work)Jakub Jelinek1-0/+9
PR sanitizer/55374 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if LIBASAN_EARLY_SPEC is defined. (LIBASAN_EARLY_SPEC): Define to empty string if not already defined. (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address, before %o. * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define. * g++.dg/asan/large-func-test-1.C: Allow both _Zna[jm] in addition to _Znw[jm] in the backtrace. Allow _Zna[jm] to be the first frame printed in backtrace. * g++.dg/asan/deep-stack-uaf-1.C: Use malloc instead of operator new to avoid errors about mismatched allocation vs. deallocation. From-SVN: r195585
2013-01-30re PR c++/55742 (__attribute__ in class function declaration cause ↵Jakub Jelinek1-58/+107
"prototype does not match" errors.) PR c++/55742 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose invalid args instead of ICEing on it. (ix86_valid_target_attribute_tree): Return error_mark_node if ix86_valid_target_attribute_inner_p failed. (ix86_valid_target_attribute_p): Return false only if ix86_valid_target_attribute_tree returned error_mark_node. Allow target("default") attribute. (sorted_attr_string): Change argument from const char * to tree, merge in all target attribute arguments rather than just one. Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC instead of free. Avoid using strcat. (ix86_mangle_function_version_assembler_name): Mangle target("default") as if no target attribute is present. Adjust sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC instead of xmalloc and XDELETEVEC instead of free. (ix86_function_versions): Don't return true if one of the decls doesn't have target attribute. If they don't and one of the decls is DECL_FUNCTION_VERSIONED, report an error. Adjust sorted_attr_string caller. Use XDELETEVEC instead of free. (ix86_supports_function_versions): Remove. (make_name): Fix up formatting. (make_dispatcher_decl): Remove resolver_name and its initialization. Avoid leaking memory. (is_function_default_version): Return true if there is target("default") attribute rather than no target attribute at all. (make_resolver_func): Avoid leaking memory. (ix86_generate_version_dispatcher_body): Likewise. (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove. * target.def (supports_function_versions): Remove. * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove. * doc/tm.texi: Regenerated. * c-common.c (handle_target_attribute): Revert 2012-12-26 change. * g++.dg/mv1.C: Moved to... * g++.dg/ext/mv1.C: ... here. Adjust test. * g++.dg/mv2.C: Moved to... * g++.dg/ext/mv2.C: ... here. Adjust test. * g++.dg/mv3.C: Moved to... * g++.dg/ext/mv3.C: ... here. * g++.dg/mv4.C: Moved to... * g++.dg/ext/mv4.C: ... here. * g++.dg/mv5.C: Moved to... * g++.dg/ext/mv5.C: ... here. Adjust test. * g++.dg/mv6.C: Moved to... * g++.dg/ext/mv6.C: ... here. Adjust test. * g++.dg/ext/mv7.C: New test. * g++.dg/ext/mv8.C: New test. * g++.dg/ext/mv9.C: New test. * g++.dg/ext/mv10.C: New test. * g++.dg/ext/mv11.C: New test. From-SVN: r195584
2013-01-30Properly set progbits/nobits for Solaris/SPARC asRainer Orth1-1/+8
* configure.ac (HAVE_AS_SPARC_NOBITS): New test. * configure: Regenerate. * config.in: Regenerate. * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit #nobits/#progbits if supported. From-SVN: r195572
2013-01-29re PR target/56121 ([SH] ICE in libgcc/unwind-dw2.c)Oleg Endo1-13/+15
PR target/56121 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition. From-SVN: r195558