PR other/54701
authorgjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Sep 2012 16:19:43 +0000 (16:19 +0000)
committergjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Sep 2012 16:19:43 +0000 (16:19 +0000)
* config/avr/avr-log.c (avr_double_int_pop_digit): Reerite using
double_int::udivmod.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191716 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/avr/avr-log.c

index 1748283..d6365a8 100644 (file)
@@ -1,5 +1,11 @@
 2012-09-25  Georg-Johann Lay  <avr@gjlay.de>
 
+       PR other/54701
+       * config/avr/avr-log.c (avr_double_int_pop_digit): Reerite using
+       double_int::udivmod.
+
+2012-09-25  Georg-Johann Lay  <avr@gjlay.de>
+
        * config/avr/avr.c (avr_set_current_function): Check cfun->machine
        to be non-NULL.
 
index f86165d..edb1cbd 100644 (file)
@@ -144,15 +144,12 @@ avr_log_set_caller_f (const char *caller)
 static unsigned
 avr_double_int_pop_digit (double_int *cst, unsigned base)
 {
-  unsigned HOST_WIDE_INT resl, reml;
-  HOST_WIDE_INT resh, remh;
+  double_int drem;
 
-  div_and_round_double (FLOOR_DIV_EXPR, true, cst->low, cst->high, base, 0,
-                       &resl, &resh, &reml, &remh);
-  cst->high = resh;
-  cst->low = resl;
+  *cst = cst->udivmod (double_int::from_uhwi (base), (int) FLOOR_DIV_EXPR,
+                       &drem);
 
-  return reml;
+  return (unsigned) drem.to_uhwi();
 }