summaryrefslogtreecommitdiff
path: root/gcc/config
Commit message (Collapse)AuthorAgeFilesLines
* Move shlib support to toplevel libgccro2011-11-0262-3845/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc: PR translation/45116 * Makefile.in (slibdir): Remove, don't export. (SHLIB_NM_FLAGS): Remove. (libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL, SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES, SHLIB_NM_FLAGS. (DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK. (gcc.o): Pass SHLIB instead of SHLIB_LINK. (gccspec.o): Likewise. (installdirs): Don't create $(DESTDIR)$(slibdir). * configure.ac (slibdir): Remove. * configure: Regenerate. * libgcc-libsystem.ver: Move to ../libgcc/config. * mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc. * config/libgcc-glibc.ver: Move to ../libgcc/config. * config/t-libunwind (SHLIB_LC): Remove. * config/t-linux (SHLIB_MAPFILES): Remove. * config/t-slibgcc-dummy: Rename to config/t-slibgcc. * config/t-slibgcc-elf-ver: Remove. * config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to ../libgcc/config. * config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move to ../libgcc/config/alpha. * config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS, SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC, SHLIB_SYMVECX2, SHLIB_LINK): Remove. * config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm. * config/arm/t-bpabi (SHLIB_MAPFILES): Remove. * config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME, SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove. * config/arm/t-symbian (SHLIB_LC): Remove. * config/bfin/libgcc-bfin.ver: Move to ../libgcc/config/bfin/libgcc-glibc.ver. * config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove. * config/c6x/libgcc-c6xeabi.ver: Move to ../libgcc/config/c6x/libgcc-eabi.ver. * config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove. * config/cris/libgcc.ver: Move to ../libgcc/config/cris/libgcc-glibc.ver. * config/cris/t-linux (SHLIB_MAPFILES): Remove. * config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv. * config/frv/t-linux (SHLIB_MAPFILES): Remove. * config/i386/darwin-libgcc.10.4.ver: Move to ../libgcc/config/i386/libgcc-darwin.10.4.ver. * config/i386/darwin-libgcc.10.5.ver: Move to ../libgcc/config/i386/libgcc-darwin.10.5.ver. * config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386. * config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION, SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL) SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK, SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES): Remove. * config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION, SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove. * config/i386/t-dlldir, config/i386/t-dlldir-x: Move to ../libgcc/config/i386. * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to ../libgcc/config/i386. * config/i386/t-linux: Move to ../libgcc/config/i386. * config/i386/t-mingw-pthread: Move to ../libgcc/config/i386. * config/i386/t-mingw-w32 (SHLIB_LC): Remove. * config/i386/t-mingw-w64: Likewise. * config/i386/t-mingw32: Remove. * config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move to ../libgcc/config/ia64. * config/ia64/t-glibc: Remove. * config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove. * config/ia64/t-ia64 (SHLIB_MAPFILES): Remove. * config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS, SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove. * config/ia64/vms_symvec_libgcc_s.opt: Remove. * config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r. * config/m32r/t-linux (SHLIB_MAPFILES): Remove. * config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k. * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove. * config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux. * config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver: Move to ../libgcc/config/pa. * config/rs6000/darwin-libgcc.10.4.ver: Move to ../libgcc/config/rs6000/libgcc-darwin.10.4.ver. * config/rs6000/darwin-libgcc.10.5.ver: Move to ../libgcc/config/rs6000/libgcc-darwin.10.5.ver. * config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL, SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove. * config/rs6000/t-aix52: Likewise. * config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to ../libgcc/config/sh. * config/sparc/libgcc-sparc-glibc.ver: Move to ../libgcc/config/sparc/libgcc-glibc.ver. * config/sparc/t-linux: Move to ../libgcc/config/sparc. * config/xtensa/t-linux (SHLIB_MAPFILES): Remove. * config/xtensa/libgcc-xtensa.ver: Move to ../libgcc/config/xtensa/libgcc-glibc.ver. * config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with t-slibgcc in tmake_file. Remove t-slibgcc-nolc-override for *-*-freebsd[34], *-*-freebsd[34].* with pthreads. (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace t-slibgcc-elf-ver with t-slibgcc in tmake_file. (*-*-netbsd*): Likewise. (*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file. (*-*-*vms*): Add t-slibgcc to tmake_file. (alpha*-*-linux*): Remove alpha/t-linux from tmake_file. (alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file. (arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for arm*-*-linux-*eabi. (bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file. (crisv32-*-linux*, cris-*-linux*): Likewise. (hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file. (hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in tmake_file. Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file. (hppa*64*-*-hpux11*): Likewise. (hppa[12]*-*-hpux11*): Likewise. (i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in tmake_file. (x86_64-*-darwin*): Likewise. (i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file. Add t-slibgcc to tmake_file. (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*, i[34567]86-w64-*. Remove i386/t-mingw-pthread from tmake_file. (ia64*-*-linux*): Remove ia64/t-glibc from tmake_file. (ia64*-*-hpux*): Add t-slibgcc to tmake_file. (ia64-hp-*vms*): Likewise. (m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in tmake_file. (m32rle-*-linux*): Likewise. (m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file. (microblaze*-linux*): Remove t-slibgcc-elf-ver, t-slibgcc-nolc-override from tmake_file. (mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file. (powerpc-*-darwin*): Likewise. (powerpc64-*-darwin*): Likewise. (powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file. (powerpc-*-linux*, powerpc64-*-linux*): Likewise. (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add t-slibgcc to tmake_file. (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. (rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise. (rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise. (rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise. (sparc-*-linux*): Remove sparc/t-linux from tmake_file. (sparc64-*-linux*): Likewise. (tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in tmake_file. (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu, x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux from tmake_file. gcc/cp: * Make-lang.in (g++spec.o): Pass SHLIB instead of SHLIB_LINK. gcc/fortran: * Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK. gcc/go: * Make-lang.in (gospec.o): Pass SHLIB instead of SHLIB_LINK. gcc/java: * Make-lang.in (jvspec.o): Pass SHLIB instead of SHLIB_LINK. libgcc: * Makefile.in (SHLIB_NM_FLAGS): Set. * mkmap-flat.awk, mkmap-symver.awk: New files. * configure.ac (libgcc_cv_lib_sjlj_exceptions): Check for SjLj exceptions. * configure: Regenerate. * config/libgcc-glibc.ver: New file. * config/libgcc-libsystem.ver: New file. * config/t-libunwind (SHLIB_LC): Set. * config/t-linux: New file. * config/t-slibgcc (INSTALL_SHLIB): New. (SHLIB_INSTALL): Use it. * config/t-slibgcc-darwin (SHLIB_MKMAP): Use $(srcdir) to refer to mkmap-symver.awk. (SHLIB_MAPFILES): Don't append, adapt pathname. (SHLIB_VERPFX): Set. * config/t-slibgcc-elf-ver (SHLIB_MKMAP): Use $(srcdir) to refer to mkmap-symver.awk. * config/t-slibgcc-gld-nover, config/t-slibgcc-hpux, config/t-slibgcc-libgcc, config/t-slibgcc-vms: New files. * config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: New files. * config/alpha/t-slibgcc-osf (SHLIB_MKMAP): Use $(srcdir) to refer to mkmap-flat.awk. * config/arm/t-bpabi (SHLIB_MAPFILES): Set. * config/bfin/libgcc-glibc.ver, config/bfin/t-linux: New files. * config/c6x/libgcc-eabi.ver, config/c6x/t-elf: New files. * config/cris/libgcc-glibc.ver, config/cris/t-linux: New files. * config/frv/libgcc-frv.ver, config/frv/t-linux: New files. * config/i386/libgcc-darwin.10.4.ver, config/i386/libgcc-darwin.10.5.ver, config/i386/libgcc-glibc.ver: New files. * config/i386/t-darwin: Remove. * config/i386/t-darwin64: Likewise. * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: New files. * config/i386/t-slibgcc-cygming, config/i386/t-cygwin, config/i386/t-dlldir, config/i386/t-dlldir-x: New files. * config/i386/t-linux: New file. * config/i386/t-mingw32: New file. * config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: New files. * config/ia64/t-glibc: Rename to ... * config/ia64/t-linux: ... this. (SHLIB_MAPFILES): Set. * config/ia64/t-glibc-libunwind: Rename to ... * config/ia64/t-linux-libunwind: ... this. * config/ia64/t-ia64 (SHLIB_MAPFILES): Set. * config/ia64/t-slibgcc-hpux: New file. * config/m32r/libgcc-glibc.ver, config/m32r/t-linux: New files. * config/m68k/t-slibgcc-elf-ver: New file. * config/mips/t-mips16 (SHLIB_MAPFILES): Set. * config/mips/t-slibgcc-irix (SHLIB_MKMAP): Use $(srcdir) to refer to mkmap-flat.awk. * config/pa/t-slibgcc-hpux: New file. * config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver: New files. * config/rs6000/libgcc-darwin.10.4.ver, config/rs6000/libgcc-darwin.10.5.ver: New files. * config/rs6000/libgcc-ppc-glibc.ver: Rename to config/rs6000/libgcc-glibc.ver. * config/rs6000/libgcc-ppc64.ver: Rename to config/rs6000/libgcc-ibm-ldouble.ver. * config/rs6000/t-darwin (SHLIB_VERPFX): Remove. * config/rs6000/t-ibm-ldouble (SHLIB_MAPFILES): Adapt filename. * config/rs6000/t-ldbl128: Rename to ... * config/rs6000/t-linux: ... this. (SHLIB_MAPFILES): Adapt filename. * config/rs6000/t-slibgcc-aix: New file. * config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: New files. * config/sh/t-linux (SHLIB_MAPFILES): Use $(srcdir) to refer to libgcc-excl.ver, libgcc-glibc.ver. (SHLIB_LINK, SHLIB_INSTALL): Remove. * config/sparc/libgcc-glibc.ver: New file. * config/sparc/t-linux: New file. * config/xtensa/libgcc-glibc.ver, config/xtensa/t-linux: New files. * config.host (*-*-freebsd*): Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver to tmake_file. Add t-slibgcc-nolc-override to tmake_file for posix threads on *-*-freebsd[34]. (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver, t-linux to tmake_file. (*-*-netbsd*): Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver to tmake_file. (alpha*-*-linux*): Add alpha/t-linux to tmake_file. (alpha64-dec-*vms*): Add t-slibgcc-vms to tmake_file. (alpha*-dec-*vms*): Likewise. (arm*-*-freebsd*): Append to tmake_file. (arm*-*-netbsdelf*): Add t-slibgcc-gld-nover to tmake_file. (arm*-*-linux*): Add t-slibgcc-libgcc to tmake_file for arm*-*-linux-*eabi. (arm*-*-eabi*, arm*-*-symbianelf*): Add t-slibgcc-nolc-override to tmake_file for arm*-*-symbianelf*. (bfin*-linux-uclibc*): Append to tmake_file, add bfin/t-linux. (cris-*-linux*, crisv32-*-linux*): Append to tmake_file, add cris/t-linux. (frv-*-*linux*): Append to tmake_file, add frv/t-linux. (hppa*-*-linux*): Add t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver to tmake_file. (hppa[12]*-*-hpux10*): Add t-slibgcc, pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver, t-slibgcc-hpux, pa/t-slibgcc-hpux to tmake_file. (hppa*64*-*-hpux11*): Likewise. (hppa[12]*-*-hpux11*): Likewise. (x86_64-*-darwin*): Don't override tmake_file, but only keep i386/t-crtpc, i386/t-crtfm. (i[34567]86-*-cygwin*): Set tmake_eh_file, tmake_dlldir_file. Prepend $tmake_eh_file, $tmake_dlldir_file, i386/t-slibgcc-cygming to tmake_file. Add i386/t-cygwin to tmake_file. Prepent i386/t-mingw-pthread to tmake_file for posix threads. (i[34567]86-*-mingw*): Set tmake_eh_file, tmake_dlldir_file. Prepend $tmake_eh_file, $tmake_dlldir_file, i386/t-slibgcc-cygming to tmake_file. Add i386/t-mingw32 to tmake_file. (x86_64-*-mingw*): Likewise. (ia64*-*-freebsd*): Append to tmake_file. (ia64*-*-linux*): Append to tmake_file. Replace ia64/t-glibc by ia64/t-linux. Replace ia64/t-glibc-libunwind by ia64/t-linux-libunwind if using system libunwind. (ia64*-*-hpux*): Add t-slibgcc, ia64/t-slibgcc-hpux, t-slibgcc-hpux to tmake_file. (ia64-hp-*vms*): Add t-slibgcc-vms to tmake_file. (m32r-*-linux*): Append to tmake_file, add m32r/t-linux. (m32rle-*-linux*): Likewise. (m68k-*-linux*)): Add m68k/t-slibgcc-elf-ver to tmake_file unless sjlj exceptions. (microblaze*-linux*): New case. Append to tmake_file, add t-slibgcc-nolc-override. (powerpc-*-freebsd*): Add t-slibgcc-libgcc to tmake_file. (powerpc-*-linux*, powerpc64-*-linux*): Likewise. Replace rs6000/t-ldbl128 by rs6000/t-linux in tmake_file. (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add rs6000/t-slibgcc-aix to tmake_file. (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise. (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*) (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*) (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*) (sh64l*-*-netbsd*): Add t-slibgcc-libgcc to tmake_file for sh*-*-linux*. (sparc-*-linux*): Append to tmake_file for *-leon*. Add sparc/t-linux to tmake_file for non-Leon targets. (sparc64-*-linux*): Add sparc/t-linux to tmake_file. (tic6x-*-uclinux): New case. Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver to tmake_file. (tic6x-*-*): Add c6x/t-elf to tmake_file. (xtensa*-*-linux*): Append to tmake_file, add xtensa/t-linux. (am33_2.0-*-linux*): Append to tmake_file. (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu) (i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*): Also handle x86_64-*-kfreebsd*-gnu. Add i386/t-linux to tmake_file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180767 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/rs6000/rs6000.c (rs6000_code_end): Declare ATTRIBUTE_UNUSED.amodra2011-11-021-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180761 138bc75d-0d04-0410-961f-82ee72b054a4
* Handle V4HI vector initialization more efficiently on VIS1.davem2011-11-011-0/+24
| | | | | | | * config/sparc/sparc.c (vector_init_faligndata): New function. (sparc_expand_vector_init): Use it for V4HImode on VIS1. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180752 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (splitters for int-float conversion): Useuros2011-11-011-9/+27
| | | | | | | | SUBREG_REG on SUBREGs in splitter constraints. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180748 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-11-01 Andrew Stubbs <ams@codesourcery.com>ams2011-11-011-0/+1
| | | | | | | | * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180747 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (splitters for int-float conversion): Useuros2011-11-011-27/+9
| | | | | | | | reg_or_subregno in splitter constraints. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180745 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): Newjakub2011-11-013-24/+62
| | | | | | | | | | | | | prototype. * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New function. * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Use it. (ssepackfltmode): New mode attr. (vec_pack_ufix_trunc_<mode>): New expander. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180743 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (floatsi<mode>2_vector_sse_with_temp splitter):uros2011-11-011-1/+1
| | | | | | | | Compare <ssevecmode>mode with V4SFmode, not V4SImode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180742 138bc75d-0d04-0410-961f-82ee72b054a4
* * config.gcc (powerpc*-*-linux*): Add powerpc*-*-linux*ppc476* variant.bergner2011-11-016-17/+258
| | | | | | | | | | | | | | | | | | | | | | | | | | | * config/rs6000/476.h: New file. * config/rs6000/476.opt: Likewise. * config/rs6000/rs6000.h (TARGET_LINK_STACK): New define. (SET_TARGET_LINK_STACK): Likewise. (TARGET_ASM_CODE_END): Define. * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable TARGET_LINK_STACK for -mtune=476 and -mtune=476fp. (rs6000_legitimize_tls_address): Emit the link stack preserving GOT code if TARGET_LINK_STACK. (rs6000_emit_load_toc_table): Likewise. (output_function_profiler): Likewise (macho_branch_islands): Likewise (machopic_output_stub): Likewise (get_ppc476_thunk_name): New function. (rs6000_code_end): Likewise. * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b): Convert to a define_expand. (load_toc_v4_PIC_1_normal): New define_insn. (load_toc_v4_PIC_1_476): Likewise. (load_toc_v4_PIC_1b_normal): Likewise. (load_toc_v4_PIC_1b_476): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180741 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/50910gjl2011-11-014-16/+86
| | | | | | | | | | | | | * config/avr/avr.opt (-mbranch-cost=): New option. * config/avr/avr.h (BRANCH_COST): Define to avr_branch_cost. * config/avr/avr.c (avr_rtx_costs_1): Adjust [U]DIV/[U]MOD costs. * config/avr/avr.md (*addqi3.lt0, *addhi3.lt0, *addsi3.lt0): New insns. (*addhi3_zero_extend1): Remov % in constraint of operand 1. (*addhi3.sign_extend1, *subhi3.sign_extend2): New insns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180739 138bc75d-0d04-0410-961f-82ee72b054a4
* Add vcond/vcondu patterns to sparc backend.davem2011-11-013-0/+68
| | | | | | | | | * config/sparc/sparc.c (sparc_expand_vcond): New function. * config/sparc/sparc-protos.h (sparc_expand_vcond): Declare it. * config/sparc/sparc.md (vcond<mode><mode>): New VIS3 expander. (vconduv8qiv8qi): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180733 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Newjakub2011-11-011-0/+29
| | | | | | | expander. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180724 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/sse.md (sseintvecmode): Remove duplicate modes.jakub2011-11-011-24/+24
| | | | | | | | | | | (sseintvecmodelower): New mode iterator. (floatv8siv8sf2, floatunsv4siv4sf2): Macroize into... (float<sseintvecmodelower><mode>2): ... this using VF1 iterator. (floatunsv4siv4sf2): Macroize into... (floatuns<sseintvecmodelower><mode>2): ... this using VF1 iterator. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180723 138bc75d-0d04-0410-961f-82ee72b054a4
* Allow zero operand in sparc VIS3 cmask patterns.davem2011-10-311-3/+3
| | | | | | * config/sparc/sparc.md (cmask patterns): Allow zero operand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180715 138bc75d-0d04-0410-961f-82ee72b054a4
* i386: Remove TARGET_VECTORIZE_BUILTIN_CONVERSION.rth2011-10-313-119/+31
| | | | | | | | | | | | | | | | | | | | | | | Renaming all of the insn patterns as needed to the standard optab forms. Sadly, only one of the builtins is unused by the various header files, so most of them must stay around. * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256. (floatv4siv4sf2): Rename from sse2_cvtdq2ps. (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps. (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256. (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq. (floatv4siv4df2): Rename from avx_cvtdq2pd256. (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256. (vec_unpacku_float_hi_v8si): Update for insn pattern name changes. * config/i386/i386.md (splitters for int-float conversion): Likewise. * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise. (bdesc_args): Likewise. (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove. (ix86_vectorize_builtin_conversion): Remove. (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180709 138bc75d-0d04-0410-961f-82ee72b054a4
* Slight improvements to vec_init code gen on sparc.davem2011-10-311-0/+105
| | | | | | | | * config/sparc/sparc.c (vector_init_bshuffle): New function. (vector_init_fpmerge): New function. (sparc_expand_vector_init): Use them to improve non-const cases. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180696 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (avx2_vec_dup<mode>): Macroize insn fromuros2011-10-301-129/+51
| | | | | | | | | | | | | | | avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator. (vec_dupv4sf): Remove expander. (vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx. (vec_dupv2df): Remove expander. (vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3. (*vec_concatv2df): Merge *vec_concatv2df_sse3. (*vec_dupv4si): Merge *vec_dupv4si_avx. (*vec_dupv2di): Merge *vec_dupv2di_sse3. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180685 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/50617danglin2011-10-2911-419/+401
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/pa/protos.h (attr_length_save_restore_dltp): Delete. (cmpib_comparison_operator): Likewise. (following_cal, output_and, output_ior, output_move_double, output_fp_move_double, output_block_move, output_block_clear, output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra, output_movb, output_parallel_movb, output_parallel_addb, output_call, output_indirect_call, output_millicode_call, output_mul_insn, output_div_insn, output_mod_insn, singlemove_string, output_arg_descriptor, output_global_address, print_operand, legitimize_pic_address, hppa_encode_label, symbolic_expression_p, fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence, emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay, hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call, attr_length_indirect_call, return_addr_rtx, function_arg_padding, insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p, output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move, hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p, compute_zdepdi_operands, output_64bit_and, output_64bit_ior, reloc_needed, magic_milli, shadd_constant_p): Consistently prefix exported functions and variables with "pa_". * config/pa/predicates.md: Likewise. * config/pa/pa64-hpux.h: likewise. * config/pa/som.h: Likewise. * config/pa/elf.h: Likewise. * config/pa/pa64-linux.h: Likewise. * config/pa/pa.md: Likewise. * config/pa/pa.c: Likewise. * config/pa/pa-linux.h: Likewise. * config/pa/pa.h: Likewise. * config/pa/constraints.md: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180660 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (xop_sha<mode>3): Rename from xop_ashl<mode>3.uros2011-10-292-20/+20
| | | | | | | | | | Update all uses. (xop_shl<mode>3): Rename from xop_lshl<mode>3. Update all uses. * config/i386/i386.c: Update all uses. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180659 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (lshlv16qi3): Remove expander.uros2011-10-291-60/+46
| | | | | | | | | | | | (lshrv16qi3): New expander. (<shift_insn>v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3 using any_shiftrt code iterator. Cleanup. (ashlv16qi3): Cleanup. (ashrv2di3): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180657 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/50691danglin2011-10-291-0/+15
| | | | | | | | | | config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol references. (pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC and TLS_MODEL_LOCAL_DYNAMIC symbol references. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180655 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/50887gjl2011-10-297-362/+479
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/avr/avr.opt (-maccumulate-args): New option. * config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to avr_starting_frame_offset. (ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args. * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove. (UNSPECV_WRITE_SP_IRQ_OFF): Remove. (UNSPECV_WRITE_SP): New constant. (*addhi3_sp_R): Rewrite to... (*addhi3_sp): ...this new insn. (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to... (movhi_sp_r): ...this new insn. * config/avr/avr-protos.h (avr_accumulate_outgoing_args): New. (avr_starting_frame_offset): New. * config/avr/avr.c (avr_accumulate_outgoing_args): New function. (avr_starting_frame_offset): New function. (avr_outgoing_args_size): New static function. (avr_initial_elimination_offset): Use it. (avr_simple_epilogue): Use it. (avr_asm_function_end_prologue): Use it. (expand_epilogue): Use it. (expand_prologue): Use it. Break out code to... (avr_prologue_setup_frame): ...this new static function. (avr_can_eliminate): Allow eliminating to frame pointer if there is one. (avr_frame_pointer_required_p): Use frame pointer if target has a nonlocal label. * config/avr/constraints.md (R): Remove. (Csp): New constraint. * config/avr/predicates.md (avr_sp_immediate_operand): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180654 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p,aesok2011-10-294-146/+189
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | cris_constant_index_p, cris_base_p, cris_index_p, cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p, cris_legitimate_address_p): New functions. (TARGET_LEGITIMATE_ADDRESS_P): Define. (cris_pic_symbol_type, cris_valid_pic_const): Change arguments type from rtx to const_rtx. (cris_print_operand_address, cris_address_cost, cris_side_effect_mode_ok): Use cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p, cris_biap_index_p and cris_bdap_index_p. * config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P, BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove. (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p, cris_biap_index_p and cris_bdap_index_p. * config/cris/cris.md (moversideqi movemsideqi peephole2): Use cris_base_p. * config/cris/cris-protos.h (cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New prototype. (cris_pic_symbol_type, cris_valid_pic_const): Update prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180651 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/rs6000/rs6000.md (define_attr "type"): Add vecdouble.pthaugen2011-10-283-42/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/rs6000/vsx.md (VStype_simple, VStype_mul): Use * vecdouble type for V2DF. (VStype_div): Use vector types for V2DF/V4SF. (VStype_sqrt): Use *sqrt types. (VS_spdp_type): Change type to vecdouble. (*vsx_fmav2df4, *vsx_nfmsv2df4, vsx_xvcvdpsxws, vsx_xvcvdpuxws, vsx_xvcvuxdsp, vsx_xvcvsxwdp, vsx_xvcvuxwdp, vsx_xvcvspsxds, vsx_xvcvspuxds): Likewise. (*vsx_fms<mode>4): Set type via <VStype_mul>. (*vsx_eq_<mode>_p, *vsx_gt_<mode>_p, *vsx_ge_<mode>_p): Set type via <VStype_simple>. * config/rs6000/power7.md (power7-vecstore): Correct VSU pipe. (power7-fpcompare, power7-sdiv, power7-ddiv, power7-sqrt, power7-dsqrt): Correct insn latency. (power7-vecsimple): Add veccmp type and correct dispatch/VSU values. (power7-veccmp): Delete. (power7-vecfloat): Correct latency/dispatch/VSU values. (define_bypass "power7-vecfloat"): Correct latency and types. (power7-veccomplex, power7-vecperm): Correct dispatch/VSU values. (power7-vecdouble, power7-vecfdiv, power7-vecdiv): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180632 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/sse.md (<shift_insn><mode>3): Fix asm template.uros2011-10-281-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180625 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (shift_insn): Rename code attribute fromuros2011-10-283-53/+24
| | | | | | | | | | | | | | | | | | | | | | | | | shiftrt_insn. Also handle ashift RTX. (shift): Rename code attribute from shiftrt. Also handle ashift RTX. (vshift): New code attribute. (<shift_insn>*): Rename from <shiftrt_insn>*. Update asm templates. (any_lshift): Move and rename code iterator from ... * config/i386/sse.md (lshift): ... here. (lshift_insn): Remove code attribute. (lshift): Remove code attribute. (vlshr<mode>3): Use lshiftrt RTX. (vashr<mode>3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX. (vashl<mode>3, ashlv16qi3): Use ashift RTX. (avx2_<lshift>v<mode>): Rename from avx2_<shift_insn>v<mode>. Use any_lshift code iterator. Update asm template. (<shift_insn><mode>3): Macroize insn from lshr<mode>3 and ashl<mode>3 usign any_lshift code iterator. * config/i386/mmx.md (mmx_<shift_insn><mode>3): Macroize insn from mmx_lshr<mode>3 and mmx_ashl<mode>3 usign any_lshift code iterator. * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180624 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (shift_insn): Rename code attribute fromuros2011-10-283-60/+58
| | | | | | | | | | | | | | | | | | | shiftrt_insn. Also handle ashift RTX. (shift): Rename code attribute from shiftrt. Also handle ashift RTX. (<shift_insn>*): Rename from <shiftrt_insn>*. Update asm templates. * config/i386/sse.md (any_lshift): Rename code iterator from lshift. (lshift_insn): Remove code attribute. (lshift): Remove code attribute. (vlshr<mode>3): Use lshiftrt RTX. (vashr<mode>3): Use ashiftrt RTX. (vashl<mode>3): Use ashift RTX. (avx2_<lshift>v<mode>): Rename from avx2_<shift_insn>v<mode>. Use any_lshift code iterator. Update asm template. * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180622 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/49313gjl2011-10-281-5/+31
| | | | | | | | | | | * config/avr/avr.md (parityhi2): Expand allowing pseudos. (*parityhi2): New pre-reload insn-and-split to map 16-bit parity to the libgcc insn. (*parityqihi2): Same for 8-bit parity. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180620 138bc75d-0d04-0410-961f-82ee72b054a4
* Implement out-of-line FPR and GPR saves for PPC/Darwiniains2011-10-284-33/+195
| | | | | | | | | | | | | | | | | | | | | | | | | | gcc: * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Move darwin-fpsave.asm from here to ... LIB2FUNCS_EXTRA. (LIB2FUNCS_EXTRA): Add darwin-gpsave.asm. (TARGET_LIBGCC2_CFLAGS): Ensure that fPIC and -pipe are inherited from config/t-darwin. * config/rs6000/darwin.h (FP_SAVE_INLINE): Adjust to enable. (GP_SAVE_INLINE): Likewise. (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX, RESTORE_FP_SUFFIX): Set to empty strings. * config/rs6000/rs6000.c (rs6000_savres_strategy): Implement for Darwin. (debug_stack_info): Print savres_strategy. (rs6000_savres_routine_name): Implement for Darwin. (rs6000_make_savres_rtx): Adjust used register for Darwin. (rs6000_emit_prologue): Implement out-of-line saves for Darwin. (rs6000_output_function_prologue): Don't emit .extern for Mach-O. (rs6000_emit_epilogue): Implement out-of-line saves for Darwin. * config/rs6000/darwin-gpsave.asm: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180610 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/sse.md (VI4SD_AVX2): Removed.jakub2011-10-281-243/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | (VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators. (vashl<mode>3): Use VI12_128 iterator instead of VI124_128. Add another expander using VI48_128 iterator for TARGET_AVX2 || TARGET_XOP and another using VI48_256 iterator for TARGET_AVX2. (vlshr<mode>3): Likewise. Change register_operand predicate to nonimmediate_operand on last operand in the VI12_128 expander. (vashr<mode>3): Use VI128_128 iterator instead of VI124_128. (vashrv4si3, vashrv8si3): New expanders. (avx2_ashrvv8si, avx2_ashrvv4si, avx2_<lshift>vv8si, avx2_<lshift>vv2di): Removed. (avx2_ashrv<mode>): New insn with VI4_AVX2 iterator. (avx2_<lshift>v<mode>): Macroize using VI48_AVX2 iterator. Simplify pattern. * gcc.dg/vshift-1.c: New test. * gcc.dg/vshift-2.c: New test. * gcc.target/i386/xop-vshift-1.c: New test. * gcc.target/i386/xop-vshift-2.c: New test. * gcc.target/i386/avx2-vshift-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180609 138bc75d-0d04-0410-961f-82ee72b054a4
* Add support for the VIS3 addxc instruction.davem2011-10-282-8/+86
| | | | | | | | | | | | | | | | | | | | | | | | gcc/ * config/sparc/sparc.md (snedi_special): Only match when not VIS3. (*snedi_zero): Likewise. (*snedi_zero_trunc): Likewise. (snedi_special_vis3): New expander. (*snedi_zero_vis3): New insn. (*snedi_zero_trunc_vis3): Likewise. (*sltu_insn_vis3): Likewise. (*sltu_insn_vis3_trunc): Likewise. (addxc): Likewise. (*addxc_trunc_sp64_vis3): Likewise. * config/sparc/sparc.c (emit_scc_insn): When VIS3 use the gen_snedi_special_vis3 expander, and try GTU/LTU addx based sequences on DImode values. gcc/testsuite/ * gcc.target/sparc/setcc-3.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180602 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix constraint on 64-bit VIS3 vector moves.davem2011-10-281-2/+2
| | | | | | | * config/sparc/sparc.md (64-bit vector moves): Use 'e' not 'f' constraint. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180601 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2,jakub2011-10-271-0/+74
| | | | | | | | | | | | | | | vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders. (*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns. * gcc.target/i386/sse2-cvt-1.c: New test. * gcc.target/i386/sse2-cvt-2.c: New test. * gcc.target/i386/avx-cvt-1.c: New test. * gcc.target/i386/avx-cvt-2.c: New test. * gcc.target/i386/avx2-cvt-1.c: New test. * gcc.target/i386/avx2-cvt-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180580 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x'jakub2011-10-272-12/+17
| | | | | | | | | | | | | | overrides for -masm=intel memory. * config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd, sse4_1_<code>v8qiv8hi2, avx2_<code>v8qiv8si2, sse4_1_<code>v4hiv4si2, avx2_<code>v4hiv4di2, sse4_1_<code>v2siv2di2): Use %q1 instead of %1 for -masm=intel. (sse4_1_<code>v4qiv4si2, avx2_<code>v4qiv4di2, sse4_1_<code>v2hiv2di2): Use %k1 instead of %1 for -masm=intel. (sse4_1_<code>v2qiv2di2): Use %w1 instead of %1 for -masm=intel. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180579 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/50875uros2011-10-271-6/+5
| | | | | | | | | | | | | | * config/i386/sse.md (*avx2_unpcklpd256): Remove extra insn constraints. Change alternative 1 to "x,m,1". testsuitee/ChangeLog: PR target/50875 * gfortran.dg/pr50875.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180576 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first argbernds2011-10-271-13/+5
| | | | | | | | | to unit_req_factor to the right enum type. (get_unit_operand_masks, reshuffle_units, try_rename_operands, hwloop_optimize): Remove unused variables. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180565 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/37191uros2011-10-271-56/+56
| | | | | | | | | * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers from different units in a single alternative. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180560 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix thinko in previous sparc setcc changes.davem2011-10-271-0/+5
| | | | | | | * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences if we're comparing DImode and comparison is other than EQ or NE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180558 138bc75d-0d04-0410-961f-82ee72b054a4
* Improve sparc setcc generation and add testcases.davem2011-10-262-8/+65
| | | | | | | | | | | | | | | | | | | gcc/ * config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until LEU/LTU/GEU/GTU is attempted. * config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn and split. (*neg_seqsi_sign_extend): Likewise. (*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64, *neg_sgeu_extend_sp64): New insns. gcc/testsuite/ * gcc.target/sparc/setcc-1.c: New test. * gcc.target/sparc/setcc-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180550 138bc75d-0d04-0410-961f-82ee72b054a4
* Canonicalize sparc movcc patterns such that operand 0 always appears in ↵davem2011-10-263-151/+127
| | | | | | | | | | | | | | | | | | | | | operand 4. * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare. * config/sparc/sparc.md (mov<I:mode>cc, mov<F:mode>cc): Call it. (*mov<I:mode>_cc_v9): Normalize to expect operand 0 always in operand 4. (*mov<I:mode>_cc_reg_sp64): Likewise. (*movsf_cc_v9): Likewise. (*movsf_cc_reg_sp64): Likewise. (*movdf_cc_v9): Likewise. (*movdf_cc_reg_sp64): Likewise. (*movtf_cc_hq_v9): Likewise. (*movtf_cc_reg_hq_sp64): Likewise. (*movtf_cc_v9): Likewise. (*movtf_cc_reg_sp64): Likewise. * config/sparc/sparc.c (sparc_expand_conditional_move): New function. (sparc_print_operand): Delete 'c' and 'd' handling, no longer used. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180542 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc:iains2011-10-261-52/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR target/48108 * config/darwin.c (top level): Amend comments concerning LTO output. (lto_section_num): New variable. (darwin_lto_section_e): New GTY. (LTO_SECTS_SECTION, LTO_INDEX_SECTION): New. (LTO_NAMES_SECTION): Rename. (darwin_asm_named_section): Record LTO section counts and switches in a vec of darwin_lto_section_e. (darwin_file_start): Remove unused code. (darwin_file_end): Put an LTO section termination label. Handle output of the wrapped LTO sections, index and names table. libiberty: PR target/48108 * simple-object-mach-o.c (GNU_WRAPPER_SECTS, GNU_WRAPPER_INDEX, GNU_WRAPPER_NAMES): New macros. (simple_object_mach_o_segment): Handle wrapper scheme. (simple_object_mach_o_write_section_header): Allow the segment name to be supplied. (simple_object_mach_o_write_segment): Handle wrapper scheme. Ensure that the top-level segment name in the load command is empty. (simple_object_mach_o_write_to_file): Determine the number of sections during segment output, use that in writing the header. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180523 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneededamodra2011-10-263-187/+256
| | | | | | | | | | | | | | | | | | | | | | | | | | | | declaration. (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp. (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx. Use simple_return in pattern, emit instruction, and set jump_label. (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx. Use simple_return rather than return. (emit_cfa_restores): New function. (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap. Add missing cfa_restores for SAVE_WORLD. Add missing LR cfa_restore when using out-of-line gpr restore. Add missing LR and FP regs cfa_restores for out-of-line fpr restore. Consolidate code setting up cfa_restores. Formatting. Use LR_REGNO define. (rs6000_output_mi_thunk): Use simple_return rather than return. * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise. (return_internal*): Likewise. (any_return, return_pred, return_str): New iterators. (return, conditional return insns): Provide both return and simple_return variants. * config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define. (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13. Move r11 and r0 later to suit shrink-wrapping. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180522 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (UNSPEC_VSIBADDR): New.jakub2011-10-264-35/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/i386/predicates.md (vsib_address_operand, vsib_mem_operator): New predicates. * config/i386/i386.c (ix86_print_operand_address): Handle UNSPEC_VSIBADDR addresses. * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Adjust expanders to use MEM with UNSPEC_VSIBADDR address. (*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256): Adjust insns to use MEM with UNSPEC_VSIBADDR address. * gcc.target/i386/avx2-i32gatherd-1.c: Adjust scan-assembler regex to work also with -masm=intel and additionally test the xmm vs. ymm register type combination on mask/dest and in vsib. * gcc.target/i386/avx2-i32gatherd256-1.c: Likewise. * gcc.target/i386/avx2-i32gatherd256-3.c: Likewise. * gcc.target/i386/avx2-i32gatherd-3.c: Likewise. * gcc.target/i386/avx2-i32gatherpd-1.c: Likewise. * gcc.target/i386/avx2-i32gatherpd256-1.c: Likewise. * gcc.target/i386/avx2-i32gatherpd256-3.c: Likewise. * gcc.target/i386/avx2-i32gatherpd-3.c: Likewise. * gcc.target/i386/avx2-i32gatherps-1.c: Likewise. * gcc.target/i386/avx2-i32gatherps256-1.c: Likewise. * gcc.target/i386/avx2-i32gatherps256-3.c: Likewise. * gcc.target/i386/avx2-i32gatherps-3.c: Likewise. * gcc.target/i386/avx2-i32gatherq-1.c: Likewise. * gcc.target/i386/avx2-i32gatherq256-1.c: Likewise. * gcc.target/i386/avx2-i32gatherq256-3.c: Likewise. * gcc.target/i386/avx2-i32gatherq-3.c: Likewise. * gcc.target/i386/avx2-i64gatherd-1.c: Likewise. * gcc.target/i386/avx2-i64gatherd256-1.c: Likewise. * gcc.target/i386/avx2-i64gatherd256-3.c: Likewise. * gcc.target/i386/avx2-i64gatherd-3.c: Likewise. * gcc.target/i386/avx2-i64gatherpd-1.c: Likewise. * gcc.target/i386/avx2-i64gatherpd256-1.c: Likewise. * gcc.target/i386/avx2-i64gatherpd256-3.c: Likewise. * gcc.target/i386/avx2-i64gatherpd-3.c: Likewise. * gcc.target/i386/avx2-i64gatherps-1.c: Likewise. * gcc.target/i386/avx2-i64gatherps256-1.c: Likewise. * gcc.target/i386/avx2-i64gatherps256-3.c: Likewise. * gcc.target/i386/avx2-i64gatherps-3.c: Likewise. * gcc.target/i386/avx2-i64gatherq-1.c: Likewise. * gcc.target/i386/avx2-i64gatherq256-1.c: Likewise. * gcc.target/i386/avx2-i64gatherq256-3.c: Likewise. * gcc.target/i386/avx2-i64gatherq-3.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180520 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-10-26 Andreas Tobler <andreast@fgznet.ch>andreast2011-10-261-0/+1
| | | | | | | | * config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the 32-bit target does. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180468 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove *mmx_maskmovq_rex.hjl2011-10-251-14/+2
| | | | | | | | | | | 2011-10-25 H.J. Lu <hongjiu.lu@intel.com> * config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and remove "&& !TARGET_64BIT" (*mmx_maskmovq_rex): Removed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180458 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/ia64/ia64.c (ia64_profile_hook): Fix thinko.ebotcazou2011-10-251-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180455 138bc75d-0d04-0410-961f-82ee72b054a4
* i386: Delete the vec_extract_even/odd patterns.rth2011-10-251-29/+0
| | | | | | | | | | | These can be generated by vec_perm_const now. We could keep the patterns around, as technically it may be less work, but this exercises a code path needed by less primary platforms. * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove. (vec_extract_even<mode>, vec_extract_odd<mode>): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180453 138bc75d-0d04-0410-961f-82ee72b054a4
* rs6000: Remove some vec_extract_even/odd expanders.rth2011-10-251-132/+2
| | | | | | | | | | | | The ones that expand to VPERM can be handled by generic code. The even v4si and v4sf expanders remain until vector.md can be updated to not invoke them directly. * config/rs6000/altivec.md (vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si, vec_extract_oddv4sf): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180452 138bc75d-0d04-0410-961f-82ee72b054a4
* spu: Remove vec_extract_even/odd and vec_interleave expanders.rth2011-10-251-433/+0
| | | | | | | | | | | | * config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf, vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si, vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi, vec_interleave_highv4sf, vec_interleave_lowv4sf, vec_interleave_highv4si, vec_interleave_lowv4si, vec_interleave_highv8hi, vec_interleave_lowv8hi, vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180451 138bc75d-0d04-0410-961f-82ee72b054a4
* Change vec_perm checking and expansion level.rth2011-10-251-12/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The can_vec_perm_p interface changed to use a C integer array. This allows easy re-use from the rtl level and the gimple level within the vectorizer. It allows both to determine if a given permutation is (un-)supported without having to create tree/rtl garbage. The expand_vec_perm interface changed to use rtl. This allows easy re-use from the rtl level, so that expand_vec_perm can be used in the fallback implementation of other optabs. * target.def (vec_perm_const_ok): Change parameters to mode and array of indicies. * doc/tm.texi: Rebuild. * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change parameters to mode and array of indicies. * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here. * optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p. Change parameters to mode and array of indicies. (expand_vec_perm_1): Rename from expand_vec_perm_expr_1. (expand_vec_perm): Rename from expand_vec_perm_expr. Change parameters to mode and rtx inputs. Try lowering to QImode vec_perm_const before trying fully variable permutation. * optabs.h: Update decls. * tree-vect-generic.c (lower_vec_perm): Extract array of indices from VECTOR_CST to pass to can_vec_perm_p. * tree-vect-slp.c (vect_get_mask_element): Change mask parameter type from int pointer to unsigned char pointer. (vect_transform_slp_perm_load): Update for change to can_vec_perm_p. * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180449 138bc75d-0d04-0410-961f-82ee72b054a4