GCC modified for the FreeChainXenon project
Find a file
Michael Meissner 59f5868d30 constraints.md (wh constraint): New constraint, for FP registers if direct move is available.
2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/constraints.md (wh constraint): New constraint,
	for FP registers if direct move is available.
	(wi constraint): New constraint, for VSX/FP registers that can
	handle 64-bit integers.
	(wj constraint): New constraint for VSX/FP registers that can
	handle 64-bit integers for direct moves.
	(wk constraint): New constraint for VSX/FP registers that can
	handle 64-bit doubles for direct moves.
	(wy constraint): Make documentation match implementation.

	* config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
	scalar_in_vmx_p field to simplify tests of whether SFmode or
	DFmode can go in the Altivec registers.
	(rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
	(rs6000_setup_reg_addr_masks): Likewise.
	(rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
	field, and wh/wi/wj/wk constraints.
	(rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
	the wh/wi/wj/wk constraints.
	(rs6000_preferred_reload_class): If SFmode/DFmode can go in the
	upper registers, prefer VSX registers unless the operation is a
	memory operation with REG+OFFSET addressing.

	* config/rs6000/vsx.md (VSr mode attribute): Add support for
	DImode.  Change SFmode to use ww constraint instead of d to allow
	SF registers in the upper registers.
	(VSr2): Likewise.
	(VSr3): Likewise.
	(VSr5): Fix thinko in comment.
	(VSa): New mode attribute that is an alternative to wa, that
	returns the VSX register class that a mode can go in, but may not
	be the preferred register class.
	(VS_64dm): New mode attribute for appropriate register classes for
	referencing 64-bit elements of vectors for direct moves and normal
	moves.
	(VS_64reg): Likewise.
	(vsx_mov<mode>): Change wa constraint to <VSa> to limit the
	register allocator to only registers the data type can handle.
	(vsx_le_perm_load_<mode>): Likewise.
	(vsx_le_perm_store_<mode>): Likewise.
	(vsx_xxpermdi2_le_<mode>): Likewise.
	(vsx_xxpermdi4_le_<mode>): Likewise.
	(vsx_lxvd2x2_le_<mode>): Likewise.
	(vsx_lxvd2x4_le_<mode>): Likewise.
	(vsx_stxvd2x2_le_<mode>): Likewise.
	(vsx_add<mode>3): Likewise.
	(vsx_sub<mode>3): Likewise.
	(vsx_mul<mode>3): Likewise.
	(vsx_div<mode>3): Likewise.
	(vsx_tdiv<mode>3_internal): Likewise.
	(vsx_fre<mode>2): Likewise.
	(vsx_neg<mode>2): Likewise.
	(vsx_abs<mode>2): Likewise.
	(vsx_nabs<mode>2): Likewise.
	(vsx_smax<mode>3): Likewise.
	(vsx_smin<mode>3): Likewise.
	(vsx_sqrt<mode>2): Likewise.
	(vsx_rsqrte<mode>2): Likewise.
	(vsx_tsqrt<mode>2_internal): Likewise.
	(vsx_fms<mode>4): Likewise.
	(vsx_nfma<mode>4): Likewise.
	(vsx_eq<mode>): Likewise.
	(vsx_gt<mode>): Likewise.
	(vsx_ge<mode>): Likewise.
	(vsx_eq<mode>_p): Likewise.
	(vsx_gt<mode>_p): Likewise.
	(vsx_ge<mode>_p): Likewise.
	(vsx_xxsel<mode>): Likewise.
	(vsx_xxsel<mode>_uns): Likewise.
	(vsx_copysign<mode>3): Likewise.
	(vsx_float<VSi><mode>2): Likewise.
	(vsx_floatuns<VSi><mode>2): Likewise.
	(vsx_fix_trunc<mode><VSi>2): Likewise.
	(vsx_fixuns_trunc<mode><VSi>2): Likewise.
	(vsx_x<VSv>r<VSs>i): Likewise.
	(vsx_x<VSv>r<VSs>ic): Likewise.
	(vsx_btrunc<mode>2): Likewise.
	(vsx_b2trunc<mode>2): Likewise.
	(vsx_floor<mode>2): Likewise.
	(vsx_ceil<mode>2): Likewise.
	(vsx_<VS_spdp_insn>): Likewise.
	(vsx_xscvspdp): Likewise.
	(vsx_xvcvspuxds): Likewise.
	(vsx_float_fix_<mode>2): Likewise.
	(vsx_set_<mode>): Likewise.
	(vsx_extract_<mode>_internal1): Likewise.
	(vsx_extract_<mode>_internal2): Likewise.
	(vsx_extract_<mode>_load): Likewise.
	(vsx_extract_<mode>_store): Likewise.
	(vsx_splat_<mode>): Likewise.
	(vsx_xxspltw_<mode>): Likewise.
	(vsx_xxspltw_<mode>_direct): Likewise.
	(vsx_xxmrghw_<mode>): Likewise.
	(vsx_xxmrglw_<mode>): Likewise.
	(vsx_xxsldwi_<mode>): Likewise.
	(vsx_xscvdpspn): Tighten constraints to only use register classes
	the types use.
	(vsx_xscvspdpn): Likewise.
	(vsx_xscvdpspn_scalar): Likewise.

	* config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
	wj, and wk constraints.
	(GPR_REG_CLASS_P): New helper macro for register classes targeting
	general purpose registers.

	* config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
	direct moves.
	(zero_extendsidi2_lfiwz): Use wj constraint for direct move of
	DImode instead of wm.  Use wk constraint for direct move of DFmode
	instead of wm.
	(extendsidi2_lfiwax): Likewise.
	(lfiwax): Likewise.
	(lfiwzx): Likewise.
	(movdi_internal64): Likewise.

	* doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
	wk constraints. Make the wy constraint documentation match them
	implementation.

From-SVN: r213834
2014-08-11 19:48:17 +00:00
boehm-gc Enable Java on Cygwin-64 2014-05-13 16:23:11 +00:00
config re PR target/47230 (gcc fails to bootstrap on alpha in stage2 with "relocation truncated to fit: GPREL16 against ...") 2014-07-26 17:11:14 +02:00
contrib texi2pod.pl (postprocess): Move command process for '@sc' to the front of '@dfn'. 2014-08-11 07:29:41 +00:00
fixincludes Remove obsolete Solaris 9 support 2014-04-22 12:30:59 +00:00
gcc constraints.md (wh constraint): New constraint, for FP registers if direct move is available. 2014-08-11 19:48:17 +00:00
gnattools Makefile.in (TOOLS_FLAGS_TO_PASS_CROSS): Robustify. 2014-02-23 16:30:11 +00:00
include [PR lto/61334] Declare prototype for strnlen, if needed. 2014-06-10 11:45:00 +02:00
INSTALL README: Also refer to the online installation instructions. 2012-08-25 20:48:20 +00:00
intl
libada Update copyright years in libada/ 2014-01-02 22:24:25 +00:00
libatomic configure.tgt (alpha*): Add -mfp-trap-mode=sui to XCFLAGS. 2014-07-18 08:34:20 +02:00
libbacktrace mmap.c (backtrace_free): If freeing a large aligned block of memory, call munmap rather than holding onto it. 2014-05-09 05:01:08 +00:00
libcilkrts config.gcc (*-*-dragonfly*): New target. 2014-05-21 12:08:58 +01:00
libcpp re PR c/51849 (-Wc99-compat would be considered useful) 2014-08-10 06:10:49 +00:00
libdecnumber re PR c/59871 (No unused value warning for comma expression) 2014-01-23 19:04:29 +00:00
libffi ffi.c: Do not include stdlib.h. 2014-07-25 11:01:45 +02:00
libgcc Makefile.in (LIBGCOV_INTERFACE): Move _gcov_dump ... 2014-08-07 18:02:06 +00:00
libgfortran * runtime/memory.c (xmallocarray): Avoid division for the common case. 2014-08-04 17:46:33 +02:00
libgo runtime: Add casts to mincore call to compile on Solaris. 2014-08-04 17:54:09 +00:00
libgomp task.c (GOMP_taskgroup_end): If taskgroup->num_children is not zero... 2014-08-04 17:45:50 +02:00
libiberty Delete temporary string within demangler even in failure cases. 2014-06-11 10:57:27 +00:00
libitm libitm: Improve aarch64 _ITM_beginTransaction 2014-07-24 19:58:06 -07:00
libjava libffi.exp (load_gcc_lib): Register loaded libs. 2014-05-20 08:20:06 +00:00
libobjc re PR libobjc/61920 (libobjc has undefined symbols on powerpc*-linux-gnu) 2014-07-27 13:15:17 +00:00
libquadmath gnat_ugn.texi: Bump @copying's copyright year. 2014-01-02 22:25:41 +01:00
libsanitizer sanitizer_common_interceptors.inc: Cherry pick upstream r211008. 2014-06-23 19:03:07 +00:00
libssp * ssp.c (fail): Avoid -Wformat-security warning. 2013-12-07 09:10:02 +01:00
libstdc++-v3 random.tcc (uniform_on_sphere_helper): Define. 2014-08-09 17:56:57 +00:00
libvtv Fix up ChangeLog entries (name, e-mail, formatting, otherwise). 2013-10-23 21:30:54 +00:00
lto-plugin Allow overriding the libiberty used for building the LTO plugin. 2014-06-13 16:30:46 +02:00
maintainer-scripts * update_web_docs_svn: Simplify build of gnat_ugn. 2014-08-01 21:00:14 +02:00
zlib Add --enable-host-shared configuration option 2013-10-15 20:33:55 +00:00
.dir-locals.el * .dir-locals.el: Add. 2013-10-16 18:25:31 +00:00
.gitignore Ignore gcc_update output 2014-06-18 17:47:18 -07:00
ABOUT-NLS
ChangeLog Add myself to Write After Approval list. 2014-08-01 14:40:24 +00:00
ChangeLog.tree-ssa
compile
config-ml.in * config-ml.in: Robustify ac_configure_args parsing. 2014-06-13 16:32:29 +02:00
config.guess * config.sub, config.guess: Import from upstream. 2014-05-01 20:51:11 +00:00
config.rpath
config.sub Import config.sub from upstream. No changes to config.guess. 2014-07-28 17:53:25 +00:00
configure re PR target/47230 (gcc fails to bootstrap on alpha in stage2 with "relocation truncated to fit: GPREL16 against ...") 2014-07-26 17:11:14 +02:00
configure.ac re PR target/47230 (gcc fails to bootstrap on alpha in stage2 with "relocation truncated to fit: GPREL16 against ...") 2014-07-26 17:11:14 +02:00
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
depcomp
install-sh
libtool-ldflags re PR sanitizer/56781 (boostrap-asan failure: fixincl fails to link (missing -lasan)) 2014-04-17 14:23:28 +02:00
libtool.m4 libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical ppc host match. 2013-09-20 19:17:52 +09:30
ltgcc.m4
ltmain.sh Ensure libgcc_s unwinder is always used on 64-bit Solaris 10+/x86 (PR target/59788) 2014-02-04 09:31:38 +00:00
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
MAINTAINERS Add myself to Write After Approval list. 2014-08-01 14:40:24 +00:00
Makefile.def Non-host system configuration for linker plugins. 2014-06-13 16:32:16 +02:00
Makefile.in Non-host system configuration for linker plugins. 2014-06-13 16:32:16 +02:00
Makefile.tpl Allow for overriding a module's srcdir. 2014-06-13 16:32:03 +02:00
missing
mkdep
mkinstalldirs
move-if-change
README * README: Document use of ranges of years in copyright notices. 2012-07-16 15:01:34 +01:00
symlink-tree
ylwrap

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.