summaryrefslogtreecommitdiffstats
path: root/gcc/testsuite/gcc.target/mips
Commit message (Collapse)AuthorAgeFilesLines
* Fix if-conversion pass for dead type-unsafe codevries2014-08-151-0/+50
| | | | | | | | | | | | | | | | | | | | | | | 2014-08-15 Tom de Vries <tom@codesourcery.com> Backport from mainline: 2014-08-14 Tom de Vries <tom@codesourcery.com> PR rtl-optimization/62004 PR rtl-optimization/62030 * ifcvt.c (rtx_interchangeable_p): New function. (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p. * gcc.dg/pr62004.c: New test. * gcc.dg/pr62030.c: Same. * gcc.target/mips/pr62030-octeon.c: Same. 2014-08-05 Richard Biener <rguenther@suse.de> * emit-rtl.h (mem_attrs_eq_p): Declare. * emit-rtl.c (mem_attrs_eq_p): Export. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@214044 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2014-02-024-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/extend.texi (__builtin_mips_get_fcsr): Document. (__builtin_mips_set_fcsr): Likewise. * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and MIPS_USI_FTYPE_VOID. * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare (mips16_expand_set_fcsr): Likewise. * config/mips/mips.c (mips16_get_fcsr_stub): New variable. (mips16_set_fcsr_stub): Likewise. (mips16_get_fcsr_one_only_stub): New class. (mips16_set_fcsr_one_only_stub): Likewise. (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions. (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed. (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros. (hard_float): New availability predicate. (mips_builtins): Add get_fcsr and set_fcsr. (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16. * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs. (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants. (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>) (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New patterns. gcc/testsuite/ * gcc.target/mips/get-fcsr-1.c, gcc.target/mips/get-fcsr-2.c, gcc.target/mips/set-fcsr-1.c, gcc.target/mips/set-fcsr-2.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207401 138bc75d-0d04-0410-961f-82ee72b054a4
* 2014-01-27 Steve Ellcey <sellcey@mips.com>sje2014-01-271-1/+1
| | | | | | | * gcc.target/mips/pr52125.c: Add -mno-optgp option. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207156 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2014-01-231-0/+20
| | | | | | | | | | | | | | | | PR target/52125 * rtl.h (get_referenced_operands): Declare. * recog.c (get_referenced_operands): New function. * config/mips/mips.c (mips_reorg_process_insns): Check which asm operands have been referenced when recording LO_SUM references. gcc/testsuite/ PR target/52125 * gcc.dg/pr48774.c: Remove skip for mips_rel. * gcc.target/mips/pr52125.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206955 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2014-01-201-1/+1
| | | | | | | | | | | | | | * lib/target-supports.exp (force_conventional_output_for): New procedure. * lib/scanasm.exp (scan-assembler_required_options) (scan-assembler-not_required_options) (scan-assembler-times_required_options): Replace with force_conventional_output_fors. * lib/scanrtl.exp: Force conventional output for all rtl dump scans. * gcc.target/mips/octeon-pipe-1.c: Remove -ffat-lto-objects. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206860 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2014-01-191-1/+1
| | | | | | | * gcc.target/mips/pr54240.c: Add -ffat-lto-objects. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206776 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2014-01-151-1/+1
| | | | | | | * gcc.target/mips/umips-branch-4.c: Add addressing=absolute. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206642 138bc75d-0d04-0410-961f-82ee72b054a4
* 2014-01-08 Catherine Moore <clm@codesourcery.com>clm2014-01-082-0/+22
| | | | | | | | | | | | | | gcc/testsuite/ * gcc.target/mips/umips-branch-3.c: New test. * gcc.target/mips/umips-branch-4.c: New test. gcc/ * config/mips/mips.md (simple_return): Attempt to use JRC for microMIPS. * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206447 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2014-01-081-0/+34
| | | | | | | | | | | | | | PR rtl-optimization/59137 * reorg.c (steal_delay_list_from_target): Call update_block for elided insns. (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise. gcc/testsuite/ PR rtl-optimization/59137 * gcc.target/mips/pr59137.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206445 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright years in gcc/rsandifo2014-01-024-4/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206289 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-12-05 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-12-051-0/+83
| | | | | | | | | | | | | | | PR rtl-optimization/59317 * lra-constraints.c (in_class_p): Don't ignore insn with constant as a source. 2013-12-05 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/59317 * testsuite/gcc.target/mips/pr59317.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205718 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-10-22 Steve Ellcey <sellcey@mips.com>sje2013-10-221-0/+11
| | | | | | | * gcc.target/mips/nor.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203934 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2013-10-202-2/+6
| | | | | | | | * gcc.target/mips/mips-ps-5.c: Add alignment attributes. * gcc.target/mips/mips-ps-7.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203871 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2013-10-206-0/+75
| | | | | | | | | | | | | | | * config/mips/mips.h (ISA_HAS_WSBH): Define. * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New constants. (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns. gcc/testsuite/ * gcc.target/mips/bswap-1.c, gcc.target/mips/bswap-2.c, gcc.target/mips/bswap-3.c, gcc.target/mips/bswap-4.c, gcc.target/mips/bswap-5.c, gcc.target/mips/bswap-6.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203870 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2013-08-192-1/+3
| | | | | | | | | * gcc.target/mips/mulsize-1.c: Check for SLL as well as SUBU. * gcc.target/mips/mulsize-2.c: Check for ADDU rather than SUBU. Check for SLL too. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201848 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.target/mips/nan-legacy.c: Accept 4294967295 as anmacro2013-08-132-2/+2
| | | | | | | | alternative to -1. * gcc.target/mips/nans-legacy.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201711 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.target/mips/fabs-2008.c: Correct scan-assembler patternmacro2013-08-1316-24/+24
| | | | | | | | | | | | | | | | | | | | | | escapes. * gcc.target/mips/fabs-legacy.c: Likewise. * gcc.target/mips/fabsf-2008.c: Likewise. * gcc.target/mips/fabsf-legacy.c: Likewise. * gcc.target/mips/fneg-2008.c: Likewise. * gcc.target/mips/fneg-legacy.c: Likewise. * gcc.target/mips/fnegf-2008.c: Likewise. * gcc.target/mips/fnegf-legacy.c: Likewise. * gcc.target/mips/nan-2008.c: Likewise. * gcc.target/mips/nan-legacy.c: Likewise. * gcc.target/mips/nanf-2008.c: Likewise. * gcc.target/mips/nanf-legacy.c: Likewise. * gcc.target/mips/nans-2008.c: Likewise. * gcc.target/mips/nans-legacy.c: Likewise. * gcc.target/mips/nansf-2008.c: Likewise. * gcc.target/mips/nansf-legacy.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201710 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2013-07-311-1/+1
| | | | | | | | | * gcc.target/mips/mips.exp (mips-dg-options): Test for mabicalls rather than addressing!=absolute when deciding how to handle MIPS16 when the test forces an ABI. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201380 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-07-30 Steve Ellcey <sellcey@mips.com>sje2013-07-304-0/+32
| | | | | | | | | | * gcc.target/mips/code-readable-1.c: Increase switch size. * gcc.target/mips/code-readable-2.c: Ditto. * gcc.target/mips/code-readable-3.c: Ditto. * gcc.target/mips/code-readable-4.c: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201353 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/macro2013-07-2917-0/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'. (UCLIBC_DYNAMIC_LINKER): New macro. * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle `-mnan=2008'. (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise. (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle `-mnan=2008'. (UCLIBC_DYNAMIC_LINKER64): Redefine macro. (UCLIBC_DYNAMIC_LINKERN32): Likewise. * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls for SF and DF modes. Use ieee_quad_format for TF mode. * config/mips/mips-opts.h (mips_ieee_754_setting): New enum. * config/mips/mips.c (mips_file_start): Output a `.nan' directive. (mips_option_override): Handle `-mnan=legacy'. * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle `-mabs=2008' and `-mnan=2008'. (OPTION_DEFAULT_SPECS): Add "nan" default. (ASM_SPEC): Handle `-mnan='. [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro. * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update comment accordingly. (neg<mode>2): Likewise. * config/mips/mips.opt (mabs, mnan): New options. * doc/install.texi (Configuration): Document `--with-nan=' option. * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and `-mnan=' options. (MIPS Options): Document them. * config.gcc <mips*-*-*>: Handle `--with-nan='. * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support. * configure: Regenerate. * config.in: Regenerate. gcc/testsuite/ * gcc.target/mips/fabs-2008.c: New test case. * gcc.target/mips/fabs-legacy.c: New test case. * gcc.target/mips/fabsf-2008.c: New test case. * gcc.target/mips/fabsf-legacy.c: New test case. * gcc.target/mips/fneg-2008.c: New test case. * gcc.target/mips/fneg-legacy.c: New test case. * gcc.target/mips/fneg-2008.c: New test case. * gcc.target/mips/fneg-legacy.c: New test case. * gcc.target/mips/nan-2008.c: New test case. * gcc.target/mips/nan-legacy.c: New test case. * gcc.target/mips/nanf-2008.c: New test case. * gcc.target/mips/nanf-legacy.c: New test case. * gcc.target/mips/nans-2008.c: New test case. * gcc.target/mips/nans-legacy.c: New test case. * gcc.target/mips/nansf-2008.c: New test case. * gcc.target/mips/nansf-legacy.c: New test case. * gcc.target/mips/mips.exp: Handle `-mabs=' and `-mnan='. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201313 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/mips/mips.c (mips_rtx_costs): Very slightly increasegrahams2013-07-104-0/+41
| | | | | | | | | | | | | the cost of MULT when optimizing for size. * gcc.target/mips/mulsize-1.c: New. * gcc.target/mips/mulsize-2.c: New. * gcc.target/mips/mulsize-3.c: New. * gcc.target/mips/mulsize-4.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200867 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-07-02 Maciej W. Rozycki <macro@codesourcery.com>clm2013-07-024-6/+6
| | | | | | | | | | | * gcc.target/mips/call-1.c: Accept JALRS and JALR. * gcc.target/mips/call-2.c: Likewise. * gcc.target/mips/call-3.c: Likewise. * gcc.target/mips/lazy-binding-1.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200621 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2013-06-122-1/+2
| | | | | | | | | * gcc.target/mips/mips.exp: Handle -f{no-,}common. * gcc.target/mips/memcpy-1.c: Remove redundant dg-do. Run with -fno-common. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200041 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2013-06-122-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/mips/mips.md (extended_mips16): Include GOT and constant-pool loads. (insn_count): New attribute, with most cases extracted from... (length): ...here. Redefine most cases in terms of insn_count. (single_insn): Delete. (can_delay): Use insn_count to check for single instructions. (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900) (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000) (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal) (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal) (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4) (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b) (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64) (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>) (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split) (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count" rather than "length". (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute. * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s): Use "insn_count" rather than "length". * config/mips/mips-dsp.md (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>) (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove length attributes. gcc/testsuite/ * gcc.target/mips/umips-branch-1.c, gcc.target/mips/umips-branch-2.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200037 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2013-05-251-0/+17
| | | | | | | | | | | | | | | | | PR target/53916 * config/mips/constraints.md (kl): New constraint. * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete. (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the constraint for operand 0. Split after CSE for MIPS16. Emit a move from LO for MIPS16. (udivmod<mode>4_internal): Likewise udivmod<mode>4. gcc/testsuite/ PR target/53916 * gcc.target/mips/div-13.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199329 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2013-05-252-0/+35
| | | | | | | | | | | | | | PR target/55777 * config/mips/mips.c (mips_can_inline_p): New function. (TARGET_CAN_INLINE_P): Define. gcc/testsuite/ PR target/55777 * gcc.target/mips/mips16-attributes-5.c, * gcc.target/mips/mips16-attributes-6.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199328 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2013-05-153-1/+118
| | | | | | | | | | | | | | | PR target/57260 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow sibling calls to functions that would normally be lazily bound, unless $gp is call-clobbered. gcc/testsuite/ PR target/57260 * gcc.target/mips/call-1.c: Restrict to o32. * gcc.target/mips/call-5.c, gcc.target/mips/call-6.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198945 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/clm2013-03-2024-1/+429
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2013-03-20 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, ZD): 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. libgcc/ 2013-03-20 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/testsuite/ 2013-03-20 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196828 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2013-03-091-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR middle-end/56524 * tree.h (tree_optimization_option): Rename target_optabs to optabs. Add base_optabs. (TREE_OPTIMIZATION_OPTABS): Update after previous field change. (TREE_OPTIMIZATION_BASE_OPTABS): New macro. (save_optabs_if_changed): Replace with... (init_tree_optimization_optabs): ...this. * optabs.c (save_optabs_if_changed): Rename to... (init_tree_optimization_optabs): ...this. Take the optimization node as argument. Do nothing if the base optabs are already correct. Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need to recompute optabs. * function.h (function): Remove optabs field. * function.c (invoke_set_current_function_hook): Call init_tree_optimization_optabs. Use the result to initialize this_fn_optabs. gcc/c-family/ PR middle-end/56524 * c-common.c (handle_optimize_attribute): Don't call save_optabs_if_changed. gcc/testsuite/ PR middle-end/56524 * gcc.target/mips/pr56524.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196570 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-02-25 Catherine Moore <clm@codesourcery.com>clm2013-02-2524-429/+1
| | | | | | | | Revert microMIPS patch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196259 138bc75d-0d04-0410-961f-82ee72b054a4
* libgcc/clm2013-02-2424-1/+429
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196246 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2013-01-241-1/+1
| | | | | | | * gcc.target/mips/octeon-pipe-1.c: Add -ffat-lto-objects git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195441 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright years in gcc/rsandifo2013-01-104-5/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195098 138bc75d-0d04-0410-961f-82ee72b054a4
* Update Copyright years for files modified in 2011 and/or 2012.jakub2013-01-041-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194903 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2012-12-231-0/+6
| | | | | | | | * gcc.target/mips/r10k-cache-barrier-10.c: Make a branch-likely instruction more likely. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194705 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2012-12-231-1/+1
| | | | | | | * gcc.target/mips/pr55315.c: Cast to long rather than int. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194704 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2012-12-101-11/+10
| | | | | | | | * gcc.target/mips/octeon-bbit-2.c: Restructure loops so that no code duplication is required. Allow BNE to appear. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194370 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2012-12-101-1/+1
| | | | | | | * gcc.target/mips/ext-2.c: Require -mlong64. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194368 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-19 Tom de Vries <tom@codesourcery.com>vries2012-11-191-0/+11
| | | | | | | | | PR rtl-optimization/55315 * gcc.target/mips/pr55315.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193617 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-03 Andrew Pinski <apinski@cavium.com>pinskia2012-11-031-1/+2
| | | | | | | | | * gcc.target/mips/octeon-bbit-3.c: Change the second call to abort to call abort1 so that cross jumping does not happen. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193125 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2012-11-031-1/+2
| | | | | | | | * gcc.target/mips/octeon-exts-7.c (bar): Make sure the extraction of b requires a 64-bit operation followed by a truncation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193118 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2012-10-101-1/+2
| | | | | | | * gcc.target/mips/mips32-dsp-accinit-2.c: Fix test description. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192329 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-09 Steve Ellcey <sellcey@mips.com>sje2012-10-091-4/+3
| | | | | | | * gcc.target/ext_ins.c: Modify f2 to aviod uninitialized data. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192274 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2012-10-073-2/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/mips/mips-protos.h (mips_split_type): New enum. (mips_split_64bit_move_p, mips_split_doubleword_move): Delete. (mips_split_move_p, mips_split_move, mips_split_move_insn_p) (mips_split_move_insn): Declare. * config/mips/mips.c (mips_tuning_info): New variable. (mips_load_store_insns): Use mips_split_move_insn_p instead of mips_split_64bit_move_p. (mips_emit_move_or_split, mips_mult_move_p): New functions. (mips_split_64bit_move_p): Rename to... (mips_split_move_p): ...this and take a mips_split_type argument. Generalize to all moves. Call mips_mult_move_p. (mips_split_doubleword_move): Rename to... (mips_split_move): ...this and take a mips_split_type argument. Assert that mips_split_move_p holds. (mips_insn_split_type, mips_split_move_insn_p, mips_split_move_insn): New functions. (mips_output_move): Use mips_split_move_p instead of mips_split_64bit_move_p. Handle MULT $0, $0 moves. (mips_save_reg): Use mips_emit_move_or_split. (mips_sim_reset): Assign to curr_state. Call targetm.sched.init and advance_state. (mips_sim_init): Call targetm.sched.init_dfa_pre_cycle_insn and targetm.sched.init_dfa_post_cycle_insn, if defined. (mips_sim_next_cycle): Assign to curr_state. Use advance_state instead of state_transition. (mips_sim_issue_insn): Assign to curr_state. Use targetm.sched.variable_issue to see how many more insns can be issued. (mips_seq_time, mips_mult_zero_zero_cost) (mips_set_fast_mult_zero_zero_p, mips_set_tuning_info) (mips_expand_to_rtl_hook): New functions. (TARGET_EXPAND_TO_RTL_HOOK): Define. * config/mips/mips.md (move_type): Add imul. (type): Map imul move_types to imul. (*movdi_32bit, *movti): Add imul alternatives. Use mips_split_move_insn_p and mips_split_move_insn instead of mips_split_64bit_move_p and mips_split_doubleword_move in move splitters. gcc/testsuite/ 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com> Sandra Loosemore <sandra@codesourcery.com> * gcc.target/mips/madd-9.c: Force code to be tuned for the 4kc and test that the accumulator is initialized using MULT. * gcc.target/mips/mips32-dsp-accinit-1.c: New test. * gcc.target/mips/mips32-dsp-accinit-2.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192179 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2012-09-301-1/+1
| | | | | | | * gcc.target/mips/pr37362.c: Fix target selector. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191877 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-09-19 Steve Ellcey <sellcey@mips.com>sje2012-09-191-1/+1
| | | | | | | * gcc.target/mips/pr37362.c: Add mips*-mti-elf exception. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191497 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-09-01 Andrew Pinski <apinski@cavium.com>pinskia2012-09-011-0/+18
| | | | | | | | | | | | | * simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>): A truncate of a memory is just loading the low part of the memory. 2012-09-01 Andrew Pinski <apinski@cavium.com> * gcc.target/mips/truncate-8.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190848 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2012-08-291-0/+6
| | | | | | | | | | | * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_synci if TARGET_SYNCI. gcc/testsuite/ * gcc.target/mips/mips.exp: Work out default -msynci setting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190784 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2012-08-275-10/+11
| | | | | | | | | * gcc.target/mips/ext_ins.c, gcc.target/mips/octeon-pop-2.c, gcc.target/mips/pr54240.c, gcc.target/mips/stack-1.c, gcc.target/mips/unaligned-1.c: Add NOMIPS16. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190720 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/rsandifo2012-08-2741-221/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * gcc.target/mips/20020620-1.c, gcc.target/mips/atomic-memory-2.c, gcc.target/mips/branch-2.c, gcc.target/mips/branch-3.c, gcc.target/mips/clear-cache-1.c, gcc.target/mips/const-anchor-1.c, gcc.target/mips/const-anchor-2.c, gcc.target/mips/dspr2-MULT.c, gcc.target/mips/dspr2-MULTU.c, gcc.target/mips/ext-1.c, gcc.target/mips/ext-2.c, gcc.target/mips/ext-3.c, gcc.target/mips/ext-4.c, gcc.target/mips/ext_ins.c, gcc.target/mips/fpcmp-1.c, gcc.target/mips/fpcmp-2.c, gcc.target/mips/mips16e-extends.c, gcc.target/mips/mips32-dsp.c, gcc.target/mips/mips32-dsp-type.c, gcc.target/mips/mips32r2-mxhc1.c, gcc.target/mips/mips-ps-5.c, gcc.target/mips/mips-ps-7.c, gcc.target/mips/mips-ps-type-2.c, gcc.target/mips/mips-ps-type.c, gcc.target/mips/movcc-1.c, gcc.target/mips/movcc-2.c, gcc.target/mips/movcc-3.c, gcc.target/mips/neg-abs-1.c, gcc.target/mips/neg-abs-2.c, gcc.target/mips/nmadd-1.c, gcc.target/mips/nmadd-2.c, gcc.target/mips/nmadd-3.c, gcc.target/mips/octeon-exts-7.c, gcc.target/mips/octeon-seq-4.c, gcc.target/mips/rsqrt-1.c, gcc.target/mips/rsqrt-2.c, gcc.target/mips/rsqrt-3.c, gcc.target/mips/sb1-1.c, gcc.target/mips/scc-4.c, gcc.target/mips/stack-1.c, gcc.target/mips/unaligned-1.c: Tighten regexps. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190719 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud