summaryrefslogtreecommitdiff
path: root/gcc/config/s390/s390.md
Commit message (Collapse)AuthorAgeFilesLines
* gcc/ada/rsandifo2014-10-291-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gcc-interface/decl.c, gcc-interface/gigi.h, gcc-interface/misc.c, gcc-interface/trans.c, gcc-interface/utils.c, gcc-interface/utils2.c: Remove redundant enum from machine_mode. gcc/c-family/ * c-common.c, c-common.h, c-cppbuiltin.c, c-lex.c: Remove redundant enum from machine_mode. gcc/c/ * c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from machine_mode. gcc/cp/ * constexpr.c: Remove redundant enum from machine_mode. gcc/fortran/ * trans-types.c, trans-types.h: Remove redundant enum from machine_mode. gcc/go/ * go-lang.c: Remove redundant enum from machine_mode. gcc/java/ * builtins.c, java-tree.h, typeck.c: Remove redundant enum from machine_mode. gcc/lto/ * lto-lang.c: Remove redundant enum from machine_mode. gcc/ * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c, builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h, cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c, config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md, config/aarch64/aarch64.c, config/aarch64/aarch64.h, config/aarch64/aarch64.md, config/alpha/alpha-protos.h, config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h, config/arc/predicates.md, config/arm/aarch-common-protos.h, config/arm/aarch-common.c, config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h, config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md, config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c, config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md, config/cr16/cr16-protos.h, config/cr16/cr16.c, config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md, config/darwin-protos.h, config/darwin.c, config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c, config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md, config/h8300/h8300-protos.h, config/h8300/h8300.c, config/i386/i386-builtin-types.awk, config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md, config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h, config/ia64/ia64.c, config/iq2000/iq2000-protos.h, config/iq2000/iq2000.c, config/iq2000/iq2000.md, config/lm32/lm32-protos.h, config/lm32/lm32.c, config/m32c/m32c-protos.h, config/m32c/m32c.c, config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m68k/m68k-protos.h, config/m68k/m68k.c, config/mcore/mcore-protos.h, config/mcore/mcore.c, config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c, config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c, config/mips/mips-protos.h, config/mips/mips.c, config/mmix/mmix-protos.h, config/mmix/mmix.c, config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430-protos.h, config/msp430/msp430.c, config/nds32/nds32-cost.c, config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c, config/nds32/nds32-protos.h, config/nds32/nds32.c, config/nios2/nios2-protos.h, config/nios2/nios2.c, config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c, config/rs6000/altivec.md, config/rs6000/rs6000-c.c, config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c, config/s390/predicates.md, config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h, config/s390/s390.md, config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.md, config/sparc/predicates.md, config/sparc/sparc-protos.h, config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c, config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c, config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c, config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h, config/tilepro/tilepro.c, config/v850/v850-protos.h, config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h, config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h, dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi, doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c, dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h, except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c, fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h, fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c, genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c, graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c, internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c, ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h, libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c, lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c, lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h, output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h, recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h, rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c, sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c, simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def, targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c, tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c, tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c, tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c, var-tracking.c, varasm.c: Remove redundant enum from machine_mode. gcc/ * gengtype.c (main): Treat machine_mode as a scalar typedef. * genmodes.c (emit_insn_modes_h): Hide inline functions if USED_FOR_TARGET. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216834 138bc75d-0d04-0410-961f-82ee72b054a4
* 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2014-09-191-0/+22
| | | | | | | | | | | | | * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New expanders. 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * gcc.target/s390/dfp-conv1.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215382 138bc75d-0d04-0410-961f-82ee72b054a4
* 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2014-09-031-3/+51
| | | | | | | | | | | | | | | | PR target/61078 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check and add a second splitter to handle the remaining cases. 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> PR target/61078 * gcc.target/s390/pr61078.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214850 138bc75d-0d04-0410-961f-82ee72b054a4
* use rtx_code_label moretbsaunde2014-09-031-14/+14
| | | | | | | | | | | | | | | gcc/ * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c, config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md, config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c, config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c, config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc, config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c, stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead of rtx. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214841 138bc75d-0d04-0410-961f-82ee72b054a4
* Use INTVAL only on CONST_INT in addptrdi3 and addptrsi3vries2014-06-041-4/+4
| | | | | | | | | 2014-06-04 Tom de Vries <tom@codesourcery.com> * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on CONST_INT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211246 138bc75d-0d04-0410-961f-82ee72b054a4
* 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2014-04-111-0/+15
| | | | | | | | * config/s390/s390.md: Add a splitter for NOT rtx. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209295 138bc75d-0d04-0410-961f-82ee72b054a4
* 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2014-03-241-0/+51
| | | | | | | | | | | | | | | | PR rtl-optimization/60501 * optabs.def (addptr3_optab): New optab. * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function. * doc/md.texi ("addptrm3"): Document new RTL standard expander. * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes. * lra.c (emit_add3_insn): Use the addptr pattern if available. * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208796 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2014-02-071-0/+24
| | | | | | | | | | | | | | | | | | | * config/s390/s390-protos.h (s390_can_use_simple_return_insn) (s390_can_use_return_insn): Declare. * config/s390/s390.h (EPILOGUE_USES): Define. * config/s390/s390.c (s390_mainpool_start): Allow two main_pool instructions. (s390_chunkify_start): Handle return JUMP_LABELs. (s390_early_mach): Emit a main_pool instruction on the entry edge. (s300_set_up_by_prologue, s390_can_use_simple_return_insn) (s390_can_use_return_insn): New functions. (s390_fix_long_loop_prediction): Handle conditional returns. (TARGET_SET_UP_BY_PROLOGUE): Define. * config/s390/s390.md (ANY_RETURN): New code iterator. (*creturn, *csimple_return, return, simple_return): New patterns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207605 138bc75d-0d04-0410-961f-82ee72b054a4
* 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2014-02-071-0/+12
| | | | | | | | | | * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>") ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"): Reject misaligned operands. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207601 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright years in gcc/rsandifo2014-01-021-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206289 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-11-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2013-11-201-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dominik Vogt <vogt@linux.vnet.ibm.com> * config/s390/s390.c (s390_canonicalize_comparison): Don't fold int comparisons with an out of range condition code. (s390_optimize_nonescaping_tx): Skip empty BBs. Generate the new tbegin RTX when removing the FPR clobbers (with two SETs). (s390_expand_tbegin): Fix the retry loop counter. Copy CC to the result before doing the retry calculations. (s390_init_builtins): Make tbegin "returns_twice" and tabort "noreturn". * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for the TDB setting part of an tbegin. ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB. ("tx_assist"): Set unused argument to an immediate zero instead of loading zero into a GPR and pass it as argument. * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin): Remove inline and related attributes. (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort) (__TM_is_illegal, __TM_is_footprint_exceeded) (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value check. 2013-11-20 Dominik Vogt <vogt@linux.vnet.ibm.com> * gcc.target/s390/htm-1.c: Rename to ... * gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c: ... this one. * gcc.target/s390/htm-xl-intrin-1.c: Rename to ... * gcc.target/s390/htm-builtins-compile-3.c: ... this one. * gcc.target/s390/htm-builtins-compile-2.c: New testcase. * gcc.target/s390/htm-builtins-1.c: New testcase. * gcc.target/s390/htm-builtins-2.c: New testcase. * gcc.target/s390/s390.exp: Add check for htm machine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205099 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2013-11-091-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * target.def (can_use_doloop_p): New hook. * doc/tm.texi.in (TARGET_CAN_USE_DOLOOP_P): Add. * doc/tm.texi: Regenerate. * doc/md.texi (doloop_begin, doloop_end): Update documentation. * hooks.h (hook_bool_dint_dint_uint_true): Declare. * hooks.c (hook_bool_dint_dint_uint_true): New function. * targhooks.h (can_use_doloop_if_innermost): Declare. * targhooks.c (can_use_doloop_if_innermost): New function. * target.h: Include double-int.h. * loop-doloop.c (doloop_optimize): Call targetm.can_use_doloop_p. Remove iteration count, maximum iteration count, loop depth and enter-at-top inputs from doloop_begin and doloop_end. * config/arc/arc.md (doloop_begin, doloop_end): Update for new interface. * config/arc/arc.c (arc_can_use_doloop_p): New function. (TARGET_CAN_USE_DOLOOP_P): Define. * config/arm/thumb2.md (doloop_end): Update for new interface. * config/arm/arm.c (TARGET_CAN_USE_DOLOOP_P): Define. * config/bfin/bfin.md (doloop_end): Update for new interface. * config/bfin/bfin.c (bfin_can_use_doloop_p): New function. (TARGET_CAN_USE_DOLOOP_P): Define. * config/c6x/c6x.md (doloop_end): Update for new interface. * config/ia64/ia64.md (doloop_end): Update for new interface. * config/ia64/ia64.c (TARGET_CAN_USE_DOLOOP_P): Define. * config/mep/mep.md (doloop_begin, doloop_end): Update for new interface. * config/mep/mep.c (mep_emit_doloop): Likewise. (TARGET_CAN_USE_DOLOOP_P): Define. * config/rs6000/rs6000.md (doloop_end): Update for new interface. * config/rs6000/rs6000.c (TARGET_CAN_USE_DOLOOP_P): Define. * config/s390/s390.md (doloop_end): Update for new interface. * config/sh/sh.md (doloop_end): Likewise. * config/spu/spu.md (doloop_end): Likewise. * config/spu/spu.c (TARGET_CAN_USE_DOLOOP_P): Define. * config/tilegx/tilegx.md (doloop_end): Update for new interface. * config/tilegx/tilegx.c (TARGET_CAN_USE_DOLOOP_P): Define. * config/tilepro/tilepro.md (doloop_end): Update for new interface. * config/tilepro/tilepro.c (TARGET_CAN_USE_DOLOOP_P): Define. * config/v850/v850.md (doloop_begin, doloop_end): Update for new interface. * config/v850/v850.c (TARGET_CAN_USE_DOLOOP_P): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204614 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2013-10-071-14/+14
| | | | | | | | | | | | | | | | | | | | | * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry") ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove constraint letters from expanders. ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the retry count to general_operand. ("tabort"): Give operand 0 a mode. ("tabort_1"): Add mode and constraint letter for operand 0. * doc/extend.texi: Fix protoype of __builtin_non_tx_store. 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * gcc.target/s390/htm-1.c: Add more tests to cover different operand types. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203239 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2013-09-061-1/+77
| | | | | | | | | | | | | | | | | | | | * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC) (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT) (UNSPEC_FPINT_RINT): New constant definitions. (FPINT, fpint_name, fpint_roundingmode): New integer iterator definition with 2 attributes. ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2") ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern definitions. 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * gcc.target/s390/nearestint-1.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202312 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2013-09-061-3/+13
| | | | | | | | | | | | | | * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute. ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later. Set the mnemonic attribute to "bcr_flush". Set the "z196prop" attribute to "z196_alone". * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and "zEC12_simple". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202311 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>krebbel2013-07-291-6/+6
| | | | | | | | | * config/s390/s390.md ("movcc"): Swap load and store instructions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201300 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2013-07-081-13/+27
| | | | | | | | | | | | | | | | | | | | | * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM. * config/s390/s390.h: Remove F*_REGNUM macro definitions. * config/s390/s390.md: Define FPR*_REGNUM constants. Fix FPR2_REGNUM constant (18 -> 17). ("*trunc<BFP:mode><DFP_ALL:mode>2") ("*trunc<DFP_ALL:mode><BFP:mode>2") ("trunc<BFP:mode><DFP_ALL:mode>2") ("trunc<DFP_ALL:mode><BFP:mode>2") ("*extend<BFP:mode><DFP_ALL:mode>2") ("*extend<DFP_ALL:mode><BFP:mode>2") ("extend<BFP:mode><DFP_ALL:mode>2") ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with FPR4_REGNUM. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200787 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2013-06-271-23/+258
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200454 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2013-06-071-4/+9
| | | | | | | | | | * config/s390/s390.md (cpu_facility): Add cpu_zarch. ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch for last alternative in the cpu_facility attribute. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199819 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-06-061-3/+3
| | | | | | | | | | | | | | | | * config/s390/s390.opt (mlra): New option. * config/s390/s390.c (s390_decompose_address): Check displacement for all registers for LRA. (s390_secondary_reload): Don't used secondary reloads for LRA. (s390_lra_p): New function. (TARGET_LRA_P): Define. * config/s390/s390.md (*movmem_short, *clrmem_short): Change value of attribute cpu_facility to zarch for the last alternative. (*cmpmem_short): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199754 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright years in gcc/rsandifo2013-01-101-2/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195098 138bc75d-0d04-0410-961f-82ee72b054a4
* Update Copyright years for files modified in 2011 and/or 2012.jakub2013-01-041-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194903 138bc75d-0d04-0410-961f-82ee72b054a4
* s390: Generate rnsbgrth2012-12-201-0/+55
| | | | | | * config/s390/s390.md (*insv_rnsbg_noshift, *insv_rnsbg_srl): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194646 138bc75d-0d04-0410-961f-82ee72b054a4
* s390: Generate rxsbg, and shifted forms of rosbgrth2012-12-201-6/+55
| | | | | | | | | | * config/s390/s390.md (IXOR): New code iterator. (*r<IXOR>sbg_<GPR>_noshift): Rename from *insv<GPR>_or_z10_noshift; macro-ize to handle XOR too. (*r<IXOR>sbg_di_rotl, *r<IXOR>sbg_<GPR>_srl, *r<IXOR>sbg_<GPR>_sll): New patterns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194645 138bc75d-0d04-0410-961f-82ee72b054a4
* s390: Implement extzv for z10rth2012-12-201-8/+86
| | | | | | | | | | | | | * config/s390/predicates.md (nonzero_shift_count_operand): New. * config/s390/s390-protos.h (s390_extzv_shift_ok): Declare. * config/s390/s390.c (s390_extzv_shift_ok): New function. * config/s390/s390.md (extzv): New expander. (*extzv<GPR>_zEC12, *extzv<GPR>_z10): New insns. (*pre_z10_extzv<GPR>): Rename from *extzv<GPR>; simplify with nonzero_shift_count_operand. (*extzv_<mode>_srl, *extzv_<mode>_sll): New insns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194644 138bc75d-0d04-0410-961f-82ee72b054a4
* s390: Add mode attribute for mode bitsizerth2012-12-201-46/+26
| | | | | | | | | * config/s390/s390.md (bitsize): New mode attr. (*extzv<GPR>, *extzv<GPR>, *insv<GPR>_zEC12, *insv<GPR>_z10): Use it. (extend<HQI><DSI>2, zero_extend<HQI>si2): Likewise. (zero_extend<HQI>di2, fixuns_trunc<BFP><GPR>2): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194643 138bc75d-0d04-0410-961f-82ee72b054a4
* s390: Use risbgz for ANDrth2012-12-201-45/+62
| | | | | | | | * config/s390/s390.md (*anddi3_cc): Add risbg alternative. (*anddi3_cconly, *anddi3): Likewise. (*andsi3, *andsi3_cconly, *andsi3_zarch): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194642 138bc75d-0d04-0410-961f-82ee72b054a4
* s390: Only use lhs zero_extract in word_moderth2012-12-201-9/+8
| | | | | | * config/s390/s390.md (*insv_l_di_reg_extimm): Un-macroize from :P. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194641 138bc75d-0d04-0410-961f-82ee72b054a4
* s390: Constraints, predicates, and op letters for contiguous bitmasksrth2012-12-201-59/+15
| | | | | | | | | | | | | * config/s390/constraints.md (NxxDq, NxxSq): New. * config/s390/predicates.md (contiguous_bitmask_operand): New. * config/s390/s390.c (print_operand) ['e', 'f', 's', 't']: New operand letters. * config/s390/s390.md (bfstart, bfend): New mode attrs. (*insv<GPR>_zEC12_noshift): Use them. (*insv<GPR>_z10_noshift): Likewise. (*insv<GPR>_or_z10_noshift): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194640 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-12-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2012-12-111-2/+2
| | | | | | | | | | * config/s390/predicates.md ("execute_operation"): New predicate. * config/s390/s390.md ("*execute_rl", "*execute"): Use the new predicate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194385 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop-doloop.c (doloop_modify): Pass doloop_end pattern toamylaar2012-10-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | gen_doloop_begin. (doloop_optimize): Pass flag to indicate if loop is entered at top to gen_doloop_end. * config/arm/thumb2.md (doloop_end): Accept extra operand. * config/bfin/bfin.md (doloop_end): Likewise. * config/c6x/c6x.md (doloop_end): Likewise. * config/ia64/ia64.md (doloop_end): Likewise. * config/mep/mep.md (doloop_begin, doloop_end): Likewise. * config/rs6000/rs6000.md (doloop_end): Likewise. * config/s390/s390.md (doloop_end): Likewise. * config/sh/sh.md (doloop_end): Likewise. * config/spu/spu.md (doloop_end): Likewise. * config/tilegx/tilegx.md (doloop_end): Likewise. * config/tilepro/tilepro.md (doloop_end): Likewise. * doc/md.texi (doloop_end): Document new operand. * basic-block.h (contains_no_active_insn_p): Declare. * cfgrtl.c (contains_no_active_insn_p): New function, factored out of ... (forwarder_block_p): ... here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192505 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-11 Chung-Lin Tang <cltang@codesourcery.com>cltang2012-10-111-18/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * builtins.c (expand_builtin_thread_pointer): New. (expand_builtin_set_thread_pointer): New. (expand_builtin): Add BUILT_IN_THREAD_POINTER, BUILT_IN_SET_THREAD_POINTER expand cases. * builtins.def (BUILT_IN_THREAD_POINTER): New __builtin_thread_pointer builtin. (BUILT_IN_SET_THREAD_POINTER): New __builtin_set_thread_pointer builtin. * optabs.def (get_thread_pointer,set_thread_pointer): New standard names. * doc/md.texi (Standard Names): Document get_thread_pointer and set_thread_pointer patterns. * config/alpha/alpha.md (get_thread_pointerdi): Rename from load_tp. (set_thread_pointerdi): Rename from set_tp. * config/alpha/alpha.c (alpha_legitimize_address_1): Change gen_load_tp calls to gen_get_thread_pointerdi. (alpha_builtin): Remove ALPHA_BUILTIN_THREAD_POINTER, ALPHA_BUILTIN_SET_THREAD_POINTER. (code_for_builtin): Remove CODE_FOR_load_tp, CODE_FOR_set_tp. (alpha_init_builtins): Remove __builtin_thread_pointer, __builtin_set_thread_pointer machine-specific builtins. (alpha_expand_builtin_thread_pointer): Add hook function for TARGET_EXPAND_BUILTIN_THREAD_POINTER. (alpha_expand_builtin_set_thread_pointer): Add hook function for TARGET_EXPAND_BUILTIN_SET_THREAD_POINTER. (alpha_fold_builtin): Remove ALPHA_BUILTIN_THREAD_POINTER, ALPHA_BUILTIN_SET_THREAD_POINTER cases. * config/arm/arm.md (get_thread_pointersi): New pattern. * config/arm/arm-protos.h (arm_load_tp): Add extern declaration. * config/arm/arm.c (arm_load_tp): Remove static. (arm_builtins): Remove ARM_BUILTIN_THREAD_POINTER. (arm_init_tls_builtins): Remove function. (arm_init_builtins): Remove call to arm_init_tls_builtins(). (arm_expand_builtin): Remove ARM_BUILTIN_THREAD_POINTER case. * config/mips/mips.md (get_thread_pointer<mode>): New pattern. * config/mips/mips-protos.h (mips_expand_thread_pointer): Add extern declaration. * config/mips/mips.c (mips_expand_thread_pointer): Renamed from mips_get_tp. (mips_get_tp): New stub calling mips_expand_thread_pointer. * config/s390/s390.c (s390_builtin,code_for_builtin_64, code_for_builtin_31,s390_init_builtins,s390_expand_builtin): Remove. * config/s390/s390.md (get_tp_64,get_tp_31,set_tp_64,set_tp_31): Remove. (get_thread_pointer<mode>,set_thread_pointer<mode>): New, adapted from removed patterns. * config/xtensa/xtensa.md (get_thread_pointersi): Renamed from load_tp. (set_thread_pointersi): Renamed from set_tp. * config/xtensa/xtensa.c (xtensa_legitimize_tls_address): Change gen_load_tp calls to gen_get_thread_pointersi. (xtensa_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER and XTENSA_BUILTIN_SET_THREAD_POINTER. (xtensa_init_builtins): Remove __builtin_thread_pointer, __builtin_set_thread_pointer machine-specific builtins. (xtensa_fold_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER, XTENSA_BUILTIN_SET_THREAD_POINTER cases. (xtensa_expand_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER, XTENSA_BUILTIN_SET_THREAD_POINTER cases. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192364 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2012-10-101-9/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192289 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_atomic_compare_exchange): Pass olduweigand2012-08-081-4/+17
| | | | | | | | | | | | | value operand as MEM to expand_atomic_compare_and_swap. * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Accept nonimmediate_operand for old value; generate load and store if needed. * config/s390/s390.c (s390_expand_cs_hqi): Accept any operand as vtarget. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190236 138bc75d-0d04-0410-961f-82ee72b054a4
* s390: Convert from sync to atomic optabsrth2012-08-071-113/+276
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/s390/s390.c (s390_emit_compare_and_swap): Update for atomic_compare_and_swapsi_internal name change. (s390_expand_insv): Try RISBG last, not requiring operands in registers but forcing them there. Try a limited form of ICM. (s390_two_part_insv): New. (s390_expand_cs_hqi): Use it. Update for atomic optabs. * config/s390/s390.md (UNSPEC_MOVA): New. (TDSI): Remove mode iterator. (DGPR, DINT, TDI): New mode iterators. (td): New mode attribute. (mem_signal_fence): New. (mem_thread_fence): Rename from memory_barrier; update for model arg. (mem_thread_fence_1): Rename from *memory_barrier. (atomic_load<DINT>, atomic_store<DINT>): New expanders. (atomic_loaddi_1, atomic_loadti_1): New. (atomic_storedi_1, atomic_storeti_1): New. (sync_compare_and_swap<TDSI>, sync_compare_and_swap<HQI>): Remove. (atomic_compare_and_swap<DGPR>, atomic_compare_and_swap<HQI>): New. (atomic_compare_and_swap<DGPR>_internal): New. (*sync_compare_and_swap<DW>, *sync_compare_and_swap<GPR>): Remove. (*atomic_compare_and_swap<TDI>_1): New. (*atomic_compare_and_swapdi_2, *atomic_compare_and_swapsi_3): New. (sync_<ATOMIC_Z196><GPR>, sync_old_<ATOMIC_Z196><GPR>): Remove. (atomic_fetch_<ATOMIC_Z196><GPR>): New. (atomic_fetch_<ATOMC_Z196><GPR>_iaf): New. (sync_<ATOMIC><HQI>, sync_old_<ATOMIC><HQI>): Remove. (sync_new_<ATOMIC><HQI>): Remove. (atomic_<ATOMIC><HQI>, atomic_fetch_<ATOMIC><HQI>): New. (atomic_<ATOMIC>_fetch<HQI>): New. (sync_lock_test_and_set<HQI>): Remove. (atomic_exchange<HQI>): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190209 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2012-07-051-3/+13
| | | | | | | | | | | | | * config/s390/s390-protos.h (s390_expand_movmem) (s390_expand_cmpmem): Add return value. * config/s390/s390.c (s390_expand_movmem, s390_expand_cmpmem): Return FALSE to use the library function in some cases. * config/s390/s390.md (movmem, cmpmem): Evaluate return value of C helper functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189288 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2012-05-051-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rtl.h (plus_constant, plus_constant_mode): Merge into a single plus_constant function. * explow.c (plus_constant, plus_constant_mode): Likewise. Assert that the mode is sensible. (use_anchored_address, round_push, allocate_dynamic_stack_space) (probe_stack_range, anti_adjust_stack_and_probe): Update calls to plus_constant. * alias.c (canon_rtx): Likewise. (init_alias_analysis): Likewise. * builtins.c (expand_builtin_return_addr) (expand_builtin_setjmp_setup, expand_builtin_longjmp) (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf) (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr) (expand_builtin_stpcpy): Likewise. * calls.c (save_fixed_argument_area, restore_fixed_argument_area) (compute_argument_addresses, internal_arg_pointer_based_exp) (expand_call, emit_library_call_value_1): Likewise. * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise. * combine-stack-adj.c (try_apply_stack_adjustment): Likewise. * combine.c (combine_simplify_rtx, force_to_mode): Likewise. * cse.c (insert_const_anchor, find_reg_offset_for_const) (use_related_value, fold_rtx): Likewise. * cselib.c (cselib_subst_to_values): Likewise. * dse.c (record_store, check_mem_read_rtx): Likewise. * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise. * emit-rtl.c (adjust_address_1): Likewise. * except.c (sjlj_emit_function_enter) (expand_builtin_extract_return_addr) (expand_builtin_frob_return_addr): Likewise. * expmed.c (expand_divmod): Likewise. * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1) (emit_move_resolve_push, push_block, emit_push_insn, store_expr) (expand_expr_addr_expr_1, expand_expr_real_1): Likewise. * function.c (assign_stack_local_1) (instantiate_virtual_regs_in_rtx): Likewise. * optabs.c (prepare_cmp_insn): Likewise. * recog.c (offsettable_address_addr_space_p): Likewise. * reload.c (find_reloads_address, form_sum) (find_reloads_subreg_address): Likewise. * reload1.c (init_reload, eliminate_regs_1) (eliminate_regs_in_insn): Likewise. * simplify-rtx.c (simplify_unary_operation_1) (simplify_binary_operation_1, simplify_plus_minus): Likewise. * var-tracking.c (compute_cfa_pointer, prepare_call_arguments) (vt_add_function_parameter): Likewise. * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise. * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise. * config/alpha/alpha.c (alpha_legitimize_address_1) (get_unaligned_address, alpha_expand_unaligned_load) (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words) (alpha_expand_unaligned_store_words, alpha_expand_block_clear) (alpha_expand_builtin_establish_vms_condition_handler) (alpha_setup_incoming_varargs, emit_frame_store_1) (alpha_expand_prologue, alpha_expand_epilogue) (alpha_use_linkage): Likewise. * config/alpha/alpha.md: Likewise. * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address) (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address) (thumb_legitimize_address, arm_gen_load_multiple_1) (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq) (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight) (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi) (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push) (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue) (thumb1_emit_multi_reg_push, thumb1_expand_prologue) (thumb_expand_movmemqi, arm_set_return_address) (thumb_set_return_address): Likewise. * config/arm/arm.md: Likewise. * config/avr/avr.c (avr_incoming_return_addr_rtx) (avr_prologue_setup_frame, expand_epilogue) (avr_const_address_lo16): Likewise. * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise. * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg) (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call) (bfin_output_mi_thunk): Likewise. * config/c6x/c6x.c (c6x_initialize_trampoline) (c6x_output_mi_thunk): Likewise. * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise. * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise. * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx) (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load) (cris_emit_movem_store, cris_trampoline_init): Likewise. * config/cris/cris.md: Likewise. * config/darwin.c (machopic_indirect_data_reference) (machopic_legitimize_pic_address): Likewise. * config/epiphany/epiphany.c (epiphany_emit_save_restore) (epiphany_expand_prologue, epiphany_expand_epilogue) (epiphany_trampoline_init): Likewise. * config/epiphany/epiphany.md: Likewise. * config/fr30/fr30.c (fr30_move_double): Likewise. * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue) (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx) (frv_index_memory, unspec_got_name, frv_find_base_term) (frv_output_dwarf_dtprel): Likewise. * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx) (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise. * config/i386/i386.h (RETURN_ADDR_RTX): Likewise. * config/i386/i386.c (setup_incoming_varargs_64) (setup_incoming_varargs_ms_64, choose_baseaddr) (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe) (ix86_emit_probe_stack_range, ix86_expand_prologue) (ix86_emit_restore_reg_using_pop, ix86_emit_leave) (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address) (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem) (ix86_static_chain, ix86_trampoline_init, x86_this_parameter) (x86_output_mi_thunk): Likewise. * config/i386/i386.md: Likewise. * config/ia64/ia64.c (ia64_expand_load_address) (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode) (do_spill, ia64_trampoline_init): Likewise. * config/iq2000/iq2000.c (iq2000_va_start) (iq2000_emit_frame_related_store, iq2000_expand_prologue) (iq2000_expand_eh_return, iq2000_setup_incoming_varargs) (iq2000_print_operand, iq2000_legitimize_address): Likewise. * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise. * config/m32c/m32c.c (m32c_return_addr_rtx) (m32c_expand_insv): Likewise. * config/m32r/m32r.c (m32r_setup_incoming_varargs) (m32r_legitimize_pic_address, m32r_print_operand) (m32r_print_operand_address): Likewise. * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise. * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise. (EH_RETURN_HANDLER_RTX): Likewise. * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue) (m68k_expand_epilogue, legitimize_pic_address) (m68k_output_mi_thunk): Likewise. * config/m68k/m68k.md: Likewise. * config/mcore/mcore.c (mcore_expand_prolog): Likewise. (mcore_expand_epilog): Likewise. * config/mcore/mcore.md: Likewise. * config/mep/mep.c (mep_allocate_initial_value) (mep_expand_prologue, mep_expand_epilogue): Likewise. * config/microblaze/microblaze.c (double_memory_operand) (microblaze_block_move_loop): Likewise. * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset) (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop) (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg) (mips_expand_prologue, mips_epilogue_set_cfa) (mips_expand_epilogue): Likewise. * config/mips/mips.md: Likewise. * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx) (mmix_expand_prologue, mmix_expand_epilogue): Likewise. * config/mn10300/mn10300.c (mn10300_gen_multiple_store) (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise. * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise. (EH_RETURN_HANDLER_RTX): Likewise. * config/moxie/moxie.c (moxie_static_chain): Likewise. * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address) (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg) (pa_return_addr_rtx, hppa_builtin_saveregs) (pa_trampoline_init): Likewise. * config/pa/pa.md: Likewise. * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise. * config/picochip/picochip.c (picochip_static_chain): Likewise. * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise. * config/rs6000/rs6000.c (rs6000_legitimize_address) (setup_incoming_varargs, print_operand, rs6000_return_addr) (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range) (rs6000_emit_epilogue) (rs6000_machopic_legitimize_pic_address): Likewise. * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise. * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise. (DYNAMIC_CHAIN_ADDRESS): Likewise. * config/s390/s390.c (s390_decompose_address, legitimize_pic_address) (s390_delegitimize_address, print_operand, annotate_constant_pool_refs) (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx) (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue) (s390_emit_epilogue, s390_function_profiler): Likewise. * config/s390/s390.md: Likewise. * config/score/score.c (score_add_offset, score_prologue): Likewise. * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs) (sh_output_mi_thunk): Likewise. * config/sh/sh.md: Likewise. * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX) (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise. * config/sparc/sparc.c (sparc_legitimize_pic_address) (sparc_emit_probe_stack_range, emit_save_or_restore_regs) (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx) (emit_and_preserve): Likewise. * config/sparc/sparc.md: Likewise. * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise. * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg) (spu_setup_incoming_varargs, ea_load_store_inline) (spu_expand_load): Likewise. * config/stormy16/stormy16.c (xstormy16_expand_prologue) (combine_bnp): Likewise. * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise. * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs) (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise. * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise. * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs) (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise. * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise. * config/v850/v850.md: Likewise. * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise. (EH_RETURN_HANDLER_RTX): Likewise. * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise. * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue) (print_operand_address, vax_trampoline_init): Likewise. * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr) (xtensa_function_value_regno_p): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187199 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2012-05-041-9/+6
| | | | | | | | | | * config/s390/s390.md (*movmem_short, *clrmem_short) (*cmpmem_short): Move the mode check from the insn condition to the match_scratch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187159 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2012-02-211-1/+1
| | | | | | | | | | * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace TARGET_HARD_FLOAT with TARGET_HARD_DFP. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184433 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2012-01-311-0/+1
| | | | | | | | | | * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag to srak instruction. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183759 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2012-01-031-1/+2
| | | | | | | | | | * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning the instructions emitted by the pattern. ("*TDC_insn_<mode>"): Add comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182831 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2011-10-071-11/+16
| | | | | | | | | | * config/s390/s390.md (DWH, dwh): New mode macros. ("umulsidi3"): Extend to support "umulditi3" as well. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179647 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2011-09-141-12/+12
| | | | | | | | * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref throughout file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178867 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2011-07-191-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document. (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT. * rtl.h (MEM_SIZE_KNOWN_P): New macro. (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx. * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx. (clear_mem_size): Declare. * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx. (clear_mem_size): New function. * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE to get a HOST_WIDE_INT size. Adjust calls to set_mem_size, passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size to clear the size. (nonoverlapping_memrefs_p): Likewise. * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise. (expand_builtin_init_trampoline): Likewise. * calls.c (compute_argument_addresses): Likewise. * cfgcleanup.c (merge_memattrs): Likewise. * dce.c (find_call_stack_args): Likewise. * dse.c (record_store, scan_insn): Likewise. * dwarf2out.c (dw_sra_loc_expr): Likewise. * expr.c (emit_block_move_hints): Likewise. * function.c (assign_parm_find_stack_rtl): Likewise. * print-rtl.c (print_rtx): Likewise. * reload.c (find_reloads_subreg_address): Likewise. * rtlanal.c (may_trap_p_1): Likewise. * var-tracking.c (track_expr_p): Likewise. * varasm.c (assemble_trampoline_template): Likewise. * config/arm/arm.c (arm_print_operand): Likewise. * config/h8300/h8300.c (h8sx_emit_movmd): Likewise. * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise. (expand_setmem_via_rep_stos, expand_constant_movmem_prologue) (expand_constant_setmem_prologue): Likewise. * config/mips/mips.c (mips_get_unaligned_mem): Likewise. * config/rs6000/rs6000.c (expand_block_move): Likewise. (adjacent_mem_locations): Likewise. * config/s390/s390.c (s390_expand_setmem): Likewise. (s390_expand_insv): Likewise. * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise. (*extendqi<mode>2_short_displ): Likewise. * config/sh/sh.c (expand_block_move): Likewise. * config/sh/sh.md (extv, extzv): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176476 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2011-05-091-0/+1
| | | | | | | | | * config/s390/s390.md (TD/TF mem to reg move splitter): Make the temporary register to match Pmode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173572 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2011-04-151-3/+3
| | | | | | | | | | * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2): Replace match_operand with match_dup for the third operand in these expanders. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172490 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2011-03-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | * config/s390/2084.md: Enable all insn reservations also for z9_ec cpu attribute value. * config/s390/s390-opts.h (enum s390_arch_option): Remove. (enum processor_type): Add PROCESSOR_2094_Z9_EC. * config/s390/s390.c (processor_flags_table): New constant array. (s390_handle_arch_option): Remove. (s390_handle_option): Remove s390_handle_arch_option invocations and OPT_mwarn_framesize_ handling. (s390_option_override): Remove s390_handle_arch_option invocation. (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in warnings. * config/s390/s390.md (cpu attribute): Add z9_ec value. * config/s390/s390.opt (s390_tune, s390_arch) (march=): Replace s390_arch_option enum and values with processor_type. Set variable name to s390_arch. Set initialization value. (mtune=): Replace s390_arch_option with processor_type. Set variable name to s390_tune. Set initialization value. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171350 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>krebbel2011-03-181-49/+49
| | | | | | | | | * config/s390/s390.md: Use define_c_enum for the unspec constant definitions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171132 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc tojakub2010-12-091-2/+2
| | | | | | | | locg and stocg even in comment. (sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167630 138bc75d-0d04-0410-961f-82ee72b054a4
* s390: -mfused-madd cleanuprth2010-11-161-9/+9
| | | | | | | | | | | * config.gcc [s390*-*] (extra_options): Add fused-madd.opt. * config/s390/s390.opt (mfused-madd): Remove. * config/s390/s390.c (s390_rtx_costs): Handle FMA. (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD. * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA. (fms<DSF>4): Rename from *fmsub<DSF>; use FMA. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166838 138bc75d-0d04-0410-961f-82ee72b054a4