aboutsummaryrefslogtreecommitdiff
path: root/gcc/sched.c
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1992-10-14 15:57:42 -0700
committerJim Wilson <wilson@gcc.gnu.org>1992-10-14 15:57:42 -0700
commit22162da3d7b0fd8d0cc6c5ef451bfda139021ba8 (patch)
treee321a84fdeaba0da666999d6c1c74aefcabe809e /gcc/sched.c
parentea9c5b9e08517bd7db80141b2efbfb7422ed12a3 (diff)
downloadgcc-22162da3d7b0fd8d0cc6c5ef451bfda139021ba8.zip
gcc-22162da3d7b0fd8d0cc6c5ef451bfda139021ba8.tar.gz
gcc-22162da3d7b0fd8d0cc6c5ef451bfda139021ba8.tar.bz2
(sched_note_set): Set subreg_p for anything except a paradoxical subreg.
From-SVN: r2464
Diffstat (limited to 'gcc/sched.c')
-rw-r--r--gcc/sched.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/sched.c b/gcc/sched.c
index be48e8e..435c265 100644
--- a/gcc/sched.c
+++ b/gcc/sched.c
@@ -2042,11 +2042,10 @@ sched_note_set (b, x, death)
{
/* Must treat modification of just one hardware register of a multi-reg
value or just a byte field of a register exactly the same way that
- mark_set_1 in flow.c does. */
- if (GET_CODE (reg) == ZERO_EXTRACT
- || GET_CODE (reg) == SIGN_EXTRACT
- || (GET_CODE (reg) == SUBREG
- && REG_SIZE (SUBREG_REG (reg)) > REG_SIZE (reg)))
+ mark_set_1 in flow.c does, i.e. anything except a paradoxical subreg
+ does not kill the entire register. */
+ if (GET_CODE (reg) != SUBREG
+ || REG_SIZE (SUBREG_REG (reg)) > REG_SIZE (reg))
subreg_p = 1;
reg = SUBREG_REG (reg);