Index: runtime/vm/intermediate_language_x64.cc |
diff --git a/runtime/vm/intermediate_language_x64.cc b/runtime/vm/intermediate_language_x64.cc |
index 8f22f334899c7eff30a60b316c5d44a5b68c12b0..8796e59038ed86bf3e4b772c5a93afe1f3a1dddd 100644 |
--- a/runtime/vm/intermediate_language_x64.cc |
+++ b/runtime/vm/intermediate_language_x64.cc |
@@ -686,6 +686,15 @@ Condition TestCidsInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
} |
// No match found, deoptimize or false. |
if (deopt == NULL) { |
+#ifdef DEBUG |
Vyacheslav Egorov (Google)
2017/05/23 16:00:31
I think this needs to go to constructor.
erikcorry
2017/05/24 13:37:15
Done.
|
+ // The entry for Smi can be special, but all other entries have |
+ // to match in the no-deopt case. |
+ for (intptr_t i = 4; i < data.length(); i += 2) { |
+ ASSERT(data[i + 1] == data[3]); |
+ } |
+#endif |
+ // If the cid is not in the list, jump to the opposite label from the cids |
Vyacheslav Egorov (Google)
2017/05/23 16:00:31
Please add a comment to the instruction in the int
erikcorry
2017/05/24 13:37:15
Done.
|
+ // that are in the list. |
Label* target = result ? labels.false_label : labels.true_label; |
if (target != labels.fall_through) { |
__ jmp(target); |