Commit 2696f6a4 by Alexandre Oliva Committed by Alexandre Oliva

caller-save.c (mark_referenced_regs): Mark partially-overwritten multi-word registers.

* caller-save.c (mark_referenced_regs): Mark partially-overwritten
multi-word registers.

From-SVN: r35579
parent e50d2932
2000-08-09 Alexandre Oliva <aoliva@redhat.com>
* caller-save.c (mark_referenced_regs): Mark partially-overwritten
multi-word registers.
2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
* c-common.c (combine_strings, check_format_info): Refer to ISO C
......
......@@ -512,7 +512,14 @@ mark_referenced_regs (x)
x = SET_DEST (x);
code = GET_CODE (x);
if (code == REG || code == PC || code == CC0
|| (code == SUBREG && GET_CODE (SUBREG_REG (x)) == REG))
|| (code == SUBREG && GET_CODE (SUBREG_REG (x)) == REG
/* If we're setting only part of a multi-word register,
we shall mark it as referenced, because the words
that are not being set should be restored. */
&& ((GET_MODE_SIZE (GET_MODE (x))
>= GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))))
|| (GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))
<= UNITS_PER_WORD))))
return;
}
if (code == MEM || code == SUBREG)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment