[COMMITTED] algol68: consolidate relational standard operators
Jose E. Marchesi
jemarch@gnu.org
Sun Apr 6 09:29:40 GMT 2025
---
gcc/algol68/a68-low-bits.cc | 17 ++
gcc/algol68/a68-low-bools.cc | 17 ++
gcc/algol68/a68-low-chars.cc | 53 ++++++
gcc/algol68/a68-low-ints.cc | 28 +--
gcc/algol68/a68-low-prelude.cc | 234 +++++++++++++++--------
gcc/algol68/a68-low-reals.cc | 24 +--
gcc/algol68/a68-parser-prelude.cc | 304 +++++++++++++++---------------
gcc/algol68/a68.h | 68 +++++--
8 files changed, 469 insertions(+), 276 deletions(-)
diff --git a/gcc/algol68/a68-low-bits.cc b/gcc/algol68/a68-low-bits.cc
index afbcbe370a9..093f5581969 100644
--- a/gcc/algol68/a68-low-bits.cc
+++ b/gcc/algol68/a68-low-bits.cc
@@ -251,3 +251,20 @@ a68_bits_shift (tree shift, tree bits)
bits,
fold_build1 (ABS_EXPR, TREE_TYPE (shift), shift)));
}
+
+/* Given two bits values, build an expression that calculates whether A = B. */
+
+tree
+a68_bits_eq (tree a, tree b, location_t loc)
+{
+ return fold_build2_loc (loc, EQ_EXPR, boolean_type_node, a, b);
+}
+
+/* Given two bits values, build an expression that calculates whether A /=
+ B. */
+
+tree
+a68_bits_ne (tree a, tree b, location_t loc)
+{
+ return fold_build2_loc (loc, NE_EXPR, boolean_type_node, a, b);
+}
diff --git a/gcc/algol68/a68-low-bools.cc b/gcc/algol68/a68-low-bools.cc
index 01f0db17b71..0ed29bdd7dd 100644
--- a/gcc/algol68/a68-low-bools.cc
+++ b/gcc/algol68/a68-low-bools.cc
@@ -50,3 +50,20 @@ a68_bool_abs (tree val)
{
return fold_convert (a68_int_type, val);
}
+
+/* Given two boolean values, build an expression that calculates whether A = B. */
+
+tree
+a68_bool_eq (tree a, tree b, location_t loc)
+{
+ return fold_build2_loc (loc, EQ_EXPR, boolean_type_node, a, b);
+}
+
+/* Given two boolean values, build an expression that calculates whether A /=
+ B. */
+
+tree
+a68_bool_ne (tree a, tree b, location_t loc)
+{
+ return fold_build2_loc (loc, NE_EXPR, boolean_type_node, a, b);
+}
diff --git a/gcc/algol68/a68-low-chars.cc b/gcc/algol68/a68-low-chars.cc
index e1d57777e7d..7a21345940e 100644
--- a/gcc/algol68/a68-low-chars.cc
+++ b/gcc/algol68/a68-low-chars.cc
@@ -107,3 +107,56 @@ a68_char_abs (tree val)
{
return fold_convert (a68_int_type, val);
}
+
+/* Given two characters, build an expression that calculates whether A = B. */
+
+tree
+a68_char_eq (tree a, tree b, location_t loc)
+{
+ return fold_build2_loc (loc, EQ_EXPR, boolean_type_node, a, b);
+}
+
+/* Given two characters, build an expression that calculates whether A /=
+ B. */
+
+tree
+a68_char_ne (tree a, tree b, location_t loc)
+{
+ return fold_build2_loc (loc, NE_EXPR, boolean_type_node, a, b);
+}
+
+/* Given two characters, build an expression that calculates
+ whether A < B. */
+
+tree
+a68_char_lt (tree a, tree b, location_t loc)
+{
+ return fold_build2_loc (loc, LT_EXPR, boolean_type_node, a, b);
+}
+
+/* Given two characters, build an expression that calculates
+ whether A <= B. */
+
+tree
+a68_char_le (tree a, tree b, location_t loc)
+{
+ return fold_build2_loc (loc, LE_EXPR, boolean_type_node, a, b);
+}
+
+/* Given two characters, build an expression that calculates
+ whether A > B. */
+
+tree
+a68_char_gt (tree a, tree b, location_t loc)
+{
+ return fold_build2_loc (loc, GT_EXPR, boolean_type_node, a, b);
+}
+
+/* Given two characters, build an expression that calculates
+ whether A >= B. */
+
+tree
+a68_char_ge (tree a, tree b, location_t loc)
+{
+ return fold_build2_loc (loc, GE_EXPR, boolean_type_node, a, b);
+}
diff --git a/gcc/algol68/a68-low-ints.cc b/gcc/algol68/a68-low-ints.cc
index d23ff5e730f..0c90751cd95 100644
--- a/gcc/algol68/a68-low-ints.cc
+++ b/gcc/algol68/a68-low-ints.cc
@@ -185,54 +185,54 @@ a68_int_div (MOID_T *m, tree a, tree b, location_t loc)
whether A = B. */
tree
-a68_int_eq (MOID_T *m ATTRIBUTE_UNUSED, tree a, tree b, location_t loc)
+a68_int_eq (tree a, tree b, location_t loc)
{
- return fold_build2_loc (loc, EQ_EXPR, integer_type_node, a, b);
+ return fold_build2_loc (loc, EQ_EXPR, boolean_type_node, a, b);
}
/* Given two integral values of mode M, build an expression that calculates
whether A /= B. */
tree
-a68_int_ne (MOID_T *m ATTRIBUTE_UNUSED, tree a, tree b, location_t loc)
+a68_int_ne (tree a, tree b, location_t loc)
{
- return fold_build2_loc (loc, NE_EXPR, integer_type_node, a, b);
+ return fold_build2_loc (loc, NE_EXPR, boolean_type_node, a, b);
}
/* Given two integral values of mode M, build an expression that calculates
whether A < B. */
tree
-a68_int_lt (MOID_T *m ATTRIBUTE_UNUSED, tree a, tree b, location_t loc)
+a68_int_lt (tree a, tree b, location_t loc)
{
- return fold_build2_loc (loc, LT_EXPR, integer_type_node, a, b);
+ return fold_build2_loc (loc, LT_EXPR, boolean_type_node, a, b);
}
/* Given two integral values of mode M, build an expression that calculates
whether A <= B. */
tree
-a68_int_le (MOID_T *m ATTRIBUTE_UNUSED, tree a, tree b, location_t loc)
+a68_int_le (tree a, tree b, location_t loc)
{
- return fold_build2_loc (loc, LE_EXPR, integer_type_node, a, b);
+ return fold_build2_loc (loc, LE_EXPR, boolean_type_node, a, b);
}
/* Given two integral values of mode M, build an expression that calculates
whether A > B. */
tree
-a68_int_gt (MOID_T *m ATTRIBUTE_UNUSED, tree a, tree b, location_t loc)
+a68_int_gt (tree a, tree b, location_t loc)
{
- return fold_build2_loc (loc, GT_EXPR, integer_type_node, a, b);
+ return fold_build2_loc (loc, GT_EXPR, boolean_type_node, a, b);
}
/* Given two integral values of mode M, build an expression that calculates
whether A >= B. */
tree
-a68_int_ge (MOID_T *m ATTRIBUTE_UNUSED, tree a, tree b, location_t loc)
+a68_int_ge (tree a, tree b, location_t loc)
{
- return fold_build2_loc (loc, GE_EXPR, integer_type_node, a, b);
+ return fold_build2_loc (loc, GE_EXPR, boolean_type_node, a, b);
}
/* Given two integral values of mode M, build and expression that calculates the
@@ -251,7 +251,7 @@ a68_int_mod (MOID_T *m, tree a, tree b, location_t loc)
r = save_expr (r);
return fold_build3_loc (loc, COND_EXPR, CTYPE (m),
- a68_int_lt (m, r, build_int_cst (CTYPE (m), 0)),
+ a68_int_lt (r, build_int_cst (CTYPE (m), 0)),
a68_int_plus (m, r, a68_int_abs (b)),
r);
}
@@ -299,6 +299,6 @@ a68_int_pow (MOID_T *m, tree a, tree b, location_t loc)
a68_add_stmt (p);
tree calculate_p = a68_pop_range ();
return fold_build3_loc (loc, COND_EXPR, CTYPE (m),
- a68_int_ge (m, b, zero),
+ a68_int_ge (b, zero),
calculate_p, zero);
}
diff --git a/gcc/algol68/a68-low-prelude.cc b/gcc/algol68/a68-low-prelude.cc
index 22f4cc96a0f..9a66036717b 100644
--- a/gcc/algol68/a68-low-prelude.cc
+++ b/gcc/algol68/a68-low-prelude.cc
@@ -270,121 +270,183 @@ a68_lower_rdiv3 (NODE_T *p, LOW_CTX_T ctx)
}
tree
-a68_lower_eq3 (NODE_T *p, LOW_CTX_T ctx)
+a68_lower_int_eq3 (NODE_T *p, LOW_CTX_T ctx)
{
tree op1 = a68_lower_tree (SUB (p), ctx);
tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
- MOID_T *m = MOID (p);
- if (m == M_INT || m == M_LONG_INT || m == M_LONG_LONG_INT
- || m == M_SHORT_INT || m == M_SHORT_SHORT_INT)
- return a68_int_eq (m, op1, op2, a68_get_node_location (p));
- else if (m == M_REAL || m == M_LONG_REAL || m == M_LONG_LONG_REAL)
- return a68_real_eq (m, op1, op2, a68_get_node_location (p));
- else
- /* XXX */
- return fold_build2_loc (a68_get_node_location (p),
- EQ_EXPR, CTYPE (MOID (p)), op1, op2);
+ return a68_int_eq (op1, op2, a68_get_node_location (p));
}
tree
-a68_lower_ne3 (NODE_T *p, LOW_CTX_T ctx)
+a68_lower_int_ne3 (NODE_T *p, LOW_CTX_T ctx)
{
tree op1 = a68_lower_tree (SUB (p), ctx);
tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
- MOID_T *m = MOID (p);
- if (m == M_INT || m == M_LONG_INT || m == M_LONG_LONG_INT
- || m == M_SHORT_INT || m == M_SHORT_SHORT_INT)
- return a68_int_ne (m, op1, op2, a68_get_node_location (p));
- else if (m == M_REAL || m == M_LONG_REAL || m == M_LONG_LONG_REAL)
- return a68_real_ne (m, op1, op2, a68_get_node_location (p));
- else
- /* XXX */
- return fold_build2_loc (a68_get_node_location (p),
- NE_EXPR,
- CTYPE (MOID (p)),
- op1, op2);
+ return a68_int_ne (op1, op2, a68_get_node_location (p));
}
tree
-a68_lower_lt3 (NODE_T *p, LOW_CTX_T ctx)
+a68_lower_int_lt3 (NODE_T *p, LOW_CTX_T ctx)
{
tree op1 = a68_lower_tree (SUB (p), ctx);
tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
- MOID_T *m = MOID (p);
- if (m == M_INT || m == M_LONG_INT || m == M_LONG_LONG_INT
- || m == M_SHORT_INT || m == M_SHORT_SHORT_INT)
- return a68_int_lt (m, op1, op2, a68_get_node_location (p));
- else if (m == M_REAL || m == M_LONG_REAL || m == M_LONG_LONG_REAL)
- return a68_real_lt (m, op1, op2, a68_get_node_location (p));
- else
- /* XXX */
- return fold_build2_loc (a68_get_node_location (p),
- LT_EXPR,
- CTYPE (MOID (p)),
- op1, op2);
+ return a68_int_lt (op1, op2, a68_get_node_location (p));
}
tree
-a68_lower_gt3 (NODE_T *p, LOW_CTX_T ctx)
+a68_lower_int_le3 (NODE_T *p, LOW_CTX_T ctx)
{
tree op1 = a68_lower_tree (SUB (p), ctx);
tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
- MOID_T *m = MOID (p);
- if (m == M_INT || m == M_LONG_INT || m == M_LONG_LONG_INT
- || m == M_SHORT_INT || m == M_SHORT_SHORT_INT)
- return a68_int_gt (m, op1, op2, a68_get_node_location (p));
- else if (m == M_REAL || m == M_LONG_REAL || m == M_LONG_LONG_REAL)
- return a68_real_gt (m, op1, op2, a68_get_node_location (p));
- else
- /* XXX */
- return fold_build2_loc (a68_get_node_location (p),
- GT_EXPR,
- CTYPE (MOID (p)),
- op1, op2);
+ return a68_int_le (op1, op2, a68_get_node_location (p));
}
tree
-a68_lower_ge3 (NODE_T *p, LOW_CTX_T ctx)
+a68_lower_int_gt3 (NODE_T *p, LOW_CTX_T ctx)
{
tree op1 = a68_lower_tree (SUB (p), ctx);
tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
- MOID_T *m = MOID (p);
- if (m == M_INT || m == M_LONG_INT || m == M_LONG_LONG_INT
- || m == M_SHORT_INT || m == M_SHORT_SHORT_INT)
- return a68_int_ge (m, op1, op2, a68_get_node_location (p));
- else if (m == M_REAL || m == M_LONG_REAL || m == M_LONG_LONG_REAL)
- return a68_real_ge (m, op1, op2, a68_get_node_location (p));
- else
- /* XXX */
- return fold_build2_loc (a68_get_node_location (p),
- GE_EXPR,
- CTYPE (MOID (p)),
- op1, op2);
+ return a68_int_gt (op1, op2, a68_get_node_location (p));
}
tree
-a68_lower_le3 (NODE_T *p, LOW_CTX_T ctx)
+a68_lower_int_ge3 (NODE_T *p, LOW_CTX_T ctx)
{
tree op1 = a68_lower_tree (SUB (p), ctx);
tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
- MOID_T *m = MOID (p);
- if (m == M_INT || m == M_LONG_INT || m == M_LONG_LONG_INT
- || m == M_SHORT_INT || m == M_SHORT_SHORT_INT)
- return a68_int_le (m, op1, op2, a68_get_node_location (p));
- else if (m == M_REAL || m == M_LONG_REAL || m == M_LONG_LONG_REAL)
- return a68_real_le (m, op1, op2, a68_get_node_location (p));
- else
- /* XXX */
- return fold_build2_loc (a68_get_node_location (p),
- LE_EXPR,
- CTYPE (MOID (p)),
- op1, op2);
+ return a68_int_ge (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_real_eq3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_real_eq (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_real_ne3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_real_ne (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_real_lt3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_real_lt (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_real_le3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_real_le (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_real_gt3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_real_gt (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_real_ge3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_real_ge (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_char_eq3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_char_eq (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_char_ne3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_char_ne (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_char_lt3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_char_lt (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_char_le3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_char_le (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_char_gt3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_char_gt (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_char_ge3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_char_ge (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_bool_eq3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_bool_eq (op1, op2, a68_get_node_location (p));
+}
+
+tree
+a68_lower_bool_ne3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+
+ return a68_bool_ne (op1, op2, a68_get_node_location (p));
}
tree
@@ -1001,7 +1063,23 @@ a68_lower_bitelem3 (NODE_T *p, LOW_CTX_T ctx)
}
tree
-a68_lower_bitle3 (NODE_T *p, LOW_CTX_T ctx)
+a68_lower_bit_eq3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ return a68_bits_eq (op1, op2);
+}
+
+tree
+a68_lower_bit_ne3 (NODE_T *p, LOW_CTX_T ctx)
+{
+ tree op1 = a68_lower_tree (SUB (p), ctx);
+ tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ return a68_bits_ne (op1, op2);
+}
+
+tree
+a68_lower_bit_le3 (NODE_T *p, LOW_CTX_T ctx)
{
tree op1 = a68_lower_tree (SUB (p), ctx);
tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
@@ -1009,7 +1087,7 @@ a68_lower_bitle3 (NODE_T *p, LOW_CTX_T ctx)
}
tree
-a68_lower_bitge3 (NODE_T *p, LOW_CTX_T ctx)
+a68_lower_bit_ge3 (NODE_T *p, LOW_CTX_T ctx)
{
tree op1 = a68_lower_tree (SUB (p), ctx);
tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
diff --git a/gcc/algol68/a68-low-reals.cc b/gcc/algol68/a68-low-reals.cc
index 34c8be5b95c..4afc1fc04b3 100644
--- a/gcc/algol68/a68-low-reals.cc
+++ b/gcc/algol68/a68-low-reals.cc
@@ -504,54 +504,54 @@ a68_real_div (MOID_T *m, tree a, tree b, location_t loc)
A = B. */
tree
-a68_real_eq (MOID_T *m ATTRIBUTE_UNUSED, tree a, tree b, location_t loc)
+a68_real_eq (tree a, tree b, location_t loc)
{
- return fold_build2_loc (loc, EQ_EXPR, integer_type_node, a, b);
+ return fold_build2_loc (loc, EQ_EXPR, boolean_type_node, a, b);
}
/* Given two real values of mode M, build an expression that calculates whether
A /= B. */
tree
-a68_real_ne (MOID_T *m ATTRIBUTE_UNUSED, tree a, tree b, location_t loc)
+a68_real_ne (tree a, tree b, location_t loc)
{
- return fold_build2_loc (loc, NE_EXPR, integer_type_node, a, b);
+ return fold_build2_loc (loc, NE_EXPR, boolean_type_node, a, b);
}
/* Given two real values of mode M, build an expression that calculates whether
A < B. */
tree
-a68_real_lt (MOID_T *m ATTRIBUTE_UNUSED, tree a, tree b, location_t loc)
+a68_real_lt (tree a, tree b, location_t loc)
{
- return fold_build2_loc (loc, LT_EXPR, integer_type_node, a, b);
+ return fold_build2_loc (loc, LT_EXPR, boolean_type_node, a, b);
}
/* Given two real values of mode M, build an expression that calculates
whether A <= B. */
tree
-a68_real_le (MOID_T *m ATTRIBUTE_UNUSED, tree a, tree b, location_t loc)
+a68_real_le (tree a, tree b, location_t loc)
{
- return fold_build2_loc (loc, LE_EXPR, integer_type_node, a, b);
+ return fold_build2_loc (loc, LE_EXPR, boolean_type_node, a, b);
}
/* Given two real values of mode M, build an expression that calculates whether
A > B. */
tree
-a68_real_gt (MOID_T *m ATTRIBUTE_UNUSED, tree a, tree b, location_t loc)
+a68_real_gt (tree a, tree b, location_t loc)
{
- return fold_build2_loc (loc, GT_EXPR, integer_type_node, a, b);
+ return fold_build2_loc (loc, GT_EXPR, boolean_type_node, a, b);
}
/* Given two real values of mode M, build an expression that calculates whether
A >= B. */
tree
-a68_real_ge (MOID_T *m ATTRIBUTE_UNUSED, tree a, tree b, location_t loc)
+a68_real_ge (tree a, tree b, location_t loc)
{
- return fold_build2_loc (loc, GE_EXPR, integer_type_node, a, b);
+ return fold_build2_loc (loc, GE_EXPR, boolean_type_node, a, b);
}
/* Exponentiation involving real values.
diff --git a/gcc/algol68/a68-parser-prelude.cc b/gcc/algol68/a68-parser-prelude.cc
index 0203cfc48ee..3b836d8d9e2 100644
--- a/gcc/algol68/a68-parser-prelude.cc
+++ b/gcc/algol68/a68-parser-prelude.cc
@@ -531,24 +531,24 @@ stand_prelude (void)
m = a68_proc (M_BOOL, M_BOOL, M_BOOL, NO_MOID);
a68_op (A68_STD, "OR", m, a68_lower_or3);
a68_op (A68_STD, "AND", m, a68_lower_and3);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
+ a68_op (A68_STD, "=", m, a68_lower_bool_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_bool_ne3);
+ a68_op (A68_STD, "EQ", m, a68_lower_bool_eq3);
+ a68_op (A68_STD, "NE", m, a68_lower_bool_ne3);
/* CHAR operators. */
m = a68_proc (M_BOOL, M_CHAR, M_CHAR, NO_MOID);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "<", m, a68_lower_lt3);
- a68_op (A68_STD, "<=", m, a68_lower_le3);
- a68_op (A68_STD, ">", m, a68_lower_gt3);
- a68_op (A68_STD, ">=", m, a68_lower_ge3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "LT", m, a68_lower_lt3);
- a68_op (A68_STD, "LE", m, a68_lower_le3);
- a68_op (A68_STD, "GT", m, a68_lower_gt3);
- a68_op (A68_STD, "GE", m, a68_lower_ge3);
+ a68_op (A68_STD, "=", m, a68_lower_char_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_char_ne3);
+ a68_op (A68_STD, "<", m, a68_lower_char_lt3);
+ a68_op (A68_STD, "<=", m, a68_lower_char_le3);
+ a68_op (A68_STD, ">", m, a68_lower_char_gt3);
+ a68_op (A68_STD, ">=", m, a68_lower_char_ge3);
+ a68_op (A68_STD, "EQ", m, a68_lower_char_eq3);
+ a68_op (A68_STD, "NE", m, a68_lower_char_ne3);
+ a68_op (A68_STD, "LT", m, a68_lower_char_lt3);
+ a68_op (A68_STD, "LE", m, a68_lower_char_le3);
+ a68_op (A68_STD, "GT", m, a68_lower_char_gt3);
+ a68_op (A68_STD, "GE", m, a68_lower_char_ge3);
m = a68_proc (M_INT, M_CHAR, NO_MOID);
a68_op (A68_STD, "ABS", m, a68_lower_charabs2);
m = a68_proc (M_CHAR, M_INT, NO_MOID);
@@ -619,18 +619,18 @@ stand_prelude (void)
a68_op (A68_STD, "OVERAB", m, a68_lower_overab3);
a68_op (A68_STD, "MODAB", m, a68_lower_modab3);
m = a68_proc (M_BOOL, M_SHORT_SHORT_INT, M_SHORT_SHORT_INT, NO_MOID);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "GE", m, a68_lower_ge3);
- a68_op (A68_STD, "GT", m, a68_lower_gt3);
- a68_op (A68_STD, "LE", m, a68_lower_le3);
- a68_op (A68_STD, "LT", m, a68_lower_lt3);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, ">=", m, a68_lower_ge3);
- a68_op (A68_STD, ">", m, a68_lower_gt3);
- a68_op (A68_STD, "<=", m, a68_lower_le3);
- a68_op (A68_STD, "<", m, a68_lower_lt3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
+ a68_op (A68_STD, "EQ", m, a68_lower_int_eq3);
+ a68_op (A68_STD, "NE", m, a68_lower_int_ne3);
+ a68_op (A68_STD, "GE", m, a68_lower_int_ge3);
+ a68_op (A68_STD, "GT", m, a68_lower_int_gt3);
+ a68_op (A68_STD, "LE", m, a68_lower_int_le3);
+ a68_op (A68_STD, "LT", m, a68_lower_int_lt3);
+ a68_op (A68_STD, "=", m, a68_lower_int_eq3);
+ a68_op (A68_STD, ">=", m, a68_lower_int_ge3);
+ a68_op (A68_STD, ">", m, a68_lower_int_gt3);
+ a68_op (A68_STD, "<=", m, a68_lower_int_le3);
+ a68_op (A68_STD, "<", m, a68_lower_int_lt3);
+ a68_op (A68_STD, "/=", m, a68_lower_int_ne3);
m = a68_proc (M_SHORT_SHORT_INT, M_SHORT_SHORT_INT, M_INT, NO_MOID);
a68_op (A68_STD, "**", m, a68_lower_pow_int);
a68_op (A68_STD, "^", m, a68_lower_pow_int);
@@ -666,18 +666,18 @@ stand_prelude (void)
a68_op (A68_STD, "OVERAB", m, a68_lower_overab3);
a68_op (A68_STD, "MODAB", m, a68_lower_modab3);
m = a68_proc (M_BOOL, M_SHORT_INT, M_SHORT_INT, NO_MOID);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "<", m, a68_lower_lt3);
- a68_op (A68_STD, "LT", m, a68_lower_lt3);
- a68_op (A68_STD, "<=", m, a68_lower_le3);
- a68_op (A68_STD, "LE", m, a68_lower_le3);
- a68_op (A68_STD, ">", m, a68_lower_gt3);
- a68_op (A68_STD, "GT", m, a68_lower_gt3);
- a68_op (A68_STD, ">=", m, a68_lower_ge3);
- a68_op (A68_STD, "GE", m, a68_lower_ge3);
+ a68_op (A68_STD, "=", m, a68_lower_int_eq3);
+ a68_op (A68_STD, "EQ", m, a68_lower_int_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_int_ne3);
+ a68_op (A68_STD, "NE", m, a68_lower_int_ne3);
+ a68_op (A68_STD, "<", m, a68_lower_int_lt3);
+ a68_op (A68_STD, "LT", m, a68_lower_int_lt3);
+ a68_op (A68_STD, "<=", m, a68_lower_int_le3);
+ a68_op (A68_STD, "LE", m, a68_lower_int_le3);
+ a68_op (A68_STD, ">", m, a68_lower_int_gt3);
+ a68_op (A68_STD, "GT", m, a68_lower_int_gt3);
+ a68_op (A68_STD, ">=", m, a68_lower_int_ge3);
+ a68_op (A68_STD, "GE", m, a68_lower_int_ge3);
m = a68_proc (M_SHORT_INT, M_SHORT_INT, M_INT, NO_MOID);
a68_op (A68_STD, "**", m, a68_lower_pow_int);
a68_op (A68_STD, "^", m, a68_lower_pow_int);
@@ -694,18 +694,18 @@ stand_prelude (void)
m = a68_proc (M_BOOL, M_INT, NO_MOID);
a68_op (A68_STD, "ODD", m, a68_lower_odd2);
m = a68_proc (M_BOOL, M_INT, M_INT, NO_MOID);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "<", m, a68_lower_lt3);
- a68_op (A68_STD, "<=", m, a68_lower_le3);
- a68_op (A68_STD, ">", m, a68_lower_gt3);
- a68_op (A68_STD, ">=", m, a68_lower_ge3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "LT", m, a68_lower_lt3);
- a68_op (A68_STD, "LE", m, a68_lower_le3);
- a68_op (A68_STD, "GT", m, a68_lower_gt3);
- a68_op (A68_STD, "GE", m, a68_lower_ge3);
+ a68_op (A68_STD, "=", m, a68_lower_int_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_int_ne3);
+ a68_op (A68_STD, "<", m, a68_lower_int_lt3);
+ a68_op (A68_STD, "<=", m, a68_lower_int_le3);
+ a68_op (A68_STD, ">", m, a68_lower_int_gt3);
+ a68_op (A68_STD, ">=", m, a68_lower_int_ge3);
+ a68_op (A68_STD, "EQ", m, a68_lower_int_eq3);
+ a68_op (A68_STD, "NE", m, a68_lower_int_ne3);
+ a68_op (A68_STD, "LT", m, a68_lower_int_lt3);
+ a68_op (A68_STD, "LE", m, a68_lower_int_le3);
+ a68_op (A68_STD, "GT", m, a68_lower_int_gt3);
+ a68_op (A68_STD, "GE", m, a68_lower_int_ge3);
m = a68_proc (M_INT, M_INT, M_INT, NO_MOID);
a68_op (A68_STD, "+", m, a68_lower_plus_int);
a68_op (A68_STD, "-", m, a68_lower_minus_int);
@@ -761,18 +761,18 @@ stand_prelude (void)
a68_op (A68_STD, "OVERAB", m, a68_lower_overab3);
a68_op (A68_STD, "MODAB", m, a68_lower_modab3);
m = a68_proc (M_BOOL, M_LONG_INT, M_LONG_INT, NO_MOID);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "<", m, a68_lower_lt3);
- a68_op (A68_STD, "LT", m, a68_lower_lt3);
- a68_op (A68_STD, "<=", m, a68_lower_le3);
- a68_op (A68_STD, "LE", m, a68_lower_le3);
- a68_op (A68_STD, ">", m, a68_lower_gt3);
- a68_op (A68_STD, "GT", m, a68_lower_gt3);
- a68_op (A68_STD, ">=", m, a68_lower_ge3);
- a68_op (A68_STD, "GE", m, a68_lower_ge3);
+ a68_op (A68_STD, "=", m, a68_lower_int_eq3);
+ a68_op (A68_STD, "EQ", m, a68_lower_int_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_int_ne3);
+ a68_op (A68_STD, "NE", m, a68_lower_int_ne3);
+ a68_op (A68_STD, "<", m, a68_lower_int_lt3);
+ a68_op (A68_STD, "LT", m, a68_lower_int_lt3);
+ a68_op (A68_STD, "<=", m, a68_lower_int_le3);
+ a68_op (A68_STD, "LE", m, a68_lower_int_le3);
+ a68_op (A68_STD, ">", m, a68_lower_int_gt3);
+ a68_op (A68_STD, "GT", m, a68_lower_int_gt3);
+ a68_op (A68_STD, ">=", m, a68_lower_int_ge3);
+ a68_op (A68_STD, "GE", m, a68_lower_int_ge3);
m = a68_proc (M_LONG_REAL, M_LONG_INT, M_LONG_INT, NO_MOID);
a68_op (A68_STD, "/", m, a68_lower_rdiv3);
m = a68_proc (M_LONG_INT, M_LONG_INT, M_INT, NO_MOID);
@@ -811,31 +811,31 @@ stand_prelude (void)
m = a68_proc (M_LONG_LONG_REAL, M_LONG_LONG_INT, M_LONG_LONG_INT, NO_MOID);
a68_op (A68_STD, "/", m, a68_lower_rdiv3);
m = a68_proc (M_BOOL, M_LONG_LONG_INT, M_LONG_LONG_INT, NO_MOID);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "GE", m, a68_lower_ge3);
- a68_op (A68_STD, "GT", m, a68_lower_gt3);
- a68_op (A68_STD, "LE", m, a68_lower_le3);
- a68_op (A68_STD, "LT", m, a68_lower_lt3);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, ">=", m, a68_lower_ge3);
- a68_op (A68_STD, ">", m, a68_lower_gt3);
- a68_op (A68_STD, "<=", m, a68_lower_le3);
- a68_op (A68_STD, "<", m, a68_lower_lt3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
+ a68_op (A68_STD, "EQ", m, a68_lower_int_eq3);
+ a68_op (A68_STD, "NE", m, a68_lower_int_ne3);
+ a68_op (A68_STD, "GE", m, a68_lower_int_ge3);
+ a68_op (A68_STD, "GT", m, a68_lower_int_gt3);
+ a68_op (A68_STD, "LE", m, a68_lower_int_le3);
+ a68_op (A68_STD, "LT", m, a68_lower_int_lt3);
+ a68_op (A68_STD, "=", m, a68_lower_int_eq3);
+ a68_op (A68_STD, ">=", m, a68_lower_int_ge3);
+ a68_op (A68_STD, ">", m, a68_lower_int_gt3);
+ a68_op (A68_STD, "<=", m, a68_lower_int_le3);
+ a68_op (A68_STD, "<", m, a68_lower_int_lt3);
+ a68_op (A68_STD, "/=", m, a68_lower_int_ne3);
m = a68_proc (M_LONG_LONG_INT, M_LONG_LONG_INT, M_INT, NO_MOID);
a68_op (A68_STD, "**", m, a68_lower_pow_int);
a68_op (A68_STD, "^", m, a68_lower_pow_int);
/* SHORT SHORT BITS operators */
m = a68_proc (M_BOOL, M_SHORT_SHORT_BITS, M_SHORT_SHORT_BITS, NO_MOID);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "<=", m, a68_lower_bitle3);
- a68_op (A68_STD, "LE", m, a68_lower_bitle3);
- a68_op (A68_STD, ">=", m, a68_lower_bitge3);
- a68_op (A68_STD, "GE", m, a68_lower_bitge3);
+ a68_op (A68_STD, "=", m, a68_lower_bit_eq3);
+ a68_op (A68_STD, "EQ", m, a68_lower_bit_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_bit_ne3);
+ a68_op (A68_STD, "NE", m, a68_lower_bit_ne3);
+ a68_op (A68_STD, "<=", m, a68_lower_bit_le3);
+ a68_op (A68_STD, "LE", m, a68_lower_bit_le3);
+ a68_op (A68_STD, ">=", m, a68_lower_bit_ge3);
+ a68_op (A68_STD, "GE", m, a68_lower_bit_ge3);
m = a68_proc (M_SHORT_SHORT_BITS, M_SHORT_SHORT_BITS, NO_MOID);
a68_op (A68_STD, "NOT", m, a68_lower_bitnot2);
a68_op (A68_STD, "~", m, a68_lower_bitnot2);
@@ -864,14 +864,14 @@ stand_prelude (void)
a68_op (A68_STD, "NOT", m, a68_lower_bitnot2);
a68_op (A68_STD, "~", m, a68_lower_bitnot2);
m = a68_proc (M_BOOL, M_SHORT_BITS, M_SHORT_BITS, NO_MOID);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "<=", m, a68_lower_bitle3);
- a68_op (A68_STD, "LE", m, a68_lower_bitle3);
- a68_op (A68_STD, ">=", m, a68_lower_bitge3);
- a68_op (A68_STD, "GE", m, a68_lower_bitge3);
+ a68_op (A68_STD, "=", m, a68_lower_bit_eq3);
+ a68_op (A68_STD, "EQ", m, a68_lower_bit_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_bit_ne3);
+ a68_op (A68_STD, "NE", m, a68_lower_bit_ne3);
+ a68_op (A68_STD, "<=", m, a68_lower_bit_le3);
+ a68_op (A68_STD, "LE", m, a68_lower_bit_le3);
+ a68_op (A68_STD, ">=", m, a68_lower_bit_ge3);
+ a68_op (A68_STD, "GE", m, a68_lower_bit_ge3);
m = a68_proc (M_SHORT_BITS, M_SHORT_BITS, M_SHORT_BITS, NO_MOID);
a68_op (A68_STD, "AND", m, a68_lower_bitand3);
a68_op (A68_STD, "OR", m, a68_lower_bitior3);
@@ -895,14 +895,14 @@ stand_prelude (void)
a68_op (A68_STD, "NOT", m, a68_lower_bitnot2);
a68_op (A68_STD, "~", m, a68_lower_bitnot2);
m = a68_proc (M_BOOL, M_BITS, M_BITS, NO_MOID);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "<=", m, a68_lower_bitle3);
- a68_op (A68_STD, ">=", m, a68_lower_bitge3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "LE", m, a68_lower_bitle3);
- a68_op (A68_STD, "GE", m, a68_lower_bitge3);
+ a68_op (A68_STD, "=", m, a68_lower_bit_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_bit_ne3);
+ a68_op (A68_STD, "<=", m, a68_lower_bit_le3);
+ a68_op (A68_STD, ">=", m, a68_lower_bit_ge3);
+ a68_op (A68_STD, "EQ", m, a68_lower_bit_eq3);
+ a68_op (A68_STD, "NE", m, a68_lower_bit_ne3);
+ a68_op (A68_STD, "LE", m, a68_lower_bit_le3);
+ a68_op (A68_STD, "GE", m, a68_lower_bit_ge3);
m = a68_proc (M_BITS, M_BITS, M_BITS, NO_MOID);
a68_op (A68_STD, "AND", m, a68_lower_bitand3);
a68_op (A68_STD, "OR", m, a68_lower_bitior3);
@@ -926,14 +926,14 @@ stand_prelude (void)
a68_op (A68_STD, "NOT", m, a68_lower_bitnot2);
a68_op (A68_STD, "~", m, a68_lower_bitnot2);
m = a68_proc (M_BOOL, M_LONG_BITS, M_LONG_BITS, NO_MOID);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "<=", m, a68_lower_bitle3);
- a68_op (A68_STD, "LE", m, a68_lower_bitle3);
- a68_op (A68_STD, ">=", m, a68_lower_bitge3);
- a68_op (A68_STD, "GE", m, a68_lower_bitge3);
+ a68_op (A68_STD, "=", m, a68_lower_bit_eq3);
+ a68_op (A68_STD, "EQ", m, a68_lower_bit_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_bit_ne3);
+ a68_op (A68_STD, "NE", m, a68_lower_bit_ne3);
+ a68_op (A68_STD, "<=", m, a68_lower_bit_le3);
+ a68_op (A68_STD, "LE", m, a68_lower_bit_le3);
+ a68_op (A68_STD, ">=", m, a68_lower_bit_ge3);
+ a68_op (A68_STD, "GE", m, a68_lower_bit_ge3);
m = a68_proc (M_LONG_BITS, M_LONG_BITS, M_LONG_BITS, NO_MOID);
a68_op (A68_STD, "AND", m, a68_lower_bitand3);
a68_op (A68_STD, "OR", m, a68_lower_bitior3);
@@ -950,14 +950,14 @@ stand_prelude (void)
a68_op (A68_STD, "LENG", m, a68_lower_bitleng2);
/* LONG LONG BITS operators */
m = a68_proc (M_BOOL, M_LONG_LONG_BITS, M_LONG_LONG_BITS, NO_MOID);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "<=", m, a68_lower_bitle3);
- a68_op (A68_STD, "LE", m, a68_lower_bitle3);
- a68_op (A68_STD, ">=", m, a68_lower_bitge3);
- a68_op (A68_STD, "GE", m, a68_lower_bitge3);
+ a68_op (A68_STD, "=", m, a68_lower_bit_eq3);
+ a68_op (A68_STD, "EQ", m, a68_lower_bit_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_bit_ne3);
+ a68_op (A68_STD, "NE", m, a68_lower_bit_ne3);
+ a68_op (A68_STD, "<=", m, a68_lower_bit_le3);
+ a68_op (A68_STD, "LE", m, a68_lower_bit_le3);
+ a68_op (A68_STD, ">=", m, a68_lower_bit_ge3);
+ a68_op (A68_STD, "GE", m, a68_lower_bit_ge3);
m = a68_proc (M_LONG_LONG_BITS, M_LONG_LONG_BITS, NO_MOID);
a68_op (A68_STD, "NOT", m, a68_lower_bitnot2);
a68_op (A68_STD, "~", m, a68_lower_bitnot2);
@@ -987,18 +987,18 @@ stand_prelude (void)
a68_op (A68_STD, "ROUND", m, a68_lower_round2);
a68_op (A68_STD, "ENTIER", m, a68_lower_entier2);
m = a68_proc (M_BOOL, M_REAL, M_REAL, NO_MOID);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "<", m, a68_lower_lt3);
- a68_op (A68_STD, "<=", m, a68_lower_le3);
- a68_op (A68_STD, ">", m, a68_lower_gt3);
- a68_op (A68_STD, ">=", m, a68_lower_ge3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "LT", m, a68_lower_lt3);
- a68_op (A68_STD, "LE", m, a68_lower_le3);
- a68_op (A68_STD, "GT", m, a68_lower_gt3);
- a68_op (A68_STD, "GE", m, a68_lower_ge3);
+ a68_op (A68_STD, "=", m, a68_lower_real_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_real_ne3);
+ a68_op (A68_STD, "<", m, a68_lower_real_lt3);
+ a68_op (A68_STD, "<=", m, a68_lower_real_le3);
+ a68_op (A68_STD, ">", m, a68_lower_real_gt3);
+ a68_op (A68_STD, ">=", m, a68_lower_real_ge3);
+ a68_op (A68_STD, "EQ", m, a68_lower_real_eq3);
+ a68_op (A68_STD, "NE", m, a68_lower_real_ne3);
+ a68_op (A68_STD, "LT", m, a68_lower_real_lt3);
+ a68_op (A68_STD, "LE", m, a68_lower_real_le3);
+ a68_op (A68_STD, "GT", m, a68_lower_real_gt3);
+ a68_op (A68_STD, "GE", m, a68_lower_real_ge3);
m = A68_MCACHE (proc_real_real_real);
a68_op (A68_STD, "+", m, a68_lower_plus_real);
a68_op (A68_STD, "-", m, a68_lower_minus_real);
@@ -1051,18 +1051,18 @@ stand_prelude (void)
a68_op (A68_STD, "TIMESAB", m, a68_lower_multab3);
a68_op (A68_STD, "DIVAB", m, a68_lower_divab3);
m = a68_proc (M_BOOL, M_LONG_REAL, M_LONG_REAL, NO_MOID);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "<", m, a68_lower_lt3);
- a68_op (A68_STD, "LT", m, a68_lower_lt3);
- a68_op (A68_STD, "<=", m, a68_lower_le3);
- a68_op (A68_STD, "LE", m, a68_lower_le3);
- a68_op (A68_STD, ">", m, a68_lower_gt3);
- a68_op (A68_STD, "GT", m, a68_lower_gt3);
- a68_op (A68_STD, ">=", m, a68_lower_ge3);
- a68_op (A68_STD, "GE", m, a68_lower_ge3);
+ a68_op (A68_STD, "=", m, a68_lower_real_eq3);
+ a68_op (A68_STD, "EQ", m, a68_lower_real_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_real_ne3);
+ a68_op (A68_STD, "NE", m, a68_lower_real_ne3);
+ a68_op (A68_STD, "<", m, a68_lower_real_lt3);
+ a68_op (A68_STD, "LT", m, a68_lower_real_lt3);
+ a68_op (A68_STD, "<=", m, a68_lower_real_le3);
+ a68_op (A68_STD, "LE", m, a68_lower_real_le3);
+ a68_op (A68_STD, ">", m, a68_lower_real_gt3);
+ a68_op (A68_STD, "GT", m, a68_lower_real_gt3);
+ a68_op (A68_STD, ">=", m, a68_lower_real_ge3);
+ a68_op (A68_STD, "GE", m, a68_lower_real_ge3);
m = a68_proc (M_LONG_REAL, M_LONG_REAL, M_INT, NO_MOID);
a68_op (A68_STD, "**", m, a68_lower_pow_real);
a68_op (A68_STD, "^", m, a68_lower_pow_real);
@@ -1095,18 +1095,18 @@ stand_prelude (void)
a68_op (A68_STD, "TIMESAB", m, a68_lower_multab3);
a68_op (A68_STD, "DIVAB", m, a68_lower_divab3);
m = a68_proc (M_BOOL, M_LONG_LONG_REAL, M_LONG_LONG_REAL, NO_MOID);
- a68_op (A68_STD, "=", m, a68_lower_eq3);
- a68_op (A68_STD, "EQ", m, a68_lower_eq3);
- a68_op (A68_STD, "/=", m, a68_lower_ne3);
- a68_op (A68_STD, "NE", m, a68_lower_ne3);
- a68_op (A68_STD, "<", m, a68_lower_lt3);
- a68_op (A68_STD, "LT", m, a68_lower_lt3);
- a68_op (A68_STD, "<=", m, a68_lower_le3);
- a68_op (A68_STD, "LE", m, a68_lower_le3);
- a68_op (A68_STD, ">", m, a68_lower_gt3);
- a68_op (A68_STD, "GT", m, a68_lower_gt3);
- a68_op (A68_STD, ">=", m, a68_lower_ge3);
- a68_op (A68_STD, "GE", m, a68_lower_ge3);
+ a68_op (A68_STD, "=", m, a68_lower_real_eq3);
+ a68_op (A68_STD, "EQ", m, a68_lower_real_eq3);
+ a68_op (A68_STD, "/=", m, a68_lower_real_ne3);
+ a68_op (A68_STD, "NE", m, a68_lower_real_ne3);
+ a68_op (A68_STD, "<", m, a68_lower_real_lt3);
+ a68_op (A68_STD, "LT", m, a68_lower_real_lt3);
+ a68_op (A68_STD, "<=", m, a68_lower_real_le3);
+ a68_op (A68_STD, "LE", m, a68_lower_real_le3);
+ a68_op (A68_STD, ">", m, a68_lower_real_gt3);
+ a68_op (A68_STD, "GT", m, a68_lower_real_gt3);
+ a68_op (A68_STD, ">=", m, a68_lower_real_ge3);
+ a68_op (A68_STD, "GE", m, a68_lower_real_ge3);
m = a68_proc (M_LONG_LONG_REAL, M_LONG_LONG_REAL, M_INT, NO_MOID);
a68_op (A68_STD, "**", m, a68_lower_pow_real);
a68_op (A68_STD, "^", m, a68_lower_pow_real);
diff --git a/gcc/algol68/a68.h b/gcc/algol68/a68.h
index eae4809053d..70905095d39 100644
--- a/gcc/algol68/a68.h
+++ b/gcc/algol68/a68.h
@@ -482,10 +482,14 @@ tree a68_bits_xor (tree bits1, tree bits2);
tree a68_bits_elem (NODE_T *p, tree pos, tree bits);
tree a68_bits_subset (tree bits1, tree bits2);
tree a68_bits_shift (tree shift, tree bits);
+tree a68_bits_eq (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_bits_ne (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
/* a68-low_bools.cc */
tree a68_bool_abs (tree val);
+tree a68_bool_eq (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_bool_ne (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
/* a68-low-ints.cc */
@@ -503,12 +507,12 @@ tree a68_int_mult (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION)
tree a68_int_div (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
tree a68_int_mod (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
tree a68_int_pow (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
-tree a68_int_eq (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
-tree a68_int_ne (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
-tree a68_int_lt (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
-tree a68_int_le (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
-tree a68_int_gt (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
-tree a68_int_ge (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_int_eq (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_int_ne (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_int_lt (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_int_le (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_int_gt (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_int_ge (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
/* a68-low-complex.cc */
@@ -572,12 +576,12 @@ tree a68_real_div (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION)
tree a68_real_mod (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
tree a68_real_pow (MOID_T *m, MOID_T *a_mode, MOID_T *b_mode,
tree a, tree b, location_t loc = UNKNOWN_LOCATION);
-tree a68_real_eq (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
-tree a68_real_ne (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
-tree a68_real_lt (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
-tree a68_real_le (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
-tree a68_real_gt (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
-tree a68_real_ge (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_real_eq (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_real_ne (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_real_lt (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_real_le (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_real_gt (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_real_ge (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
/* a68-low-strings.cc */
@@ -593,6 +597,12 @@ char *a68_string_process_breaks (const char *str);
tree a68_char_max (void);
tree a68_char_repr (NODE_T *p, tree val);
tree a68_char_abs (tree val);
+tree a68_char_eq (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_char_ne (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_char_lt (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_char_le (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_char_gt (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+tree a68_char_ge (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
/* a68-low-multiples.cc */
@@ -812,12 +822,26 @@ tree a68_lower_divab3 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_rdiv3 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_over3 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_mod3 (NODE_T *p, LOW_CTX_T ctx);
-tree a68_lower_eq3 (NODE_T *p, LOW_CTX_T ctx);
-tree a68_lower_ne3 (NODE_T *p, LOW_CTX_T ctx);
-tree a68_lower_lt3 (NODE_T *p, LOW_CTX_T ctx);
-tree a68_lower_gt3 (NODE_T *p, LOW_CTX_T ctx);
-tree a68_lower_ge3 (NODE_T *p, LOW_CTX_T ctx);
-tree a68_lower_le3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_int_eq3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_int_ne3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_int_lt3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_int_le3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_int_gt3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_int_ge3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_real_eq3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_real_ne3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_real_lt3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_real_le3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_real_gt3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_real_ge3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_char_eq3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_char_ne3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_char_lt3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_char_le3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_char_gt3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_char_ge3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_bool_eq3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_bool_ne3 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_plusab3 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_minusab3 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_overab3 (NODE_T *p, LOW_CTX_T ctx);
@@ -854,14 +878,18 @@ tree a68_lower_bin2 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_bitabs2 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_bitleng2 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_bitshorten2 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_bit_eq3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_bit_ne3 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_bitnot2 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_bitand3 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_bitior3 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_bitxor3 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_shl3 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_shr3 (NODE_T *p, LOW_CTX_T ctx);
-tree a68_lower_bitle3 (NODE_T *p, LOW_CTX_T ctx);
-tree a68_lower_bitge3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_bit_eq3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_bit_ne3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_bit_le3 (NODE_T *p, LOW_CTX_T ctx);
+tree a68_lower_bit_ge3 (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_maxint (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_minint (NODE_T *p, LOW_CTX_T ctx);
tree a68_lower_maxbits (NODE_T *p, LOW_CTX_T ctx);
--
2.30.2
More information about the Algol68
mailing list