(stupid_mark_refs): Handle SUBREG of pseudo-reg in a SET_DEST same as
we handle a pseudo-reg in a SET_DEST. From-SVN: r10541
This commit is contained in:
parent
4f069e1470
commit
2d43e08975
15
gcc/stupid.c
15
gcc/stupid.c
@ -1,5 +1,5 @@
|
||||
/* Dummy data flow analysis for GNU compiler in nonoptimizing mode.
|
||||
Copyright (C) 1987, 1991, 1994 Free Software Foundation, Inc.
|
||||
Copyright (C) 1987, 1991, 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@ -423,10 +423,19 @@ stupid_mark_refs (x, insn)
|
||||
|
||||
if (code == SET || code == CLOBBER)
|
||||
{
|
||||
if (SET_DEST (x) != 0 && GET_CODE (SET_DEST (x)) == REG)
|
||||
if (SET_DEST (x) != 0
|
||||
&& (GET_CODE (SET_DEST (x)) == REG
|
||||
|| (GET_CODE (SET_DEST (x)) == SUBREG
|
||||
&& GET_CODE (SUBREG_REG (SET_DEST (x))) == REG
|
||||
&& (REGNO (SUBREG_REG (SET_DEST (x)))
|
||||
>= FIRST_PSEUDO_REGISTER))))
|
||||
{
|
||||
/* Register is being assigned. */
|
||||
regno = REGNO (SET_DEST (x));
|
||||
/* If setting a SUBREG, we treat the entire reg as being set. */
|
||||
if (GET_CODE (SET_DEST (x)) == SUBREG)
|
||||
regno = REGNO (SUBREG_REG (SET_DEST (x)));
|
||||
else
|
||||
regno = REGNO (SET_DEST (x));
|
||||
|
||||
/* For hard regs, update the where-live info. */
|
||||
if (regno < FIRST_PSEUDO_REGISTER)
|
||||
|
Loading…
Reference in New Issue
Block a user