re PR target/43580 (ICE segfault compiling libgcc2.c)

PR target/43580
	* config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
	V2SImode or XFmode on PRE_DEC.

From-SVN: r157853
This commit is contained in:
Jakub Jelinek 2010-03-31 10:41:28 +02:00 committed by Jakub Jelinek
parent 132b4e8295
commit d8d55ac02e
2 changed files with 7 additions and 3 deletions

View file

@ -1,5 +1,9 @@
2010-03-31 Jakub Jelinek <jakub@redhat.com>
PR target/43580
* config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
V2SImode or XFmode on PRE_DEC.
PR debug/43557
* cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
BLKmode.

View file

@ -1,6 +1,6 @@
/* Output routines for GCC for ARM.
Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
and Martin Simmons (@harleqn.co.uk).
@ -14431,7 +14431,7 @@ arm_save_coproc_regs(void)
for (reg = LAST_IWMMXT_REGNUM; reg >= FIRST_IWMMXT_REGNUM; reg--)
if (df_regs_ever_live_p (reg) && ! call_used_regs[reg])
{
insn = gen_rtx_PRE_DEC (V2SImode, stack_pointer_rtx);
insn = gen_rtx_PRE_DEC (Pmode, stack_pointer_rtx);
insn = gen_rtx_MEM (V2SImode, insn);
insn = emit_set_insn (insn, gen_rtx_REG (V2SImode, reg));
RTX_FRAME_RELATED_P (insn) = 1;
@ -14445,7 +14445,7 @@ arm_save_coproc_regs(void)
for (reg = LAST_FPA_REGNUM; reg >= FIRST_FPA_REGNUM; reg--)
if (df_regs_ever_live_p (reg) && !call_used_regs[reg])
{
insn = gen_rtx_PRE_DEC (XFmode, stack_pointer_rtx);
insn = gen_rtx_PRE_DEC (Pmode, stack_pointer_rtx);
insn = gen_rtx_MEM (XFmode, insn);
insn = emit_set_insn (insn, gen_rtx_REG (XFmode, reg));
RTX_FRAME_RELATED_P (insn) = 1;