re PR target/64889 ([h8300] ICE maybe_record_trace_start, at dwarf2cfi.c:2318)
PR target/64889 * config/h8300/h8300.c (push): New argument "in_prologue". Pass "in_prologue" along to "F". (h8300_push_pop): Corresponding changes. (h8300_expand_prologue): Likewise. (h8300_swap_into_er6): Likewise. Do not set RTX_FRAME_RELATED_P. From-SVN: r220478
This commit is contained in:
parent
514ba9e4ad
commit
1901e8d621
2 changed files with 15 additions and 6 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2015-02-06 Jeff Law <law@redhat.com>
|
||||||
|
|
||||||
|
PR target/64889
|
||||||
|
* config/h8300/h8300.c (push): New argument "in_prologue".
|
||||||
|
Pass "in_prologue" along to "F".
|
||||||
|
(h8300_push_pop): Corresponding changes.
|
||||||
|
(h8300_expand_prologue): Likewise.
|
||||||
|
(h8300_swap_into_er6): Likewise. Do not set RTX_FRAME_RELATED_P.
|
||||||
|
|
||||||
2015-02-06 Jakub Jelinek <jakub@redhat.com>
|
2015-02-06 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR rtl-optimization/64957
|
PR rtl-optimization/64957
|
||||||
|
@ -11,6 +20,7 @@
|
||||||
* tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
|
* tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
|
||||||
of shift-add and (add + shift) operations. Rename local variable.
|
of shift-add and (add + shift) operations. Rename local variable.
|
||||||
|
|
||||||
|
|
||||||
2015-02-05 Jeff Law <law@redhat.com>
|
2015-02-05 Jeff Law <law@redhat.com>
|
||||||
|
|
||||||
PR target/17306
|
PR target/17306
|
||||||
|
|
|
@ -619,7 +619,7 @@ compute_saved_regs (void)
|
||||||
/* Emit an insn to push register RN. */
|
/* Emit an insn to push register RN. */
|
||||||
|
|
||||||
static rtx
|
static rtx
|
||||||
push (int rn)
|
push (int rn, bool in_prologue)
|
||||||
{
|
{
|
||||||
rtx reg = gen_rtx_REG (word_mode, rn);
|
rtx reg = gen_rtx_REG (word_mode, rn);
|
||||||
rtx x;
|
rtx x;
|
||||||
|
@ -630,7 +630,7 @@ push (int rn)
|
||||||
x = gen_push_h8300hs_advanced (reg);
|
x = gen_push_h8300hs_advanced (reg);
|
||||||
else
|
else
|
||||||
x = gen_push_h8300hs_normal (reg);
|
x = gen_push_h8300hs_normal (reg);
|
||||||
x = F (emit_insn (x), true);
|
x = F (emit_insn (x), in_prologue);
|
||||||
add_reg_note (x, REG_INC, stack_pointer_rtx);
|
add_reg_note (x, REG_INC, stack_pointer_rtx);
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
|
@ -683,7 +683,7 @@ h8300_push_pop (int regno, int nregs, bool pop_p, bool return_p)
|
||||||
if (pop_p)
|
if (pop_p)
|
||||||
pop (regno);
|
pop (regno);
|
||||||
else
|
else
|
||||||
push (regno);
|
push (regno, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -868,7 +868,7 @@ h8300_expand_prologue (void)
|
||||||
if (frame_pointer_needed)
|
if (frame_pointer_needed)
|
||||||
{
|
{
|
||||||
/* Push fp. */
|
/* Push fp. */
|
||||||
push (HARD_FRAME_POINTER_REGNUM);
|
push (HARD_FRAME_POINTER_REGNUM, true);
|
||||||
F (emit_move_insn (hard_frame_pointer_rtx, stack_pointer_rtx), true);
|
F (emit_move_insn (hard_frame_pointer_rtx, stack_pointer_rtx), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2757,7 +2757,7 @@ h8sx_emit_movmd (rtx dest, rtx src, rtx length,
|
||||||
void
|
void
|
||||||
h8300_swap_into_er6 (rtx addr)
|
h8300_swap_into_er6 (rtx addr)
|
||||||
{
|
{
|
||||||
rtx insn = push (HARD_FRAME_POINTER_REGNUM);
|
rtx insn = push (HARD_FRAME_POINTER_REGNUM, false);
|
||||||
if (frame_pointer_needed)
|
if (frame_pointer_needed)
|
||||||
add_reg_note (insn, REG_CFA_DEF_CFA,
|
add_reg_note (insn, REG_CFA_DEF_CFA,
|
||||||
plus_constant (Pmode, gen_rtx_MEM (Pmode, stack_pointer_rtx),
|
plus_constant (Pmode, gen_rtx_MEM (Pmode, stack_pointer_rtx),
|
||||||
|
@ -2786,7 +2786,6 @@ h8300_swap_out_of_er6 (rtx addr)
|
||||||
emit_move_insn (addr, hard_frame_pointer_rtx);
|
emit_move_insn (addr, hard_frame_pointer_rtx);
|
||||||
|
|
||||||
insn = pop (HARD_FRAME_POINTER_REGNUM);
|
insn = pop (HARD_FRAME_POINTER_REGNUM);
|
||||||
RTX_FRAME_RELATED_P (insn) = 1;
|
|
||||||
if (frame_pointer_needed)
|
if (frame_pointer_needed)
|
||||||
add_reg_note (insn, REG_CFA_DEF_CFA,
|
add_reg_note (insn, REG_CFA_DEF_CFA,
|
||||||
plus_constant (Pmode, hard_frame_pointer_rtx,
|
plus_constant (Pmode, hard_frame_pointer_rtx,
|
||||||
|
|
Loading…
Add table
Reference in a new issue