diff options
author | DJ Delorie <dj@redhat.com> | 2014-01-20 23:30:45 -0500 |
---|---|---|
committer | DJ Delorie <dj@gcc.gnu.org> | 2014-01-20 23:30:45 -0500 |
commit | 84db09e3c260b7dfc0f652387e3aa28f04626e70 (patch) | |
tree | 639f8023da50dd3555d22f88280b7e27081f2048 | |
parent | d1a5b5e3725895a52432d1abb251ebd332f7a643 (diff) | |
download | gcc-84db09e3c260b7dfc0f652387e3aa28f04626e70.zip gcc-84db09e3c260b7dfc0f652387e3aa28f04626e70.tar.gz gcc-84db09e3c260b7dfc0f652387e3aa28f04626e70.tar.bz2 |
rl78.c (rl78_propogate_register_origins): Verify that CLOBBERs are REGs before propogating their values.
* config/rl78/rl78.c (rl78_propogate_register_origins): Verify
that CLOBBERs are REGs before propogating their values.
From-SVN: r206867
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rl78/rl78.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a666d2e..45304e9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-01-20 DJ Delorie <dj@redhat.com> + + * config/rl78/rl78.c (rl78_propogate_register_origins): Verify + that CLOBBERs are REGs before propogating their values. + 2014-01-20 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/59789 diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c index dd8fc55..227a39b 100644 --- a/gcc/config/rl78/rl78.c +++ b/gcc/config/rl78/rl78.c @@ -3426,7 +3426,8 @@ rl78_propogate_register_origins (void) { rtx clobber = XVECEXP (pat, 0, 1); pat = XVECEXP (pat, 0, 0); - if (GET_CODE (clobber) == CLOBBER) + if (GET_CODE (clobber) == CLOBBER + && GET_CODE (XEXP (clobber, 0)) == REG) { int cr = REGNO (XEXP (clobber, 0)); int mb = GET_MODE_SIZE (GET_MODE (XEXP (clobber, 0))); @@ -3569,7 +3570,8 @@ rl78_propogate_register_origins (void) } } } - else if (GET_CODE (pat) == CLOBBER) + else if (GET_CODE (pat) == CLOBBER + && GET_CODE (XEXP (pat, 0)) == REG) { if (REG_P (XEXP (pat, 0))) { |