aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-12-06 20:55:51 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1993-12-06 20:55:51 -0500
commitc3a02afeaec436e35ae59b65fb879c7eb54a0a96 (patch)
tree5c2d0d24ce633e21aadb01b2664664477a1cb804 /gcc
parent77fc9313162a36f4936fcc3c81d6e68c27dd1500 (diff)
downloadgcc-c3a02afeaec436e35ae59b65fb879c7eb54a0a96.zip
gcc-c3a02afeaec436e35ae59b65fb879c7eb54a0a96.tar.gz
gcc-c3a02afeaec436e35ae59b65fb879c7eb54a0a96.tar.bz2
(move_block_{to,from}_reg): Check HAVE_{load,store}_multiple value;
don't just #idef the symbol. From-SVN: r6192
Diffstat (limited to 'gcc')
-rw-r--r--gcc/expr.c38
1 files changed, 22 insertions, 16 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 4e2c712..a6248be 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -1573,16 +1573,19 @@ move_block_to_reg (regno, x, nregs, mode)
/* See if the machine can do this with a load multiple insn. */
#ifdef HAVE_load_multiple
- last = get_last_insn ();
- pat = gen_load_multiple (gen_rtx (REG, word_mode, regno), x,
- GEN_INT (nregs));
- if (pat)
+ if (HAVE_load_multiple)
{
- emit_insn (pat);
- return;
+ last = get_last_insn ();
+ pat = gen_load_multiple (gen_rtx (REG, word_mode, regno), x,
+ GEN_INT (nregs));
+ if (pat)
+ {
+ emit_insn (pat);
+ return;
+ }
+ else
+ delete_insns_since (last);
}
- else
- delete_insns_since (last);
#endif
for (i = 0; i < nregs; i++)
@@ -1625,16 +1628,19 @@ move_block_from_reg (regno, x, nregs, size)
/* See if the machine can do this with a store multiple insn. */
#ifdef HAVE_store_multiple
- last = get_last_insn ();
- pat = gen_store_multiple (x, gen_rtx (REG, word_mode, regno),
- GEN_INT (nregs));
- if (pat)
+ if (HAVE_store_multiple)
{
- emit_insn (pat);
- return;
+ last = get_last_insn ();
+ pat = gen_store_multiple (x, gen_rtx (REG, word_mode, regno),
+ GEN_INT (nregs));
+ if (pat)
+ {
+ emit_insn (pat);
+ return;
+ }
+ else
+ delete_insns_since (last);
}
- else
- delete_insns_since (last);
#endif
for (i = 0; i < nregs; i++)