* regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.

From-SVN: r22977
This commit is contained in:
Jeffrey A Law 1998-10-10 16:03:44 +00:00 committed by Jeff Law
parent 3aeab4377c
commit 937e37cc6e
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,7 @@
Sat Oct 10 17:01:42 1998 Jeffrey A Law (law@cygnus.com)
* regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.
Fri Oct 9 22:08:05 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* fp-bit.c (SFtype): Don't implicitly use int in declaration.

View File

@ -552,6 +552,14 @@ optimize_reg_copy_3 (insn, dest, src)
|| GET_CODE (SET_SRC (set)) != MEM
|| SET_DEST (set) != src_reg)
return;
/* Do not use a SUBREG to truncate from one mode to another if truncation
is not a nop. */
if (GET_MODE_BITSIZE (GET_MODE (src_reg)) <= GET_MODE_BITSIZE (GET_MODE (src))
&& !TRULY_NOOP_TRUNCATION (GET_MODE_BITSIZE (GET_MODE (src)),
GET_MODE_BITSIZE (GET_MODE (src_reg))))
return;
old_mode = GET_MODE (src_reg);
PUT_MODE (src_reg, GET_MODE (src));
XEXP (src, 0) = SET_SRC (set);