diff --git a/vp9/common/vp9_blockd.h b/vp9/common/vp9_blockd.h
index 95bfcd36c676dad7aa6c058e8d887dbb450c716e..40d7b4083406456c626dafc448cdac77f7054b3f 100644
--- a/vp9/common/vp9_blockd.h
+++ b/vp9/common/vp9_blockd.h
@@ -51,8 +51,10 @@ typedef struct {
   ENTROPY_CONTEXT v[2];
 } ENTROPY_CONTEXT_PLANES;
 
-#define VP9_COMBINEENTROPYCONTEXTS(Dest, A, B) \
-  Dest = ((A)!=0) + ((B)!=0);
+static INLINE int combine_entropy_contexts(ENTROPY_CONTEXT a,
+                                           ENTROPY_CONTEXT b) {
+  return (a != 0) + (b != 0);
+}
 
 typedef enum {
   KEY_FRAME = 0,
diff --git a/vp9/decoder/vp9_detokenize.c b/vp9/decoder/vp9_detokenize.c
index d98d5eba8bd5bc933f1bb00995a300dbb96f710b..a6b3394bedd728e60dcb46a9b2f7807bcd26e379 100644
--- a/vp9/decoder/vp9_detokenize.c
+++ b/vp9/decoder/vp9_detokenize.c
@@ -235,7 +235,7 @@ static int decode_coefs(VP9D_COMP *dx, const MACROBLOCKD *xd,
       break;
   }
 
-  VP9_COMBINEENTROPYCONTEXTS(pt, above_ec, left_ec);
+  pt = combine_entropy_contexts(above_ec, left_ec);
   nb = vp9_get_coef_neighbors_handle(scan, &pad);
 
   while (1) {
diff --git a/vp9/encoder/vp9_encodemb.c b/vp9/encoder/vp9_encodemb.c
index 6ecaaa509dde10ef7fba5355268928dc4f2b04e7..f42e2d8d9f79284fe35e6f4430f46db2335b790e 100644
--- a/vp9/encoder/vp9_encodemb.c
+++ b/vp9/encoder/vp9_encodemb.c
@@ -582,7 +582,7 @@ static void optimize_b(VP9_COMMON *const cm,
 
   /* Now pick the best path through the whole trellis. */
   band = get_coef_band(scan, tx_size, i + 1);
-  VP9_COMBINEENTROPYCONTEXTS(pt, *a, *l);
+  pt = combine_entropy_contexts(*a, *l);
   rate0 = tokens[next][0].rate;
   rate1 = tokens[next][1].rate;
   error0 = tokens[next][0].error;
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index 4b59fa17e148aedef57fa2211d6ab62bd4f34992..6884b165cd1603c2a80d917a1274346503ee0ebb 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -491,7 +491,7 @@ static INLINE int cost_coeffs(VP9_COMMON *const cm, MACROBLOCK *mb,
   }
   assert(eob <= seg_eob);
 
-  VP9_COMBINEENTROPYCONTEXTS(pt, a_ec, l_ec);
+  pt = combine_entropy_contexts(a_ec, l_ec);
   nb = vp9_get_coef_neighbors_handle(scan, &pad);
   default_eob = seg_eob;
 
diff --git a/vp9/encoder/vp9_tokenize.c b/vp9/encoder/vp9_tokenize.c
index 6c44ebdd92fd6e7a5b13dea0dde648e1d354dd4b..343ad1939fd35218e11b0f38b3e5b81a63e61a3c 100644
--- a/vp9/encoder/vp9_tokenize.c
+++ b/vp9/encoder/vp9_tokenize.c
@@ -250,7 +250,7 @@ static void tokenize_b(VP9_COMP *cpi,
       break;
   }
 
-  VP9_COMBINEENTROPYCONTEXTS(pt, a_ec, l_ec);
+  pt = combine_entropy_contexts(a_ec, l_ec);
   nb = vp9_get_coef_neighbors_handle(scan, &pad);
   default_eob = seg_eob;
 
@@ -773,7 +773,7 @@ static void stuff_b(VP9_COMP *cpi,
 #if CONFIG_CODE_NONZEROCOUNT
   if (!nzc_used) {
 #endif
-    VP9_COMBINEENTROPYCONTEXTS(pt, a_ec, l_ec);
+    pt = combine_entropy_contexts(a_ec, l_ec);
     band = 0;
     t->Token = DCT_EOB_TOKEN;
     t->context_tree = probs[type][ref][band][pt];