Index: src/type-info.cc |
diff --git a/src/type-info.cc b/src/type-info.cc |
index 0fa46e75777cf6945d8d617c6e421603d0b8e454..53a43b42215eec158f1fc3ee4aec4b369b370d4f 100644 |
--- a/src/type-info.cc |
+++ b/src/type-info.cc |
@@ -456,7 +456,9 @@ static TypeInfo TypeFromBinaryOpType(BinaryOpIC::TypeInfo binary_type) { |
void TypeFeedbackOracle::BinaryType(BinaryOperation* expr, |
TypeInfo* left, |
TypeInfo* right, |
- TypeInfo* result) { |
+ TypeInfo* result, |
+ bool* has_fixed_right_arg, |
+ int* fixed_right_arg_value) { |
Handle<Object> object = GetInfo(expr->BinaryOperationFeedbackId()); |
TypeInfo unknown = TypeInfo::Unknown(); |
if (!object->IsCode()) { |
@@ -465,12 +467,17 @@ void TypeFeedbackOracle::BinaryType(BinaryOperation* expr, |
} |
Handle<Code> code = Handle<Code>::cast(object); |
if (code->is_binary_op_stub()) { |
+ int minor_key = code->stub_info(); |
BinaryOpIC::TypeInfo left_type, right_type, result_type; |
- BinaryOpStub::decode_types_from_minor_key(code->stub_info(), &left_type, |
- &right_type, &result_type); |
+ BinaryOpStub::decode_types_from_minor_key( |
+ minor_key, &left_type, &right_type, &result_type); |
*left = TypeFromBinaryOpType(left_type); |
*right = TypeFromBinaryOpType(right_type); |
*result = TypeFromBinaryOpType(result_type); |
+ *has_fixed_right_arg = |
+ BinaryOpStub::decode_has_fixed_right_arg_from_minor_key(minor_key); |
+ *fixed_right_arg_value = |
+ BinaryOpStub::decode_fixed_right_arg_value_from_minor_key(minor_key); |
return; |
} |
// Not a binary op stub. |