aboutsummaryrefslogtreecommitdiff
path: root/gcc/recog.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>1996-10-23 22:02:32 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>1996-10-23 22:02:32 +0000
commitb85f21c09b2fe45d9aa742a14b6e1e43ed3a042b (patch)
treecab689b470945c0cabab1f8cea131e2102aaebd5 /gcc/recog.c
parentff428c90a4e07be5b2d9398a3555a05628a49290 (diff)
downloadgcc-b85f21c09b2fe45d9aa742a14b6e1e43ed3a042b.zip
gcc-b85f21c09b2fe45d9aa742a14b6e1e43ed3a042b.tar.gz
gcc-b85f21c09b2fe45d9aa742a14b6e1e43ed3a042b.tar.bz2
Accept a unary operator in constrain_operands
From-SVN: r13017
Diffstat (limited to 'gcc/recog.c')
-rw-r--r--gcc/recog.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/recog.c b/gcc/recog.c
index 1322f41..3c7d14c 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -1,5 +1,5 @@
/* Subroutines used by or related to instruction recognition.
- Copyright (C) 1987, 88, 91, 92, 93, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1987, 88, 91-5, 1996 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -1652,6 +1652,11 @@ constrain_operands (insn_code_num, strict)
earlyclobber[opno] = 0;
+ /* A unary operator may be accepted by the predicate, but it
+ is irrelevant for matching contraints. */
+ if (GET_RTX_CLASS (GET_CODE (op)) == '1')
+ op = XEXP (op, 0);
+
if (GET_CODE (op) == SUBREG)
{
if (GET_CODE (SUBREG_REG (op)) == REG