diff options
author | Richard Earnshaw <erich@gnu.org> | 1994-10-02 14:25:07 +0000 |
---|---|---|
committer | Richard Earnshaw <erich@gnu.org> | 1994-10-02 14:25:07 +0000 |
commit | 0b9d35ddc15d4caca438fb8d8b253d746bf0e476 (patch) | |
tree | 3a13e0fb524eebf1e86ad941babb80ca81ea5f93 | |
parent | 2e7238ee737464a911d374c9e3204ba14ce4b37f (diff) | |
download | gcc-0b9d35ddc15d4caca438fb8d8b253d746bf0e476.zip gcc-0b9d35ddc15d4caca438fb8d8b253d746bf0e476.tar.gz gcc-0b9d35ddc15d4caca438fb8d8b253d746bf0e476.tar.bz2 |
(movsf): If reloading, create a scratch from the target for loading a constant into integer regs.
(movsf): If reloading, create a scratch from the target for loading a
constant into integer regs.
(movdf): Likewise..
From-SVN: r8199
-rw-r--r-- | gcc/config/arm/arm.md | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 4b7dd7a..82e7172 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -2319,7 +2319,12 @@ { extern int optimize; rtx mem = force_const_mem (SFmode, operands[1]); - rtx addr = gen_reg_rtx (SImode); + rtx addr; + + if (reload_in_progress || reload_completed) + addr = gen_rtx (REG, SImode, REGNO (operands[0])); + else + addr = gen_reg_rtx (SImode); if (optimize == 0) { rtx ptr = force_const_mem (SImode, XEXP (mem, 0)); @@ -2364,7 +2369,12 @@ { extern int optimize; rtx mem = force_const_mem (DFmode, operands[1]); - rtx addr = gen_reg_rtx (SImode); + rtx addr; + + if (reload_in_progress || reload_completed) + addr = gen_rtx (REG, SImode, REGNO (operands[0])); + else + addr = gen_reg_rtx (SImode); if (optimize == 0) { rtx ptr = force_const_mem (SImode, XEXP (mem, 0)); |