aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-09-18 17:48:10 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-09-18 17:48:10 -0400
commit5bf6c48a4adc50024bbed8584a9eec1aa86ce984 (patch)
treebf3f9a0528aa4486375ef27097b460f0903f02a4 /gcc
parent86ff8230320d59988f7bb1fb8269bf067610c2f5 (diff)
downloadgcc-5bf6c48a4adc50024bbed8584a9eec1aa86ce984.zip
gcc-5bf6c48a4adc50024bbed8584a9eec1aa86ce984.tar.gz
gcc-5bf6c48a4adc50024bbed8584a9eec1aa86ce984.tar.bz2
(alpha_swapped_comparison_operator): New function.
From-SVN: r12742
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/alpha/alpha.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 4360b56..b8e581b 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -504,6 +504,23 @@ alpha_comparison_operator (op, mode)
|| (mode == DImode && (code == LEU || code == LTU)));
}
+/* Return 1 if OP is a valid Alpha swapped comparison operator. */
+
+int
+alpha_swapped_comparison_operator (op, mode)
+ register rtx op;
+ enum machine_mode mode;
+{
+ enum rtx_code code = GET_CODE (op);
+
+ if (mode != GET_MODE (op) || GET_RTX_CLASS (code) != '<')
+ return 0;
+
+ code = swap_condition (code);
+ return (code == EQ || code == LE || code == LT
+ || (mode == DImode && (code == LEU || code == LTU)));
+}
+
/* Return 1 if OP is a signed comparison operation. */
int