Index: src/compiler/bytecode-graph-builder.cc |
diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc |
index f5d65160ea33f8ca02823eecf56284c264fb7c8b..f0ec76a7b94680db72af98f2f986d08e50e1ad88 100644 |
--- a/src/compiler/bytecode-graph-builder.cc |
+++ b/src/compiler/bytecode-graph-builder.cc |
@@ -1380,13 +1380,10 @@ BinaryOperationHint BytecodeGraphBuilder::GetBinaryOperationHint( |
int operand_index) { |
FeedbackVectorSlot slot = feedback_vector()->ToSlot( |
bytecode_iterator().GetIndexOperand(operand_index)); |
- DCHECK_EQ(FeedbackVectorSlotKind::GENERAL, feedback_vector()->GetKind(slot)); |
- Object* feedback = feedback_vector()->Get(slot); |
- BinaryOperationHint hint = BinaryOperationHint::kAny; |
- if (feedback->IsSmi()) { |
- hint = BinaryOperationHintFromFeedback((Smi::cast(feedback))->value()); |
- } |
- return hint; |
+ DCHECK_EQ(FeedbackVectorSlotKind::INTERPRETER_BINARYOP_IC, |
+ feedback_vector()->GetKind(slot)); |
+ BinaryOpICNexus nexus(feedback_vector(), slot); |
+ return nexus.GetBinaryOperationFeedback(); |
} |
// Helper function to create compare operation hint from the recorded type |
@@ -1398,13 +1395,10 @@ CompareOperationHint BytecodeGraphBuilder::GetCompareOperationHint() { |
} |
FeedbackVectorSlot slot = |
feedback_vector()->ToSlot(bytecode_iterator().GetIndexOperand(1)); |
- DCHECK_EQ(FeedbackVectorSlotKind::GENERAL, feedback_vector()->GetKind(slot)); |
- Object* feedback = feedback_vector()->Get(slot); |
- CompareOperationHint hint = CompareOperationHint::kAny; |
- if (feedback->IsSmi()) { |
- hint = CompareOperationHintFromFeedback((Smi::cast(feedback))->value()); |
- } |
- return hint; |
+ DCHECK_EQ(FeedbackVectorSlotKind::INTERPRETER_COMPARE_IC, |
+ feedback_vector()->GetKind(slot)); |
+ CompareICNexus nexus(feedback_vector(), slot); |
+ return nexus.GetCompareOperationFeedback(); |
} |
float BytecodeGraphBuilder::ComputeCallFrequency(int slot_id) const { |