Commit b757d36f by Kaz Kojima

sh.c (prepare_cbranch_operands): Use LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.

	* config/sh/sh.c (prepare_cbranch_operands): Use
	LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
	(expand_cbranchdi4): Likewise.
	(from_compare): Add cast to enum type.
	(expand_cbranchsi4): Use add_reg_note.
	(output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
	(sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
	(sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
	(sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
	* config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
	instead of CODE_FOR_nothing.
	(cbranchdi4): Likewise.  Fix the order of arguments for
	gen_rtx_fmt_ee.
	(push_fpscr): Use add_reg_note.
	(pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
	reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.

From-SVN: r146539
parent 36ef7262
2009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (prepare_cbranch_operands): Use
LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
(expand_cbranchdi4): Likewise.
(from_compare): Add cast to enum type.
(expand_cbranchsi4): Use add_reg_note.
(output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
(sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
(sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
(sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
* config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
instead of CODE_FOR_nothing.
(cbranchdi4): Likewise. Fix the order of arguments for
gen_rtx_fmt_ee.
(push_fpscr): Use add_reg_note.
(pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
2009-04-21 Joseph Myers <joseph@codesourcery.com> 2009-04-21 Joseph Myers <joseph@codesourcery.com>
* ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998, * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
......
...@@ -1378,7 +1378,7 @@ prepare_cbranch_operands (rtx *operands, enum machine_mode mode, ...@@ -1378,7 +1378,7 @@ prepare_cbranch_operands (rtx *operands, enum machine_mode mode,
rtx op1; rtx op1;
rtx scratch = NULL_RTX; rtx scratch = NULL_RTX;
if (comparison == CODE_FOR_nothing) if (comparison == LAST_AND_UNUSED_RTX_CODE)
comparison = GET_CODE (operands[0]); comparison = GET_CODE (operands[0]);
else else
scratch = operands[4]; scratch = operands[4];
...@@ -1478,9 +1478,7 @@ expand_cbranchsi4 (rtx *operands, enum rtx_code comparison, int probability) ...@@ -1478,9 +1478,7 @@ expand_cbranchsi4 (rtx *operands, enum rtx_code comparison, int probability)
operands[1], operands[2]))); operands[1], operands[2])));
jump = emit_jump_insn (branch_expander (operands[3])); jump = emit_jump_insn (branch_expander (operands[3]));
if (probability >= 0) if (probability >= 0)
REG_NOTES (jump) add_reg_note (jump, REG_BR_PROB, GEN_INT (probability));
= gen_rtx_EXPR_LIST (REG_BR_PROB, GEN_INT (probability),
REG_NOTES (jump));
} }
...@@ -1518,7 +1516,7 @@ expand_cbranchdi4 (rtx *operands, enum rtx_code comparison) ...@@ -1518,7 +1516,7 @@ expand_cbranchdi4 (rtx *operands, enum rtx_code comparison)
op2h = gen_highpart_mode (SImode, DImode, operands[2]); op2h = gen_highpart_mode (SImode, DImode, operands[2]);
op1l = gen_lowpart (SImode, operands[1]); op1l = gen_lowpart (SImode, operands[1]);
op2l = gen_lowpart (SImode, operands[2]); op2l = gen_lowpart (SImode, operands[2]);
msw_taken = msw_skip = lsw_taken = CODE_FOR_nothing; msw_taken = msw_skip = lsw_taken = LAST_AND_UNUSED_RTX_CODE;
prob = split_branch_probability; prob = split_branch_probability;
rev_prob = REG_BR_PROB_BASE - prob; rev_prob = REG_BR_PROB_BASE - prob;
switch (comparison) switch (comparison)
...@@ -1609,9 +1607,9 @@ expand_cbranchdi4 (rtx *operands, enum rtx_code comparison) ...@@ -1609,9 +1607,9 @@ expand_cbranchdi4 (rtx *operands, enum rtx_code comparison)
break; break;
default: return false; default: return false;
} }
num_branches = ((msw_taken != CODE_FOR_nothing) num_branches = ((msw_taken != LAST_AND_UNUSED_RTX_CODE)
+ (msw_skip != CODE_FOR_nothing) + (msw_skip != LAST_AND_UNUSED_RTX_CODE)
+ (lsw_taken != CODE_FOR_nothing)); + (lsw_taken != LAST_AND_UNUSED_RTX_CODE));
if (comparison != EQ && comparison != NE && num_branches > 1) if (comparison != EQ && comparison != NE && num_branches > 1)
{ {
if (!CONSTANT_P (operands[2]) if (!CONSTANT_P (operands[2])
...@@ -1637,20 +1635,21 @@ expand_cbranchdi4 (rtx *operands, enum rtx_code comparison) ...@@ -1637,20 +1635,21 @@ expand_cbranchdi4 (rtx *operands, enum rtx_code comparison)
operands[4] = NULL_RTX; operands[4] = NULL_RTX;
if (reload_completed if (reload_completed
&& ! arith_reg_or_0_operand (op2h, SImode) && true_regnum (op1h) && ! arith_reg_or_0_operand (op2h, SImode) && true_regnum (op1h)
&& (msw_taken != CODE_FOR_nothing || msw_skip != CODE_FOR_nothing)) && (msw_taken != LAST_AND_UNUSED_RTX_CODE
|| msw_skip != LAST_AND_UNUSED_RTX_CODE))
{ {
emit_move_insn (scratch, operands[2]); emit_move_insn (scratch, operands[2]);
operands[2] = scratch; operands[2] = scratch;
} }
if (msw_taken != CODE_FOR_nothing) if (msw_taken != LAST_AND_UNUSED_RTX_CODE)
expand_cbranchsi4 (operands, msw_taken, msw_taken_prob); expand_cbranchsi4 (operands, msw_taken, msw_taken_prob);
if (msw_skip != CODE_FOR_nothing) if (msw_skip != LAST_AND_UNUSED_RTX_CODE)
{ {
rtx taken_label = operands[3]; rtx taken_label = operands[3];
/* Operands were possibly modified, but msw_skip doesn't expect this. /* Operands were possibly modified, but msw_skip doesn't expect this.
Always use the original ones. */ Always use the original ones. */
if (msw_taken != CODE_FOR_nothing) if (msw_taken != LAST_AND_UNUSED_RTX_CODE)
{ {
operands[1] = op1h; operands[1] = op1h;
operands[2] = op2h; operands[2] = op2h;
...@@ -1662,14 +1661,14 @@ expand_cbranchdi4 (rtx *operands, enum rtx_code comparison) ...@@ -1662,14 +1661,14 @@ expand_cbranchdi4 (rtx *operands, enum rtx_code comparison)
} }
operands[1] = op1l; operands[1] = op1l;
operands[2] = op2l; operands[2] = op2l;
if (lsw_taken != CODE_FOR_nothing) if (lsw_taken != LAST_AND_UNUSED_RTX_CODE)
{ {
if (reload_completed if (reload_completed
&& ! arith_reg_or_0_operand (op2l, SImode) && true_regnum (op1l)) && ! arith_reg_or_0_operand (op2l, SImode) && true_regnum (op1l))
operands[4] = scratch; operands[4] = scratch;
expand_cbranchsi4 (operands, lsw_taken, lsw_taken_prob); expand_cbranchsi4 (operands, lsw_taken, lsw_taken_prob);
} }
if (msw_skip != CODE_FOR_nothing) if (msw_skip != LAST_AND_UNUSED_RTX_CODE)
emit_label (skip_label); emit_label (skip_label);
return true; return true;
} }
...@@ -1766,7 +1765,7 @@ from_compare (rtx *operands, int code) ...@@ -1766,7 +1765,7 @@ from_compare (rtx *operands, int code)
else else
insn = gen_rtx_SET (VOIDmode, insn = gen_rtx_SET (VOIDmode,
gen_rtx_REG (SImode, T_REG), gen_rtx_REG (SImode, T_REG),
gen_rtx_fmt_ee (code, SImode, gen_rtx_fmt_ee ((enum rtx_code) code, SImode,
sh_compare_op0, sh_compare_op1)); sh_compare_op0, sh_compare_op1));
if ((TARGET_SH4 || TARGET_SH2A) && GET_MODE_CLASS (mode) == MODE_FLOAT) if ((TARGET_SH4 || TARGET_SH2A) && GET_MODE_CLASS (mode) == MODE_FLOAT)
{ {
...@@ -5704,12 +5703,10 @@ output_stack_adjust (int size, rtx reg, int epilogue_p, ...@@ -5704,12 +5703,10 @@ output_stack_adjust (int size, rtx reg, int epilogue_p,
insn = emit_fn (GEN_ADD3 (reg, reg, const_reg)); insn = emit_fn (GEN_ADD3 (reg, reg, const_reg));
} }
if (! epilogue_p) if (! epilogue_p)
REG_NOTES (insn) add_reg_note (insn, REG_FRAME_RELATED_EXPR,
= (gen_rtx_EXPR_LIST
(REG_FRAME_RELATED_EXPR,
gen_rtx_SET (VOIDmode, reg, gen_rtx_SET (VOIDmode, reg,
gen_rtx_PLUS (SImode, reg, GEN_INT (size))), gen_rtx_PLUS (SImode, reg,
REG_NOTES (insn))); GEN_INT (size))));
} }
} }
} }
...@@ -5745,9 +5742,7 @@ push (int rn) ...@@ -5745,9 +5742,7 @@ push (int rn)
x = gen_push (gen_rtx_REG (SImode, rn)); x = gen_push (gen_rtx_REG (SImode, rn));
x = frame_insn (x); x = frame_insn (x);
REG_NOTES (x) add_reg_note (x, REG_INC, gen_rtx_REG (SImode, STACK_POINTER_REGNUM));
= gen_rtx_EXPR_LIST (REG_INC,
gen_rtx_REG (SImode, STACK_POINTER_REGNUM), 0);
return x; return x;
} }
...@@ -5774,9 +5769,7 @@ pop (int rn) ...@@ -5774,9 +5769,7 @@ pop (int rn)
x = gen_pop (gen_rtx_REG (SImode, rn)); x = gen_pop (gen_rtx_REG (SImode, rn));
x = emit_insn (x); x = emit_insn (x);
REG_NOTES (x) add_reg_note (x, REG_INC, gen_rtx_REG (SImode, STACK_POINTER_REGNUM));
= gen_rtx_EXPR_LIST (REG_INC,
gen_rtx_REG (SImode, STACK_POINTER_REGNUM), 0);
} }
/* Generate code to push the regs specified in the mask. */ /* Generate code to push the regs specified in the mask. */
...@@ -6481,27 +6474,23 @@ sh_expand_prologue (void) ...@@ -6481,27 +6474,23 @@ sh_expand_prologue (void)
a direct save from the to-be-saved register. */ a direct save from the to-be-saved register. */
if (REGNO (reg_rtx) != reg) if (REGNO (reg_rtx) != reg)
{ {
rtx set, note_rtx; rtx set;
set = gen_rtx_SET (VOIDmode, mem_rtx, orig_reg_rtx); set = gen_rtx_SET (VOIDmode, mem_rtx, orig_reg_rtx);
note_rtx = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, set, add_reg_note (insn, REG_FRAME_RELATED_EXPR, set);
REG_NOTES (insn));
REG_NOTES (insn) = note_rtx;
} }
if (TARGET_SHCOMPACT && (offset_in_r0 != -1)) if (TARGET_SHCOMPACT && (offset_in_r0 != -1))
{ {
rtx reg_rtx = gen_rtx_REG (mode, reg); rtx reg_rtx = gen_rtx_REG (mode, reg);
rtx set, note_rtx; rtx set;
rtx mem_rtx = gen_frame_mem (mode, rtx mem_rtx = gen_frame_mem (mode,
gen_rtx_PLUS (Pmode, gen_rtx_PLUS (Pmode,
stack_pointer_rtx, stack_pointer_rtx,
GEN_INT (offset))); GEN_INT (offset)));
set = gen_rtx_SET (VOIDmode, mem_rtx, reg_rtx); set = gen_rtx_SET (VOIDmode, mem_rtx, reg_rtx);
note_rtx = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, set, add_reg_note (insn, REG_FRAME_RELATED_EXPR, set);
REG_NOTES (insn));
REG_NOTES (insn) = note_rtx;
} }
} }
} }
...@@ -8751,7 +8740,7 @@ sh_insn_length_adjustment (rtx insn) ...@@ -8751,7 +8740,7 @@ sh_insn_length_adjustment (rtx insn)
/* SH2e has a bug that prevents the use of annulled branches, so if /* SH2e has a bug that prevents the use of annulled branches, so if
the delay slot is not filled, we'll have to put a NOP in it. */ the delay slot is not filled, we'll have to put a NOP in it. */
if (sh_cpu == CPU_SH2E if (sh_cpu_attr == CPU_SH2E
&& GET_CODE (insn) == JUMP_INSN && GET_CODE (insn) == JUMP_INSN
&& GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC && GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC
&& GET_CODE (PATTERN (insn)) != ADDR_VEC && GET_CODE (PATTERN (insn)) != ADDR_VEC
...@@ -9836,7 +9825,7 @@ sh_initialize_trampoline (rtx tramp, rtx fnaddr, rtx cxt) ...@@ -9836,7 +9825,7 @@ sh_initialize_trampoline (rtx tramp, rtx fnaddr, rtx cxt)
|| (!(TARGET_SH4A_ARCH || TARGET_SH4_300) && TARGET_USERMODE)) || (!(TARGET_SH4A_ARCH || TARGET_SH4_300) && TARGET_USERMODE))
emit_library_call (function_symbol (NULL, "__ic_invalidate", emit_library_call (function_symbol (NULL, "__ic_invalidate",
FUNCTION_ORDINARY), FUNCTION_ORDINARY),
0, VOIDmode, 1, tramp, SImode); LCT_NORMAL, VOIDmode, 1, tramp, SImode);
else else
emit_insn (gen_ic_invalidate_line (tramp)); emit_insn (gen_ic_invalidate_line (tramp));
} }
...@@ -10173,7 +10162,7 @@ sh_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED, ...@@ -10173,7 +10162,7 @@ sh_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
argmode = TYPE_MODE (TREE_TYPE (arg)); argmode = TYPE_MODE (TREE_TYPE (arg));
if (argmode != opmode) if (argmode != opmode)
arg = build1 (NOP_EXPR, optype, arg); arg = build1 (NOP_EXPR, optype, arg);
op[nop] = expand_expr (arg, NULL_RTX, opmode, 0); op[nop] = expand_expr (arg, NULL_RTX, opmode, EXPAND_NORMAL);
if (! (*insn_data[icode].operand[nop].predicate) (op[nop], opmode)) if (! (*insn_data[icode].operand[nop].predicate) (op[nop], opmode))
op[nop] = copy_to_mode_reg (opmode, op[nop]); op[nop] = copy_to_mode_reg (opmode, op[nop]);
} }
......
...@@ -647,7 +647,7 @@ ...@@ -647,7 +647,7 @@
(pc))) (pc)))
(clobber (reg:SI T_REG))] (clobber (reg:SI T_REG))]
"TARGET_CBRANCHDI4" "TARGET_CBRANCHDI4"
"expand_cbranchsi4 (operands, CODE_FOR_nothing, -1); DONE;") "expand_cbranchsi4 (operands, LAST_AND_UNUSED_RTX_CODE, -1); DONE;")
;; ------------------------------------------------------------------------- ;; -------------------------------------------------------------------------
;; SImode unsigned integer comparisons ;; SImode unsigned integer comparisons
...@@ -720,13 +720,14 @@ ...@@ -720,13 +720,14 @@
if (TARGET_EXPAND_CBRANCHDI4) if (TARGET_EXPAND_CBRANCHDI4)
{ {
if (expand_cbranchdi4 (operands, CODE_FOR_nothing)) if (expand_cbranchdi4 (operands, LAST_AND_UNUSED_RTX_CODE))
DONE; DONE;
} }
comparison = prepare_cbranch_operands (operands, DImode, CODE_FOR_nothing); comparison = prepare_cbranch_operands (operands, DImode,
LAST_AND_UNUSED_RTX_CODE);
if (comparison != GET_CODE (operands[0])) if (comparison != GET_CODE (operands[0]))
operands[0] operands[0]
= gen_rtx_fmt_ee (VOIDmode, comparison, operands[1], operands[2]); = gen_rtx_fmt_ee (comparison, VOIDmode, operands[1], operands[2]);
operands[4] = gen_rtx_SCRATCH (SImode); operands[4] = gen_rtx_SCRATCH (SImode);
}") }")
...@@ -4915,7 +4916,7 @@ label: ...@@ -4915,7 +4916,7 @@ label:
gen_rtx_PRE_DEC (Pmode, gen_rtx_PRE_DEC (Pmode,
stack_pointer_rtx)), stack_pointer_rtx)),
get_fpscr_rtx ())); get_fpscr_rtx ()));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, stack_pointer_rtx, NULL_RTX); add_reg_note (insn, REG_INC, stack_pointer_rtx);
DONE; DONE;
}") }")
...@@ -4928,7 +4929,7 @@ label: ...@@ -4928,7 +4929,7 @@ label:
gen_frame_mem (PSImode, gen_frame_mem (PSImode,
gen_rtx_POST_INC (Pmode, gen_rtx_POST_INC (Pmode,
stack_pointer_rtx)))); stack_pointer_rtx))));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, stack_pointer_rtx, NULL_RTX); add_reg_note (insn, REG_INC, stack_pointer_rtx);
DONE; DONE;
}") }")
...@@ -5959,7 +5960,7 @@ label: ...@@ -5959,7 +5960,7 @@ label:
gen_rtx_PRE_DEC (Pmode, stack_pointer_rtx)); gen_rtx_PRE_DEC (Pmode, stack_pointer_rtx));
insn = emit_insn (gen_movdf_i4 (tos, operands[1], operands[2])); insn = emit_insn (gen_movdf_i4 (tos, operands[1], operands[2]));
if (! (TARGET_SH5 && true_regnum (operands[1]) < 16)) if (! (TARGET_SH5 && true_regnum (operands[1]) < 16))
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, stack_pointer_rtx, NULL_RTX); add_reg_note (insn, REG_INC, stack_pointer_rtx);
if (TARGET_SH5 && true_regnum (operands[0]) < 16) if (TARGET_SH5 && true_regnum (operands[0]) < 16)
tos = gen_tmp_stack_mem (DFmode, stack_pointer_rtx); tos = gen_tmp_stack_mem (DFmode, stack_pointer_rtx);
else else
...@@ -5969,7 +5970,7 @@ label: ...@@ -5969,7 +5970,7 @@ label:
if (TARGET_SH5 && true_regnum (operands[0]) < 16) if (TARGET_SH5 && true_regnum (operands[0]) < 16)
emit_move_insn (stack_pointer_rtx, plus_constant (stack_pointer_rtx, 8)); emit_move_insn (stack_pointer_rtx, plus_constant (stack_pointer_rtx, 8));
else else
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, stack_pointer_rtx, NULL_RTX); add_reg_note (insn, REG_INC, stack_pointer_rtx);
DONE; DONE;
}") }")
...@@ -6126,7 +6127,7 @@ label: ...@@ -6126,7 +6127,7 @@ label:
insn = emit_insn (gen_movsf_ie (gen_rtx_REG (SFmode, insn = emit_insn (gen_movsf_ie (gen_rtx_REG (SFmode,
regno + !! TARGET_LITTLE_ENDIAN), regno + !! TARGET_LITTLE_ENDIAN),
mem2, operands[2])); mem2, operands[2]));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, operands[1], NULL_RTX); add_reg_note (insn, REG_INC, operands[1]);
insn = emit_insn (gen_movsf_ie (gen_rtx_REG (SFmode, insn = emit_insn (gen_movsf_ie (gen_rtx_REG (SFmode,
regno + ! TARGET_LITTLE_ENDIAN), regno + ! TARGET_LITTLE_ENDIAN),
change_address (mem, SFmode, NULL_RTX), change_address (mem, SFmode, NULL_RTX),
...@@ -6165,12 +6166,12 @@ label: ...@@ -6165,12 +6166,12 @@ label:
} }
addr = XEXP (addr, 0); addr = XEXP (addr, 0);
insn = emit_insn (gen_movsf_ie (reg0, mem2, operands[2])); insn = emit_insn (gen_movsf_ie (reg0, mem2, operands[2]));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, addr, NULL_RTX); add_reg_note (insn, REG_INC, addr);
insn = emit_insn (gen_movsf_ie (reg1, operands[1], operands[2])); insn = emit_insn (gen_movsf_ie (reg1, operands[1], operands[2]));
if (adjust) if (adjust)
emit_insn (adjust); emit_insn (adjust);
else else
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, addr, NULL_RTX); add_reg_note (insn, REG_INC, addr);
DONE; DONE;
}") }")
...@@ -6203,12 +6204,12 @@ label: ...@@ -6203,12 +6204,12 @@ label:
} }
addr = XEXP (addr, 0); addr = XEXP (addr, 0);
if (! adjust) if (! adjust)
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, addr, NULL_RTX); add_reg_note (insn, REG_INC, addr);
insn = emit_insn (gen_movsf_ie (operands[0], insn = emit_insn (gen_movsf_ie (operands[0],
gen_rtx_REG (SFmode, gen_rtx_REG (SFmode,
regno + !! TARGET_LITTLE_ENDIAN), regno + !! TARGET_LITTLE_ENDIAN),
operands[2])); operands[2]));
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, addr, NULL_RTX); add_reg_note (insn, REG_INC, addr);
DONE; DONE;
}") }")
...@@ -10486,7 +10487,7 @@ mov.l\\t1f,r0\\n\\ ...@@ -10486,7 +10487,7 @@ mov.l\\t1f,r0\\n\\
mem = replace_equiv_address (mem, gen_rtx_POST_INC (Pmode, operands[0])); mem = replace_equiv_address (mem, gen_rtx_POST_INC (Pmode, operands[0]));
new_insn = emit_insn (gen_fpu_switch (fpscr, mem)); new_insn = emit_insn (gen_fpu_switch (fpscr, mem));
REG_NOTES (new_insn) = gen_rtx_EXPR_LIST (REG_INC, operands[0], NULL_RTX); add_reg_note (new_insn, REG_INC, operands[0]);
DONE; DONE;
}) })
...@@ -10504,7 +10505,7 @@ mov.l\\t1f,r0\\n\\ ...@@ -10504,7 +10505,7 @@ mov.l\\t1f,r0\\n\\
mem = replace_equiv_address (mem, gen_rtx_POST_INC (Pmode, operands[0])); mem = replace_equiv_address (mem, gen_rtx_POST_INC (Pmode, operands[0]));
new_insn = emit_insn (gen_fpu_switch (fpscr, mem)); new_insn = emit_insn (gen_fpu_switch (fpscr, mem));
REG_NOTES (new_insn) = gen_rtx_EXPR_LIST (REG_INC, operands[0], NULL_RTX); add_reg_note (new_insn, REG_INC, operands[0]);
if (!find_regno_note (curr_insn, REG_DEAD, true_regnum (operands[0]))) if (!find_regno_note (curr_insn, REG_DEAD, true_regnum (operands[0])))
emit_insn (gen_addsi3 (operands[0], operands[0], GEN_INT (-4))); emit_insn (gen_addsi3 (operands[0], operands[0], GEN_INT (-4)));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment