diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-05-03 11:09:59 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-05-03 11:09:59 +0000 |
commit | 9a8b9e265b9d0df37bb0cead795c30a01d9da22f (patch) | |
tree | 7d533f06f94bafb5dd09f062d0ef17a1ab83a989 /gcc/fixed-value.c | |
parent | 91b3c1af6b0d2b459e8a4aaba23680852dbfdb59 (diff) | |
download | gcc-9a8b9e265b9d0df37bb0cead795c30a01d9da22f.tar.gz |
2013-05-03 Richard Biener <rguenther@suse.de>
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198576 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fixed-value.c')
-rw-r--r-- | gcc/fixed-value.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/fixed-value.c b/gcc/fixed-value.c index 18ce47e3657..8ba78769c79 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); } |