combine.c (apply_distributive_law <SUBREG>): Check TRULY_NOOP_TRUNCATION.

* combine.c (apply_distributive_law <SUBREG>): Check
	TRULY_NOOP_TRUNCATION.

From-SVN: r109261
This commit is contained in:
Adam Nemet 2006-01-03 05:05:06 +00:00 committed by Adam Nemet
parent 1146e68216
commit f13f406e12
2 changed files with 11 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2006-01-02 Adam Nemet <anemet@caviumnetworks.com>
* combine.c (apply_distributive_law <SUBREG>): Check
TRULY_NOOP_TRUNCATION.
2006-01-02 Geoffrey Keating <geoffk@apple.com>
* dwarf2out.c (have_switched_text_section): Delete.

View File

@ -7798,7 +7798,12 @@ apply_distributive_law (rtx x)
|| (GET_MODE_SIZE (GET_MODE (lhs))
> GET_MODE_SIZE (GET_MODE (SUBREG_REG (lhs))))
|| VECTOR_MODE_P (GET_MODE (lhs))
|| GET_MODE_SIZE (GET_MODE (SUBREG_REG (lhs))) > UNITS_PER_WORD)
|| GET_MODE_SIZE (GET_MODE (SUBREG_REG (lhs))) > UNITS_PER_WORD
/* Result might need to be truncated. Don't change mode if
explicit truncation is needed. */
|| !TRULY_NOOP_TRUNCATION
(GET_MODE_BITSIZE (GET_MODE (x)),
GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (lhs)))))
return x;
tem = simplify_gen_binary (code, GET_MODE (SUBREG_REG (lhs)),