OSDN Git Service

2010-04-16 Doug Kwan <dougkwan@google.com>
[pf3gnuchains/gcc-fork.git] / gcc / dojump.c
index 3d03b4c..0ebf932 100644 (file)
@@ -163,7 +163,8 @@ prefer_and_bit_test (enum machine_mode mode, int bitnum)
 
   /* Fill in the integers.  */
   XEXP (and_test, 1)
-    = immed_double_const ((unsigned HOST_WIDE_INT) 1 << bitnum, 0, mode);
+    = immed_double_int_const (double_int_setbit (double_int_zero, bitnum),
+                                                mode);
   XEXP (XEXP (shift_test, 0), 1) = GEN_INT (bitnum);
 
   return (rtx_cost (and_test, IF_THEN_ELSE, optimize_insn_for_speed_p ())
@@ -411,7 +412,8 @@ do_jump (tree exp, rtx if_false_label, rtx if_true_label, int prob)
       break;
 
     case TRUTH_NOT_EXPR:
-      do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label, prob);
+      do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label,
+              inv (prob));
       break;
 
     case COND_EXPR:
@@ -540,7 +542,7 @@ do_jump (tree exp, rtx if_false_label, rtx if_true_label, int prob)
                  unsigned HOST_WIDE_INT mask
                    = (unsigned HOST_WIDE_INT) 1 << TREE_INT_CST_LOW (shift);
                  do_jump (build2 (BIT_AND_EXPR, argtype, arg,
-                                  build_int_cst_wide_type (argtype, mask, 0)),
+                                  build_int_cstu (argtype, mask)),
                           clr_label, set_label, setclr_prob);
                  break;
                }