com.c (ffecom_expr_intrinsic_): case FFEINTRIN_impIBITS: Remove TREE_SHIFT_FULLWIDTH...
authorToon Moene <toon@moene.indiv.nluug.nl>
Fri, 20 Jul 2001 13:27:40 +0000 (15:27 +0200)
committerToon Moene <toon@gcc.gnu.org>
Fri, 20 Jul 2001 13:27:40 +0000 (13:27 +0000)
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

gcc/f/ChangeLog
gcc/f/com.c

index fecadfad0b885f8d21c6b4c6d32aba809dad89e6..d28a47989dbd16b3c219bc76a1556e6aa01dba0e 100644 (file)
@@ -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
index d8a4d109ca69e3af137628623dda6fe740947ff9..5b4388f7997598297333bf74cc2d450474ab4d58 100644 (file)
@@ -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,