diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/v8/src/ic/binary-op-assembler.cc | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/v8/src/ic/binary-op-assembler.cc')
-rw-r--r-- | chromium/v8/src/ic/binary-op-assembler.cc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/chromium/v8/src/ic/binary-op-assembler.cc b/chromium/v8/src/ic/binary-op-assembler.cc index 25c2181ab2d..8cba7172a2e 100644 --- a/chromium/v8/src/ic/binary-op-assembler.cc +++ b/chromium/v8/src/ic/binary-op-assembler.cc @@ -69,6 +69,8 @@ TNode<Object> BinaryOpAssembler::Generate_AddWithFeedback( // Not overflowed. { var_type_feedback = SmiConstant(BinaryOperationFeedback::kSignedSmall); + UpdateFeedback(var_type_feedback.value(), maybe_feedback_vector, + slot_id); var_result = smi_result; Goto(&end); } @@ -116,6 +118,7 @@ TNode<Object> BinaryOpAssembler::Generate_AddWithFeedback( BIND(&do_fadd); { var_type_feedback = SmiConstant(BinaryOperationFeedback::kNumber); + UpdateFeedback(var_type_feedback.value(), maybe_feedback_vector, slot_id); TNode<Float64T> value = Float64Add(var_fadd_lhs.value(), var_fadd_rhs.value()); TNode<HeapNumber> result = AllocateHeapNumberWithValue(value); @@ -166,6 +169,8 @@ TNode<Object> BinaryOpAssembler::Generate_AddWithFeedback( &call_with_any_feedback); var_type_feedback = SmiConstant(BinaryOperationFeedback::kString); + UpdateFeedback(var_type_feedback.value(), maybe_feedback_vector, + slot_id); var_result = CallBuiltin(Builtins::kStringAdd_CheckNone, context, lhs, rhs); @@ -194,6 +199,7 @@ TNode<Object> BinaryOpAssembler::Generate_AddWithFeedback( GotoIf(TaggedIsSmi(var_result.value()), &bigint_too_big); var_type_feedback = SmiConstant(BinaryOperationFeedback::kBigInt); + UpdateFeedback(var_type_feedback.value(), maybe_feedback_vector, slot_id); Goto(&end); BIND(&bigint_too_big); @@ -219,12 +225,12 @@ TNode<Object> BinaryOpAssembler::Generate_AddWithFeedback( BIND(&call_add_stub); { + UpdateFeedback(var_type_feedback.value(), maybe_feedback_vector, slot_id); var_result = CallBuiltin(Builtins::kAdd, context, lhs, rhs); Goto(&end); } BIND(&end); - UpdateFeedback(var_type_feedback.value(), maybe_feedback_vector, slot_id); return var_result.value(); } @@ -279,6 +285,7 @@ TNode<Object> BinaryOpAssembler::Generate_BinaryOperationWithFeedback( { Comment("perform smi operation"); var_result = smiOperation(lhs_smi, CAST(rhs), &var_type_feedback); + UpdateFeedback(var_type_feedback.value(), maybe_feedback_vector, slot_id); Goto(&end); } } @@ -321,6 +328,7 @@ TNode<Object> BinaryOpAssembler::Generate_BinaryOperationWithFeedback( BIND(&do_float_operation); { var_type_feedback = SmiConstant(BinaryOperationFeedback::kNumber); + UpdateFeedback(var_type_feedback.value(), maybe_feedback_vector, slot_id); TNode<Float64T> lhs_value = var_float_lhs.value(); TNode<Float64T> rhs_value = var_float_rhs.value(); TNode<Float64T> value = floatOperation(lhs_value, rhs_value); @@ -384,6 +392,7 @@ TNode<Object> BinaryOpAssembler::Generate_BinaryOperationWithFeedback( BIND(&if_both_bigint); { var_type_feedback = SmiConstant(BinaryOperationFeedback::kBigInt); + UpdateFeedback(var_type_feedback.value(), maybe_feedback_vector, slot_id); if (op == Operation::kSubtract) { Label bigint_too_big(this); var_result = @@ -415,6 +424,7 @@ TNode<Object> BinaryOpAssembler::Generate_BinaryOperationWithFeedback( BIND(&call_stub); { + UpdateFeedback(var_type_feedback.value(), maybe_feedback_vector, slot_id); TNode<Object> result; switch (op) { case Operation::kSubtract: @@ -437,7 +447,6 @@ TNode<Object> BinaryOpAssembler::Generate_BinaryOperationWithFeedback( } BIND(&end); - UpdateFeedback(var_type_feedback.value(), maybe_feedback_vector, slot_id); return var_result.value(); } |