1. 16 Jul, 2015 3 commits
  2. 15 Jul, 2015 33 commits
    • re PR target/66866 (incorrect load address on manual vector shuffle) · baca1278
      	PR target/66866
      	* config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
      	* config/i386/i386.c (ix86_expand_pextr): New function.
      	(ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
      	for non-lowpart subregs.
      	* config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
      	(insv<mode>): Use SWI248 mode iterator.
      	(insv<mode>_1): Ditto.
      
      testsuite/ChangeLog:
      
      	PR target/66866
      	* g++.dg/pr66866.C: New test.
      
      From-SVN: r225852
      Uros Bizjak committed
    • One of the code refactorings introducing phi node iterators modified the semantics of this code. · 1f8ba824
      One of the code refactorings introducing phi node iterators modified
      the semantics of this code.  Revert that change to what was before.
      
              * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
              iterator to use_stmt.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r225851
      Aditya Kumar committed
    • [graphite] discard scops for which entry==exit · d7f49f78
      In this patch we discard the scops where entry and exit are the same BB.
      This is an effort to remove graphite-scop-detection.c:limit_scops.
      Removing the limit_scops function introduces correctness regressions.
      We are making relevant changes in incremental steps to fix those bugs,
      and finally we intend to remove limit_scops.
      
      2015-06-29  Aditya Kumar  <aditya.k7@samsung.com>
                      Sebastian Pop <s.pop@samsung.com>
      
              * graphite-scop-detection.c (build_scops_1): Discard scops for which entry==exit
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r225850
      Aditya Kumar committed
    • graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in case of a return statement in scop. · 1ee9ef73
              * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
              case of a return statement in scop.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r225849
      Aditya Kumar committed
    • graphite-sese-to-poly.c (parameter_index_in_region): Only handle INTEGER_TYPE parameters. · 4bc4dd11
              * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
              INTEGER_TYPE parameters.
              (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
              VECTOR_CST in scan_tree_for_params.
              (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r225848
      Aditya Kumar committed
    • gimple-pretty-print.h: Don't include pretty-print.h. · 48d859bb
      
      
      	* gimple-pretty-print.h: Don't include pretty-print.h.
      	* tree-streamer.h: Don't include lto-streamer.h.
      	* gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
      	* gimple-streamer-in.c: Remove redundant includes.
      	* gimple-streamer-out.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-icf.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-polymorphic-call.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* tree-streamer.c: Likewise.
      	* lto/lto.c: Remove redundant includes.
      
      From-SVN: r225847
      Andrew MacLeod committed
    • opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't include input.h. · 903f5c23
      
      2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
      
      	* opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
      	include input.h.
      	* opts.c: Remove multiline #include comment.
      
      
      2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
      
      	* java/expr.c: Remove multiline #include comment.
      
      
      2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
      
      	* fortran/trans-types.c: Remove multiline #include comment.
      
      
      2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
      
      	* c-family/c-opts.c: Remove multiline #include comment.
      
      From-SVN: r225846
      Andrew MacLeod committed
    • mkoffload.c (process): Add C++ protection to emitted code. · 852b55f9
      	* config/nvptx/mkoffload.c (process): Add C++ protection to
      	emitted code.
      
      From-SVN: r225844
      Nathan Sidwell committed
    • re PR libgcc/66854 (libgcc2.c:1846:9: internal compiler error: Segmentation fault) · 58b62eaa
      2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/66854
      	* config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
      	null before IEEE 128-bit floating point support patch.
      
      From-SVN: r225843
      Michael Meissner committed
    • simplify-rtx.c (simplify_ternary_operation): Add simplification for (!c) !=… · 34222cd6
      simplify-rtx.c (simplify_ternary_operation): Add simplification for (!c) != {0,...,0} ? a : b for vector modes.
      
      [gcc]
      
      2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* simplify-rtx.c (simplify_ternary_operation): Add simplification
      	for (!c) != {0,...,0} ? a : b for vector modes.
      
      [gcc/testsuite]
      
      2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/vec-cmp-sel.c: New test.
      
      From-SVN: r225840
      Bill Schmidt committed
    • Limit AA walking when inlining analysis examines parameters · ff302741
      2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
      	    Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
      	struct func_body_info* instead of struct ipa_node_params*, expecting
      	fbi->info to be filled in.  Replace throughout.  Adjust call to
      	ipa_load_from_parm_agg.
      	(set_cond_stmt_execution_predicate): Accept struct func_body_info*
      	instead of struct ipa_node_params*.  Adjust calls to other functions
      	so that they pass either fbi or fbi->info.
      	(set_switch_stmt_execution_predicate): Likewise.
      	(will_be_nonconstant_predicate): Likewise.
      	(compute_bb_predicates): Likewise.
      	(estimate_function_body_sizes): Move asserts earlier.  Fill in
      	struct func_body_info, replace parms_info with fbi.info.  Adjust
      	calls to functions that now accept struct func_body_info.
      	* ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
      	(struct func_body_info): Likewise.
      	(ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
      	remove static.  Adjust callers.
      	(ipa_load_from_parm_agg): Remove.
      	* ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
      	(func_body_info): Likewise.
      	(ipa_load_from_parm_agg): Adjust prototype.
      
      
      Co-Authored-By: Martin Jambor <mjambor@suse.cz>
      
      From-SVN: r225838
      Paolo Bonzini committed
    • check_GNU_style.sh: Fix quoting in cat_with_prefix · 7392b090
      2015-07-15  Tom de Vries  <tom@codesourcery.com>
      
      	* check_GNU_style.sh (cat_with_prefix): Fix quoting.
      
      From-SVN: r225837
      Tom de Vries committed
    • remove some usage of expr_list from read_rtx · 6b8068d6
      gcc/ChangeLog:
      
      2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* gensupport.c (rtx_handle_directive): Adjust.
      	* read-rtl.c (apply_iterators): Take vector to add rtxs to
      	instead of expr list rtx.
      	(add_define_attr_for_define_subst): Likewise.
      	(add_define_subst_attr): Likewise.
      	(read_subst_mapping): Likewise.
      	(read_rtx): Likewise.
      	* rtl.h (read_rtx): Adjust.
      
      From-SVN: r225833
      Trevor Saunders committed
    • re PR c++/65091 (decltype(~arg) fails for template functions) · 0467e3eb
      	PR c++/65091
      	* parser.c (cp_parser_unqualified_id): Don't accept ~x in a
      	template if there is no type x in scope.
      
      From-SVN: r225831
      Jason Merrill committed
    • [AArch64] Use cinc mnemonic for *csinc2<mode>_insn · 49f88e43
      	* config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
      
      From-SVN: r225830
      Kyrylo Tkachov committed
    • re PR target/58066 (__tls_get_addr is called with misaligned stack on x86-64) · e6c9b417
      	PR target/58066
      	* config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
      	(*tls_local_dynamic_base_64_<mode>): Ditto.
      	(*tls_local_dynamic_base_64_largepic): Ditto.
      	(tls_global_dynamic_64_<mode>): Update expander pattern.
      	(tls_local_dynamic_base_64_<mode>): Ditto.
      
      From-SVN: r225829
      Uros Bizjak committed
    • Fix libgomp tests. · 28ef6a27
      2015-07-15  Maxim Blumenthal  <maxim.blumenthal@intel.com>
      
      libgomp/
      	* testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type
      	of EPS parameter from integer to real.
      	* testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change
      	type of EPS parameter from integer to real.
      
      From-SVN: r225827
      Maxim Blumenthal committed
    • fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var and bool_var == 1… · 55cf3946
      fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var and bool_var == 1 -> bool_var simplifications ...
      
      2015-07-15  Richard Biener  <rguenther@suse.de>
      
      	* fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
      	and bool_var == 1 -> bool_var simplifications ...
      	* match.pd: ... to patterns here.  Factor out negate_expr_p
      	cases from the A - B -> A + (-B) patterns as negate_expr_p
      	predicate and add a -(A + B) -> (-B) - A pattern.
      
      From-SVN: r225825
      Richard Biener committed
    • objc-torture.exp (OBJC_TORTURE_OPTIONS): Remove { -O3 -fomit-frame-pointer }... · aa6cf07e
      2015-07-15  Richard Biener  <rguenther@suse.de>
      
      	* lib/objc-torture.exp (OBJC_TORTURE_OPTIONS): Remove
      	{ -O3 -fomit-frame-pointer },
      	{ -O3 -fomit-frame-pointer -funroll-loops } and
      	{ -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions }
      	in favor of
      	{ -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer
      	  -finline-functions }
      
      From-SVN: r225821
      Richard Biener committed
    • Fix restoration of hi/lo in MIPS64R2 interrupt handlers. · 8e8886f6
      gcc/
      	* config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
      
      gcc/testsuite/
      	* gcc.target/mips/interrupt_handler-5.c: New test.
      
      From-SVN: r225820
      Robert Suchanek committed
    • Support new interrupt handler options. · 0256a844
      gcc/
      	* config/mips/mips.c (mips_int_mask): New enum.
      	(mips_shadow_set): Likewise.
      	(int_mask): New variable.
      	(use_shadow_register_set_p): Change type to enum mips_shadow_set.
      	(machine_function): Add int_mask and use_shadow_register_set.
      	(mips_attribute_table): Add attribute handlers for interrupt and
      	use_shadow_register_set.
      	(mips_interrupt_mask): New static function.
      	(mips_handle_interrupt_attr): Likewise.
      	(mips_handle_use_shadow_register_set_attr): Likewise.
      	(mips_use_shadow_register_set): Change return type to enum
      	mips_shadow_set.  Add argument handling for use_shadow_register_set
      	attribute.
      	(mips_interrupt_extra_called_saved_reg_p): Update the conditional to
      	compare with mips_shadow_set enum.
      	(mips_compute_frame_info): Add interrupt mask and
      	use_shadow_register_set to per-function information structure.
      	Add a stack slot for EPC unconditionally.
      	(mips_expand_prologue): Compare use_shadow_register_set value
      	with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
      	masked interrupt register but in EIC mode use K0 and save Cause in K0.
      	EPC saved and restored unconditionally.  Use PMODE_INSN macro when
      	copying the stack pointer from the shadow register set.
      	* config/mips/mips.h (SR_IM0): New define.
      	* config/mips/mips.md (mips_rdpgpr): Rename to...
      	(mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
      	* doc/extend.texi (Declaring Attributes of Functions): Document
      	optional arguments for interrupt and use_shadow_register_set
      	attributes.
      
      gcc/testsuite/
      	* gcc.target/mips/interrupt_handler-4.c: New test.
      
      Co-Authored-By: Robert Suchanek <robert.suchanek@imgtec.com>
      
      From-SVN: r225819
      Matthew Fortune committed
    • Support interrupt handlers with hard-float. · 6a2b848b
      gcc/
      	* config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
      	interrupt attribute.
      	(mips_expand_prologue): Disable the floating point unit in an ISR.
      	* config/mips/mips.h (SR_COP1): New define.
      
      From-SVN: r225818
      Robert Suchanek committed
    • re PR testsuite/66734 (Many MPX tests are skipped) · 22dd66d4
      	PR testsuite/66734
      	* gcc.dg/lto/lto.exp: Initialize MPX.
      
      From-SVN: r225815
      Ilya Enkovich committed
    • [ARM][testsuite] Add -mfloat-abi=softfp to some xscale tests · d216761f
      	* gcc.target/arm/scd42-1.c: Add -mfloat-abi=softfp and appropriate
      	dg-skip-if.
      	* gcc.target/arm/scd42-3.c: Likewise.
      
      From-SVN: r225814
      Kyrylo Tkachov committed
    • MIPS: In mips.exp allow the post-arch code to be run when the pre-arch code… · 765a514d
      MIPS: In mips.exp allow the post-arch code to be run when the pre-arch code increases the isa_rev to mips32r6 or greater.
      
      testsuite/
      	* gcc.target/mips/mips.exp (mips-dg-options): Allow the post-arch
      	code to be run when the pre-arch code increases the isa_rev to
      	mips32r6 or greater.
      
      From-SVN: r225813
      Andrew Bennett committed
    • [gomp] Recycle last non-nested team if possible · 6dba0113
      libgomp/ChangeLog
      2015-07-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
      
      	* team.c (get_last_team): New.
      	(gomp_new_team): Recycle last non-nested team if possible.
      	(gomp_team_end): Move team work share list free lock destruction
      	to ...
      	(free_team): ... here.
      
      From-SVN: r225811
      Sebastian Huber committed
    • Add missing PR target/66731 to gcc/testsuite/Changelog · 290f6359
      From-SVN: r225810
      Szabolcs Nagy committed
    • genmatch.c (parser::peek, [...]): Add argument to tell how many tokens to peek ahead (default 1). · 64d3a1f0
      2015-07-15  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c (parser::peek, parser::peek_ident): Add argument
      	to tell how many tokens to peek ahead (default 1).
      	(parser::eat_token, parser::eat_ident): Return token consumed.
      	(parser::parse_result): Parse new switch statement.
      	* match.pd: Use case statements where appropriate.
      
      From-SVN: r225809
      Richard Biener committed
    • c-torture.exp (C_TORTURE_OPTIONS): Remove { -O3 -fomit-frame-pointer }... · a16bca31
      2015-07-15  Richard Biener  <rguenther@suse.de>
      
      	* lib/c-torture.exp (C_TORTURE_OPTIONS): Remove
      	{ -O3 -fomit-frame-pointer },
      	{ -O3 -fomit-frame-pointer -funroll-loops } and
      	{ -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions }
      	in favor of
      	{ -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer
      	  -finline-functions }
      	* lib/gcc-dg.exp (DG_TORTURE_OPTIONS): Likewise.
      	* gcc.c-torture/execute/builtins/builtins.exp: Add -fno-tracer
      	to additional_flags.
      
      From-SVN: r225808
      Richard Biener committed
    • re PR target/58066 (__tls_get_addr is called with misaligned stack on x86-64) · ac4ee457
      	PR rtl-optimization/58066
      	* calls.c (expand_call): Precompute register parameters before stack
      	alignment is performed.
      
      From-SVN: r225807
      Uros Bizjak committed
    • re PR rtl-optimization/66838 (Calling multiple SYSV AMD64 ABI functions from MS… · 7a708f68
      re PR rtl-optimization/66838 (Calling multiple SYSV AMD64 ABI functions from MS x64 ABI one results in clobbered parameters)
      
      	PR rtl-optimization/66838
      	* postreload.c (reload_cse_move2add): Also process
      	CALL_INSN_FUNCTION_USAGE when resetting information of
      	call-clobbered registers.
      
      testsuite/ChangeLog:
      
      	PR rtl-optimization/66838
      	* gcc.target/i386/pr66838.c: New test.
      
      From-SVN: r225806
      Uros Bizjak committed
    • Daily bump. · 73bf400d
      From-SVN: r225804
      GCC Administrator committed
    • re PR c++/66850 (Adding a forward declaration of a template containing a… · 09f725f4
      re PR c++/66850 (Adding a forward declaration of a template containing a template template parm causes ICE on valid code)
      
      Fix PR c++/66850
      
      gcc/cp/ChangeLog:
      
      	PR c++/66850
      	* pt.c (redeclare_class_template): Set the DECL_CONTEXTs of each
      	template template parm in the redeclaration.
      	(lookup_template_class_1): Peel off irrelevant template levels
      	from current_template_parms before augmenting the argument
      	list.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/66850
      	* g++.dg/template/pr66850.C: New test.
      
      From-SVN: r225801
      Patrick Palka committed
  3. 14 Jul, 2015 4 commits
    • constraints.md (U, v): New constraints. · 524d2e49
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/constraints.md (U, v): New constraints.
      	* config/nios2/predicates.md (rdprs_dcache_operand): New.
      	(ldstex_memory_operand): New.
      	* config/nios2/sync.md: New file.
      	* config/nios2/nios2.md (unspecv): Add new builtin function
      	UNSPECV codes.
      	(rdprs, flushd, flushda, wrpie, eni): New patterns.
      	(top-level): Include sync.md.
      	* config/nios2/nios2.c (N2_FTYPES): Add function types for
      	new builtins.
      	(N2_BUILTINS): Add arch field setting, add new builtins.
      	(enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
      	for arch field.
      	(nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
      	Also handle ldex/stex/ldsex/stsex builtins.
      	(nios2_expand_rdprs_builtin): New function.
      	(nios2_expand_cache_builtin): New function.
      	(nios2_expand_wrpie_builtin): New function.
      	(nios2_expand_eni_builtin): New function.
      	(nios2_expand_builtin): Add arch field handling and new builtin 
              cases.
      	* doc/extend.texi (Altera Nios II Built-in Functions): Document
      	new builtins.
      	* doc/md.texi (Machine Constraints): Document U and v constraints.
      
      	gcc/testsuite/
      	* gcc.target/nios2/nios2-flushd.c: New.
      	* gcc.target/nios2/nios2-rdprs.c: New.
      	* gcc.target/nios2/r2-atomic.c: New.
      	* gcc.target/nios2/r2-eni.c: New.
      	* gcc.target/nios2/r2-wrpie.c: New.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225800
      Sandra Loosemore committed
    • nios2-protos.h (nios2_expand_return): Declare. · c3ff2812
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2-protos.h (nios2_expand_return): Declare.
      	* config/nios2/nios2.c (struct GTY (()) machine_function): Add
      	callee_save_reg_size and uses_anonymous_args fields.
      	(nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
      	(nios2_create_cfa_notes): New function.
      	(nios2_adjust_stack): New function for adjusting stack.
      	(nios2_expand_prologue): Update for CDX push.n/pop.n usage.
      	Use nios2_adjust_stack.
      	(nios2_expand_epilogue): Likewise.
      	(nios2_expand_return): New function.
      	(nios2_can_use_return_insn): Update for CDX pop.n usage.
      	(nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
      	If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
      	* config/nios2/nios2.md (return): Use nios2_expand_return.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225799
      Sandra Loosemore committed
    • predicates.md (pop_operation): New. · aa32db37
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/predicates.md (pop_operation): New.
      	(ldwm_operation, stwm_operation): New.
      	(nios2_hard_register_operand): New.
      	* config/nios2/nios2-protos.h (pop_operation_p): Declare.
      	(ldstwm_operation_p): Declare.
      	(gen_ldstwm_peep): Declare.
      	* config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
      	(base_reg_adjustment_p): New.
      	(pop_operation_p): New.
      	(CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
      	(nios2_ldstwm_regset_p): New.
      	(ldstwm_operation_p): New.
      	(gen_ldst): New.
      	(nios2_ldst_parallel): New.
      	(struct ldswm_operand): Declare.
      	(compare_ldstwm_operands): New.
      	(can_use_cdx_ldstw): New.
      	(gen_ldstwm_peep): New.
      	* config/nios2/nios2-ldstwm.sml: New.
      	* config/nios2/nios2.md: Include ldstwm.md.
      	* config/nios2/ldstwm.md: Generated.
      
      	gcc/testsuite/
      	* gcc.target/nios2/cdx-ldstwm-1.c: New.
      	* gcc.target/nios2/cdx-ldstwm-2.c: New.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225798
      Sandra Loosemore committed
    • nios2.h (LABEL_ALIGN): Define. · 3bbbe009
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.h (LABEL_ALIGN): Define.
      	(REG_ALLOC_ORDER): Define.
      	(ADJUST_REG_ALLOC_ORDER): Define.
      	(HONOR_REG_ALLOC_ORDER): Define.
      	(CDX_REG_P): Define.
      	(ANDCLEAR_INT): Define.
      	* config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
      	(nios2_label_align): Declare.
      	(nios2_cdx_narrow_form_p): Declare.
      	(nios2_adjust_reg_alloc_order): Declare.
      	* config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
      	operation.
      	(nios2_large_unspec_reloc_p): New function, split from...
      	(nios2_legitimate_pic_operand_p): ...here.
      	(nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
      	(nios2_print_operand_punct_valid_p): New.
      	(nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
      	(split_mem_address): New.
      	(split_alu_insn): New.
      	(cdxreg): New.
      	(cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
      	(enum nios2_add_insn_kind): New.
      	(nios2_add_insn_names, nios2_add_insn_narrow): New.
      	(nios2_add_insn_classify): New.
      	(nios2_add_insn_asm): New.
      	(nios2_cdx_narrow_form_p): New.
      	(label_align, min_labelno, max_labelno): New.
      	(nios2_reorg): New.
      	(nios2_label_align): New.
      	(nios2_adjust_reg_alloc_order): New.
      	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
      	(TARGET_MACHINE_DEPENDENT_REORG): Define.
      	* config/nios2/constraints.md (P): New constraint.
      	* config/nios2/predicates.md (const_and_operand): New.
      	(and_operand): New.
      	(stack_memory_operand): New.
      	* config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
      	(length): Update to use nios2_cdx_narrow_form_p().
      	(type): Add new insn type values.
      	(control, alu, st, ld, shift): Update insn reservations with
      	new insn type values.
      	(*high, *lo_sum): Define new insn patterns for constant generation.
      	(movqi_internal, movhi_internal, movsi_internal): Reduce
      	alternatives, update asm template to handle CDX variants, update
      	type attributes.
      	(zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
      	template, update type attributes.
      	(extendhisi2, extendqi<mode>2): Likewise.
      	(addsi3): Change to use function for asm string.
      	(subsi3): Add CDX notation to asm template, update type attributes.
      	(negsi3, one_cmplsi3): Likewise.
      	(andsi3): New pattern, specialized from logical patterns.
      	(<code>si3): Remove and case, combine alternatives, update asm
      	template.
      	(<shift_op>si3): Add CDX notation, update type attributes.
      	(rotrsi3): Update type attribute.
      	(*merge, extzv, insv): New insn patterns.
      	(return): Change to define_expand.
      	(simple_return): Add CDX notation, update type attributes.
      	(indirect_jump): Add CDX notation.
      	(jump): Update asm cases, update length attribute expression.
      	(*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
      	(nios2_cbranch): Update asm cases and length attribute expression
      	to handle CDX variants.
      	(nios2_cmp<code>): Update asm template.
      	(nop): Add CDX notation, update type attributes.
      	(trap): Add CDX notation.
      	(ctrapsi4): Update asm cases and length attribute expression to
      	handle CDX variant.
      	* doc/md.texi (Machine Constraints): Document P constraint.
      
      	gcc/testsuite/
      	* gcc.target/nios2/andci.c: New.
      	* gcc.target/nios2/bmx.c: New.
      	* gcc.target/nios2/cdx-add.c: New.
      	* gcc.target/nios2/cdx-branch.c: New.
      	* gcc.target/nios2/cdx-callret.c: New.
      	* gcc.target/nios2/cdx-loadstore.c: New.
      	* gcc.target/nios2/cdx-logical.c: New.
      	* gcc.target/nios2/cdx-mov.c: New.
      	* gcc.target/nios2/cdx-shift.c: New.
      	* gcc.target/nios2/cdx-sub.c: New.
      	* gcc.target/nios2/nios2-trap-insn.c: Adjust pattern.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225796
      Sandra Loosemore committed