re PR target/18511 (cc1plus segfaults when compiling libstdc++-v3/src/localename.cc)
PR target/18511 * reload1.c (emit_output_reload_insns): Check if OLD is a hard register before calling regno_clobbered_p. * reload.c: Update comment for regno_clobbered_p. From-SVN: r92531
This commit is contained in:
parent
a5370cf0e6
commit
2ca396208c
@ -1,3 +1,10 @@
|
||||
2004-12-23 Kaz Kojima <kkojima@gcc.gnu.org>
|
||||
|
||||
PR target/18511
|
||||
* reload1.c (emit_output_reload_insns): Check if OLD is a hard
|
||||
register before calling regno_clobbered_p.
|
||||
* reload.c: Update comment for regno_clobbered_p.
|
||||
|
||||
2004-12-22 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* config/i386/i386.c (override_options): Respect user disable of
|
||||
|
@ -6940,7 +6940,8 @@ find_inc_amount (rtx x, rtx inced)
|
||||
}
|
||||
|
||||
/* Return 1 if register REGNO is the subject of a clobber in insn INSN.
|
||||
If SETS is nonzero, also consider SETs. */
|
||||
If SETS is nonzero, also consider SETs. REGNO must refer to a hard
|
||||
register. */
|
||||
|
||||
int
|
||||
regno_clobbered_p (unsigned int regno, rtx insn, enum machine_mode mode,
|
||||
|
@ -6705,7 +6705,8 @@ emit_output_reload_insns (struct insn_chain *chain, struct reload *rl,
|
||||
|| !(set = single_set (insn))
|
||||
|| rtx_equal_p (old, SET_DEST (set))
|
||||
|| !reg_mentioned_p (old, SET_SRC (set))
|
||||
|| !regno_clobbered_p (REGNO (old), insn, rl->mode, 0))
|
||||
|| !((REGNO (old) < FIRST_PSEUDO_REGISTER)
|
||||
&& regno_clobbered_p (REGNO (old), insn, rl->mode, 0)))
|
||||
gen_reload (old, reloadreg, rl->opnum,
|
||||
rl->when_needed);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user