Commit d8d55ac0 by Jakub Jelinek Committed by Jakub Jelinek

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
parent 132b4e82
2010-03-31 Jakub Jelinek <jakub@redhat.com> 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 PR debug/43557
* cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
BLKmode. BLKmode.
......
/* Output routines for GCC for ARM. /* Output routines for GCC for ARM.
Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 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. Free Software Foundation, Inc.
Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl) Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
and Martin Simmons (@harleqn.co.uk). and Martin Simmons (@harleqn.co.uk).
...@@ -14431,7 +14431,7 @@ arm_save_coproc_regs(void) ...@@ -14431,7 +14431,7 @@ arm_save_coproc_regs(void)
for (reg = LAST_IWMMXT_REGNUM; reg >= FIRST_IWMMXT_REGNUM; reg--) for (reg = LAST_IWMMXT_REGNUM; reg >= FIRST_IWMMXT_REGNUM; reg--)
if (df_regs_ever_live_p (reg) && ! call_used_regs[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 = gen_rtx_MEM (V2SImode, insn);
insn = emit_set_insn (insn, gen_rtx_REG (V2SImode, reg)); insn = emit_set_insn (insn, gen_rtx_REG (V2SImode, reg));
RTX_FRAME_RELATED_P (insn) = 1; RTX_FRAME_RELATED_P (insn) = 1;
...@@ -14445,7 +14445,7 @@ arm_save_coproc_regs(void) ...@@ -14445,7 +14445,7 @@ arm_save_coproc_regs(void)
for (reg = LAST_FPA_REGNUM; reg >= FIRST_FPA_REGNUM; reg--) for (reg = LAST_FPA_REGNUM; reg >= FIRST_FPA_REGNUM; reg--)
if (df_regs_ever_live_p (reg) && !call_used_regs[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 = gen_rtx_MEM (XFmode, insn);
insn = emit_set_insn (insn, gen_rtx_REG (XFmode, reg)); insn = emit_set_insn (insn, gen_rtx_REG (XFmode, reg));
RTX_FRAME_RELATED_P (insn) = 1; RTX_FRAME_RELATED_P (insn) = 1;
......
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