| Index: src/code-stub-assembler.cc | 
| diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc | 
| index 97f77e22244d1b043c4cadfe483a075a9425b256..c362a4fe9910983c8d2fa5f2ecee62b139641d54 100644 | 
| --- a/src/code-stub-assembler.cc | 
| +++ b/src/code-stub-assembler.cc | 
| @@ -131,6 +131,13 @@ Node* CodeStubAssembler::SelectTaggedConstant(Node* condition, Node* true_value, | 
| MachineRepresentation::kTagged); | 
| } | 
|  | 
| +Node* CodeStubAssembler::SelectSmiConstant(Node* condition, Smi* true_value, | 
| +                                           Smi* false_value) { | 
| +  return SelectConstant(condition, SmiConstant(true_value), | 
| +                        SmiConstant(false_value), | 
| +                        MachineRepresentation::kTaggedSigned); | 
| +} | 
| + | 
| Node* CodeStubAssembler::NoContextConstant() { return NumberConstant(0); } | 
|  | 
| #define HEAP_CONSTANT_ACCESSOR(rootName, name)     \ | 
| @@ -5463,11 +5470,9 @@ void CodeStubAssembler::UpdateFeedback(Node* feedback, | 
| // This method is used for binary op and compare feedback. These | 
| // vector nodes are initialized with a smi 0, so we can simply OR | 
| // our new feedback in place. | 
| -  // TODO(interpreter): Consider passing the feedback as Smi already to avoid | 
| -  // the tagging completely. | 
| Node* previous_feedback = | 
| LoadFixedArrayElement(type_feedback_vector, slot_id); | 
| -  Node* combined_feedback = SmiOr(previous_feedback, SmiFromWord32(feedback)); | 
| +  Node* combined_feedback = SmiOr(previous_feedback, feedback); | 
| StoreFixedArrayElement(type_feedback_vector, slot_id, combined_feedback, | 
| SKIP_WRITE_BARRIER); | 
| } | 
|  |