diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 51594ac0cc6f30c6c69ff13571d00327aa837182..d6f892c6ea6e676fc02e9c7bb077a6da87fe8269 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -3,6 +3,7 @@
 	* params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
 	* loop-doloop.c (doloop_optimize): Use it to limit costs of
 	expanding the number of iterations.
+	* config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
 
 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
 
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index 662b9e853d8347ba43047957f8c72e95ccf6c0ef..f13a38c00ab59fab7eed866898a84b9984f5f82b 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -2390,6 +2390,11 @@ bfin_rtx_costs (rtx x, int code, int outer_code, int *total)
 	*total = COSTS_N_INSNS (3);
       return false;
 
+    case UDIV:
+    case UMOD:
+      *total = COSTS_N_INSNS (32);
+      return true;
+
     case VEC_CONCAT:
     case VEC_SELECT:
       if (outer_code == SET)