summaryrefslogtreecommitdiff
path: root/gcc/config/sparc/sparc.md
Commit message (Collapse)AuthorAgeFilesLines
* 2009-01-05 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2009-01-051-1/+2
| | | | | | | | MELT branch merged with trunk r143070 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@143072 138bc75d-0d04-0410-961f-82ee72b054a4
* 008-12-02 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2008-12-021-43/+79
| | | | | | | | MELT branch merged with trunk r142344 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@142346 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-11-07 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2008-11-071-23/+21
| | | | | | | | MELT branch merged with trunk r141668 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@141672 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-09-24 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2008-09-241-1/+2
| | | | | | | | MELT branch merged with trunk r140637 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@140639 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-09-22 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2008-09-221-353/+161
| | | | | | | | MELT branch merged with trunk r140542 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@140543 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-06-02 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2008-06-021-4/+4
| | | | | | | | MELT branch merged with trunk r136272 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@136278 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-05-06 Basile Starynkevitch <basile@starynkevitch.net>bstarynk2008-05-061-5/+5
| | | | | | | | MELT branch merged with trunk r134973 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@134974 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-10-18 David S. Miller <davem@davemloft.net>davem2007-10-191-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add Niagara-2 support. * doc/invoke.texi: Document -m{cpu,tune}=niagara2. * config.gcc: Add niagara2 to cpu and tune lists for sparc. * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2. (include): Add inclusion of niagara2.md * config/sparc/sparc.c (niagara2_costs): New. (sparc_override_options): Add niagara2 entry to cpu_default[] and cpu_table[]. Set align_functions to 32 on Niagara2. Use niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE. (sparc_initialize_trampoline): Handle niagara2 like niagara. (sparc64_initialize_trampoline): Likewise. (sparc_use_sched_lookahead): Likewise. (sparc_issue_rate): Likewise. * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and mcpu=niagara2 * config/sparc/sparc.h (TARGET_CPU_niagara2): Define. ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for TARGET_CPU_niagara2. (PROCESSOR_NIAGARA2): New. (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2. (BRANCH_COST): Likewise. * config/sparc/linux64.h: Handle TARGET_CPU_niagara2. * config/sparc/sol2.h: Likewise. * config/sparc/niagara2.md: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129472 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/md.texi (Iterators): Renamed from Macros. All contentshp2007-08-221-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | changed to reflect rename of respectively define_code_macro and define_mode_macro to define_code_iterator and define_mode_iterator. (Mode Iterators, Code Iterators): Similar. * read-rtl.c (struct iterator_group, struct iterator_traverse_data) (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p) (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse) (initialize_iterators, find_iterator, check_code_iterator) (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping) (read_mapping, read_rtx_1): Similar. * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md, config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md, config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md, config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md, config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md, config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md, config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md, config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md, config/rs6000/sync.md, config/rs6000/rs6000.md, config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md, config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md, config/vax/vax.md, config/bfin/bfin.md: Similar. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127715 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/host-hpux.c: Change copyright header to refer to version 3 of the GNUnickc2007-08-021-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | General Public License and to point readers at the COPYING3 file and the FSF's license web page. * config/alpha/predicates.md, config/alpha/vms-ld.c, config/alpha/linux.h, config/alpha/alpha.opt, config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h, config/alpha/vms-unwind.h, config/alpha/ev4.md, config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c, config/alpha/alpha.h, config/alpha/sync.md, config/alpha/openbsd.h, config/alpha/alpha.md, config/alpha/alpha-modes.def, config/alpha/ev5.md, config/alpha/alpha-protos.h, config/alpha/freebsd.h, config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h, config/alpha/constraints.md, config/alpha/osf.h, config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h, config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h, config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def, config/frv/frv-asm.h, config/frv/frv-protos.h, config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h, config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h, config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt, config/s390/2064.md, config/s390/2084.md, config/s390/s390.md, config/s390/s390.opt, config/s390/s390-modes.def, config/s390/fixdfdi.h, config/s390/constraints.md, config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h, config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md, config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md, config/m32c/m32c-pragma.c, config/m32c/m32c.h, config/m32c/prologue.md, config/m32c/m32c.abi, config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md, config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt, config/m32c/t-m32c, config/m32c/m32c-modes.def, config/m32c/jump.md, config/m32c/shift.md, config/m32c/m32c-protos.h, config/libgloss.h, config/spu/spu-protos.h, config/spu/predicates.md, config/spu/spu-builtins.h, config/spu/spu.c, config/spu/spu-builtins.def, config/spu/spu-builtins.md, config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md, config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt, config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h, config/sparc/hypersparc.md, config/sparc/predicates.md, config/sparc/linux.h, config/sparc/sp64-elf.h, config/sparc/supersparc.md, config/sparc/cypress.md, config/sparc/openbsd1-64.h, config/sparc/openbsd64.h, config/sparc/niagara.md, config/sparc/sparc.md, config/sparc/long-double-switch.opt, config/sparc/ultra3.md, config/sparc/sparc.opt, config/sparc/sync.md, config/sparc/sp-elf.h, config/sparc/sparc-protos.h, config/sparc/ultra1_2.md, config/sparc/biarch64.h, config/sparc/sparc.c, config/sparc/little-endian.opt, config/sparc/sysv4-only.h, config/sparc/sparc.h, config/sparc/linux64.h, config/sparc/freebsd.h, config/sparc/sol2.h, config/sparc/rtemself.h, config/sparc/netbsd-elf.h, config/sparc/vxworks.h, config/sparc/sparc-modes.def, config/sparc/sparclet.md, config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h, config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md, config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt, config/m32r/linux.h, config/m32r/constraints.md, config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt, config/darwin-c.c, config/darwin.opt, config/i386/i386.h, config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h, config/i386/i386.md, config/i386/netware-crt0.c, config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h, config/i386/kaos-i386.h, config/i386/winnt-stubs.c, config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h, config/i386/sol2.h, config/i386/constraints.md, config/i386/netware-libgcc.c, config/i386/sysv5.h, config/i386/predicates.md, config/i386/geode.md, config/i386/x86-64.h, config/i386/kfreebsd-gnu.h, config/i386/freebsd64.h, config/i386/vxworksae.h, config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h, config/i386/rtemself.h, config/i386/netbsd-elf.h, config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c, config/i386/netware.h, config/i386/i386-modes.def, config/i386/sysv4-cpp.h, config/i386/i386-interix.h, config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h, config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h, config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h, config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md, config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt, config/i386/xm-mingw32.h, config/i386/linux64.h, config/i386/openbsdelf.h, config/i386/xm-cygwin.h, config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h, config/i386/winnt-cxx.c, config/i386/i386-interix3.h, config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c, config/i386/cygwin2.c, config/i386/i386-protos.h, config/i386/sync.md, config/i386/openbsd.h, config/i386/host-mingw32.c, config/i386/i386-aout.h, config/i386/nto.h, config/i386/biarch64.h, config/i386/i386-coff.h, config/i386/freebsd.h, config/i386/driver-i386.c, config/i386/knetbsd-gnu.h, config/i386/host-i386-darwin.c, config/i386/vxworks.h, config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h, config/darwin-protos.h, config/linux.opt, config/sol2.c, config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h, config/sh/linux.h, config/sh/elf.h, config/sh/superh.h, config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h, config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h, config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md, config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h, config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c, config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def, config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md, config/sh/superh64.h, config/sh/rtemself.h, config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h, config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h, config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c, config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def, config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h, config/avr/predicates.md, config/avr/constraints.md, config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt, config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h, config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h, config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt, config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt, config/c4x/c4x-modes.def, config/c4x/rtems.h, config/c4x/predicates.md, config/c4x/c4x.h, config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h, config/xtensa/predicates.md, config/xtensa/xtensa.c, config/xtensa/linux.h, config/xtensa/xtensa.h, config/xtensa/elf.h, config/xtensa/xtensa.md, config/xtensa/xtensa.opt, config/xtensa/constraints.md, config/xtensa/xtensa-protos.h, config/dbx.h, config/stormy16/predicates.md, config/stormy16/stormy16.md, config/stormy16/stormy16.c, config/stormy16/stormy16.opt, config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h, config/host-solaris.c, config/fr30/fr30.h, config/fr30/predicates.md, config/fr30/fr30-protos.h, config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt, config/vxworksae.h, config/sol2-c.c, config/lynx.h, config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md, config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h, config/openbsd-oldgas.h, config/host-linux.c, config/interix3.h, config/cris/cris.c, config/cris/predicates.md, config/cris/linux.h, config/cris/cris.h, config/cris/aout.h, config/cris/cris.md, config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt, config/cris/cris-protos.h, config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h, config/iq2000/iq2000.h, config/iq2000/predicates.md, config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md, config/iq2000/iq2000.c, config/iq2000/iq2000.opt, config/host-darwin.c, config/mt/mt.md, config/mt/mt.c, config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h, config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h, config/chorus.h, config/mn10300/mn10300.c, config/mn10300/mn10300.opt, config/mn10300/predicates.md, config/mn10300/mn10300.h, config/mn10300/linux.h, config/mn10300/constraints.md, config/mn10300/mn10300-protos.h, config/mn10300/mn10300.md, config/ia64/predicates.md, config/ia64/itanium1.md, config/ia64/unwind-ia64.h, config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c, config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md, config/ia64/freebsd.h, config/ia64/ia64.md, config/ia64/ia64-modes.def, config/ia64/constraints.md, config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h, config/gofast.h, config/rtems.h, config/sol2-10.h, config/m68k/predicates.md, config/m68k/m68k.md, config/m68k/linux.h, config/m68k/m68k-modes.def, config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h, config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt, config/m68k/openbsd.h, config/m68k/m68k-aout.h, config/m68k/m68k.opt, config/m68k/m68020-elf.h, config/m68k/m68kelf.h, config/m68k/m68k-devices.def, config/m68k/uclinux-oldabi.h, config/m68k/m68k.c, config/m68k/constraints.md, config/m68k/rtemself.h, config/m68k/netbsd-elf.h, config/m68k/m68k.h, config/m68k/uclinux.h, config/rs6000/power4.md, config/rs6000/host-darwin.c, config/rs6000/6xx.md, config/rs6000/linux.h, config/rs6000/eabi.h, config/rs6000/aix41.opt, config/rs6000/xcoff.h, config/rs6000/secureplt.h, config/rs6000/linuxspe.h, config/rs6000/eabialtivec.h, config/rs6000/8540.md, config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h, config/rs6000/windiss.h, config/rs6000/603.md, config/rs6000/aix41.h, config/rs6000/cell.md, config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h, config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt, config/rs6000/darwin.md, config/rs6000/darwin64.h, config/rs6000/default64.h, config/rs6000/7xx.md, config/rs6000/darwin.opt, config/rs6000/spe.md, config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c, config/rs6000/rios2.md, config/rs6000/linuxaltivec.h, config/rs6000/7450.md, config/rs6000/linux64.h, config/rs6000/constraints.md, config/rs6000/440.md, config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c, config/rs6000/rs6000.c, config/rs6000/aix52.h, config/rs6000/rs6000.h, config/rs6000/power6.md, config/rs6000/predicates.md, config/rs6000/altivec.md, config/rs6000/aix64.opt, config/rs6000/rios1.md, config/rs6000/rs6000-modes.def, config/rs6000/rs64.md, config/rs6000/eabisim.h, config/rs6000/sysv4le.h, config/rs6000/darwin7.h, config/rs6000/dfp.md, config/rs6000/linux64.opt, config/rs6000/sync.md, config/rs6000/vxworksae.h, config/rs6000/power5.md, config/rs6000/lynx.h, config/rs6000/biarch64.h, config/rs6000/rs6000.md, config/rs6000/sysv4.opt, config/rs6000/eabispe.h, config/rs6000/e500.h, config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h, config/rs6000/netbsd.h, config/rs6000/e500-double.h, config/rs6000/aix.h, config/rs6000/vxworks.h, config/rs6000/40x.md, config/rs6000/aix51.h, config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md, config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def, config/arc/arc.h, config/mcore/mcore-elf.h, config/mcore/mcore-protos.h, config/mcore/predicates.md, config/mcore/mcore.md, config/mcore/mcore.c, config/mcore/mcore.opt, config/mcore/mcore.h, config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h, config/score/predicates.md, config/score/score-version.h, config/score/score-protos.h, config/score/misc.md, config/score/elf.h, config/score/score.c, config/score/mac.md, config/score/score7.md, config/score/score.h, config/score/score-conv.h, config/score/score-mdaux.c, config/score/score.md, config/score/score.opt, config/score/score-modes.def, config/score/score-mdaux.h, config/score/mul-div.S, config/arm/uclinux-elf.h, config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md, config/arm/symbian.h, config/arm/linux-elf.h, config/arm/arm1026ejs.md, config/arm/arm1136jfs.md, config/arm/elf.h, config/arm/aout.h, config/arm/arm.c, config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h, config/arm/strongarm-pe.h, config/arm/arm.h, config/arm/cortex-a8-neon.md, config/arm/semiaof.h, config/arm/cortex-a8.md, config/arm/uclinux-eabi.h, config/arm/arm-modes.def, config/arm/linux-eabi.h, config/arm/rtems-elf.h, config/arm/neon-schedgen.ml, config/arm/arm-cores.def, config/arm/arm-protos.h, config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h, config/arm/wince-pe.h, config/arm/neon.md, config/arm/constraints.md, config/arm/neon.ml, config/arm/xscale-elf.h, config/arm/strongarm-coff.h, config/arm/arm.opt, config/arm/arm926ejs.md, config/arm/predicates.md, config/arm/iwmmxt.md, config/arm/arm_neon.h, config/arm/unknown-elf.h, config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt, config/arm/neon-testgen.ml, config/arm/arm.md, config/arm/xscale-coff.h, config/arm/pe.c, config/arm/arm-generic.md, config/arm/pe.h, config/arm/kaos-strongarm.h, config/arm/freebsd.h, config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md, config/arm/strongarm-elf.h, config/arm/cirrus.md, config/arm/netbsd-elf.h, config/arm/vxworks.h, config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c, config/pa/predicates.md, config/pa/pa64-hpux.h, config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt, config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h, config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h, config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h, config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, config/pa/pa-hpux1010.h, config/pa/pa-protos.h, config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h, config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h, config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt, config/pa/pa64-regs.h, config/pa/pa-modes.def, config/pa/constraints.md, config/darwin9.h, config/mips/4100.md, config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h, config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h, config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md, config/mips/7000.md, config/mips/9000.md, config/mips/4600.md, config/mips/linux64.h, config/mips/elforion.h, config/mips/constraints.md, config/mips/generic.md, config/mips/predicates.md, config/mips/4300.md, config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md, config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md, config/mips/5k.md, config/mips/vr4120-div.S, config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md, config/mips/mips-protos.h, config/mips/6000.md, config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h, config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h, config/mips/mips-modes.def, config/mips/vr.h, config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h, config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h, config/vax/vax.h, config/vax/elf.h, config/vax/vax.md, config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def, config/vax/openbsd1.h, config/vax/netbsd.h, config/vax/vax-protos.h, config/vax/netbsd-elf.h, config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h, config/h8300/rtems.h, config/h8300/predicates.md, config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h, config/h8300/h8300.md, config/h8300/h8300.opt, config/h8300/coff.h, config/h8300/h8300-protos.h, config/v850/v850.md, config/v850/predicates.md, config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt, config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c, config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h, config/mmix/mmix.h, config/mmix/predicates.md, config/mmix/mmix-protos.h, config/mmix/mmix.md, config/mmix/mmix.c, config/mmix/mmix.opt, config/mmix/mmix-modes.def, config/bfin/bfin.opt, config/bfin/rtems.h, config/bfin/bfin-modes.def, config/bfin/predicates.md, config/bfin/bfin-protos.h, config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127157 138bc75d-0d04-0410-961f-82ee72b054a4
* Replace no_new_pseudos in backends.ian2007-07-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rtl.h (can_create_pseudo_p): Define. * config/darwin.c (machopic_indirect_data_reference): Use can_create_pseudo_p () instead of no_new_pseudos. (machopic_indirect_data_reference): Likewise. (machopic_legitimize_pic_address): Likewise. * config/alpha/alpha.c (alpha_legitimize_address): Likewise. (alpha_emit_set_const_1): Likewise. (alpha_emit_set_const): Likewise. (alpha_emit_conditional_move): Likewise. (alpha_split_conditional_move): Likewise. * config/alpha/alpha.md (various splitters): Likewise. (movti): Likewise. * config/arm/arm.c (legitimize_pic_address): Likewise. (arm_load_pic_register): Likewise. * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise. (movdi, movsi, movhi, movqi, movsf, movdf): Likewise. * config/bfin/bfin.c (legitimize_pic_address): Likewise. * config/cris/cris.c (cris_expand_pic_call_address): Likewise. * config/cris/cris.md (movsi): Likewise. * config/frv/frv.md (symGOT2reg_hilo): Likewise. (symGOTOFF2reg_hilo): Likewise. (symGPREL2reg, symGPREL2reg_hilo): Likewise. * config/h8300/h8300.md (insv, extzv): Likewise. * config/i386/i386.c (ix86_expand_move): Likewise. (ix86_expand_vector_move): Likewise. (ix86_prepare_fp_compare_args): Likewise. (ix86_expand_carry_flag_compare): Likewise. * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise. (tls_dynamic_gnu2_combine_32): Likewise. (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise. * config/ia64/ia64.c (ia64_expand_move): Likewise. (ia64_expand_movxf_movrf): Likewise. * config/m32c/m32c.c (m32c_prepare_move): Likewise. (m32c_split_move): Likewise. (m32c_expand_insv): Likewise. * config/m68k/m68k.md (movsi): Likewise. * config/mips/mips.c (mips_force_temporary): Likewise. (mips_split_symbol): Likewise. (mips_move_integer): Likewise. (mips_legitimize_const_move): Likewise. * config/mn10300/mn10300.md (movsi): Likewise. * config/pa/pa.c (emit_move_sequence): Likewise. * config/rs6000/rs6000.c (rs6000_emit_move): Likewise. (rs6000_got_register): Likewise. (create_TOC_reference): Likewise. (rs6000_machopic_legitimize_pic_address): Likewise. * config/rs6000/rs6000.md (add<mode>3): Likewise. (various splitters): Likewise. (iorsi3, xorsi3, iordi3, xordi3): Likewise. (movsi_got): Likewise. * config/s390/s390.c (emit_symbolic_move): Likewise. * config/s390/s390.md (movhi, movqi): Likewise. (load_multiple, store_multiple): Likewise. * config/score/score.c (score_force_temporary): Likewise. * config/sh/sh.c (prepare_move_operands): Likewise. (prepare_cbranch_operands): Likewise. (emit_fpu_switch): Likewise. (fpscr_set_from_mem): Likewise. * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise. (adddi3, subsi3): Likewise. (various splitters): Likewise. (divsi_inv_fp_combine): Likewise. (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise. (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise. (sne): Likewise. * config/sh/predicates.md (xor_operand): Likewise. * config/sparc/sparc.c (legitimize_tls_address): Likewise. * config/sparc/sparc.md (movsi_pic_label_ref): Likewise. (movdi_pic_label_ref): Likewise. * config/spu/spu.c (spu_split_immediate): Likewise. * config/alpha/alpha.md (various splitters): Remove test !no_new_pseudos || reload_completed. * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set no_new_pseudos. * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise. * config/mips/mips.c (mips_output_mi_thunk): Likewise. * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. * config/score/score.c (th_output_mi_thunk): Likewise. * config/sh/sh.c (sh_output_mi_thunk): Likewise. * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126517 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2007-05-101-7/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | * config.gcc (sparc-wrs-vxworks): New target. * config/sparc/vxworks.h, config/sparc/t-vxworks: New files. * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare. * config/sparc/sparc.h: Include vxworks-dummy.h. (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to include LABEL_REFs too. * config/sparc/sparc.c (sparc_expand_move): Don't assume that _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on VxWorks. (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs on VxWorks. (load_pic_register): Use gen_vxworks_load_got for VxWorks. (sparc_emit_call_insn): New function. (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding functions when generating VxWorks PIC. * config/sparc/sparc.md (vxworks_load_got): New pattern. (call, call_value): Use sparc_emit_call_insn instead of emit_call_insn. libgcc/ * config.host (sparc-wrs-vxworks): New target. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124595 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,kazu2007-02-201-4/+4
| | | | | | | | | | | | | | | | | config/fr30/fr30.md, config/i386/i386.h, config/iq2000/iq2000.h, config/iq2000/predicates.md, config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h, config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h, config/pdp11/pdp11.c, config/pdp11/pdp11.h, config/rs6000/altivec.md, config/rs6000/rs6000.c, config/s390/s390-modes.def, config/sparc/netbsd-elf.h, config/sparc/sparc.c, config/sparc/sparc.h, config/sparc/sparc.md, config/spu/constraints.md, config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling conventions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122151 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/carlos2006-04-041-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | 2006-04-04 Carlos O'Donell <carlos@codesourcery.com> * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document new value 2 for incoming. * function.c (expand_function_start): Call struct_value_rtx with incoming as 2. * config/sparc/sparc.md: Comment updated_return. * config/sparc/sparc.opt: Add -mstd-struct-return option. * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard struct return if sparc_std_struct_return and incoming is 2. (print_operand): Do not adjust return if sparc_std_struct_return. gcc/testsuite/ 2006-04-04 Carlos O'Donell <carlos@codesourcery.com> * gcc.target/sparc/struct-ret-check.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112672 138bc75d-0d04-0410-961f-82ee72b054a4
* Sun Niagara specific optimizations.davem2006-03-021-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config.gcc: Recognize niagara as target. * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara. (TARGET_CPU_niagara): Define. (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara. (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara. (CPP_CPU_SPEC): Handle -mcpu=niagara. (ASM_CPU_SPEC): Likewise. (PROCESSOR_NIAGARA): New enum entry. (REGISTER_MOVE_COST): Handle Niagara. (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise. * config/sparc/sparc.c (niagara_costs): New processor_costs entry. (sparc_override_options): Recognize "niagara", set appropriate default MASK_* values for it, and align functions to 32-bytes by default just like ULTRASPARC/ULTRASPARC3. (sparc_initialize_trampoline): Handle niagara like ultrasparc. (sparc64_initialize_trampoline): Likewise. (sparc_use_sched_lookahead): Use zero for niagara. (sparc_issue_rate): Use one for niagara. * config/sparc/niagara.md: New file. * config/sparc/sparc.md: Include it. * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately when default cpu is niagara. (CPP_CPU_SPEC): Handle -mcpu=niagara. (ASM_CPU_SPEC): Likewise. * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately when default cpu is niagara. (ASM_CPU_SPEC): Handle -mcpu=niagara. * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara just like v9/ultrasparc/ultrasparc3. * doc/invoke.texi: Add documentation for "niagara" and improve existing documentation for ultrasparc variants. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111648 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.md (setjmp): Rewrite.ebotcazou2006-02-161-16/+11
| | | | | | | | | (setjmp_32): Delete. (setjmp_64): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111154 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge from gomp-branch.jakub2006-01-031-0/+6
| | | | | | | | | | | | | | | | | | | | | * config/sparc/sync.md: New file. * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP, UNSPECV_LDSTUB): New constants. * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function. * config/sparc/predicates.md (memory_reg_operand): New predicate. * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New prototype. * gcc.dg/ia64-sync-1.c: On sparc*-*-*, pass -mcpu=v9. * gcc.dg/ia64-sync-2.c: Likewise. * gcc.dg/ia64-sync-3.c: Likewise. * gcc.dg/ia64-sync-4.c: Likewise. * gcc.dg/sync-2.c: Likewise. * lib/target-supports.exp (sync_char_short, sync_int_long): Indicate that sparc64-*-* and sparcv9-*-* supports sync builtins. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109271 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rddavem2005-11-301-38/+28
| | | | | | | | | | | | argument, they are always sparc_compare_op0 and sparc_compare_op1. (gen_v9_scc): Update callers. * config/sparc/sparc.md: Likewise. * config/sparc/sparc-protos.h: Update extern declaration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107696 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.md (stack_protect_testsi): Put clobbers afterjakub2005-07-071-2/+2
| | | | | | | | | all sets in the pattern. * config/rs6000/rs6000.md (stack_protect_testsi, stack_protect_testdi): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101690 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.h (sparc_compare_emitted): New extern.jakub2005-07-061-0/+93
| | | | | | | | | | | | | | | | | * config/sparc/sparc.c (sparc_compare_emitted): New variable. (gen_compare_reg): If sparc_compare_emitted is set, clear it and return its previous value. (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL. * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants. (stack_protect_set, stack_protect_test): New expanders. (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi, stack_protect_testdi): New insns. * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define. * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101653 138bc75d-0d04-0410-961f-82ee72b054a4
* Update FSF address.kcook2005-06-251-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101314 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,kazu2005-05-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c, ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c, tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c, tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c, tree.c, config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c, config/frv/frv.md, config/i386/i386.c, config/i386/sse.md, config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h, config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md, config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md, config/sh/ushmedia.h, config/sparc/sparc.c, config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment typos. Follow spelling conventions. * doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos. Follow spelling conventions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100218 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.ebotcazou2005-05-231-405/+21
| | | | | | | | | | | | | | * config/sparc/sparc.c (sparc_expand_move): New function. (sparc_emit_set_const64): Rewrite assert condition on entry. (legitimate_constant_p) <CONST_VECTOR>: New case. (legitimize_pic_address): Use TARGET_ARCH64 to select the mode. * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32, movV64, movtf): Use nonimmediate_operand for the first operand. Rewrite. Only invoke sparc_expand_move. * config/sparc/predicates.md (input_operand): Reorder tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100077 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.md (movhi): Do not test constnessebotcazou2005-05-171-16/+12
| | | | | | | | | | | | | | of operand #1 twice. (movsi): Likewise. (movdi): Unconditionally accept zero as second operand when the first is memory. (movdi_insn_sp32): Handle above case. (DImode splitter): Use predicates. (DImode splitter): Use const_zero_operand predicate. (movsf_insn): Swap 2 alternatives. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99856 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.h: Remove dead code.ebotcazou2005-05-121-153/+184
| | | | | | | | | | | | | | | | | | | | * config/sparc/sparc.c (sparc_compute_frame_size): Use FIRST_PARM_OFFSET for the size of the register window area. (emit_save_regs): Rename into emit_save_or_restore_regs. Add 'action' parameter. Use 4095 as upper bound for the offset. Pass 'action' to save_or_restore_regs. (emit_restore_regs): Delete. (sparc_expand_prologue): Call emit_save_or_restore_regs. (sparc_expand_epilogue): Likewise. * config/sparc/sparc.md (mode macro P): Move. (movdi_insn_sp32_v9, movdi_insn_sp32): Swap. (mov<V32:mode> expander): Move to the top of the V32 section. (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap. (movtf_insn_sp64_hq, movtf_insn_sp64): Swap. (sibcall_epilogue): Move. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99609 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P andebotcazou2005-05-101-274/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | remove redundant test. (fp_mov_p): Accept 0. (fp_high_losum_p): Remove redundant test. * config/sparc/predicates.md (const_high_operand): Explicitly test (not small_int_operand). (fp_const_high_losum_operand): New. * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'. Reorder. (movdi_insn_sp32_v9): Use canonical predicates. (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64. (movdi_insn_sp64_novis): Delete. (movdi_insn_sp64_vis): Rename into movdi_insn_sp64. (movsf_insn_novis): Delete. (movsf_insn_vis): Rename into movsf_insn. (movsf_no_f_insn): Rename into movsf_insn_no_fpu. (movsf_lo_sum): Use fp_const_high_losum_operand. (movsf_high): Likewise. (movsf_high_losum splitter): Likewise. (mov<V32:mode> expander): Use register_or_zero_operand. (mov<V64:mode> expander): Likewise. (movdf_insn_sp32): Use register_or_zero_operand. (movdf_no_e_insn_sp32): Use register_or_zero_operand. Rename into movdf_insn_sp32_no_fpu. (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand. Rename into movdf_insn_sp32_v9_no_fpu. (movdf_insn_v9only_novis): Delete. (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9. (movdf_insn_sp64_novis): Delete. (movdf_insn_sp64_vis): Rename into movdf_insn_sp64. (movdf_no_e_insn_sp64): Use register_or_zero_operand. Rename into movdf_insn_sp64_no_fpu. (movtf expander): Use register_or_zero_operand. (movtf_insn_sp32): Delete. (movtf_insn_vis_sp32): Use register_or_zero_operand. Rename into movtf_insn_sp32. (movtf_no_e_insn_sp32): Use register_or_zero_operand. Rename into movtf_insn_sp32_no_fpu. (movtf_insn_hq_sp64): Delete. (movtf_insn_hq_vis_sp64): Use register_or_zero_operand. Rename into movtf_insn_sp64_hq. (movtf_insn_sp64): Delete. (movtf_insn_vis_sp64): Use register_or_zero_operand. Rename into movtf_insn_sp64. (movtf_no_e_insn_sp64): Use register_or_zero_operand. Rename into movtf_insn_sp64_no_fpu. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99506 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/predicates.md (const_compl_high_operand): New.ebotcazou2005-05-031-31/+9
| | | | | | | | | | | | | | | * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into gen_safe_HIGH64. (sparc_emit_set_const64_quick1): Adjust for above change. (sparc_emit_set_const64_quick2): Likewise. (sparc_emit_set_const64_longway): Likewise. (sparc_emit_set_const64): Likewise. * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special, movdi_const64_special): Delete. (logical constant splitters): Use const_compl_high_operand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99160 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/predicates.md (arith_double_operand): Useebotcazou2005-04-221-43/+26
| | | | | | | | | | | | | trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64. * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode. (DImode, DFmode constant splitters): Likewise. Remove code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64. (logical constant splitters): Use const_int_operand predicate. (lshrsi3_extend): Remove code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98560 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/predicates.md, config/sparc/sparc.md: Fixkazu2005-04-211-1/+1
| | | | | | | comment typos. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98502 138bc75d-0d04-0410-961f-82ee72b054a4
* Revert unrelated changes from latest commit.ebotcazou2005-04-211-6/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98496 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (reg_or_0_operand, const1_operand,ebotcazou2005-04-211-421/+296
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fp_zero_operand, fp_register_operand, intreg_operand, fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand, call_operand, call_operand_address, tgd_symbolic_operand, tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand, symbolic_operand, symbolic_memory_operand, label_ref_operand, sp64_medium_pic_operand, data_segment_operand, text_segment_operand, splittable_symbolic_memory_operand, reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand, eq_or_neq, normal_comp_operator, noov_compare_op, noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop, cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand, const64_operand, const64_high_operand, arith11_operand, arith10_operand, arith_double_operand, arith_double_4096_operand, arith_double_add_operand, arith11_double_operand, arith10_double_operand, small_int, small_int_or_double, uns_small_int, uns_arith_operand, clobbered_register, input_operand, compare_operand): Delete. (sparc_emit_set_const32): Use predicates in assertion. Remove special code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64. (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32. (GEN_HIGHINT64, GEN_INT64): Delete. (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64, gen_safe_XOR64): Adjust for above deletion. (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs. Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask. (legitimate_constant_p): Use const_zero_operand instead. (sparc_extra_constraint_check): Likewise. * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'. (PREFERRED_RELOAD_CLASS): Use const_zero_operand. (PREDICATE_CODES): Delete. * config/sparc/sparc.md: Include predicates.md. (All patterns): Adjust for new predicate names. (cmpdi, cmpdi_sp64): Use arith_operand predicate. (movhi_const64_special, movsi_const64_special): Add 'K' constraint. (movdi): Use general_operand predicate. (movdi_sp64_dbl): Delete. (movdi_const64_special): Add 'N' constraint. (movdicc): Use arith10_operand predicate. (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate. (movdi_cc_reg_sp64): Use arith10_operand predicate. (movdi_cc_reg_sp64_trunc): Delete. (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand. (adddi3_insn_sp32, addx, cmp_cc_plus, cmp_ccx_plus, cmp_cc_plus_set, cmp_ccx_plus_set): Use register_operand predicate. (adddi3_sp64, cmp_ccx_plus_set): Use arith_operand predicate. (subdi3_sp32): Delete. (subdi3_insn_sp32): Change to define_insn_and_split. (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand. (muldi3, muldi3_sp64, muldi3_v8plus): Likewise. (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus, umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use small_int_operand predicate. (divdi3, udivdi3): Use arith_operand predicate. (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand. (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64, xor_not_<V64I:mode>_sp64) : Use arith_operand predicate. (xordi3_sp64_dbl): Delete. (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not, cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set, cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not, cmp_ccx_set_not): Use arith_operand predicate. (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand. * config/sparc/predicates.md: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98494 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.ebotcazou2005-04-121-7/+8
| | | | | | | | | * config/sparc/sparc.md (untyped_call): Save the registers manually. * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98044 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-04-11 James A. Morrison <phython@gcc.gnu.org>phython2005-04-111-22/+13
| | | | | | | | | * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable. * config/sparc/sparc.h: Likewise. * config/sparc/sparc.md: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97976 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (load_pic_register): Emit the appropriateebotcazou2005-01-181-24/+13
| | | | | | | | | | variant of the load_pcrel_sym pattern. * config/sparc/sparc.md (P macro): Move to the top. (load_pcrel_sym): Macroize using P. (save_register_window): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93859 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/darwin.c, config/darwin.h, config/freebsd-spec.h,kazu2005-01-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | config/alpha/alpha.c, config/arm/vfp.md, config/i386/emmintrin.h, config/i386/i386-modes.def, config/i386/i386-protos.h, config/i386/i386.h, config/i386/pmmintrin.h, config/i386/ppro.md, config/i386/predicates.md, config/i386/xmmintrin.h, config/i860/i860.c, config/ia64/ia64-modes.def, config/ia64/ia64-protos.h, config/ia64/ia64.h, config/ia64/ia64.md, config/ia64/itanium1.md, config/ia64/itanium2.md, config/ia64/predicates.md, config/iq2000/iq2000.h, config/mips/linux64.h, config/rs6000/aix41.h, config/rs6000/aix43.h, config/rs6000/aix52.h, config/rs6000/darwin-fallback.c, config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h, config/sparc/linux64.h, config/sparc/litecoff.h, config/sparc/sp64-elf.h, config/sparc/sparc.c, config/sparc/sparc.h, config/sparc/sparc.md, config/sparc/sysv4-only.h: Update copyright. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93829 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.md (save_register_windowdi): Add missing mode.ebotcazou2005-01-041-6/+6
| | | | | | | (save_register_windowsi): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92902 138bc75d-0d04-0410-961f-82ee72b054a4
* * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'.ebotcazou2004-11-261-30/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0. (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC. * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move to a fixed reg if the source is the Return Address register. Implement new Rule 15. * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC. * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to sparc_dwarf_handle_frame_unspec. (gen_save_register_window): New function. (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc. (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec. (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement. Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns. (sparc_asm_function_prologue): Do not emit call frame debugging info. (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement. (sparc_expand_epilogue): Likewise. (sparc_dwarf_handle_frame_unspec): New function. * config/sparc/sparc.md (save_register_window): Remove. (save_register_windowdi): Rewrite modelled on the callframe debug info. (save_register_windowsi): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91346 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-11-22 James A. Morrison <phython@gcc.gnu.orgphython2004-11-231-0/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/sparc/sparc.c: Include insn-codes.h and langhooks.h. (sparc_init_builtins): New function. (sparc_init_vis_builtins): Create builtin functions for VIS instructions. (sparc_expand_builtin): Expand builtin functions for VIS instructions. (TARGET_INIT_BUILTINS): Define to sparc_init_builtins. (TARGET_EXPAND_BUILTIN): Define to sparc_expand_builtin. (def_builtin): New macro for creating builtin functions. (P): New mode macro for pointer types. (UNSPEC_FPACK16, UNSPEC_FPACK32, UNSPEC_FPACKFIX, UNSPEC_FEXPAND, UNSPEC_FPMERGE, UNSPEC_MUL16AL, UNSPEC_MUL8UL, UNSPEC_MULDUL, UNSPEC_ALIGNDATA, UNSPEC_ALIGNADDR, UNSPEC_PDIST): New constants. (fpack16_vis, fpackfix_vis, fpack32_vis, fexpand_vis, fpmerge_vis, fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis, fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis, pdist_vis, faligndata<V64:mode>_vis, alignaddr<P:mode>_vis): New patterns. testsuite: * gcc.target/sparc/align.c, gcc.target/sparc/combined-2.c, gcc.target/sparc/fpack16.c, gcc.target/sparc/fpack32.c, gcc.target/sparc/fpackfix.c, gcc.target/fexpand.c, gcc.target/sparc/fpmerge.c, gcc.target/sparc/fpmul.c, gcc.target/sparc/pdist.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91057 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/18230ebotcazou2004-11-131-155/+188
| | | | | | | | | | | | | | | | | | | * config/sparc/sparc.c (sparc_rtx_costs): Handle the NAND vector patterns. * config/sparc/sparc.md (V64I): New macro for 64-bit modes. (V32I): New macro for 32-bit modes. (anddi3, anddi_sp32, anddi_sp64, and_not_di_sp32, and_not_di_sp64, iordi3, iordi3_sp32, iordi_sp64, or_not_di_sp32, or_not_di_sp64, xordi3, xordi3_sp32, xordi3_sp64, {AND, IOR, XOR} DI splitter, xor_not_di_sp32, xordi_not_di_sp64, one_cmpldi2, one_cmpldi_sp32, one_cmpldi_sp64): Use V64I instead of DI. (andsi3, andsi_sp32, andsi_sp64, and_not_si, iorsi3, or_not_si, xorsi3, xor_not_si, one_cmplsi2): Use V32I instead of SI. (addv2si3, addv4hi3, addv2hi3): Remove % modifier. (nandv64i_vis, nandv32i_vis): New patterns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90578 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/18230ebotcazou2004-11-101-2/+64
| | | | | | | | | (addsi3, subsi3): Set "fptype" attribute. (addv2si, addv4hi, addv2hi, subv2si, subv4hi, subv2hi): New patterns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90391 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/18230ebotcazou2004-11-091-89/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/md.texi (SPARC constraints): Document 'Y' constraint. * config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes. * config/sparc/sparc.c (sparc_vector_mode_supported_p): New function. (TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p. (fp_zero_operand): Accept MODE_VECTOR_INT modes. (input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes. (sparc_cannot_force_const_mem): Return false for CONST_VECTOR. (sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for MODE_VECTOR_INT modes. (sparc_extra_constraint_check): Add new constraint 'Y'. * config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS. * config/sparc/sparc.md (V32): New mode macro for 32-bit modes. (V64): New mode macro for 64-bit modes. (movsf): Use V32 for mode instead of SF. (movsf_insn_vis): Use V32 for mode instead of SF. Add 'Y' constraint alongside 'G' constraint. (movdf): Use V64 for mode instead of DF. (movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead of DF. Add 'Y' constraint alongside 'G' constraint. (multi-isn and misaligned mems DFmode splitters): Use V64 for mode instead of DF. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90348 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/14454ebotcazou2004-10-131-1/+0
| | | | | | | | | | | | | | | | | | * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to sparc_can_output_mi_thunk. (sparc_output_mi_thunk): Simplify handling of delta offset. Add handling of vcall offset. (sparc_can_output_mi_thunk): New predicate. * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET. (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete. (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook. * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment. * config/sparc/sparc.md (movdi): Remove redundant test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88985 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.md (call_address_struct_value_sp32):ebotcazou2004-09-281-2/+8
| | | | | | | | Properly mask the immediate field of the 'unimp' instruction. (call_symbolic_struct_value_sp32): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88227 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/16532ebotcazou2004-09-281-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | * config/sparc/sparc.c (struct machine_function): New field 'leaf_function_p' and 'prologue_data_valid_p'. (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro to conveniently access the above fields. (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete. (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead of the generic flavor 'current_function_uses_only_leaf_regs'. (eligible_for_sibcall_delay): Likewise. (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set 'sparc_prologue_data_valid_p'. Use 'sparc_leaf_function_p'. (sparc_asm_function_prologue): Add sanity check for the assumption made in 'sparc_expand_prologue'. Use 'sparc_leaf_function_p'. (sparc_can_use_return_insn_p): New function. (sparc_expand_epilogue): Use 'sparc_leaf_function_p'. (output_restore): Likewise. (output_sibcall): Likewise. (sparc_output_mi_thunk): Likewise. * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare. * config/sparc/sparc.md (return): New expander. * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88220 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.md (cmove splitter): Fix formatting.ebotcazou2004-09-221-5/+12
| | | | | | | | (conditional_trap expander): Reject inappropriate CCmodes. (conditional trap expander): Use V9 syntax if possible. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87894 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (sparc_indent_opcode): New variable.ebotcazou2004-09-081-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (output_return): Do not test for the presence of the 'unimp' insn. Use 'current_function_uses_only_leaf_regs' and 'final_sequence' as predicates instead of custom ones. Return raw strings when possible. (output_sibcall): Likewise. Concatenate strings. (output_ubranch): Remove kludge for TurboSPARC. (output_cbranch): Remove 'noop' parameter. Do not output 'nop'. (output_v9branch): Likewise. (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'. <#>: Set sparc_indent_opcode if the delay slot is filled. <(>: Likewise. <)>: New operand to emit the displacement from the saved PC on return. <@>: Remove. * config/sparc/sparc.h (sparc_indent_opcode): Declare it. (ASM_OUTPUT_OPCODE): New macro. (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'. * config/sparc/sparc.md (normal_branch, inverted_branch, normal_fp_branch, inverted_fp_branch, normal_fpe_branch, inverted_fpe_branch): Adjust call to output_cbranch. (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust call to output_v9branch. * config/sparc/sparc-protos.h (output_cbranch): Adjust. (output_v9branch): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87198 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/13926ebotcazou2004-07-131-18/+1
| | | | | | | | | * config/sparc/sparc-protos.h (output_ubranch): New prototype. * config/sparc/sparc.c (output_ubranch): New function. * config/sparc/sparc.md (jump pattern): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84621 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/16494ebotcazou2004-07-131-0/+2
| | | | | | | | | | * config/sparc/sparc.c (output_cbranch): Properly guard the code handling far branches with TARGET_V9. * config/sparc/sparc.md (length attribute): Document the side-effect of having a length greater or equal to 3. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84618 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-07-12 David S. Miller <davem@nuts.davemloft.net>davem2004-07-131-4/+0
| | | | | | | | | * config/sparc/sparc.md (ashlsi3): Eliminate const 1 special case. (ashldi3_sp64): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84599 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.md (return): Rewrite length formula.ebotcazou2004-07-091-17/+17
| | | | | | | | | * config/sparc/sparc.c (output_return): Pass 1 as 5th argument to final_scan_insn when in a delay slot. (output_sibcall): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84352 138bc75d-0d04-0410-961f-82ee72b054a4