From: jakub Date: Wed, 14 Dec 2005 20:30:46 +0000 (+0000) Subject: PR debug/25023 X-Git-Tag: upstream/4.9.2~57012 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=34df68ac1383a68f7067ae205b311fc3122dfd79;p=platform%2Fupstream%2Flinaro-gcc.git 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108537 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3831d49df..57cdbc3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2005-12-14 Jakub Jelinek + + 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 * gcc/config/arm/arm.md: Provide a big-endian version of the 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 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dc707b3..15f48b3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-12-14 Jakub Jelinek + + PR debug/25023 + * gcc.dg/pr25023.c: New test. + 2005-12-14 Kaveh R. Ghazi * g++.old-deja/g++.brendan/redecl1.C, diff --git a/gcc/testsuite/gcc.dg/pr25023.c b/gcc/testsuite/gcc.dg/pr25023.c new file mode 100644 index 0000000..b8cb7cf --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr25023.c @@ -0,0 +1,12 @@ +/* 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; +}