mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-24 14:39:39 +08:00
* simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
From-SVN: r110990
This commit is contained in:
parent
1cf0118daf
commit
de7f492b61
@ -1,3 +1,7 @@
|
||||
2006-02-14 Adam Nemet <anemet@caviumnetworks.com>
|
||||
|
||||
* simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
|
||||
|
||||
2006-02-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
||||
|
||||
PR bootstrap/26053
|
||||
|
@ -4426,6 +4426,14 @@ simplify_subreg (enum machine_mode outermode, rtx op,
|
||||
return NULL_RTX;
|
||||
}
|
||||
|
||||
/* Merge implicit and explicit truncations. */
|
||||
|
||||
if (GET_CODE (op) == TRUNCATE
|
||||
&& GET_MODE_SIZE (outermode) < GET_MODE_SIZE (innermode)
|
||||
&& subreg_lowpart_offset (outermode, innermode) == byte)
|
||||
return simplify_gen_unary (TRUNCATE, outermode, XEXP (op, 0),
|
||||
GET_MODE (XEXP (op, 0)));
|
||||
|
||||
/* SUBREG of a hard register => just change the register number
|
||||
and/or mode. If the hard register is not valid in that mode,
|
||||
suppress this simplification. If the hard register is the stack,
|
||||
|
Loading…
Reference in New Issue
Block a user