Commit c499b300 by Andreas Krebbel Committed by Andreas Krebbel

[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
parent 302b150e
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> 2008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/36879 PR tree-opt/36879
......
...@@ -1686,15 +1686,13 @@ asm_operand_ok (rtx op, const char *constraint) ...@@ -1686,15 +1686,13 @@ asm_operand_ok (rtx op, const char *constraint)
result = 1; result = 1;
} }
#ifdef EXTRA_CONSTRAINT_STR #ifdef EXTRA_CONSTRAINT_STR
else if (EXTRA_CONSTRAINT_STR (op, c, constraint)) else if (EXTRA_MEMORY_CONSTRAINT (c, constraint))
result = 1;
else if (EXTRA_MEMORY_CONSTRAINT (c, constraint)
/* Every memory operand can be reloaded to fit. */ /* Every memory operand can be reloaded to fit. */
&& memory_operand (op, VOIDmode)) result = result || memory_operand (op, VOIDmode);
result = 1; else if (EXTRA_ADDRESS_CONSTRAINT (c, constraint))
else if (EXTRA_ADDRESS_CONSTRAINT (c, constraint)
/* Every address operand can be reloaded to fit. */ /* Every address operand can be reloaded to fit. */
&& address_operand (op, VOIDmode)) result = result || address_operand (op, VOIDmode);
else if (EXTRA_CONSTRAINT_STR (op, c, constraint))
result = 1; result = 1;
#endif #endif
break; break;
......
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> 2008-07-21 Hans-Peter Nilsson <hp@axis.com>
PR middle-end/36143 PR middle-end/36143
......
/* 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));
}
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