diff --git a/libavcodec/x86/h264_i386.h b/libavcodec/x86/h264_i386.h
index 1b55dd830f01143663644f5cfe47ad426edb33b6..9f5e53105e0a12c045a351d049f3794f6c278889 100644
--- a/libavcodec/x86/h264_i386.h
+++ b/libavcodec/x86/h264_i386.h
@@ -40,8 +40,8 @@ static int decode_significance_x86(CABACContext *c, int max_coeff,
                                    uint8_t *significant_coeff_ctx_base,
                                    int *index, x86_reg last_off){
     void *end= significant_coeff_ctx_base + max_coeff - 1;
-    int minusstart= -(int)significant_coeff_ctx_base;
-    int minusindex= 4-(int)index;
+    int minusstart= -(intptr_t)significant_coeff_ctx_base;
+    int minusindex= 4-(intptr_t)index;
     int bit;
     x86_reg coeff_count;
     int low;
@@ -101,7 +101,7 @@ static int decode_significance_x86(CABACContext *c, int max_coeff,
 static int decode_significance_8x8_x86(CABACContext *c,
                                        uint8_t *significant_coeff_ctx_base,
                                        int *index, x86_reg last_off, const uint8_t *sig_off){
-    int minusindex= 4-(int)index;
+    int minusindex= 4-(intptr_t)index;
     int bit;
     x86_reg coeff_count;
     int low;