From: Richard Kenner Date: Tue, 7 Dec 1993 01:55:51 +0000 (-0500) Subject: (move_block_{to,from}_reg): Check HAVE_{load,store}_multiple value; X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c3a02afeaec436e35ae59b65fb879c7eb54a0a96;p=gcc.git (move_block_{to,from}_reg): Check HAVE_{load,store}_multiple value; don't just #idef the symbol. From-SVN: r6192 --- diff --git a/gcc/expr.c b/gcc/expr.c index 4e2c712bfce..a6248be5049 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++)