From: Jim Wilson Date: Sat, 21 Jan 1995 01:23:12 +0000 (-0800) Subject: (machine_dependent_reorg): When remove SUBREG, add in X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=23ed92ca4c901a654040989a067819c1f0b77860;p=gcc.git (machine_dependent_reorg): When remove SUBREG, add in SUBREG_WORD to new register number. From-SVN: r8778 --- diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index ce64a4e50a2..fac1a76e593 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -1961,10 +1961,14 @@ machine_dependent_reorg (first) if (mode == SImode && hi_const (src)) { /* This is an HI source, clobber the dest to get the mode right too */ + int offset = 0; mode = HImode; while (GET_CODE (dst) == SUBREG) - dst = SUBREG_REG (dst); - dst = gen_rtx (REG, HImode, REGNO (dst)); + { + offset += SUBREG_WORD (dst); + dst = SUBREG_REG (dst); + } + dst = gen_rtx (REG, HImode, REGNO (dst) + offset); } lab = add_constant (src, mode); newsrc = gen_rtx (MEM, mode,