re PR target/27266 (syncronization primitives cause ICE with -march=pentium or better)

gcc/
	PR target/27266
	* config/i386/i386.c (ix86_expand_branch): Jump to simple if
	ix86_compare_emitted is non-NULL.

gcc/testsuite/
	PR target/27266
	* gcc.target/i386/pr27266.c: New.

From-SVN: r113987
This commit is contained in:
Kazu Hirata 2006-05-22 17:55:53 +00:00 committed by Kazu Hirata
parent 123b24e73b
commit 3d763bcffe
4 changed files with 31 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2006-05-22 Kazu Hirata <kazu@codesourcery.com>
PR target/27266
* config/i386/i386.c (ix86_expand_branch): Jump to simple if
ix86_compare_emitted is non-NULL.
2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/27451

View File

@ -10175,6 +10175,12 @@ ix86_expand_branch (enum rtx_code code, rtx label)
{
rtx tmp;
/* If we have emitted a compare insn, go straight to simple.
ix86_expand_compare won't emit anything if ix86_compare_emitted
is non NULL. */
if (ix86_compare_emitted)
goto simple;
switch (GET_MODE (ix86_compare_op0))
{
case QImode:

View File

@ -1,3 +1,8 @@
2006-05-22 Kazu Hirata <kazu@codesourcery.com>
PR target/27266
* gcc.target/i386/pr27266.c: New.
2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/27451

View File

@ -0,0 +1,14 @@
/* PR target/27266.
The testcase below used to trigger an ICE. */
/* { dg-do compile } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-march=pentium" } */
signed long long sll;
void
foo (void)
{
__sync_fetch_and_add (&sll, 1);
}