aboutsummaryrefslogtreecommitdiff
path: root/gcc/recog.c
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel1@de.ibm.com>2008-07-21 06:54:34 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2008-07-21 06:54:34 +0000
commitc499b30003602aeb92a5619a5f2f2602ee09cbb8 (patch)
treeba6d513d46342b024beb5096151b851970fe8af5 /gcc/recog.c
parent302b150e73ef172cbdd9b6735c580746f694618c (diff)
downloadgcc-c499b30003602aeb92a5619a5f2f2602ee09cbb8.zip
gcc-c499b30003602aeb92a5619a5f2f2602ee09cbb8.tar.gz
gcc-c499b30003602aeb92a5619a5f2f2602ee09cbb8.tar.bz2
[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
Diffstat (limited to 'gcc/recog.c')
-rw-r--r--gcc/recog.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/gcc/recog.c b/gcc/recog.c
index 6d8b7ea..cd47155 100644
--- a/gcc/recog.c
+++ b/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;
}