1. 27 Jun, 2013 1 commit
    • s390.c: Rename UNSPEC_CCU_TO_INT to UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to... · 5a3fe9b6
      2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
      
      	* config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
      	UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
      	(struct machine_function): Add tbegin_p.
      	(s390_canonicalize_comparison): Fold CC mode compares to
      	conditional jump if possible.
      	(s390_emit_jump): Return the emitted jump.
      	(s390_branch_condition_mask, s390_branch_condition_mnemonic):
      	Handle CCRAWmode compares.
      	(s390_option_override): Default to -mhtm if available.
      	(s390_reg_clobbered_rtx): Handle floating point regs as well.
      	(s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
      	FPRs instead of df_regs_ever_live_p.
      	(s390_optimize_nonescaping_tx): New function.
      	(s390_init_frame_layout): Extend clobbered_regs array to cover
      	FPRs as well.
      	(s390_emit_prologue): Call s390_optimize_nonescaping_tx.
      	(s390_expand_tbegin): New function.
      	(enum s390_builtin): New enum definition.
      	(code_for_builtin): New array definition.
      	(s390_init_builtins): New function.
      	(s390_expand_builtin): New function.
      	(TARGET_INIT_BUILTINS): Define.
      	(TARGET_EXPAND_BUILTIN): Define.
      	* common/config/s390/s390-common.c (processor_flags_table): Add
      	PF_TX.
      	* config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
      	(s390_alc_comparison): Likewise.
      	* config/s390/s390-modes.def: Add CCRAWmode.
      	* config/s390/s390.h (processor_flags): Add PF_TX.
      	(TARGET_CPU_HTM): Define macro.
      	(TARGET_HTM): Define macro.
      	(TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
      	* config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
      	UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
      	(UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
      	(UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum
      	values.
      	(TBEGIN_MASK, TBEGINC_MASK): New constants.
      	("*cc_to_int"): Move up.
      	("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
      	constants other than 0.
      	("*ccraw_to_int"): New insn and splitter definition.
      	("tbegin", "tbegin_nofloat", "tbegin_retry")
      	("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
      	("tx_assist"): New expander.
      	("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
      	("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
      	* config/s390/s390.opt: Add -mhtm option.
      	* config/s390/s390-protos.h (s390_emit_jump): Add return type.
      	* config/s390/htmxlintrin.h: New file.
      	* config/s390/htmintrin.h: New file.
      	* config/s390/s390intrin.h: New file.
      	* doc/extend.texi: Document htm builtins.
      	* config.gcc: Add the new header files to extra_headers.
      
      2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
      
      	* gcc.target/s390/htm-1.c: New file.
      	* gcc.target/s390/htm-nofloat-1.c: New file.
      	* gcc.target/s390/htm-xl-intrin-1.c: New file.
      
      2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
      
      	* config/s390/target.h: Include htmintrin.h.
      	(_HTM_ITM_RETRIES): New macro definition.
      	(htm_available, htm_init, htm_begin, htm_begin_success)
      	(htm_commit, htm_abort, htm_abort_should_retry): New functions.
      
      From-SVN: r200454
      Andreas Krebbel committed
  2. 23 Jun, 2013 2 commits
  3. 05 Jun, 2013 1 commit
  4. 29 Apr, 2013 1 commit
  5. 10 Jan, 2013 1 commit
  6. 26 Oct, 2012 3 commits
    • Update copyright · c88538b7
      From-SVN: r192859
      Andreas Schwab committed
    • Author: Gunther Nikl <gnikl@users.sourceforge.net> · 9eaff653
      * common/config/m68k/m68k-common.c (m68k_handle_option): Set
      gcc_options fields of opts_set for -m68020-40 and -m68020-60.
      
      From-SVN: r192851
      Gunther Nikl committed
    • ChangeLog/ · 3a0d99bb
              * gcc/common/config/i386/i386-common.c
              (OPTION_MASK_ISA_FXSR_SET): New.
              (OPTION_MASK_ISA_XSAVE_SET): Likewise.
              (OPTION_MASK_ISA_XSAVEOPT_SET): Likewise.
              (ix86_handle_option): Handle mfxsr, mxsave, mxsaveopt options.
              * gcc/config.gcc (i[34567]86-*-*): Add fxsrintrin.h,
              xsaveintrin.h, xsaveoptintrin.h.
              (x86_64-*-*): Likewise.
              * config/i386/fxsrintrin.h: New header.
              * config/i386/xsaveintrin.h: Likewise.
              * config/i386/xsaveoptintrin.h: Likewise.
              * gcc/config/i386/driver-i386.c (host_detect_local_cpu): Detect
              FXSR/XSAVE/XSAVEOPT support.
              * gcc/config/i386/i386-builtin-types.def
              (VOID_FTYPE_PVOID_INT64): New function type.
              * gcc/config/i386/i386-c.c: Define __FXSR__, __XSAVE__
              and __XSAVEOPT__ if needed.
              * gcc/config/i386/i386.c (ix86_target_string): Define -mfxsr,
               -mxsave and -mxsaveopt options.
              (PTA_FXSR): New.
              (PTA_XSAVE): Likewise.
              (PTA_XSAVEOPT): Likewise.
              (ix86_option_override_internal): Handle new option.
              (processor_alias_table): Added PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT.
              (ix86_valid_target_attribute_inner_p): Add OPT_mfxsr,
              OPT_mxsave, OPT_mxsaveopt.
              (ix86_builtins): Add IX86_BUILTIN_FXSAVE, IX86_BUILTIN_FXRSTOR,
              IX86_BUILTIN_FXSAVE64, IX86_BUILTIN_XSAVE, IX86_BUILTIN_XSAVE64,
              IX86_BUILTIN_XRSTOR, IX86_BUILTIN_XRSTOR64, IX86_BUILTIN_XSAVEOPT,
              IX86_BUILTIN_XSAVEOPT64.
              (ix86_expand_builtin): Handle these built-ins.
              * gcc/config/i386/i386.h (TARGET_FXSR): New.
              (TARGET_XSAVE): Likewise.
              (TARGET_XSAVEOPT): Likewise.
              * gcc/config/i386/i386.md (ANY_XSAVE): New int iterator.
              (ANY_XSAVE64): Likewise.
              (xsave): New int attribute.
              (fxsave): New instruction.
              (fxsave64): Likewise.
              (fxrstor): Likewise.
              (fxrstor64): Likewise.
              (<xsave>): Likewise.
              (<xsave>_rex64): Likewise.
              (xrstor): Likewise.
              (xrstor_rex64): Likewise.
              (xrstor64): Likewise.
              * gcc/config/i386/i386.opt (mfxsr): New.
              (mxsave): Likewise.
              (mxsaveopt): Likewise.
              * gcc/config/i386/x86intrin.h: Include
              xsaveintrin.h, fxsrintrin.h, xsaveoptintrin.h.
      
      testsuite/ChangeLog
              * gcc.target/i386/fxsave-1.c: New.
              * gcc.target/i386/fxsave64-1.c: Ditto.
              * gcc.target/i386/fxrstor-1.c: Ditto.
              * gcc.target/i386/fxrstor64-1.c: Ditto.
              * gcc.target/i386/xsave-1.c: Ditto.
              * gcc.target/i386/xsave64-1.c: Ditto.
              * gcc.target/i386/xrstor-1.c: Ditto.
              * gcc.target/i386/xrstor64-1.c: Ditto.
              * gcc.target/i386/xsaveopt-1.c: Ditto.
              * gcc.target/i386/xsaveopt64-1.c: Ditto.
              * gcc.target/i386/sse-12.c: Add -mfxsr, -mxsaveopt.
              * gcc.target/i386/sse-13.c: Ditto.
              * gcc.target/i386/sse-14.c: Ditto.
              * gcc.target/i386/sse-22.c: Ditto.
              * gcc.target/i386/sse-23.c: Ditto.
              * g++.dg/other/i386-2.C: Ditto.
              * g++.dg/other/i386-3.C: Ditto.
      
      
      Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
      
      From-SVN: r192840
      Alexander Ivchenko committed
  7. 23 Oct, 2012 1 commit
    • AArch64 [3/10] · 43e9d192
      2012-10-23  Ian Bolton  <ian.bolton@arm.com>
      	    James Greenhalgh  <james.greenhalgh@arm.com>
      	    Jim MacArthur  <jim.macarthur@arm.com>
      	    Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
      	    Marcus Shawcroft  <marcus.shawcroft@arm.com>
      	    Nigel Stephens  <nigel.stephens@arm.com>
      	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      	    Richard Earnshaw  <rearnsha@arm.com>
      	    Sofiane Naci  <sofiane.naci@arm.com>
      	    Stephen Thomas  <stephen.thomas@arm.com>
      	    Tejas Belagod  <tejas.belagod@arm.com>
      	    Yufeng Zhang  <yufeng.zhang@arm.com>
      
      	* common/config/aarch64/aarch64-common.c: New file.
      	* config/aarch64/aarch64-arches.def: New file.
      	* config/aarch64/aarch64-builtins.c: New file.
      	* config/aarch64/aarch64-cores.def: New file.
      	* config/aarch64/aarch64-elf-raw.h: New file.
      	* config/aarch64/aarch64-elf.h: New file.
      	* config/aarch64/aarch64-generic.md: New file.
      	* config/aarch64/aarch64-linux.h: New file.
      	* config/aarch64/aarch64-modes.def: New file.
      	* config/aarch64/aarch64-option-extensions.def: New file.
      	* config/aarch64/aarch64-opts.h: New file.
      	* config/aarch64/aarch64-protos.h: New file.
      	* config/aarch64/aarch64-simd.md: New file.
      	* config/aarch64/aarch64-tune.md: New file.
      	* config/aarch64/aarch64.c: New file.
      	* config/aarch64/aarch64.h: New file.
      	* config/aarch64/aarch64.md: New file.
      	* config/aarch64/aarch64.opt: New file.
      	* config/aarch64/arm_neon.h: New file.
      	* config/aarch64/constraints.md: New file.
      	* config/aarch64/gentune.sh: New file.
      	* config/aarch64/iterators.md: New file.
      	* config/aarch64/large.md: New file.
      	* config/aarch64/predicates.md: New file.
      	* config/aarch64/small.md: New file.
      	* config/aarch64/sync.md: New file.
      	* config/aarch64/t-aarch64-linux: New file.
      	* config/aarch64/t-aarch64: New file.
      
      
      Co-Authored-By: Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
      Co-Authored-By: James Greenhalgh <james.greenhalgh@arm.com>
      Co-Authored-By: Jim MacArthur <jim.macarthur@arm.com>
      Co-Authored-By: Marcus Shawcroft <marcus.shawcroft@arm.com>
      Co-Authored-By: Nigel Stephens <nigel.stephens@arm.com>
      Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
      Co-Authored-By: Richard Earnshaw <rearnsha@arm.com>
      Co-Authored-By: Sofiane Naci <sofiane.naci@arm.com>
      Co-Authored-By: Stephen Thomas <stephen.thomas@arm.com>
      Co-Authored-By: Tejas Belagod <tejas.belagod@arm.com>
      Co-Authored-By: Yufeng Zhang <yufeng.zhang@arm.com>
      
      From-SVN: r192723
      Ian Bolton committed
  8. 17 Oct, 2012 1 commit
    • rs6000.opt (rs6000_isa_flags): New flag word to replace target_flags that gives… · 4d967549
      rs6000.opt (rs6000_isa_flags): New flag word to replace target_flags that gives us 63 possible switches.
      
      2012-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.opt (rs6000_isa_flags): New flag word to
      	replace target_flags that gives us 63 possible switches.
      	(x_rs6000_isa_flags): Save area for rs6000_isa_flags.
      	(x_rs6000_isa_flags_explicit): Save area for
      	rs6000_isa_flags_explicit.
      	(rs6000_target_flags_explicit): Delete in favor of
      	x_rs6000_isa_flags_explicit.
      	(-mpowerpc64): Change all switches that used to be in target_flags
      	to now be in rs6000_isa_flags.  In using rs6000_isa_flags, the
      	options machinary will generate names of the form OPITON_<xxx>
      	instead of TARGET_<xxx> and OPTION_MASK_<xxx> instead of
      	MASK_<xxx>.
      	(-mpowerpc-gpopt): Likewise.
      	(-mpowerpc-gfxopt): Likewise.
      	(-mmfcrf): Likewise.
      	(-mpopcntb): Likewise.
      	(-mfprnd): Likewise.
      	(-mcmpb): Likewise.
      	(-mmfpgpr): Likewise.
      	(-maltivec): Likewise.
      	(-mhard-dfp): Likewise.
      	(-mmulhw): Likewise.
      	(-mdlmzb): Likewise.
      	(-mmultiple): Likewise.
      	(-mstring): Likewise.
      	(-msoft-float): Likewise.
      	(-mhard-float): Likewise.
      	(-mpopcntd): Likewise.
      	(-mvsx): Likewise.
      	(-mno-update): Likewise.
      	(-mupdate): Likewise.
      	(-mrecip-precision): Likewise.
      	(-mminimal-toc): Likewise.
      	(-misel): Likewise.
      	* config/rs6000/aix64.opt (-maix64): Likewise.
      	(-maix32): Likewise.
      	* config/rs6000/sysv4.opt (-mstrict-align): Likewise.
      	(-mrelocatable): Likewise.
      	(-mlittle-endian): Likewise.
      	(-mlittle): Likewise.
      	(-mbig-endian): LIkewise.
      	(-mbig): Likewise.
      	(-meabi): Likewise.
      	(-m64): Likewise.
      	(-m32): Likewise.
      	* config/rs6000/darwin.opt (-m64): Likewise.
      	(-m32): Likewise.
      
      	* config/rs6000/rs6000-cpus.def (ISA_2_1_MASKS): Move the various
      	masks used in rs6000.c here, since they are more logically in this
      	file.  Convert from being enums to just #defines, since the types
      	of these masks is now HOST_WIDE_INT instead of int.  For
      	POWERPC_MASKS, add MASK_SOFT_FLOAT, since the only use case or'ed
      	in the mask.  Change the use in rs6000.c not to do the OR of
      	MASK_SOFT_FLOAT.
      	(ISA_2_1_MASKS): Likewise.
      	(ISA_2_2_MASKS): Likewise.
      	(ISA_2_4_MASKS): Likewise.
      	(ISA_2_5_MASKS_EMBEDDED): Likewise.
      	(ISA_2_5_MASKS_SERVER): Likewise.
      	(POWERPC_7400_MASK): Likewise.
      	(POWERPC_MASKS): Likewise.
      	* config/rs6000/rs6000.c (ISA_2_1_MASKS): Likewise.
      	(ISA_2_1_MASKS): Likewise.
      	(ISA_2_2_MASKS): Likewise.
      	(ISA_2_4_MASKS): Likewise.
      	(ISA_2_5_MASKS_EMBEDDED): Likewise.
      	(ISA_2_5_MASKS_SERVER): Likewise.
      	(POWERPC_7400_MASK): Likewise.
      	(POWERPC_MASKS): Likewise.
      	(rs6000_option_override_internal): Likewise.
      
      	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Change
      	all uses of target_flags to rs6000_isa_flags.  Change all uses of
      	target_flags_explicit to rs6000_isa_flags_explicit.  Change the
      	use of MASK_<xxx> to OPTION_MASK_<xxx> that options.h defines when
      	we use a secondary flags word.  Save/restore/print the new flags
      	word when switching contexts with different target attributes.
      	(rs6000_option_override_internal): Likewise.
      	(rs6000_darwin_file_start): Likewise.
      	(rs6000_opt_masks): Likewise.
      	(rs6000_inner_target_options): Likewise.
      	(rs6000_pragma_target_parse): Likewise.
      	(rs6000_set_current_function): Likewise.
      	(rs6000_function_specific_save): Likewise.
      	(rs6000_function_specific_restore): Likewise.
      	(rs6000_function_specific_print): Likewise.
      	(rs6000_can_inline_p): Likewise.
      	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
      	Likewise.
      	(rs6000_cpu_cpp_builtins): Likewise.
      	* common/config/rs6000/rs6000-driver.c (rs6000_handle_option):
      	Likewise.
      
      	* config/rs6000/rs6000.h (MASK_ALTIVEC): In moving to using
      	Var(...) for all of the isa switches, the options machinery now
      	uses OPTION_MASK_<xxx> instead of MASK_<xxx> for the mask name.
      	Use #define to map the old name into the new name.  For switches
      	that are defined in aix64.opt, sysv4.opt, and darwin.opt, only do
      	the definition if those switches were defined.
      	(MASK_ALTIVEC): Likewise.
      	(MASK_CMPB): Likewise.
      	(MASK_DFP): Likewise.
      	(MASK_DLMZB): Likewise.
      	(MASK_EABI): Likewise.
      	(MASK_FPRND): Likewise.
      	(MASK_HARD_FLOAT): Likewise.
      	(MASK_ISEL): Likewise.
      	(MASK_MFCRF): Likewise.
      	(MASK_MFPGPR): Likewise.
      	(MASK_MULHW): Likewise.
      	(MASK_MULTIPLE): Likewise.
      	(MASK_NO_UPDATE): Likewise.
      	(MASK_POPCNTB): Likewise.
      	(MASK_POPCNTD): Likewise.
      	(MASK_PPC_GFXOPT): Likewise.
      	(MASK_PPC_GPOPT): Likewise.
      	(MASK_RECIP_PRECISION): Likewise.
      	(MASK_SOFT_FLOAT): Likewise.
      	(MASK_STRICT_ALIGN): Likewise.
      	(MASK_STRING): Likewise.
      	(MASK_UPDATE): Likewise.
      	(MASK_VSX): Likewise.
      	(MASK_POWERPC64): Likewise.
      	(MASK_64BIT): Likewise.
      	(MASK_RELOCATABLE): Likewise.
      	(MASK_LITTLE_ENDIAN): Likewise.
      	(MASK_MINIMAL_TOC): Likewise.
      	(MASK_REGNAMES): Likewise.
      	(MASK_PROTOTYPE): Likewise.
      	(rs6000_isa_flags_explicit): Define in terms of the
      	global_options_set structure.
      
      	* gcc/config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS):
      	Change use of target_flags to rs6000_isa_flags,
      	target_flags_explicit to rs6000_isa_flags_explicit, and MASK_<xxx>
      	to OPTION_MASK_<xxx>.
      	* gcc/config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS):
      	Likewise.
      	* gcc/config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS):
      	Likewise.
      	* gcc/config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS):
      	Likewise.
      	* gcc/config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS):
      	Likewise.
      	* gcc/config/rs6000/freebsd64.h (RELOCATABLE_NEEDS_FIXUP):
      	Likewise.
      	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
      	* gcc/config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP):
      	Likewise.
      	* gcc/config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP):
      	Likewise.
      	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
      	(OPTION_LITTLE_ENDIAN): Likewise.
      	(OPTION_RELOCATABLE): Likewise.
      	(OPTION_EABI): Likewise.
      	(OPTION_PROTOTYPE): Likewise.
      	* gcc/config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
      	* gcc/config/rs6000/option-defaults.h (OPTION_MASK_64BIT):
      	Likewise.
      	(OPT_ARCH32): Likewise.
      	(OPT_ARCH64): Likewise.
      	* gcc/config/rs6000/sysv4.h (TARGET_TOC): Likewise.
      	(SUBTARGET_OVERRIDE_OPTIONS): Likewise.
      	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
      	(TARGET_OS_SYSV_CPP_BUILTINS): Likewise.
      
      	* config/rs6000/t-rs6000 (rs6000.o): Add rs6000-cpus.def as a
      	dependency.
      
      From-SVN: r192545
      Michael Meissner committed
  9. 10 Oct, 2012 1 commit
    • config.gcc: Enable zEC12 for with-arch and with-tune configure switches. · 22ac2c2f
      2012-10-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
      
      	* config.gcc: Enable zEC12 for with-arch and with-tune
                configure switches.
      	* common/config/s390/s390-common.c (processor_flags_table): Add
      	zEC12 entry.
      	* config/s390/2827.md: New file.
      	* config/s390/s390-opts.h (enum processor_type): Add
      	PROCESSOR_2827_ZEC12.
      	* config/s390/s390.h (enum processor_flags): Add PF_ZEC12.
      	(TARGET_CPU_ZEC12, TARGET_ZEC12): New macro definitions.
      	* config/s390/s390.c (zEC12_cost): New definition.
      	(s390_option_override): Set costs for zEC12.
      	Set parameter defaults for zEC12.
      	(legitimate_reload_fp_constant_p): Adjust comment.
      	(preferred_la_operand_p): Adjust comment.
      	(s390_expand_insv): Generate insv pattern without CC clobber for
      	zEC12.
      	(s390_adjust_priority): Add zEC12 check.
      	(s390_issue_rate): Return 2 for zEC12.
      	(s390_reorg): Enable code optimizations for zEC12.
      	(s390_sched_reorder): Reorder insns according to OOO attributes.
      	(s390_get_sched_attrmask): New function.
      	(s390_sched_score): New function.
      	(s390_sched_variable_issue): Update s390_sched_state.
      	(s390_sched_init): Reset s390_sched_state.
      	(s390_loop_unroll_adjust): Enable for zEC12.
      	* config/s390/s390.opt: Add zEC12 processor type value.
      	* config/s390/s390.md: Enable mnemonic attribute.
      	(attr cpu, cpu_facility): Add zEC12.
      	Include 2827.md.
      	("*insv<mode>_zEC12", "*insv<mode>_zEC12_noshift")
      	("*load_and_trap<mode>"): New insn definition.
      	("*cmp_and_trap_unsigned_int<mode>"): Add clt and clgt.
      
      From-SVN: r192289
      Andreas Krebbel committed
  10. 19 Sep, 2012 1 commit
  11. 02 Sep, 2012 1 commit
  12. 16 Aug, 2012 1 commit
    • rs6000-common.c (rs6000_handle_option): Delete handling for -mno-powerpc and -mpowerpc. · a441dedb
      2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>
      
      gcc/
      	* common/config/rs6000/rs6000-common.c (rs6000_handle_option):
      	Delete handling for -mno-powerpc and -mpowerpc.
      	* config/rs6000/aix43.h (ASM_CPU_SPEC): Similar.
      	(ASM_DEFAULT_SPEC): Use -mppc instead of -mcom.
      	* config/rs6000/aix51.h (ASM_CPU_SPEC, ASM_DEFAULT_SPEC): Ditto.
      	* config/rs6000/aix52.h (TARGET_DEFAULT): Delete MASK_POWERPC.
      	* config/rs6000/aix53.h (TARGET_DEFAULT): Ditto.
      	* config/rs6000/aix61.h (TARGET_DEFAULT): Ditto.
      	* config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
      	* config/rs6000/darwin64.h (TARGET_DEFAULT): Ditto.
      	* config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
      	* config/rs6000/driver-rs6000.c (asm_names): Delete handling
      	for -mcpu=common and -mpowerpc.
      	* config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_POWERPC.
      	* config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
      	* config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
      	* config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
      	* config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
      	* config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING):
      	Use RS6000_BTM_ALWAYS instead of RS6000_BTM_POWERPC.
      	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
      	Adjust.
      	(rs6000_cpu_cpp_builtins): Adjust.
      	* config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete MASK_POWERPC.
      	(rs6000_builtin_mask_calculate): Adjust.
      	(rs6000_emit_move): Delete code for ! TARGET_POWERPC.
      	(rs6000_init_libfuncs): Ditto.
      	(rs6000_output_function_prologue): Ditto.
      	(rs6000_opt_masks): Delete MASK_POWERPC.
      	(rs6000_builtin_mask_names): Delete RS6000_BTM_POWERPC.
      	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete handling for
      	-mpowerpc.
      	(RS6000_BTM_POWERPC): Delete.
      	(RS6000_BTM_COMMON): Delete RS6000_BTM_POWERPC.
      	* config/rs6000/rs6000.md (extendqisi2 patterns): Adjust for
      	TARGET_POWERPC always on.
      	(extendqihi2 patterns): Similar.
      	(various unnamed subtract patterns): Similar.
      	(bswaphi2 patterns): Similar.
      	(divmodsi4): Similar.
      	(udiv<GPR:mode>3): Similar.
      	(div<GPR:mode>3 patterns): Similar.
      	(udivmodsi4): Similar.
      	(mulhcall): Delete.
      	(mullcall): Delete.
      	(divss_call): Delete.
      	(divus_call): Delete.
      	(quoss_call): Delete.
      	(quous_call): Delete.
      	(insvsi patterns): Adjust.
      	(addsf3 patterns): Adjust.
      	(subsf3 patterns): Adjust.
      	(mulsf3 patterns): Adjust.
      	(divsf3 patterns): Adjust.
      	(*fmasf4_fpr): Adjust.
      	(*fmssf4_fpr): Adjust.
      	(*nfmasf4_fpr): Adjust.
      	(*nfmssf4_fpr): Adjust.
      	(*floatunssidf2_internal): Adjust.
      	(fix_trunc<SFDF:mode>si2_internal): Adjust.
      	(fctiwz_<SFDF:mode>): Adjust.
      	(mulsidi3 patterns): Adjust.
      	(smulsi3_highpart patterns): Adjust.
      	(umulsi3_highpart patterns): Adjust.
      	(fix_trunctfsi2 patterns): Adjust.
      	(prefetch): Adjust.
      	* config/rs6000/rs6000.opt (mpowerpc): Replace by stub option.
      	(mno-powerpc): Delete.
      	* config/rs6000/sync.md (load_locked<ATOMIC:mode>): Adjust.
      	(store_conditional<ATOMIC:mode>): Adjust.
      	(atomic_compare_and_swap<ATOMIC:mode>): Adjust.
      	(atomic_exchange<ATOMIC:mode>): Adjust.
      	(atomic_<fetchop_name><ATOMIC:mode>): Adjust.
      	(atomic_nand<ATOMIC:mode>): Adjust.
      	(atomic_fetch_<fetchop_name><ATOMIC:mode>): Adjust.
      	(atomic_fetch_nand<ATOMIC:mode>): Adjust.
      	(atomic_<fetchop_name>_fetch<ATOMIC:mode>): Adjust.
      	(atomic_nand_fetch<ATOMIC:mode>): Adjust.
      	* config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_POWERPC.
      	* config/rs6000/sysv4le.h (TARGET_DEFAULT): Ditto.
      	* config/rs6000/vxworks.h (TARGET_DEFAULT): Ditto.
      	* doc/invoke.texi: Adjust documentation.
      
      From-SVN: r190430
      Segher Boessenkool committed
  13. 08 Aug, 2012 1 commit
    • i386-common.c (OPTION_MASK_ISA_ADX_SET): New. · d05e383b
      ChangeLog:
      2012-08-08 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
      
              * common/config/i386/i386-common.c (OPTION_MASK_ISA_ADX_SET): New.
              (OPTION_MASK_ISA_ADX_UNSET): Likewise.
              (ix86_handle_option): Handle madx option.
              * config.gcc (i[34567]86-*-*): Add adxintrin.h.
              (x86_64-*-*): Likewise.
              * config/i386/adxintrin.h: New header.
              * config/i386/driver-i386.c (host_detect_local_cpu): Detect ADCX/ADOX
              support.
              * config/i386/i386-builtin-types.def
              (UCHAR_FTYPE_UCHAR_UINT_UINT_PUNSIGNED): New function type.
              (UCHAR_FTYPE_UCHAR_ULONGLONG_ULONGLONG_PULONGLONG): Likewise.
              * config/i386/i386-c.c: Define __ADX__ if needed.
              * config/i386/i386.c (ix86_target_string): Define -madx option.
              (PTA_ADX): New.
              (ix86_option_override_internal): Handle new option.
              (ix86_valid_target_attribute_inner_p): Add OPT_madx.
              (ix86_builtins): Add IX86_BUILTIN_ADDCARRYX32,
              IX86_BUILTIN_ADDCARRYX64.
              (ix86_init_mmx_sse_builtins): Define corresponding built-ins.
              (ix86_expand_builtin): Handle these built-ins.
              (ix86_expand_args_builtin): Handle new function types.
              * config/i386/i386.h (TARGET_ADX): New.
              * config/i386/i386.md (adcx<mode>3): New define_insn.
              * config/i386/i386.opt (madx): New.
              * config/i386/x86intrin.h: Include adxintrin.h.
      
      testsuite/ChangeLog:
              * gcc.target/i386/adx-addcarryx32-1.c: New.
              * gcc.target/i386/adx-addcarryx32-2.c: New.
              * gcc.target/i386/adx-addcarryx64-1.c: New.
              * gcc.target/i386/adx-addcarryx64-2.c: New.
              * gcc.target/i386/adx-check.h: New.
              * gcc.target/i386/i386.exp (check_effective_target_adx): New.
              * gcc.target/i386/sse-12.c: Add -madx.
              * gcc.target/i386/sse-13.c: Ditto.
              * gcc.target/i386/sse-14.c: Ditto.
              * gcc.target/i386/sse-22.c: Ditto.
              * gcc.target/i386/sse-23.c: Ditto.
              * g++.dg/other/i386-2.C: Ditto.
              * g++.dg/other/i386-3.C: Ditto.
      
      From-SVN: r190227
      Michael Zolotukhin committed
  14. 30 Jul, 2012 1 commit
    • i386-common.c (OPTION_MASK_ISA_RDSEED_SET): New. · 4c340b5d
      /
              * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDSEED_SET): New.
              (OPTION_MASK_ISA_RDSEED_UNSET): Likewise.
              (ix86_handle_option): Handle mrdseed option.
              * config.gcc (i[34567]86-*-*): Add rdseedintrin.h.
              (x86_64-*-*): Likewise.
              * config/i386/prfchwintrin.h: New header.
              * config/i386/cpuid.h (bit_RDSEED): New.
              * config/i386/driver-i386.c (host_detect_local_cpu): Detect
              RDSEED support.
              * config/i386/i386-c.c: Define __RDSEED__ if needed.
              * config/i386/i386.c (ix86_target_string): Define
              -mrdseed option.
              (PTA_RDSEED): New.
              (ix86_option_override_internal): Handle new option.
              (ix86_valid_target_attribute_inner_p): Add OPT_mrdseed.
              (ix86_builtins): Add enum entries for RDSEED* builtins.
              (ix86_init_mmx_sse_builtins): Define new builtins.
              (ix86_expand_builtin): Expand RDSEED* builtins.
              * config/i386/i386.h (TARGET_RDSEED): New.
              * config/i386/i386.md (rdseed<mode>_1): New.
              * config/i386/i386.opt (mrdseed): New.
              * config/i386/x86intrin.h: Include rdseedintrin.h.
      
      testsuite/
              * gcc.target/i386/rdseed16-1.c: New.
              * gcc.target/i386/rdseed32-1.c: Ditto
              * gcc.target/i386/rdseed64-1.c: Ditto
              * gcc.target/i386/sse-12.c: Add -mrdseed.
              * gcc.target/i386/sse-13.c: Ditto.
              * gcc.target/i386/sse-14.c: Ditto.
              * g++.dg/other/i386-2.C: Ditto.
              * g++.dg/other/i386-3.C: Ditto.
      
      
      
      
      Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
      
      From-SVN: r189973
      Kirill Yukhin committed
  15. 27 Jul, 2012 1 commit
    • rs6000-common.c (rs6000_handle_option): Delete code for -mno-power, -mpower, and -mpower2. · c28a7c24
      2012-07-26  Segher Boessenkool  <segher@kernel.crashing.org>
      
      gcc/
              * common/config/rs6000/rs6000-common.c (rs6000_handle_option):
              Delete code for -mno-power, -mpower, and -mpower2.
              * config/rs6000/aix43.h (NON_POWERPC_MASKS): Delete.
              (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
              with -maix64.
              (ASM_CPU_SPEC): Delete support for POWER and POWER2.
              * config/rs6000/aix51.h (NON_POWERPC_MASKS): Delete.
              (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
              with -maix64.
              (ASM_CPU_SPEC): Delete support for POWER and POWER2.
              * config/rs6000/aix52.h (NON_POWERPC_MASKS): Delete.
              (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
              with -maix64.
              (TARGET_POWER): Delete.
              * config/rs6000/aix53.h (NON_POWERPC_MASKS): Delete.
              (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
              with -maix64.
              (TARGET_POWER): Delete.
              * config/rs6000/aix61.h (NON_POWERPC_MASKS): Delete.
              (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
              with -maix64.
              (TARGET_POWER): Delete.
              * config/rs6000/darwin.h (TARGET_POWER): Delete.
              * config/rs6000/driver-rs6000.c (struct asm_names): Delete
              support for -mpower, -mpower2, and -mno-power.
              * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
              Likewise.
              (rs6000_cpu_cpp_builtins): Likewise.
              * config/rs6000/rs6000-cpus.def: Likewise.
              * config/rs6000/rs6000-tables.opt: Regenerate.
              * config/rs6000/rs6000.c (POWER_MASKS): Delete.
              (rs6000_option_override_internal): Adjust.
              (rs6000_conditional_register_usage): Adjust.
              (rs6000_emit_move): Adjust.
              (rs6000_common_init_builtins): Adjust.
              (rs6000_init_libfuncs): Adjust.
              (rs6000_output_function_prologue): Adjust.
              (rs6000_adjust_cost): Adjust.
              (struct rs6000_opt_masks): Delete MASK_POWER and MASK_POWER2.
              * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
              POWER and POWER2.
              (TARGET_DEFAULT): Adjust.
              (PROCESSOR_POWER): Delete.
              (SHIFT_COUNT_TRUNCATED): Adjust.
              * config/rs6000/rs6000.md (extendqisi2): Delete POWER support.
              (extendqisi2_power): Delete.
              (extendqisi2_no_power): Adjust.
              (extendqihi2, extendqihi2_power, extendqihi2_no_power):
              Likewise.
              (sminsi3, smaxsi3, uminsi3, umaxsi3): Adjust.
              (anonymous doz insn patterns): Delete.
              (abssi2): Adjust.
              (abssi2_power): Delete.
              (abssi2_nopower): Adjust.
              (nabs_power, nabs_nopower): Likewise.
              (mulsi3, mulsi3_mq, mulsi3_no_mq, mulsi3_mq_internal1):
              Likewise.  Delete anonymous post-reload splitter.
              (mulsi3_no_mq_internal1): rename to...
              (mulsi3_internal1): New define_insn.
              (mulsi3_mq_internal2, mulsi3_no_mq_internal2, mulsi3_internal2):
              Likewise.
              (divmodsi4, divmodsi4_internal, udiv<mode>3, udivsi3_mq,
              udivsi3_no_mq, udivsi3, div<mode>3, divsi3_mq, div<mode>3_no_mq,
              udivmodsi4_normal, udivmodsi4_tests, udivmodsi4): Likewise.
              (mulh_call, mull_call, divss_call, divus_call, quoss_call,
              quous_call): Likewise.
              (maskir_internal1, maskir_internal2, maskir_internal3,
              maskir_internal4, maskir_internal5, maskir_internal6,
              maskir_internal7, maskir_internal8): Delete.
              (ashlsi3, ashlsi3_power, ashlsi3_no_power): Adjust.
              (anonymous sl insn patterns): Delete.
              (lshrsi3, lshrsi3_power, lshrsi3_no_power): Adjust.
              (lshrsi3_64): Adjust.
              (anonymous sr insn patterns): Delete.
              (anonymous rrib insn patterns): Delete.
              (ashrsi3, ashrsi3_power, ashrsi3_no_power): Adjust.
              (anonymous sra insn patterns): Delete.
              (sqrtsf2, sqrtdf2, sqrtdf2_fpr): Adjust.
              (fix_trunc<mode>si2, fix_trunc<mode>si2_internal,
              fctiwz_<mode>): Adjust.
              (mulsidi3, mulsidi3_mq, mulsidi3_no_mq, umulsidi3, umulsidi3_mq,
              umulsidi3_no_mq, smulsi3_highpart, smulsi3_highpart_mq,
              smulsi3_highpart_no_mq, umulsi3_highpart, umulsi3_highpart_mq,
              umulsi3_highpart_no_mq): Adjust.
              (ashldi3_power, lshrdi3_power, ashrdi3_power): Delete.
              (ashrdi3_no_power, ashldi3, ashldi3_internal1,
              lshrdi3_internal1): Adjust.
              (fix_trunctfsi2, fix_trunctfsi2_fprs): Adjust.
              (movti_power): Delete.
              (movti_string): Adjust.
              (stmsi8, stmsi7, stmsi6, stmsi5, stmsi4, stmsi3): Adjust.
              (stmsi8_power, stmsi7_power, stmsi6_power, stmsi5_power,
              stmsi4_power, stmsi3_power): Delete.
              (anonymous movmemsi insn patterns): Adjust.
              (lfq_power2, stfq_power2): Delete.
              (eq<mode>, eq<mode>_compare): Adjust.
              (eqsi_power): Delete.
              (ne0si): Adjust.
              (anonymous le, lt, ge, gt insn patterns): Delete.
              * config/rs6000/rs6000.opt (mpower, mno-power, mpower2): Delete.
              * config/rs6000/sysv4.h (TARGET_POWER): Delete.
              * config/rs6000/t-aix43 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
              MULTILIB_MATCHES): Adjust.
              * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
              -mpower, -mno-power, -mpower2, -mno-power2 documentation.
              Delete -mcpu=power and -mcpu=power2 documentation.
      
      gcc/testsuite/
      
              * gcc.target/powerpc/rs6000-power2-1.c: Delete.
              * gcc.target/powerpc/rs6000-power2-2.c: Delete.
      
      From-SVN: r189908
      Segher Boessenkool committed
  16. 25 Jul, 2012 1 commit
    • Changelog entry: · e61c94dd
      2012-07-25  Kirill Yukhin  <kirill.yukhin@intel.com>
                  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
      
              * common/config/i386/i386-common.c (OPTION_MASK_ISA_PRFCHW_SET): New.
              (OPTION_MASK_ISA_PRFCHW_UNSET): Likewise.
              (ix86_handle_option): Handle mprfchw option.
              * config.gcc (i[34567]86-*-*): Add prfchwintrin.h.
              (x86_64-*-*): Likewise.
              * config/i386/prfchwintrin.h: New header.
              * config/i386/cpuid.h (bit_PRFCHW): New.
              (bit_BMI): Formatting fix.
              (bit_HLE): Likewise.
              (bit_RTM): Likewise.
              * config/i386/driver-i386.c (host_detect_local_cpu): Detect
              PREFETCHW support.
              * config/i386/i386-c.c: Define __PRFCHW__ if needed.
              * config/i386/i386.c (ix86_target_string): Define
              -mprfchw option. Formatting fixes.
              (PTA_HLE): Formatting fix.
              (PTA_PRFCHW): New.
              (ix86_option_override_internal): Handle new option.
              (ix86_valid_target_attribute_inner_p): Add OPT_mprfchw.
              * config/i386/i386.h (TARGET_PRFCHW): New.
              * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW.
              * config/i386/i386.opt (mprfchw): New.
              * config/i386/mm3dnow.h: Move _m_prefetchw from here to
              prfchwintrin.h.
              * config/i386/x86intrin.h: Include prfchwintrin.h.
      
      testsuite/Changelog entry:
      2012-07-24  Kirill Yukhin  <kirill.yukhin@intel.com>
                  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
      
              * gcc.target/i386/prefetchw-1.c: New.
              * gcc.target/i386/sse-12.c: Add -mprfchw.
              * gcc.target/i386/sse-13.c: Ditto.
              * gcc.target/i386/sse-14.c: Ditto.
              * g++.dg/other/i386-2.C: Ditto.
              * g++.dg/other/i386-3.C: Ditto.
      
      
      
      
      Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
      
      From-SVN: r189844
      Kirill Yukhin committed
  17. 19 Jul, 2012 1 commit
    • eh_personality.cc (__gxx_personality_seh0): New function. · bf1431e3
      libstdc++-v3/
      	* libsupc++/eh_personality.cc (__gxx_personality_seh0): New function.
      	Adjust for SEH.
      	* config/abi/pre/gnu.ver: Add __gxx_personality_seh0.
      
      libobjc/
      	* exception.c (__gnu_objc_personality_seh0): New function.
      
      libjava/
      	* libgcj.ver: Add __gcj_personality_seh0.
      	* exception.cc (__gcj_personality_seh0): New function.
      	Adjust for SEH.
      
      libgcc/
      	* unwind-seh.c: New file.
      	* unwind-generic.h: Include windows.h for SEH.
      	(_Unwind_Exception): Use 6 private fields for SEH.
      	(_GCC_specific_handler): Declare.
      	* unwind-c.c (__gcc_personality_seh0): New function.
      	Adjust for SEH.
      	* config/i386/libgcc-cygming.ver: New file.
      	* config/i386/t-seh-eh: New file.
      	* config.host (x86_64-*-mingw*): Default to seh.
      
      gcc/
      	* opts.c (finish_options): Handle UI_SEH.
      	* expr.c (build_personality_function): Handle UI_SEH.
      	* dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH.
      	* coretypes.h (unwind_info_type): Add UI_SEH.
      	* config/i386/winnt.c (i386_pe_seh_emit_except_personality):
      	New function.
      	(i386_pe_seh_init_sections): Likewise.
      	* config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define.
      	(TARGET_ASM_INIT_SECTIONS): Define.
      	* common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define.
      	(i386_except_unwind_info): New function.
      
      
      Co-Authored-By: Richard Henderson <rth@redhat.com>
      
      From-SVN: r189644
      Tristan Gingold committed
  18. 17 Jul, 2012 1 commit
  19. 06 Jun, 2012 1 commit
    • invoke.texi (sched-pressure-algorithm): Document new --param. · c881de02
      gcc/
      	* doc/invoke.texi (sched-pressure-algorithm): Document new --param.
      	* common.opt (fsched-pressure-algorithm=): Remove.
      	* flag-types.h (sched_pressure_algorithm): Move to...
      	* sched-int.h (sched_pressure_algorithm): ...here.
      	* params.def (sched-pressure-algorithm): New param.
      	* haifa-sched.c (sched_init): Use it to initialize sched_pressure.
      	* common/config/s390/s390-common.c (s390_option_optimization_table):
      	Remove OPT_fsched_pressure_algorithm_ entry.
      	* config/s390/s390.c (s390_option_override): Set a default value for
      	PARAM_SCHED_PRESSURE_ALGORITHM.
      
      From-SVN: r188258
      Richard Sandiford committed
  20. 25 May, 2012 1 commit
  21. 02 May, 2012 1 commit
    • s390-common.c (s390_option_optimization_table): Enable -fsched-pressure using… · aefa216b
      s390-common.c (s390_option_optimization_table): Enable -fsched-pressure using -fsched-pressure-algorithm=model by default when...
      
      2012-05-02  Ulrich Weigand  <ulrich.weigand@linaro.org>
      
      	gcc/
      	* common/config/s390/s390-common.c (s390_option_optimization_table):
      	Enable -fsched-pressure using -fsched-pressure-algorithm=model by
      	default when optimizing.
      
      	gcc/testsuite/
      	* gcc.target/s390/20030123-1.c: Add missing "volatile".
      
      From-SVN: r187064
      Ulrich Weigand committed
  22. 12 Mar, 2012 1 commit
    • ChangeLog entry: · bf2eaa3f
      	  * doc/invoke.texi: Document -mrtm option.
      	  * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET):
      	  New.
      	  (OPTION_MASK_ISA_RTM_UNSET): Ditto.
      	  (ix86_handle_option): Handle OPT_mrtm.
      	  * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
      	  xtestintrin.h.
      	  (x86_64-*-*): Ditto.
      	  * i386-builtin-types.def (INT_FTYPE_VOID): New.
      	  * config/i386/i386-c.c (ix86_target_macros_internal): Define
      	  __RTM__ if needed.
      	  (ix86_target_string): Define -mrtm option.
      	  (PTA_RTM): New.
      	  (ix86_option_override_internal): Extend "corei7-avx" with
      	  RTM option. Handle new option.
      	  (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
      	  (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
      	  IX86_BUILTIN_XTEST.
      	  (bdesc_special_args): Ditto.
      	  (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
      	  (ix86_expand_special_args_builtin): Handle new built-in type.
      	  (ix86_expand_builtin): Handle XABORT instruction.
      	  * config/i386/i386.h (TARGET_RTM): New.
      	  * config/i386/i386.md (UNSPECV_XBEGIN): New.
      	  (UNSPECV_XEND): Ditto.
      	  (UNSPECV_XABORT): Ditto.
      	  (UNSPECV_XTEST): Ditto.
      	  (xbegin): Ditto.
      	  (xbegin_1): Ditto.
      	  (xend): Ditto.
      	  (xabort): Ditto
      	  (xtest): Ditto.
      	  (xtest_1): Ditto.
      	  * config/i386/i386.opt (mrtm): New.
      	  * config/i386/immintrin.h: Include rtmintrin.h and
      	  xtestintrin.h.
      	  * config/i386/rtmintrin.h: New header.
      	  * config/i386/xtestintrin.h: Ditto.
      
      testsuite/ChangeLog entry:
          * gcc.target/i386/rtm-xabort-1.c: New.
          * gcc.target/i386/rtm-xbegin-1.c: Ditto.
          * gcc.target/i386/rtm-xend-1.c: Ditto.
          * gcc.target/i386/rtm-xtest-1.c: Ditto.
          * gcc.target/i386/sse-12.c: Test RTM intrinsics.
          * gcc.target/i386/sse-13.c: Ditto.
          * gcc.target/i386/sse-14.c: Ditto.
          * gcc.target/i386/sse-22.c: Ditto.
          * gcc.target/i386/sse-23.c: Ditto.
          * g++.dg/other/i386-2.C: Ditto.
          * g++.dg/other/i386-3.C: Ditto.
      
      From-SVN: r185218
      Kirill Yukhin committed
  23. 14 Feb, 2012 1 commit
    • Add ports for TILE-Gx and TILEPro. · dd552284
      .
      	* MAINTAINERS (tilegx port): Add myself.
      	(tilepro port): Add myself.
      
      contrib
      	* config-list.mk (LIST): Add tilegx-linux-gnu and
      	tilepro-linux-gnu.
      	* gcc_update (gcc/config/tilegx/mul-tables.c): New dependencies.
      	(gcc/config/tilepro/mul-tables.c): New dependencies.
      
      gcc
      	* config.gcc: Handle tilegx and tilepro.
      	* configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
      	tilegx and tilepro.
      	Add HAVE_AS_TLS check for tilegx and tilepro.
      	* configure: Regenerate.
      	* doc/contrib.texi: Add Mat Hostetter and self.
      	* doc/extend.texi (TILE-Gx Built-in Functions): New node.
      	Document instruction intrinsics and network accessing intrinsics.
      	(TILEPro Built-in Functions): New node.	 Document instruction
      	intrinsics and network accessing intrinsics.
      	* doc/install.texi (Specific, tilegx-*-linux*): Document it.
      	(Specific, tilepro-*-linux*): Likewise.
      	* doc/invoke.texi (TILE-Gx Options): New section.
      	(TILEPro Options): New section.
      	* doc/md.texi (TILE-Gx): New section.
      	(TILEPro): New section.
      	* common/config/tilegx: New directory for tilegx.
      	* common/config/tilepro: New directory for tilepro.
      	* config/tilegx: New directory for tilegx.
      	* config/tilepro: New directory for tilepro.
      
      gcc/testsuite
      	* g++.dg/other/PR23205.C: Disable test on tile.
      	* g++.dg/other/pr23205-2.C: Disable test on tile.
      	* gcc.dg/20020312-2.c: Add a condition for __tile__.
      	* gcc.dg/20040813-1.c: Disable test on tile.
      	* gcc.dg/lower-subreg-1.c: Disable test on tilegx.
      	* gcc.misc-tests/linkage.exp: Handle tilegx.
      
      libcpp
      	* configure.ac: Require 64-bit hwint for tilegx and tilepro.
      	* configure: Regenerate.
      
      libgcc
      	* config.host: Handle tilegx and tilepro.
      	* config/tilegx: New directory for tilegx.
      	* config/tilepro: New directory for tilepro.
      
      libgomp
      	* configure.tgt: Handle tilegx and tilepro.
      	* config/linux/tile: New directory for tilegx and tilepro.
      
      Added:
           trunk/gcc/common/config/tilegx/tilegx-common.c
           trunk/gcc/common/config/tilepro/tilepro-common.c
           trunk/gcc/config/tilegx/constraints.md
           trunk/gcc/config/tilegx/linux.h
           trunk/gcc/config/tilegx/mul-tables.c
           trunk/gcc/config/tilegx/predicates.md
           trunk/gcc/config/tilegx/sync.md
           trunk/gcc/config/tilegx/t-tilegx
           trunk/gcc/config/tilegx/tilegx-builtins.h
           trunk/gcc/config/tilegx/tilegx-c.c
           trunk/gcc/config/tilegx/tilegx-generic.md
           trunk/gcc/config/tilegx/tilegx-modes.def
           trunk/gcc/config/tilegx/tilegx-multiply.h
           trunk/gcc/config/tilegx/tilegx-protos.h
           trunk/gcc/config/tilegx/tilegx.c
           trunk/gcc/config/tilegx/tilegx.h
           trunk/gcc/config/tilegx/tilegx.md
           trunk/gcc/config/tilegx/tilegx.opt
           trunk/gcc/config/tilepro/constraints.md
           trunk/gcc/config/tilepro/gen-mul-tables.cc
           trunk/gcc/config/tilepro/linux.h
           trunk/gcc/config/tilepro/mul-tables.c
           trunk/gcc/config/tilepro/predicates.md
           trunk/gcc/config/tilepro/t-tilepro
           trunk/gcc/config/tilepro/tilepro-builtins.h
           trunk/gcc/config/tilepro/tilepro-c.c
           trunk/gcc/config/tilepro/tilepro-generic.md
           trunk/gcc/config/tilepro/tilepro-modes.def
           trunk/gcc/config/tilepro/tilepro-multiply.h
           trunk/gcc/config/tilepro/tilepro-protos.h
           trunk/gcc/config/tilepro/tilepro.c
           trunk/gcc/config/tilepro/tilepro.h
           trunk/gcc/config/tilepro/tilepro.md
           trunk/gcc/config/tilepro/tilepro.opt
           trunk/libgcc/config/tilegx/sfp-machine.h
           trunk/libgcc/config/tilegx/sfp-machine32.h
           trunk/libgcc/config/tilegx/sfp-machine64.h
           trunk/libgcc/config/tilegx/t-crtstuff
           trunk/libgcc/config/tilegx/t-softfp
           trunk/libgcc/config/tilegx/t-tilegx
           trunk/libgcc/config/tilepro/atomic.c
           trunk/libgcc/config/tilepro/atomic.h
           trunk/libgcc/config/tilepro/linux-unwind.h
           trunk/libgcc/config/tilepro/sfp-machine.h
           trunk/libgcc/config/tilepro/softdivide.c
           trunk/libgcc/config/tilepro/softmpy.S
           trunk/libgcc/config/tilepro/t-crtstuff
           trunk/libgcc/config/tilepro/t-tilepro
           trunk/libgomp/config/linux/tile/futex.h
      Modified:
           trunk/MAINTAINERS
           trunk/contrib/config-list.mk
           trunk/contrib/gcc_update
           trunk/gcc/config.gcc
           trunk/gcc/configure
           trunk/gcc/configure.ac
           trunk/gcc/doc/contrib.texi
           trunk/gcc/doc/extend.texi
           trunk/gcc/doc/install.texi
           trunk/gcc/doc/invoke.texi
           trunk/gcc/doc/md.texi
           trunk/gcc/testsuite/g++.dg/other/PR23205.C
           trunk/gcc/testsuite/g++.dg/other/pr23205-2.C
           trunk/gcc/testsuite/gcc.dg/20020312-2.c
           trunk/gcc/testsuite/gcc.dg/20040813-1.c
           trunk/gcc/testsuite/gcc.dg/lower-subreg-1.c
           trunk/gcc/testsuite/gcc.misc-tests/linkage.exp
           trunk/libcpp/configure
           trunk/libcpp/configure.ac
           trunk/libgcc/config.host
           trunk/libgomp/configure.tgt
      
      From-SVN: r184203
      Walter Lee committed
  24. 02 Feb, 2012 1 commit
  25. 22 Dec, 2011 2 commits
  26. 29 Nov, 2011 1 commit
  27. 07 Nov, 2011 1 commit
  28. 05 Nov, 2011 1 commit
    • config.gcc (epiphany-*-*): New architecture. · feeeff5c
      gcc:
              * config.gcc (epiphany-*-*): New architecture.
              (epiphany-*-elf): New configuration.
              * config/epiphany, common/config/epiphany : New directories.
              * doc/extend.texi (disinterrupt attribute): Add Epiphany.
              (interrupt attribute): Add Epiphany.
              (long_call, short_call attribute): Add Epiphany.
              * doc/invoke.texi (Options): Add Epiphany options.
              * doc/md.texi (Machine Constraints): Add Epiphany constraints.
              * doc/install.texi (Options specification):
              Add --with-stack-offset=@var{num} description.
              (host/target specific issues): Add epiphany-*-elf.
              * doc/contrib.texi (Contributors): Mention Epiphany port.
      gcc/testsuite:
              * gcc.c-torture/execute/ieee/mul-subnormal-single-1.x:
              Disable test on Epiphany.
              * gcc.c-torture/execute/20101011-1.c: Disable test on Epiphany.
              * gcc.dg/stack-usage-1.c [__epiphany__] (SIZE): Define.
              * gcc.dg/pragma-pack-3.c: Disable test on Epiphany.
              * g++.dg/parse/pragma3.C: Likewise.
              * stackalign/builtin-apply-2.c (STACK_ARGUMENTS_SIZE): Define.
              (bar): Use it.
              * gcc.dg/weak/typeof-2.c [epiphany-*-*]: Add option -mshort-calls.
              * gcc.dg/tls/thr-cse-1.c: Likewise.
              * g++.dg/opt/devirt2.C: Likewise.
              * gcc.dg/20020312-2.c [epiphany-*-*] (PIC_REG): Define.
              * gcc.dg/builtin-apply2.c [__epiphany__]: (STACK_ARGUMENTS_SIZE): 20.
              * gcc.target/epiphany: New directory.
      libgcc:
              * config.host (epiphany-*-elf*): New configuration.
              * config/epiphany: New Directory.
      contrib:
              * contrib-list.mk: Add Epiphany configurations.
      
      From-SVN: r181016
      Joern Rennecke committed
  29. 30 Sep, 2011 1 commit
    • c6x-common.c (c6x_option_optimization_table): Enable -fmodulo-sched at -O2 and above. · 11e69edc
      	* common/config/c6x/c6x-common.c (c6x_option_optimization_table):
      	Enable -fmodulo-sched at -O2 and above.
      	* config/c6x/c6x.md (doloop_end): New expander.
      	(mvilc, sploop, spkernel, loop_end): New patterns.
      	(loop_end with memory destination splitter): New.
      	* config/c6x/c6x.c: Include "hw-doloop.h".
      	(enum unitreqs): New.
      	(unit_req_table): New typedef.
      	(unit_reqs): New static variable.
      	(unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
      	res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
      	hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
      	hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
      	(struct c6x_sched_context): New member last_scheduled_iter0.
      	(init_sched_state): Initialize it.
      	(c6x_variable_issue): Update it.
      	(sploop_max_uid_iter0): New static variable.
      	(c6x_sched_reorder_1): Be careful about issuing sploop.
      	(c6x_reorg): Call c6x_hwlooops before the final schedule.
      
      From-SVN: r179393
      Bernd Schmidt committed
  30. 23 Aug, 2011 1 commit
    • Add BMI2 support. · 82feeb8d
      gcc/
      
      2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
      
      	* config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
      	(length_immediate): Handle imulx, ishiftx and rotatex.
      	(imm_disp): Ditto.
      	(isa): Add bmi2.
      	(enabled): Handle bmi2.
      	(w): New mode attribute.
      	(*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
      	(*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
      	(*bmi2_umulditi3_1): New insn pattern.
      	(*bmi2_umulsidi3_1): Ditto.
      	(*umul<mode><dwi>3 splitter): New splitter to avoid flags
      	dependency.
      	(*bmi2_ashl<mode>3_1): New insn pattern.
      	(*ashl<mode>3_1): Add ishiftx BMI2 alternative.
      	(*ashl<mode>3_1 splitter): New splitter to avoid flags
      	dependency.
      	(*bmi2_ashlsi3_1_zext): New insn pattern.
      	(*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
      	(*ashlsi3_1_zext splitter): New splitter to avoid flags
      	dependency.
      	(*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
      	(*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
      	(*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
      	flags dependency.
      	(*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
      	(*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
      	(*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
      	flags dependency.
      	(*bmi2_rorx<mode>3_1): New insn pattern.
      	(*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
      	(*rotate<mode>3_1 splitter): New splitter to avoid flags
      	dependency.
      	(*rotatert<mode>3_1 splitter): Ditto.
      	(*bmi2_rorxsi3_1_zext): New insn pattern.
      	(*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
      	(*rotatesi3_1_zext splitter): New splitter to avoid flags
      	dependency.
      	(*rotatertsi3_1_zext splitter): Ditto.
      
      2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
      
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET):
      	New.
      	(OPTION_MASK_ISA_BMI2_UNSET): Likewise.
      	(ix86_handle_option): Handle OPT_mbmi2 case.
      	* config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
      	(x86_64-*-*): Likewise.
      	* config/i386/bmi2intrin.h: New file.
      	* config/i386/cpuid.h (bit_BMI2): New.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
      	BMI2 feature.
      	* config/i386/i386-c.c (ix86_target_macros_internal):
      	Conditionally define __BMI2__.
      	* config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
      	Handle BMI2 option.
      	(ix86_valid_target_attribute_inner_p): Handle BMI2 option.
      	(print_reg): New code.
      	(ix86_print_operand): Likewise.
      	(ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
      	IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
      	IX86_BUILTIN_PEXT64.
      	(bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
      	IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
      	IX86_BUILTIN_PEXT64.
      	* config/i386/i386.h (TARGET_BMI2): New.
      	* config/i386/i386.md (UNSPEC_PDEP): New.
      	(UNSPEC_PEXT): Likewise.
      	(*bmi2_bzhi_<mode>3): Likewise.
      	(*bmi2_pdep_<mode>3): Likewise.
      	(*bmi2_pext_<mode>3): Likewise.
      	* config/i386/i386.opt (mbmi2): New.
      	* config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
      	is defined.
      	* doc/extend.texi: Document BMI2 built-in functions.
      	* doc/invoke.texi: Document -mbmi2.
      
      gcc/testsuite/
      
      2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
      
      	* g++.dg/other/i386-2.C: Add -mbmi2 check.
      	* g++.dg/other/i386-3.C: Likewise.
      	* gcc.target/i386/bmi2-bzhi32-1.c: New testcase.
      	* gcc.target/i386/bmi2-bzhi32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-bzhi64-1.c: Likewise.
      	* gcc.target/i386/bmi2-bzhi64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-mulx32-1.c: Likewise.
      	* gcc.target/i386/bmi2-mulx32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-mulx64-1.c: Likewise.
      	* gcc.target/i386/bmi2-mulx64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-pdep32-1.c: Likewise.
      	* gcc.target/i386/bmi2-pdep32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-pdep64-1.c: Likewise.
      	* gcc.target/i386/bmi2-pdep64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-pext32-1.c: Likewise.
      	* gcc.target/i386/bmi2-pext32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-pext64-1.c: Likewise.
      	* gcc.target/i386/bmi2-pext64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-rorx32-1.c: Likewise.
      	* gcc.target/i386/bmi2-rorx32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-rorx64-1.c: Likewise.
      	* gcc.target/i386/bmi2-rorx64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-sarx32-1.c: Likewise.
      	* gcc.target/i386/bmi2-sarx32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-sarx64-1.c: Likewise.
      	* gcc.target/i386/bmi2-sarx64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-shlx32-1.c: Likewise.
      	* gcc.target/i386/bmi2-shlx32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-shlx64-1.c: Likewise.
      	* gcc.target/i386/bmi2-shlx64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-shrx32-1.c: Likewise.
      	* gcc.target/i386/bmi2-shrx32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-shrx64-1.c: Likewise.
      	* gcc.target/i386/bmi2-shrx64-1a.c: Likewise.
      	* gcc.target/i386/i386.exp (check_effective_target_bmi2): New.
      	* gcc.target/i386/sse-12.c: Add BMI2.
      	* gcc.target/i386/sse-13.c: Likewise.
      	* gcc.target/i386/sse-14.c: Likewise.
      	* gcc.target/i386/sse-22.c: Likewise.
      	* gcc.target/i386/sse-23.c: Likewise.
      
      From-SVN: r178001
      H.J. Lu committed
  31. 18 Aug, 2011 1 commit
    • Add -mavx2. · 7afac110
      2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
      
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
      	(OPTION_MASK_ISA_AVX_UNSET): Update.
      	(OPTION_MASK_ISA_AVX2_UNSET): New.
      	(ix86_handle_option): Handle OPT_mavx2 case.
      	* config/i386/cpuid.h (bit_AVX2): New.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
      	AVX2 feature.
      	* config/i386/i386-c.c (ix86_target_macros_internal):
      	Conditionally define __AVX2__.
      	* config/i386/i386.c (ix86_option_override_internal): Define
      	PTA_AVX2.  Define "core-avx2" processor alias.  Handle avx2
      	option.
      	(ix86_valid_target_attribute_inner_p): Handle avx2 option.
      	* config/i386/i386.h (TARGET_AVX2): New.
      	* config/i386/i386.opt (mavx2): New.
      	* doc/invoke.texi: Document -mavx2.
      
      From-SVN: r177876
      Kirill Yukhin committed
  32. 25 Jul, 2011 1 commit
  33. 07 Jul, 2011 1 commit
    • common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't default based on TARGET_ASM_NAMED_SECTION. · 41dfca87
      	* common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
      	default based on TARGET_ASM_NAMED_SECTION.
      	* common/common-target.def (have_named_sections): Default to true.
      	* common/config/default-common.c: Don't include tm.h.
      	* common/config/picochip/picochip-common.c
      	(TARGET_HAVE_NAMED_SECTIONS): Don't define.
      	* common/config/m32c/m32c-common.c: Remove.
      	* config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
      	* config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to
      	false.
      	* config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
      	false.
      	* config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
      	false.
      	* config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
      	* config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to
      	false.
      	* config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
      	false.
      
      From-SVN: r175969
      Joseph Myers committed
  34. 23 Jun, 2011 1 commit
    • params.c: Include common/common-target.h. · 4c77620d
      	* params.c: Include common/common-target.h.  Don't include tm.h.
      	(lang_independent_params): Move from toplev.c.
      	(global_init_params): New.
      	* params.h (global_init_params): Declare.
      	* target.def (default_params): Move to common-target.def.
      	* toplev.c (lang_independent_options): Remove.
      	(lang_independent_params): Move to params.c.
      	(general_init): Use global_init_params.
      	* common/common-target.def (option_default_params): Move from
      	target.def.
      	* common/config/ia64/ia64-common.c: Include params.h.
      	(ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
      	from ia64.c.
      	* common/config/rs6000/rs6000-common.c: Include params.h.
      	(rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
      	from rs6000.c.
      	* common/config/sh/sh-common.c: Include params.h.
      	(sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
      	from sh.c.
      	* common/config/spu/spu-common.c: Include params.h.
      	(spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
      	from spu.c.
      	* config/ia64/ia64.c (ia64_option_default_params,
      	TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
      	* config/rs6000/rs6000.c (rs6000_option_default_params,
      	TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
      	* config/sh/sh.c (sh_option_default_params,
      	TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
      	* config/spu/spu.c (spu_option_default_params,
      	TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
      	* Makefile.in (OBJS): Remove params.o.
      	(OBJS-libcommon-target): Add params.o.
      	(params.o, $(common_out_object_file)): Update dependencies.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r175330
      Joseph Myers committed
  35. 14 Jun, 2011 2 commits
    • target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to common/common-target-def.h. · 677f3fa8
      	* target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
      	common/common-target-def.h.
      	* target.def (default_target_flags, handle_option,
      	supports_split_stack, optimization_table, init_struct,
      	except_unwind_info, unwind_tables_default, have_named_sections):
      	Move to common/common-target.def.
      	* target.h (enum opt_levels, struct default_options): Move to
      	common/common-target.h.
      	* targhooks.c (default_except_unwind_info,
      	dwarf2_except_unwind_info, sjlj_except_unwind_info,
      	default_target_handle_option, empty_optimization_table): Move to
      	common/common-targhooks.c.
      	* targhooks.h (default_except_unwind_info,
      	dwarf2_except_unwind_info, sjlj_except_unwind_info,
      	default_target_handle_option, empty_optimization_table): Move to
      	common/common-targhooks.h.
      	* common/common-target-def.h: Include common/common-targhooks.h.
      	(TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
      	defined.
      	* common/common-target.def (handle_option, option_init_struct,
      	option_optimization_table, default_target_flags,
      	except_unwind_info, supports_split_stack, unwind_tables_default,
      	have_named_sections): Move from target.def.
      	(HOOK_PREFIX): Undefine at end of file.
      	* common/common-target.h: Include input.h.
      	(enum opt_levels, struct default_options): Move from target.h.
      	* common/common-targhooks.c, common/common-targhooks.h: New.
      	* config.gcc (target_has_targetm_common): Default to yes.
      	(moxie*): Set target_has_targetm_common=no.
      	(hppa*-*-*): Don't set target_has_targetm_common=yes.
      	* doc/tm.texi: Regenerate.
      	* Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
      	(C_TARGET_DEF_H): Add common/common-targhooks.h.
      	(GCC_OBJS): Remove vec.o.
      	(OBJS): Remove hooks.o and vec.o.
      	(OBJS-libcommon-target): Add vec.o, hooks.o and
      	common/common-targhooks.o.
      	(c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
      	tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
      	expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
      	cfglayout.o, $(out_object_file), $(common_out_object_file)):
      	Update dependencies.
      	(common/common-targhooks.o): New.
      	* common/config/default-common.c: Include tm.h.  Add FIXME
      	comment.
      	* common/config/pa/pa-common.c: Include more headers.  Take
      	copyright dates from pa.c.
      	(pa_option_optimization_table, pa_handle_option,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_HANDLE_OPTION): Move from pa.c.
      	* common/config/alpha/alpha-common.c,
      	common/config/arm/arm-common.c, common/config/avr/avr-common.c,
      	common/config/bfin/bfin-common.c,
      	common/config/cris/cris-common.c,
      	common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
      	common/config/h8300/h8300-common.c,
      	common/config/i386/i386-common.c,
      	common/config/ia64/ia64-common.c,
      	common/config/iq2000/iq2000-common.c,
      	common/config/lm32/lm32-common.c,
      	common/config/m32c/m32c-common.c,
      	common/config/m32r/m32r-common.c,
      	common/config/m68k/m68k-common.c,
      	common/config/mcore/mcore-common.c,
      	common/config/mep/mep-common.c,
      	common/config/microblaze/microblaze-common.c,
      	common/config/mips/mips-common.c,
      	common/config/mmix/mmix-common.c,
      	common/config/mn10300/mn10300-common.c,
      	common/config/pdp11/pdp11-common.c,
      	common/config/picochip/picochip-common.c,
      	common/config/rs6000/rs6000-common.c,
      	common/config/rx/rx-common.c, common/config/s390/s390-common.c,
      	common/config/score/score-common.c, common/config/sh/sh-common.c,
      	common/config/sparc/sparc-common.c,
      	common/config/spu/spu-common.c, common/config/v850/v850-common.c,
      	common/config/vax/vax-common.c,
      	common/config/xstormy16/xstormy16-common.c,
      	common/config/xtensa/xtensa-common.c: New.
      	* config/alpha/alpha.c: Include common/common-target.h.
      	(alpha_option_optimization_table, alpha_handle_option,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
      	* config/arm/arm-protos.h (arm_except_unwind_info): Declare.
      	* config/arm/arm.c (arm_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
      	arm-common.c.
      	* config/avr/avr.c (avr_option_optimization_table,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
      	to avr-common.c.
      	* config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
      	(bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
      	TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
      	* config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
      	* config/cris/cris.c (cris_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
      	cris-common.c.
      	* config/fr30/fr30.c (fr30_option_optimization_table,
      	TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
      	to fr30-common.c.
      	* config/frv/frv.c (frv_option_optimization_table,
      	MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
      	* config/h8300/h8300.c (h8300_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
      	* config/i386/i386-protos.h (ix86_handle_option): Declare.
      	* config/i386/i386.c: Include common/common-target.h.
      	(OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
      	OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
      	OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
      	OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
      	OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
      	OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
      	OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
      	OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
      	OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
      	OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
      	OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
      	OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
      	OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
      	OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
      	OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
      	OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
      	OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
      	OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
      	OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
      	OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
      	OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
      	OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
      	OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
      	OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
      	OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
      	OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
      	OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
      	OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
      	OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
      	ix86_option_optimization_table, ix86_option_init_struct,
      	ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
      	i386-common.c.
      	* config/i386/t-i386 (i386.o): Update dependencies.
      	* config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
      	* config/ia64/ia64.c (ia64_option_optimization_table,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	ia64_handle_option): Move to ia64-common.c.
      	* config/iq2000/iq2000.c (iq2000_option_optimization_table,
      	TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
      	* config/lm32/lm32.c (lm32_option_optimization_table,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
      	to lm32-common.c.
      	* config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
      	m32c-common.c.
      	* config/m32r/m32r.c (m32r_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
      	m32r_handle_option): Move to m32r-common.c.
      	(m32r_memory_move_cost): Remove comment referring to
      	TARGET_HANDLE_OPTION.
      	* config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
      	Move to m68k-common.c.
      	* config/mcore/mcore.c (mcore_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
      	* config/mep/mep.c (mep_option_optimization_table,
      	mep_handle_option, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
      	Move to mep-common.c.
      	* config/microblaze/microblaze.c
      	(microblaze_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
      	* config/mips/mips.c (mips_handle_option,
      	mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
      	mips-common.c.
      	* config/mmix/mmix.c (mmix_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
      	Move to mmix-common.c.
      	* config/mn10300/mn10300.c (mn10300_option_optimization_table,
      	mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
      	* config/pa/pa.c: Include common/common-target.h.
      	(pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	pa_handle_option): Move to pa-common.c.
      	(pa_option_override): Use targetm_common.except_unwind_info.
      	(pa_asm_output_mi_thunk, pa_function_section): Use
      	targetm_common.have_named_sections.
      	* config/pdp11/pdp11.c (pdp11_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
      	pdp11_handle_option, pdp11_option_init_struct): Move to
      	pdp11-common.c.
      	* config/picochip/picochip.c (picochip_option_optimization_table,
      	TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
      	* config/rs6000/rs6000.c: Include common/common-target.h.
      	(rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
      	rs6000_handle_option): Move to rs6000-common.c.
      	* config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
      	* config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
      	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
      	* config/s390/s390.c (processor_flags_table,
      	s390_option_optimization_table, s390_option_init_struct,
      	s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
      	TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
      	* config/s390/s390.h (processor_flags_table): Declare.
      	* config/score/score.c (score_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
      	score_handle_option): Move to score-common.c.
      	* config/sh/sh.c (sh_option_optimization_table,
      	TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
      	sh_handle_option, sh_option_init_struct): Move to sh-common.c.
      	* config/sparc/sparc.c: Include common/common-target.h.
      	(sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
      	* config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
      	spu_option_init_struct): Move to spu-common.c.
      	* config/stormy16/stormy16.c (xstorym16_option_optimization_table,
      	TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
      	* config/v850/v850.c (small_memory_physical_max,
      	v850_handle_memory_optionn v850_handle_option,
      	v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
      	TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
      	v850-common.c.
      	* config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to
      	vax-common.c.
      	* config/xtensa/xtensa.c (xtensa_option_optimization_table,
      	TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
      	Move to xtensa-common.c.
      	* cfglayout.c: Include common/common-target.h.
      	(fixup_reorder_chain): Use targetm_common.have_named_sections.
      	* cfgrtl.c: Include common/common-target.h.
      	(force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
      	targetm_common.have_named_sections.
      	* dbxout.c: Include common/common-target.h.
      	(dbxout_function_end): Use targetm_common.have_named_sections.
      	* defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
      	targetm_common.except_unwind_info.
      	* dwarf2out.c: Include common/common-target.h.
      	(dwarf2out_do_frame, dwarf2out_do_cfi_asm,
      	dwarf2out_begin_prologue, dwarf2out_frame_init,
      	dwarf2out_frame_finish, dwarf2out_assembly_start): Use
      	targetm_common.except_unwind_info.
      	* except.c: Include common/common-target.h.
      	(init_eh, finish_eh_generation,
      	output_one_function_exception_table): Use
      	targetm_common.except_unwind_info.
      	(switch_to_exception_section): Use
      	targetm_common.have_named_sections.
      	* explow.c: Include common/common-target.h.
      	* expr.c: Include common/common-target.h.
      	(build_personality_function): Use
      	targetm_common.except_unwind_info.
      	* function.c: Include common/common-target.h.
      	(expand_function_end): Use targetm_common.except_unwind_info.
      	* haifa-sched.c: Include common/common-target.h.
      	(sched_create_recovery_edges): Use
      	targetm_common.have_named_sections.
      	* lto-opts.c: Include common/common-target.h instead of target.h.
      	(lto_reissue_options): Use targetm_common.handle_option.
      	* opts.c: Include common/common-target.h.
      	(target_handle_option): Use targetm_common.handle_option.
      	(init_options_struct): Update comment referring to
      	targetm.target_option.optimization.  Use
      	targetm_common.default_target_flags,
      	targetm_common.unwind_tables_default and
      	targetm_common.option_init_struct.
      	(default_options_optimization): Use
      	targetm_common.option_optimization_table.
      	(finish_options): Use targetm_common.except_unwind_info,
      	targetm_common.unwind_tables_default,
      	targetm_common.have_named_sections and
      	targetm_common.supports_split_stack.
      	* toplev.c: Include common/common-target.h.
      	(process_options): Use targetm_common.have_named_sections.
      	* tree-tailcall.c: Include common/common-target.h.
      	(suitable_for_tail_call_opt_p): Use
      	targetm_common.except_unwind_info.
      	* tree.c: Include common/common-target.h.
      	(build_common_builtin_nodes): Use
      	targetm_common.except_unwind_info.
      	* varasm.c: Include common/common-target.h.
      	(resolve_unique_section, hot_function_section,
      	default_function_section): Use targetm_common.have_named_sections.
      
      ada:
      	* gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
      	(ada/utils.o): Update dependencies.
      	* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
      	../../../libcpp/libcpp.a.
      	* gcc-interface/utils.c: Include common/common-target.h.
      	(process_attributes): Use targetm_common.have_named_sections.
      
      c-family:
      	* c-common.c: Include common/common-target.h.
      	(handle_section_attribute): Use
      	targetm_common.have_named_sections.
      	* c-cppbuiltin.c: Include common/common-target.h.
      	(c_cpp_builtins): Use targetm_common.except_unwind_info.
      
      cp:
      	* Make-lang.in (cp/method.o): Update dependencies.
      	* method.c: Include common/common-target.h.
      	(use_thunk): Use targetm_common.have_named_sections.
      
      go:
      	* Make-lang.in (go/go-lang.o, go/go-backend.o): Update
      	dependencies.
      	* go-backend.c: Include common/common-target.h.
      	(go_write_export_data): Use targetm_common.have_named_sections.
      	* go-lang.c: Include common/common-target.h.
      	(go_langhook_init_options_struct): Use
      	targetm_common.supports_split_stack.
      
      po:
      	* exgettext: Handle common/ directory and subdirectories.
      
      From-SVN: r175064
      Joseph Myers committed
    • common-target-def.h, [...]: New files. · c49a6962
      	* common/common-target-def.h, common/common-target.def,
      	common/common-target.h, common/config/default-common.c,
      	common/config/pa/pa-common.c: New files.
      	* Makefile.in (common_out_file, common_out_object_file,
      	COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
      	(OBJS-libcommon-target): Include $(common_out_object_file).
      	(prefix.o): Update dependencies.
      	($(common_out_object_file), common/common-target-hooks-def.h,
      	s-common-target-hooks-def-h): New.
      	(s-tm-texi): Also check timestamp on common-target.def.
      	(build/genhooks.o): Update dependencies.
      	* config.gcc (common_out_file, target_has_targetm_common): Define.
      	* config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
      	TARGET_ALWAYS_STRIP_DOTDOT.
      	* configure.ac (common_out_object_file): Define.
      	(common_out_file, common_out_object_file): Substitute.
      	(common): Create directory.
      	* configure: Regenerate.
      	* doc/tm.texi.in (targetm_common): Document.
      	(TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
      	* doc/tm.texi: Regenerate.
      	* genhooks.c (hook_array): Also include common/common-target.def.
      	* prefix.c (tm.h): Don't include.
      	(common/common-target.h): Include.
      	(ALWAYS_STRIP_DOTDOT): Don't define.
      	(update_path): Use targetm_common.always_strip_dotdot instead of
      	ALWAYS_STRIP_DOTDOT.
      	* system.h (ALWAYS_STRIP_DOTDOT): Poison.
      
      From-SVN: r175052
      Joseph Myers committed