aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-11-07 04:28:00 +0000
committerRichard Stallman <rms@gnu.org>1993-11-07 04:28:00 +0000
commit8270111ebe85387475ede76649873c23d2dafacb (patch)
tree6481858343810b753b70e78efb8c1981961e1eb6 /gcc
parent803c85ca50455f998fa2fdbfa8829f159ed4fef5 (diff)
downloadgcc-8270111ebe85387475ede76649873c23d2dafacb.zip
gcc-8270111ebe85387475ede76649873c23d2dafacb.tar.gz
gcc-8270111ebe85387475ede76649873c23d2dafacb.tar.bz2
(partial_ccmode_register_operand, even_relop)
(partial_ccmode_register_operand, even_relop) (odd_relop): New functions, for support of CCEVENmode. (print_operand, new case '!'): Revert following condition. From-SVN: r6030
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m88k/m88k.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/gcc/config/m88k/m88k.c b/gcc/config/m88k/m88k.c
index 8a7420d..695d655 100644
--- a/gcc/config/m88k/m88k.c
+++ b/gcc/config/m88k/m88k.c
@@ -1341,6 +1341,16 @@ real_or_0_operand (op, mode)
&& op == CONST0_RTX (mode)));
}
+/* Return true if OP is valid to use in the context of logic aritmethic
+ on condition codes. */
+
+int partial_ccmode_register_operand(op,mode)
+ rtx op;
+ enum machine_mode mode;
+{
+ return (register_operand(op,CCmode) || register_operand(op,CCEVENmode));
+}
+
/* Return true if OP is a relational operator. */
int
@@ -1366,6 +1376,40 @@ relop (op, mode)
}
}
+int even_relop(op,mode)
+ rtx op;
+ enum machine_mode mode;
+{
+ switch (GET_CODE(op))
+ {
+ case EQ:
+ case LT:
+ case GT:
+ case LTU:
+ case GTU:
+ return 1;
+ default:
+ return 0;
+ }
+}
+
+int odd_relop(op,mode)
+ rtx op;
+ enum machine_mode mode;
+{
+ switch (GET_CODE(op))
+ {
+ case NE:
+ case LE:
+ case GE:
+ case LEU:
+ case GEU:
+ return 1;
+ default:
+ return 0;
+ }
+}
+
/* Return true if OP is a relational operator, and is not an unsigned
relational operator. */
@@ -2803,6 +2847,10 @@ print_operand (file, x, code)
? ".n\t" : "\t", file);
return;
+ case '!': /* Reverse the following condition. */
+ sequencep++;
+ reversep=1;
+ return;
case 'R': /* reverse the condition of the next print_operand
if operand is a label_ref. */
sequencep++;