EC_ADAPT: faster CDF update.

Also fix warning.

Change-Id: Ia515360af9c3269901eb0d002d326b7af43a00e7
diff --git a/aom_dsp/prob.h b/aom_dsp/prob.h
index 9384ffe..782e4b3 100644
--- a/aom_dsp/prob.h
+++ b/aom_dsp/prob.h
@@ -138,9 +138,21 @@
 #if CONFIG_EC_ADAPT
 static INLINE void update_cdf(aom_cdf_prob *cdf, int val, int nsymbs) {
   const int rate = 4 + get_msb(nsymbs);
-  int i, diff, tmp;
+  const int rate2 = 12 - rate;
+  int i, tmp;
+  int diff;
+#if 1
+  const int tmp0 = 1 << rate2;
+  tmp = tmp0;
+  diff = ((32768 - (nsymbs << rate2)) >> rate) << rate;
+  // Single loop (faster)
+  for (i = 0; i < nsymbs - 1; ++i, tmp += tmp0) {
+    tmp += (i == val ? diff : 0);
+    cdf[i] -= ((cdf[i] - tmp) >> rate);
+  }
+#else
   for (i = 0; i < nsymbs; ++i) {
-    tmp = (i + 1) << (12 - rate);
+    tmp = (i + 1) << rate2;
     cdf[i] -= ((cdf[i] - tmp) >> rate);
   }
   diff = 32768 - cdf[nsymbs - 1];
@@ -148,6 +160,7 @@
   for (i = val; i < nsymbs; ++i) {
     cdf[i] += diff;
   }
+#endif
 }
 #endif