summaryrefslogtreecommitdiff
path: root/gcc/config/a29k
diff options
context:
space:
mode:
authortege <tege@138bc75d-0d04-0410-961f-82ee72b054a4>1994-06-15 02:32:05 +0000
committertege <tege@138bc75d-0d04-0410-961f-82ee72b054a4>1994-06-15 02:32:05 +0000
commit3fb9b42e81a656da903b9f7dc0beab7c958e09f0 (patch)
tree4b06a15e5eb6eb2e0f072b1577fc54de14c86091 /gcc/config/a29k
parent877d1a07599b62583b15fdf61a29295fa4645208 (diff)
downloadgcc-3fb9b42e81a656da903b9f7dc0beab7c958e09f0.tar.gz
(cmplsrcb_operand): New predicate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7477 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/a29k')
-rw-r--r--gcc/config/a29k/a29k.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/config/a29k/a29k.c b/gcc/config/a29k/a29k.c
index 08363ed0c59..4c9784111b1 100644
--- a/gcc/config/a29k/a29k.c
+++ b/gcc/config/a29k/a29k.c
@@ -282,6 +282,22 @@ srcb_operand (op, mode)
return gpc_reg_operand (op, mode);
}
+int
+cmplsrcb_operand (op, mode)
+ register rtx op;
+ enum machine_mode mode;
+{
+ if (GET_CODE (op) == CONST_INT
+ && (mode == QImode
+ || (INTVAL (op) & 0xffffff00) == 0xffffff00))
+ return 1;
+
+ if (GET_MODE (op) != mode && mode != VOIDmode)
+ return 0;
+
+ return gpc_reg_operand (op, mode);
+}
+
/* Return 1 if OP is either an immediate or a general register. This is used
for the input operand of mtsr/mtrsim. */