[multiple changes]
2008-07-21 Andreas Krebbel <krebbel1@de.ibm.com> PR target/36822 * recog.c (asm_operand_ok): Change the order of the extra memory constraint checks. 2008-07-17 Andreas Krebbel <krebbel1@de.ibm.com> PR target/36822 * gcc.target/s390/pr36822.c: New testcase. From-SVN: r138022
This commit is contained in:
parent
302b150e73
commit
c499b30003
@ -1,3 +1,9 @@
|
||||
2008-07-21 Andreas Krebbel <krebbel1@de.ibm.com>
|
||||
|
||||
PR target/36822
|
||||
* recog.c (asm_operand_ok): Change the order of the extra
|
||||
memory constraint checks.
|
||||
|
||||
2008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||||
|
||||
PR tree-opt/36879
|
||||
|
14
gcc/recog.c
14
gcc/recog.c
@ -1686,16 +1686,14 @@ asm_operand_ok (rtx op, const char *constraint)
|
||||
result = 1;
|
||||
}
|
||||
#ifdef EXTRA_CONSTRAINT_STR
|
||||
else if (EXTRA_MEMORY_CONSTRAINT (c, constraint))
|
||||
/* Every memory operand can be reloaded to fit. */
|
||||
result = result || memory_operand (op, VOIDmode);
|
||||
else if (EXTRA_ADDRESS_CONSTRAINT (c, constraint))
|
||||
/* Every address operand can be reloaded to fit. */
|
||||
result = result || address_operand (op, VOIDmode);
|
||||
else if (EXTRA_CONSTRAINT_STR (op, c, constraint))
|
||||
result = 1;
|
||||
else if (EXTRA_MEMORY_CONSTRAINT (c, constraint)
|
||||
/* Every memory operand can be reloaded to fit. */
|
||||
&& memory_operand (op, VOIDmode))
|
||||
result = 1;
|
||||
else if (EXTRA_ADDRESS_CONSTRAINT (c, constraint)
|
||||
/* Every address operand can be reloaded to fit. */
|
||||
&& address_operand (op, VOIDmode))
|
||||
result = 1;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
@ -1,3 +1,8 @@
|
||||
2008-07-17 Andreas Krebbel <krebbel1@de.ibm.com>
|
||||
|
||||
PR target/36822
|
||||
* gcc.target/s390/pr36822.c: New testcase.
|
||||
|
||||
2008-07-21 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
PR middle-end/36143
|
||||
|
16
gcc/testsuite/gcc.target/s390/pr36822.c
Normal file
16
gcc/testsuite/gcc.target/s390/pr36822.c
Normal file
@ -0,0 +1,16 @@
|
||||
/* This used to ICE on s390 due to bug in the definition of the 'R'
|
||||
constraint which replaced the 'm' constraint (together with 'T')
|
||||
while adding z10 support. */
|
||||
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O" } */
|
||||
|
||||
int boo()
|
||||
{
|
||||
struct {
|
||||
unsigned char pad[4096];
|
||||
unsigned long long bar;
|
||||
} *foo;
|
||||
asm volatile( "" : "=m" (*(unsigned long long*)(foo->bar))
|
||||
: "a" (&foo->bar));
|
||||
}
|
Loading…
Reference in New Issue
Block a user