diff options
author | Jakub Jelinek <jakub@redhat.com> | 2005-12-14 21:30:46 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2005-12-14 21:30:46 +0100 |
commit | 69642eaeafc5e58d41866d8db73dd73ec134067a (patch) | |
tree | 9fe02e5cb8e0ede43b6a97177ec83f2927b991a1 /gcc/config/i386 | |
parent | 4f9a6d459fc70db6947ed7e853c77f0b950669bd (diff) | |
download | gcc-69642eaeafc5e58d41866d8db73dd73ec134067a.zip gcc-69642eaeafc5e58d41866d8db73dd73ec134067a.tar.gz gcc-69642eaeafc5e58d41866d8db73dd73ec134067a.tar.bz2 |
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
Diffstat (limited to 'gcc/config/i386')
-rw-r--r-- | gcc/config/i386/i386.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 33b9c6f..7457218 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -15790,9 +15790,8 @@ ix86_force_to_memory (enum machine_mode mode, rtx operand) } break; case HImode: - /* It is better to store HImodes as SImodes. */ - if (!TARGET_PARTIAL_REG_STALL) - operand = gen_lowpart (SImode, operand); + /* Store HImodes as SImodes. */ + operand = gen_lowpart (SImode, operand); /* FALLTHRU */ case SImode: emit_insn ( @@ -15820,8 +15819,6 @@ ix86_free_from_memory (enum machine_mode mode) if (mode == DImode || TARGET_64BIT) size = 8; - else if (mode == HImode && TARGET_PARTIAL_REG_STALL) - size = 2; else size = 4; /* Use LEA to deallocate stack space. In peephole2 it will be converted |