On x64, cmpl can never take a int64 immediate.

Fix a wrong type widening in x64 code generator and add
CHECKs in the assembler.

Change-Id: Id35f5d47c6cf78ed07e73ab783db09712d3c437f
diff --git a/compiler/optimizing/code_generator_x86_64.cc b/compiler/optimizing/code_generator_x86_64.cc
index ffd8c42..216d887 100644
--- a/compiler/optimizing/code_generator_x86_64.cc
+++ b/compiler/optimizing/code_generator_x86_64.cc
@@ -6385,7 +6385,7 @@
     if (index != num_entries) {
       // There are an odd number of entries. Handle the last one.
       DCHECK_EQ(index + 1, num_entries);
-      __ cmpl(value_reg_in, Immediate(lower_bound + index));
+      __ cmpl(value_reg_in, Immediate(static_cast<int32_t>(lower_bound + index)));
       __ j(kEqual, codegen_->GetLabelOf(successors[index]));
     }