diff --git a/src/code/amd64.c b/src/code/amd64.c
index 1b431664be6123002ca499e4c782e0ada202977c..5fad0a848ec041b7a40a1fd816416bcfc80d23ed 100644
--- a/src/code/amd64.c
+++ b/src/code/amd64.c
@@ -665,6 +665,11 @@ static void test_reg32( enum amd64_reg reg1 )
 
 static void cmp_reg_imm( enum amd64_reg reg, int imm32 )
 {
+  if(!imm32)
+  {
+   test_reg( reg );
+   return;
+  }
   rex(1, 0, 0, reg);
   if( imm32 > 0x7f || imm32 < -0x80 )
   {
@@ -690,6 +695,11 @@ static void cmp_reg_imm( enum amd64_reg reg, int imm32 )
 
 static void cmp_reg32_imm( enum amd64_reg reg, int imm32 )
 {
+  if(!imm32)
+  {
+   test_reg( reg );
+   return;
+  }
   rex(0, 0, 0, reg);
   if( imm32 > 0x7f || imm32 < -0x80 )
   {