From 9324411a50ae8a1dd51eac8c93ff251ba063915f Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Thu, 22 Oct 1998 22:37:03 +0000 Subject: [PATCH] Fix v850 build problem stemming from Joern's reload patch. * v850/v850.c (v850_reorg): Call alter_subreg. Delete subreg support. From-SVN: r23234 --- gcc/ChangeLog | 4 ++++ gcc/config/v850/v850.c | 19 ++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 23b3802..cb9dd65 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Thu Oct 22 22:34:42 1998 Jim Wilson + + * v850/v850.c (v850_reorg): Call alter_subreg. Delete subreg support. + Fri Oct 23 11:11:56 1998 Michael Hayes * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c index 8afb2f3..319b6ab 100644 --- a/gcc/config/v850/v850.c +++ b/gcc/config/v850/v850.c @@ -1260,6 +1260,14 @@ void v850_reorg (start_insn) /* Memory operands are signed by default. */ int unsignedp = FALSE; + /* We might have (SUBREG (MEM)) here, so just get rid of the + subregs to make this code simpler. It is safe to call + alter_subreg any time after reload. */ + if (GET_CODE (dest) == SUBREG) + dest = alter_subreg (dest); + if (GET_CODE (src) == SUBREG) + src = alter_subreg (src); + if (GET_CODE (dest) == MEM && GET_CODE (src) == MEM) mem = NULL_RTX; @@ -1312,20 +1320,13 @@ void v850_reorg (start_insn) /* Loading up a register in the basic block zaps any savings for the register */ - if (GET_CODE (dest) == REG || GET_CODE (dest) == SUBREG) + if (GET_CODE (dest) == REG) { enum machine_mode mode = GET_MODE (dest); - int word = 0; int regno; int endregno; - while (GET_CODE (dest) == SUBREG) - { - word = SUBREG_WORD (dest); - dest = SUBREG_REG (dest); - } - - regno = REGNO (dest) + word; + regno = REGNO (dest); endregno = regno + HARD_REGNO_NREGS (regno, mode); if (!use_ep) -- 2.7.4