From 1bc695cdac5a11970398b5f977e0ce196ce1e0d0 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Wed, 18 Aug 1993 00:50:55 -0600 Subject: [PATCH] pa.c (emit_move_sequence): Check both reload_in_progress and reload_completed when... * pa.c (emit_move_sequence): Check both reload_in_progress and reload_completed when choosing a scratch/temporary register. From-SVN: r5180 --- gcc/config/pa/pa.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 691253ce9c4..4ab34a5288d 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -842,7 +842,7 @@ emit_move_sequence (operands, mode, scratch_reg) emit_insn (gen_rtx (SET, VOIDmode, operand0, operand1)); return 1; } - if (! reload_in_progress) + if (! (reload_in_progress || reload_completed)) { operands[0] = validize_mem (operand0); operands[1] = operand1 = force_reg (mode, operand1); @@ -865,7 +865,13 @@ emit_move_sequence (operands, mode, scratch_reg) { if (flag_pic) { - rtx temp = reload_in_progress ? operand0 : gen_reg_rtx (Pmode); + rtx temp; + + if (reload_in_progress || reload_completed) + temp = operand0; + else + temp = gen_reg_rtx (Pmode); + operands[1] = legitimize_pic_address (operand1, mode, temp); emit_insn (gen_rtx (SET, VOIDmode, operand0, operands[1])); } @@ -876,7 +882,7 @@ emit_move_sequence (operands, mode, scratch_reg) { rtx temp, set; - if (reload_in_progress) + if (reload_in_progress || reload_completed) temp = scratch_reg ? scratch_reg : operand0; else temp = gen_reg_rtx (mode); @@ -893,8 +899,13 @@ emit_move_sequence (operands, mode, scratch_reg) gen_rtx (HIGH, mode, operand1))); if (function_label_operand (operand1, mode)) { - rtx temp = reload_in_progress ? scratch_reg - : gen_reg_rtx (mode); + rtx temp; + + if (reload_in_progress || reload_completed) + temp = scratch_reg; + else + temp = gen_reg_rtx (mode); + if (!temp) abort (); emit_insn (gen_rtx (PARALLEL, VOIDmode, @@ -912,7 +923,13 @@ emit_move_sequence (operands, mode, scratch_reg) else if (GET_CODE (operand1) != CONST_INT || ! cint_ok_for_move (INTVAL (operand1))) { - rtx temp = reload_in_progress ? operand0 : gen_reg_rtx (mode); + rtx temp; + + if (reload_in_progress || reload_completed) + temp = operand0; + else + temp = gen_reg_rtx (mode); + emit_insn (gen_rtx (SET, VOIDmode, temp, gen_rtx (HIGH, mode, operand1))); operands[1] = gen_rtx (LO_SUM, mode, temp, operand1); -- 2.30.2