aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorToon Moene <toon@moene.indiv.nluug.nl>2001-07-20 15:27:40 +0200
committerToon Moene <toon@gcc.gnu.org>2001-07-20 13:27:40 +0000
commiteec9ac3d090d032c9e5c7e549ada5742c1392ca0 (patch)
tree3cf0ad6266d947fc40401633fa3235998b2a905b /gcc
parent4e01a8f6e5bbe139666992da66340c96d47cdf32 (diff)
downloadgcc-eec9ac3d090d032c9e5c7e549ada5742c1392ca0.zip
gcc-eec9ac3d090d032c9e5c7e549ada5742c1392ca0.tar.gz
gcc-eec9ac3d090d032c9e5c7e549ada5742c1392ca0.tar.bz2
com.c (ffecom_expr_intrinsic_): case FFEINTRIN_impIBITS: Remove TREE_SHIFT_FULLWIDTH define.
2001-07-20 Toon Moene <toon@moene.indiv.nluug.nl> * com.c (ffecom_expr_intrinsic_): case FFEINTRIN_impIBITS: Remove TREE_SHIFT_FULLWIDTH define. case FFEINTRIN_impISHFT: Ditto. Change LT_EXPR to NE_EXPR. case FFEINTRIN_impISHFTC: Ditto. case FFEINTRIN_impMVBITS: Ditto. From-SVN: r44196
Diffstat (limited to 'gcc')
-rw-r--r--gcc/f/ChangeLog8
-rw-r--r--gcc/f/com.c18
2 files changed, 15 insertions, 11 deletions
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index fecadfa..d28a479 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,11 @@
+2001-07-20 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ * com.c (ffecom_expr_intrinsic_):
+ case FFEINTRIN_impIBITS: Remove TREE_SHIFT_FULLWIDTH define.
+ case FFEINTRIN_impISHFT: Ditto. Change LT_EXPR to NE_EXPR.
+ case FFEINTRIN_impISHFTC: Ditto.
+ case FFEINTRIN_impMVBITS: Ditto.
+
2001-07-19 Jakub Jelinek <jakub@redhat.com>
* top.c (ffe_decode_option): Disallow lang-independent processing
diff --git a/gcc/f/com.c b/gcc/f/com.c
index d8a4d10..5b4388f 100644
--- a/gcc/f/com.c
+++ b/gcc/f/com.c
@@ -4524,7 +4524,7 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree,
integer_type_node,
TYPE_SIZE (uns_type),
arg3_tree))));
-#if !defined(TREE_SHIFT_FULLWIDTH) || !TREE_SHIFT_FULLWIDTH
+ /* Fix up, because the RSHIFT_EXPR above can't shift over TYPE_SIZE. */
expr_tree
= ffecom_3 (COND_EXPR, tree_type,
ffecom_truth_value
@@ -4533,7 +4533,6 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree,
integer_zero_node)),
expr_tree,
convert (tree_type, integer_zero_node));
-#endif
}
return expr_tree;
@@ -4569,18 +4568,17 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree,
ffecom_1 (NEGATE_EXPR,
integer_type_node,
arg2_tree))));
-#if !defined(TREE_SHIFT_FULLWIDTH) || !TREE_SHIFT_FULLWIDTH
+ /* Fix up, because {L|R}SHIFT_EXPR don't go over TYPE_SIZE bounds. */
expr_tree
= ffecom_3 (COND_EXPR, tree_type,
ffecom_truth_value
- (ffecom_2 (LT_EXPR, integer_type_node,
+ (ffecom_2 (NE_EXPR, integer_type_node,
ffecom_1 (ABS_EXPR,
integer_type_node,
arg2_tree),
TYPE_SIZE (uns_type))),
expr_tree,
convert (tree_type, integer_zero_node));
-#endif
/* Make sure SAVE_EXPRs get referenced early enough. */
expr_tree
= ffecom_2 (COMPOUND_EXPR, tree_type,
@@ -4610,7 +4608,7 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree,
ffecom_1 (BIT_NOT_EXPR, tree_type,
convert (tree_type, integer_zero_node)),
arg3_tree);
-#if !defined(TREE_SHIFT_FULLWIDTH) || !TREE_SHIFT_FULLWIDTH
+ /* Fix up, because LSHIFT_EXPR above can't shift over TYPE_SIZE. */
mask_arg1
= ffecom_3 (COND_EXPR, tree_type,
ffecom_truth_value
@@ -4619,7 +4617,6 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree,
TYPE_SIZE (uns_type))),
mask_arg1,
convert (tree_type, integer_zero_node));
-#endif
mask_arg1 = ffecom_save_tree (mask_arg1);
masked_arg1
= ffecom_2 (BIT_AND_EXPR, tree_type,
@@ -4768,7 +4765,7 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree,
convert (arg4_type,
integer_zero_node)),
arg5_plus_arg3);
-#if !defined(TREE_SHIFT_FULLWIDTH) || !TREE_SHIFT_FULLWIDTH
+ /* Fix up, because LSHIFT_EXPR above can't shift over TYPE_SIZE. */
prep_arg4
= ffecom_3 (COND_EXPR, arg4_type,
ffecom_truth_value
@@ -4778,7 +4775,6 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree,
TYPE_SIZE (arg4_type)))),
prep_arg4,
convert (arg4_type, integer_zero_node));
-#endif
prep_arg4
= ffecom_2 (BIT_AND_EXPR, arg4_type,
arg4_tree,
@@ -4796,7 +4792,8 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree,
= ffecom_2 (BIT_IOR_EXPR, arg4_type,
prep_arg1,
prep_arg4);
-#if !defined(TREE_SHIFT_FULLWIDTH) || !TREE_SHIFT_FULLWIDTH
+ /* Fix up (twice), because LSHIFT_EXPR above
+ can't shift over TYPE_SIZE. */
prep_arg1
= ffecom_3 (COND_EXPR, arg4_type,
ffecom_truth_value
@@ -4815,7 +4812,6 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree,
TYPE_SIZE (arg4_type)))),
prep_arg1,
arg1_tree);
-#endif
expr_tree
= ffecom_2s (MODIFY_EXPR, void_type_node,
arg4_tree,