diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-02-01 01:09:35 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-02-01 01:09:35 +0000 |
commit | 1a6a0f2a8b031758448b9f00219811342cb433a1 (patch) | |
tree | ef18ae23759d8cebf30524fd23a40023979adb9e /gcc/rtl.def | |
parent | ae8bbff506d08a4a512f533c0e9e916ee44dd205 (diff) | |
download | gcc-1a6a0f2a8b031758448b9f00219811342cb433a1.tar.gz |
gcc/:
* lower-subreg.c: New file.
* rtl.def (CONCATN): Define.
* passes.c (init_optimization_passes): Add pass_lower_subreg and
pass_lower_subreg2.
* emit-rtl.c (update_reg_offset): New static function, broken out
of gen_rtx_REG_offset.
(gen_rtx_REG_offset): Call update_reg_offset.
(gen_reg_rtx_offset): New function.
* regclass.c: Revert patch of 2006-03-05, restoring
reg_scan_update.
(clear_reg_info_regno): New function.
* dwarf2out.c (concatn_loc_descriptor): New static function.
(loc_descriptor): Handle CONCATN.
* common.opt (fsplit_wide_types): New option.
* opts.c (decode_options): Set flag_split_wide_types when
optimizing.
* timevar.def (TV_LOWER_SUBREG): Define.
* rtl.h (gen_reg_rtx_offset): Declare.
(reg_scan_update): Declare.
* regs.h (clear_reg_info_regno): Declare.
* tree-pass.h (pass_lower_subreg): Declare.
(pass_lower_subreg2): Declare.
* doc/invoke.texi (Option Summary): List -fno-split-wide-types.
(Optimize Options): Add -fsplit-wide-types to -O1 list. Document
-fsplit-wide-types.
* doc/rtl.texi (Regs and Memory): Document concat and concatn.
* Makefile.in (OBJS-common): Add lower-subreg.o.
(lower-subreg.o): New target.
gcc/testsuite/:
* gcc.dg/lower-subreg-1.c (test): New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121453 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/rtl.def')
-rw-r--r-- | gcc/rtl.def | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/rtl.def b/gcc/rtl.def index cb37f1ab2b2..f203b27f4aa 100644 --- a/gcc/rtl.def +++ b/gcc/rtl.def @@ -2,7 +2,7 @@ Register Transfer Expressions (rtx's) that make up the Register Transfer Language (rtl) used in the Back End of the GNU compiler. Copyright (C) 1987, 1988, 1992, 1994, 1995, 1997, 1998, 1999, 2000, 2004, - 2005, 2006 + 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -388,6 +388,12 @@ DEF_RTL_EXPR(STRICT_LOW_PART, "strict_low_part", "e", RTX_EXTRA) in DECL_RTLs and during RTL generation, but not in the insn chain. */ DEF_RTL_EXPR(CONCAT, "concat", "ee", RTX_OBJ) +/* (CONCATN [a1 a2 ... an]) represents the virtual concatenation of + all An to make a value. This is an extension of CONCAT to larger + number of components. Like CONCAT, it should not appear in the + insn chain. Every element of the CONCATN is the same size. */ +DEF_RTL_EXPR(CONCATN, "concatn", "E", RTX_OBJ) + /* A memory location; operand is the address. The second operand is the alias set to which this MEM belongs. We use `0' instead of `w' for this field so that the field need not be specified in machine descriptions. */ |