From 7fd93f9ceb3f73a10a643019e3e4d82fa4873692 Mon Sep 17 00:00:00 2001 From: clm Date: Sun, 24 Feb 2013 23:46:44 +0000 Subject: libgcc/ 2013-02-24 Catherine Moore Joseph Myers Chao-ying Fu * 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 Maciej W. Rozycki Tom de Vries Nathan Sidwell Iain Sandoe Nathan Froyd Chao-ying Fu * 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_l): Use ZC constraint. (mov_r): Likewise. (mov_l): Likewise. (mov_r): Likewise. (*branch_equality_inverted): Add microMIPS support. (*branch_equality): Likewise. (*jump_absolute): Likewise. (indirect_jump_): Likewise. (tablejump_): Likewise. (_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): Use ZR constraint. (compare_and_swap_12): Likewise. (sync_add): Likewise. (sync__12): Likewise. (sync_old__12): Likewise. (sync_new__12): Likewise. (sync_nand_12): Likewise. (sync_old_nand_12): Likewise. (sync_new_nand_12): Likewise. (sync_sub): Likewise. (sync_old_add): Likewise. (sync_old_sub): Likewise. (sync_new_add): Likewise. (sync_new_sub): Likewise. (sync_): Likewise. (sync_old_): Likewise. (sync_new_): Likewise. (sync_nand): Likewise. (sync_old_nand): Likewise. (sync_new_nand): Likewise. (sync_lock_test_and_set): Likewise. (test_and_set_12): Likewise. (atomic_compare_and_swap): Likewise. (atomic_exchange_llsc): Likewise. (atomic_fetch_add_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 Richard Sandiford * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196246 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/configure | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gcc/configure') diff --git a/gcc/configure b/gcc/configure index d4f49bbeceb..81bc2c6ddc5 100755 --- a/gcc/configure +++ b/gcc/configure @@ -25706,6 +25706,37 @@ if test $gcc_cv_as_mips_gnu_attribute = yes; then $as_echo "#define HAVE_AS_GNU_ATTRIBUTE 1" >>confdefs.h +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .micromips support" >&5 +$as_echo_n "checking assembler for .micromips support... " >&6; } +if test "${gcc_cv_as_micromips_support+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + gcc_cv_as_micromips_support=no + if test x$gcc_cv_as != x; then + $as_echo '.set micromips' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + gcc_cv_as_micromips_support=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_micromips_support" >&5 +$as_echo "$gcc_cv_as_micromips_support" >&6; } +if test $gcc_cv_as_micromips_support = yes; then + +$as_echo "#define HAVE_GAS_MICROMIPS 1" >>confdefs.h + fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .dtprelword support" >&5 -- cgit v1.2.1