From e365422628db9bfbd314fbdea7a380701c3d85de Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Sun, 21 Feb 1993 06:51:56 +0000 Subject: [PATCH] (gen_move_insn): Use emit_move_insn_1. From-SVN: r3506 --- gcc/optabs.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/optabs.c b/gcc/optabs.c index 9c14cf2e534..087dfda5a9d 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -2557,7 +2557,8 @@ have_sub2_insn (mode) return sub_optab->handlers[(int) mode].insn_code != CODE_FOR_nothing; } -/* Generate the body of an instruction to copy Y into X. */ +/* Generate the body of an instruction to copy Y into X. + It may be a SEQUENCE, if one insn isn't enough. */ rtx gen_move_insn (x, y) @@ -2565,6 +2566,7 @@ gen_move_insn (x, y) { register enum machine_mode mode = GET_MODE (x); enum insn_code insn_code; + rtx seq; if (mode == VOIDmode) mode = GET_MODE (y); @@ -2628,9 +2630,14 @@ gen_move_insn (x, y) } insn_code = mov_optab->handlers[(int) tmode].insn_code; + return (GEN_FCN (insn_code) (x, y)); } - return (GEN_FCN (insn_code) (x, y)); + start_sequence (); + emit_move_insn_1 (x, y); + seq = gen_sequence (); + end_sequence (); + return seq; } /* Tables of patterns for extending one integer mode to another. */ -- 2.30.2