From 07bfc9ece12554016cf8c39b17301ab94df6f176 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Fri, 3 May 2013 11:09:59 +0000 Subject: double-int.h (lshift): New overload without precision and arith argument. 2013-05-03 Richard Biener * double-int.h (lshift): New overload without precision and arith argument. (operator *=, operator +=, operator -=): Move ... * double-int.c (operator *=, operator +=, operator -=): ... here and implement more efficiently. (mul_double_with_sign): Remove. (lshift_double): Adjust to take unsinged shift argument, push dispatching code to callers. (mul_double_wide_with_sign): Add early out for callers that are not interested in high parts or overflow. (lshift): New function. (lshift, rshift, alshift, arshift, llshift, lrshift): Add dispatch code here. (lrotate, rrotate): Use logical shifts. * expr.c (get_inner_reference): Use lshift. * fixed-value.c (do_fixed_divide): Likewise. * tree-dfa.c (get_ref_base_and_extent): Likewise. * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise. (indirect_refs_may_alias_p): Likewise. (stmt_kills_ref_p_1): Likewise. From-SVN: r198576 --- gcc/fixed-value.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gcc/fixed-value.c') diff --git a/gcc/fixed-value.c b/gcc/fixed-value.c index 18ce47e..8ba7876 100644 --- a/gcc/fixed-value.c +++ b/gcc/fixed-value.c @@ -569,14 +569,14 @@ do_fixed_divide (FIXED_VALUE_TYPE *f, const FIXED_VALUE_TYPE *a, int leftmost_mod = (mod.high < 0); /* Shift left mod by 1 bit. */ - mod = mod.llshift (1, HOST_BITS_PER_DOUBLE_INT); + mod = mod.lshift (1); /* Test the leftmost bit of s to add to mod. */ if (s.high < 0) mod.low += 1; /* Shift left quo_s by 1 bit. */ - quo_s = quo_s.llshift (1, HOST_BITS_PER_DOUBLE_INT); + quo_s = quo_s.lshift (1); /* Try to calculate (mod - pos_b). */ temp = mod - pos_b; @@ -588,7 +588,7 @@ do_fixed_divide (FIXED_VALUE_TYPE *f, const FIXED_VALUE_TYPE *a, } /* Shift left s by 1 bit. */ - s = s.llshift (1, HOST_BITS_PER_DOUBLE_INT); + s = s.lshift (1); } -- cgit v1.1