Commit 69642eae by Jakub Jelinek Committed by Jakub Jelinek

re PR debug/25023 (ICE in def_cfa_1, at dwarf2out.c:792)

	PR debug/25023
	* config/i386/i386.c (ix86_force_to_memory): Always use
	SImode push for HImode in -m32.
	(ix86_free_from_memory): Likewise.

	* gcc.dg/pr25023.c: New test.

From-SVN: r108537
parent 4f9a6d45
2005-12-14 Jakub Jelinek <jakub@redhat.com>
PR debug/25023
* config/i386/i386.c (ix86_force_to_memory): Always use
SImode push for HImode in -m32.
(ix86_free_from_memory): Likewise.
2005-12-14 Richard Sandiford <richard@codesourcery.com> 2005-12-14 Richard Sandiford <richard@codesourcery.com>
* gcc/config/arm/arm.md: Provide a big-endian version of the * gcc/config/arm/arm.md: Provide a big-endian version of the
......
...@@ -15790,9 +15790,8 @@ ix86_force_to_memory (enum machine_mode mode, rtx operand) ...@@ -15790,9 +15790,8 @@ ix86_force_to_memory (enum machine_mode mode, rtx operand)
} }
break; break;
case HImode: case HImode:
/* It is better to store HImodes as SImodes. */ /* Store HImodes as SImodes. */
if (!TARGET_PARTIAL_REG_STALL) operand = gen_lowpart (SImode, operand);
operand = gen_lowpart (SImode, operand);
/* FALLTHRU */ /* FALLTHRU */
case SImode: case SImode:
emit_insn ( emit_insn (
...@@ -15820,8 +15819,6 @@ ix86_free_from_memory (enum machine_mode mode) ...@@ -15820,8 +15819,6 @@ ix86_free_from_memory (enum machine_mode mode)
if (mode == DImode || TARGET_64BIT) if (mode == DImode || TARGET_64BIT)
size = 8; size = 8;
else if (mode == HImode && TARGET_PARTIAL_REG_STALL)
size = 2;
else else
size = 4; size = 4;
/* Use LEA to deallocate stack space. In peephole2 it will be converted /* Use LEA to deallocate stack space. In peephole2 it will be converted
......
2005-12-14 Jakub Jelinek <jakub@redhat.com>
PR debug/25023
* gcc.dg/pr25023.c: New test.
2005-12-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2005-12-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* g++.old-deja/g++.brendan/redecl1.C, * g++.old-deja/g++.brendan/redecl1.C,
/* PR debug/25023 */
/* { dg-do compile } */
/* { dg-options "-O2" } */
/* { dg-options "-O2 -mtune=i686" { target { { i?86-*-* || x86_64-*-* } && ilp32 } } } */
extern unsigned char v;
float
foo (void)
{
return v;
}
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