pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in parallel.
* pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in parallel. (hppa_expand_prologue): Likewise. From-SVN: r105856
This commit is contained in:
parent
3674b34daf
commit
77c4f044f6
@ -1,3 +1,9 @@
|
||||
2005-10-24 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
|
||||
parallel.
|
||||
(hppa_expand_prologue): Likewise.
|
||||
|
||||
2005-10-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||
|
||||
* pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
|
||||
|
@ -3326,26 +3326,10 @@ store_reg_modify (int base, int reg, HOST_WIDE_INT mod)
|
||||
RTX_FRAME_RELATED_P (insn) = 1;
|
||||
|
||||
/* RTX_FRAME_RELATED_P must be set on each frame related set
|
||||
in a parallel with more than one element. Don't set
|
||||
RTX_FRAME_RELATED_P in the first set if reg is temporary
|
||||
register 1. The effect of this operation is recorded in
|
||||
the initial copy. */
|
||||
if (reg != 1)
|
||||
{
|
||||
in a parallel with more than one element. */
|
||||
RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 0)) = 1;
|
||||
RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 1)) = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* The first element of a PARALLEL is always processed if it is
|
||||
a SET. Thus, we need an expression list for this case. */
|
||||
REG_NOTES (insn)
|
||||
= gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR,
|
||||
gen_rtx_SET (VOIDmode, basereg,
|
||||
gen_rtx_PLUS (word_mode, basereg, delta)),
|
||||
REG_NOTES (insn));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Emit RTL to set REG to the value specified by BASE+DISP. Handle case
|
||||
@ -3578,17 +3562,7 @@ hppa_expand_prologue (void)
|
||||
frames. */
|
||||
insn = emit_move_insn (tmpreg, frame_pointer_rtx);
|
||||
if (DO_FRAME_NOTES)
|
||||
{
|
||||
/* We need to record the frame pointer save here since the
|
||||
new frame pointer is set in the following insn. */
|
||||
RTX_FRAME_RELATED_P (insn) = 1;
|
||||
REG_NOTES (insn)
|
||||
= gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR,
|
||||
gen_rtx_SET (VOIDmode,
|
||||
gen_rtx_MEM (word_mode, stack_pointer_rtx),
|
||||
frame_pointer_rtx),
|
||||
REG_NOTES (insn));
|
||||
}
|
||||
|
||||
insn = emit_move_insn (frame_pointer_rtx, stack_pointer_rtx);
|
||||
if (DO_FRAME_NOTES)
|
||||
|
Loading…
x
Reference in New Issue
Block a user