* sh.c (gen_ashift_hi): Don't make SUBREG of a SUBREG.
From-SVN: r19432
This commit is contained in:
parent
5645adf0a2
commit
97d6fd65f3
|
@ -1,3 +1,7 @@
|
||||||
|
Mon Apr 27 20:22:08 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||||
|
|
||||||
|
* sh.c (gen_ashift_hi): Don't make SUBREG of a SUBREG.
|
||||||
|
|
||||||
Mon Apr 27 18:23:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
|
Mon Apr 27 18:23:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||||
|
|
||||||
* sh.c (sh_expand_prologue, sh_expand_epilogue):
|
* sh.c (sh_expand_prologue, sh_expand_epilogue):
|
||||||
|
|
|
@ -922,8 +922,16 @@ gen_ashift_hi (type, n, reg)
|
||||||
zero/sign extension.
|
zero/sign extension.
|
||||||
gen_ashift_hi is only called in contexts where we know that the
|
gen_ashift_hi is only called in contexts where we know that the
|
||||||
sign extension works out correctly. */
|
sign extension works out correctly. */
|
||||||
gen_ashift (type, n, gen_rtx_SUBREG (SImode, reg, 0));
|
{
|
||||||
break;
|
int word = 0;
|
||||||
|
if (GET_CODE (reg) == SUBREG)
|
||||||
|
{
|
||||||
|
word = SUBREG_WORD (reg);
|
||||||
|
reg = SUBREG_REG (reg);
|
||||||
|
}
|
||||||
|
gen_ashift (type, n, gen_rtx_SUBREG (SImode, reg, word));
|
||||||
|
break;
|
||||||
|
}
|
||||||
case ASHIFT:
|
case ASHIFT:
|
||||||
emit_insn (gen_ashlhi3_k (reg, reg, GEN_INT (n)));
|
emit_insn (gen_ashlhi3_k (reg, reg, GEN_INT (n)));
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue