Index: runtime/vm/intermediate_language_arm.cc |
diff --git a/runtime/vm/intermediate_language_arm.cc b/runtime/vm/intermediate_language_arm.cc |
index 84527e03218bb8cf74e3031480a35c1b0be8698b..269b18933ea56b29677c8fef785f3f864602c3a3 100644 |
--- a/runtime/vm/intermediate_language_arm.cc |
+++ b/runtime/vm/intermediate_language_arm.cc |
@@ -3128,6 +3128,24 @@ void CheckedSmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
case Token::kBIT_XOR: |
__ eor(result, left, Operand(right)); |
break; |
+ case Token::kEQ: |
+ case Token::kLT: |
+ case Token::kLTE: |
+ case Token::kGT: |
+ case Token::kGTE: { |
+ Label true_label, false_label, done; |
+ BranchLabels labels = { &true_label, &false_label, &false_label }; |
+ Condition true_condition = |
+ EmitSmiComparisonOp(compiler, locs(), op_kind()); |
+ EmitBranchOnCondition(compiler, true_condition, labels); |
+ __ Bind(&false_label); |
+ __ LoadObject(result, Bool::False()); |
+ __ b(&done); |
+ __ Bind(&true_label); |
+ __ LoadObject(result, Bool::True()); |
+ __ Bind(&done); |
+ break; |
+ } |
default: |
UNIMPLEMENTED(); |
} |