Index: runtime/vm/intermediate_language_arm64.cc |
diff --git a/runtime/vm/intermediate_language_arm64.cc b/runtime/vm/intermediate_language_arm64.cc |
index d427823800cd181f1519c8af081168052cca7786..f43e2bb3448d499ed62f35760c8aa2794e5a5a1d 100644 |
--- a/runtime/vm/intermediate_language_arm64.cc |
+++ b/runtime/vm/intermediate_language_arm64.cc |
@@ -2844,6 +2844,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(); |
} |