Commit 6472e034 authored by Benedikt Meurer's avatar Benedikt Meurer Committed by Commit Bot

[csa] Remove unused function parameter for UpdateFeedback.

Now that the ticks are stored in the feedback vector the function
parameter to CodeStubAssembler::UpdateFeedback is unused and we
can remove it (and the need to load the closure on the use sites).

Change-Id: I60bdebd2003ab707a7ad8451d0cb2189b70fd9cf
Reviewed-on: https://chromium-review.googlesource.com/645626Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47738}
parent 4e4def64
...@@ -6584,7 +6584,7 @@ Node* CodeStubAssembler::LoadFeedbackVectorForStub() { ...@@ -6584,7 +6584,7 @@ Node* CodeStubAssembler::LoadFeedbackVectorForStub() {
} }
void CodeStubAssembler::UpdateFeedback(Node* feedback, Node* feedback_vector, void CodeStubAssembler::UpdateFeedback(Node* feedback, Node* feedback_vector,
Node* slot_id, Node* function) { Node* slot_id) {
// This method is used for binary op and compare feedback. These // This method is used for binary op and compare feedback. These
// vector nodes are initialized with a smi 0, so we can simply OR // vector nodes are initialized with a smi 0, so we can simply OR
// our new feedback in place. // our new feedback in place.
......
...@@ -1410,8 +1410,7 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { ...@@ -1410,8 +1410,7 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
Node* LoadFeedbackVector(Node* closure); Node* LoadFeedbackVector(Node* closure);
// Update the type feedback vector. // Update the type feedback vector.
void UpdateFeedback(Node* feedback, Node* feedback_vector, Node* slot_id, void UpdateFeedback(Node* feedback, Node* feedback_vector, Node* slot_id);
Node* function);
// Combine the new feedback with the existing_feedback. // Combine the new feedback with the existing_feedback.
void CombineFeedback(Variable* existing_feedback, Node* feedback); void CombineFeedback(Variable* existing_feedback, Node* feedback);
......
...@@ -14,7 +14,6 @@ using compiler::Node; ...@@ -14,7 +14,6 @@ using compiler::Node;
Node* BinaryOpAssembler::Generate_AddWithFeedback(Node* context, Node* lhs, Node* BinaryOpAssembler::Generate_AddWithFeedback(Node* context, Node* lhs,
Node* rhs, Node* slot_id, Node* rhs, Node* slot_id,
Node* feedback_vector, Node* feedback_vector,
Node* function,
bool rhs_is_smi) { bool rhs_is_smi) {
// Shared entry for floating point addition. // Shared entry for floating point addition.
Label do_fadd(this), if_lhsisnotnumber(this, Label::kDeferred), Label do_fadd(this), if_lhsisnotnumber(this, Label::kDeferred),
...@@ -203,15 +202,14 @@ Node* BinaryOpAssembler::Generate_AddWithFeedback(Node* context, Node* lhs, ...@@ -203,15 +202,14 @@ Node* BinaryOpAssembler::Generate_AddWithFeedback(Node* context, Node* lhs,
} }
BIND(&end); BIND(&end);
UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_id, function); UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_id);
return var_result.value(); return var_result.value();
} }
Node* BinaryOpAssembler::Generate_BinaryOperationWithFeedback( Node* BinaryOpAssembler::Generate_BinaryOperationWithFeedback(
Node* context, Node* lhs, Node* rhs, Node* slot_id, Node* feedback_vector, Node* context, Node* lhs, Node* rhs, Node* slot_id, Node* feedback_vector,
Node* function, const SmiOperation& smiOperation, const SmiOperation& smiOperation, const FloatOperation& floatOperation,
const FloatOperation& floatOperation, Token::Value opcode, Token::Value opcode, bool rhs_is_smi) {
bool rhs_is_smi) {
Label do_float_operation(this), end(this), call_stub(this), Label do_float_operation(this), end(this), call_stub(this),
check_rhsisoddball(this, Label::kDeferred), call_with_any_feedback(this), check_rhsisoddball(this, Label::kDeferred), call_with_any_feedback(this),
if_lhsisnotnumber(this, Label::kDeferred); if_lhsisnotnumber(this, Label::kDeferred);
...@@ -375,14 +373,13 @@ Node* BinaryOpAssembler::Generate_BinaryOperationWithFeedback( ...@@ -375,14 +373,13 @@ Node* BinaryOpAssembler::Generate_BinaryOperationWithFeedback(
} }
BIND(&end); BIND(&end);
UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_id, function); UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_id);
return var_result.value(); return var_result.value();
} }
Node* BinaryOpAssembler::Generate_SubtractWithFeedback(Node* context, Node* lhs, Node* BinaryOpAssembler::Generate_SubtractWithFeedback(Node* context, Node* lhs,
Node* rhs, Node* slot_id, Node* rhs, Node* slot_id,
Node* feedback_vector, Node* feedback_vector,
Node* function,
bool rhs_is_smi) { bool rhs_is_smi) {
auto smiFunction = [=](Node* lhs, Node* rhs, Variable* var_type_feedback) { auto smiFunction = [=](Node* lhs, Node* rhs, Variable* var_type_feedback) {
VARIABLE(var_result, MachineRepresentation::kTagged); VARIABLE(var_result, MachineRepresentation::kTagged);
...@@ -423,14 +420,13 @@ Node* BinaryOpAssembler::Generate_SubtractWithFeedback(Node* context, Node* lhs, ...@@ -423,14 +420,13 @@ Node* BinaryOpAssembler::Generate_SubtractWithFeedback(Node* context, Node* lhs,
return Float64Sub(lhs, rhs); return Float64Sub(lhs, rhs);
}; };
return Generate_BinaryOperationWithFeedback( return Generate_BinaryOperationWithFeedback(
context, lhs, rhs, slot_id, feedback_vector, function, smiFunction, context, lhs, rhs, slot_id, feedback_vector, smiFunction, floatFunction,
floatFunction, Token::SUB, rhs_is_smi); Token::SUB, rhs_is_smi);
} }
Node* BinaryOpAssembler::Generate_MultiplyWithFeedback(Node* context, Node* lhs, Node* BinaryOpAssembler::Generate_MultiplyWithFeedback(Node* context, Node* lhs,
Node* rhs, Node* slot_id, Node* rhs, Node* slot_id,
Node* feedback_vector, Node* feedback_vector,
Node* function,
bool rhs_is_smi) { bool rhs_is_smi) {
auto smiFunction = [=](Node* lhs, Node* rhs, Variable* var_type_feedback) { auto smiFunction = [=](Node* lhs, Node* rhs, Variable* var_type_feedback) {
Node* result = SmiMul(lhs, rhs); Node* result = SmiMul(lhs, rhs);
...@@ -443,13 +439,13 @@ Node* BinaryOpAssembler::Generate_MultiplyWithFeedback(Node* context, Node* lhs, ...@@ -443,13 +439,13 @@ Node* BinaryOpAssembler::Generate_MultiplyWithFeedback(Node* context, Node* lhs,
return Float64Mul(lhs, rhs); return Float64Mul(lhs, rhs);
}; };
return Generate_BinaryOperationWithFeedback( return Generate_BinaryOperationWithFeedback(
context, lhs, rhs, slot_id, feedback_vector, function, smiFunction, context, lhs, rhs, slot_id, feedback_vector, smiFunction, floatFunction,
floatFunction, Token::MUL, rhs_is_smi); Token::MUL, rhs_is_smi);
} }
Node* BinaryOpAssembler::Generate_DivideWithFeedback( Node* BinaryOpAssembler::Generate_DivideWithFeedback(
Node* context, Node* dividend, Node* divisor, Node* slot_id, Node* context, Node* dividend, Node* divisor, Node* slot_id,
Node* feedback_vector, Node* function, bool rhs_is_smi) { Node* feedback_vector, bool rhs_is_smi) {
auto smiFunction = [=](Node* lhs, Node* rhs, Variable* var_type_feedback) { auto smiFunction = [=](Node* lhs, Node* rhs, Variable* var_type_feedback) {
VARIABLE(var_result, MachineRepresentation::kTagged); VARIABLE(var_result, MachineRepresentation::kTagged);
// If rhs is known to be an Smi (for DivSmi) we want to fast path Smi // If rhs is known to be an Smi (for DivSmi) we want to fast path Smi
...@@ -477,13 +473,13 @@ Node* BinaryOpAssembler::Generate_DivideWithFeedback( ...@@ -477,13 +473,13 @@ Node* BinaryOpAssembler::Generate_DivideWithFeedback(
return Float64Div(lhs, rhs); return Float64Div(lhs, rhs);
}; };
return Generate_BinaryOperationWithFeedback( return Generate_BinaryOperationWithFeedback(
context, dividend, divisor, slot_id, feedback_vector, function, context, dividend, divisor, slot_id, feedback_vector, smiFunction,
smiFunction, floatFunction, Token::DIV, rhs_is_smi); floatFunction, Token::DIV, rhs_is_smi);
} }
Node* BinaryOpAssembler::Generate_ModulusWithFeedback( Node* BinaryOpAssembler::Generate_ModulusWithFeedback(
Node* context, Node* dividend, Node* divisor, Node* slot_id, Node* context, Node* dividend, Node* divisor, Node* slot_id,
Node* feedback_vector, Node* function, bool rhs_is_smi) { Node* feedback_vector, bool rhs_is_smi) {
auto smiFunction = [=](Node* lhs, Node* rhs, Variable* var_type_feedback) { auto smiFunction = [=](Node* lhs, Node* rhs, Variable* var_type_feedback) {
Node* result = SmiMod(lhs, rhs); Node* result = SmiMod(lhs, rhs);
var_type_feedback->Bind(SelectSmiConstant( var_type_feedback->Bind(SelectSmiConstant(
...@@ -495,8 +491,8 @@ Node* BinaryOpAssembler::Generate_ModulusWithFeedback( ...@@ -495,8 +491,8 @@ Node* BinaryOpAssembler::Generate_ModulusWithFeedback(
return Float64Mod(lhs, rhs); return Float64Mod(lhs, rhs);
}; };
return Generate_BinaryOperationWithFeedback( return Generate_BinaryOperationWithFeedback(
context, dividend, divisor, slot_id, feedback_vector, function, context, dividend, divisor, slot_id, feedback_vector, smiFunction,
smiFunction, floatFunction, Token::MOD, rhs_is_smi); floatFunction, Token::MOD, rhs_is_smi);
} }
} // namespace internal } // namespace internal
......
...@@ -24,25 +24,23 @@ class BinaryOpAssembler : public CodeStubAssembler { ...@@ -24,25 +24,23 @@ class BinaryOpAssembler : public CodeStubAssembler {
Node* Generate_AddWithFeedback(Node* context, Node* lhs, Node* rhs, Node* Generate_AddWithFeedback(Node* context, Node* lhs, Node* rhs,
Node* slot_id, Node* feedback_vector, Node* slot_id, Node* feedback_vector,
Node* function, bool rhs_is_smi); bool rhs_is_smi);
Node* Generate_SubtractWithFeedback(Node* context, Node* lhs, Node* rhs, Node* Generate_SubtractWithFeedback(Node* context, Node* lhs, Node* rhs,
Node* slot_id, Node* feedback_vector, Node* slot_id, Node* feedback_vector,
Node* function, bool rhs_is_smi); bool rhs_is_smi);
Node* Generate_MultiplyWithFeedback(Node* context, Node* lhs, Node* rhs, Node* Generate_MultiplyWithFeedback(Node* context, Node* lhs, Node* rhs,
Node* slot_id, Node* feedback_vector, Node* slot_id, Node* feedback_vector,
Node* function, bool rhs_is_smi); bool rhs_is_smi);
Node* Generate_DivideWithFeedback(Node* context, Node* dividend, Node* Generate_DivideWithFeedback(Node* context, Node* dividend,
Node* divisor, Node* slot_id, Node* divisor, Node* slot_id,
Node* feedback_vector, Node* function, Node* feedback_vector, bool rhs_is_smi);
bool rhs_is_smi);
Node* Generate_ModulusWithFeedback(Node* context, Node* dividend, Node* Generate_ModulusWithFeedback(Node* context, Node* dividend,
Node* divisor, Node* slot_id, Node* divisor, Node* slot_id,
Node* feedback_vector, Node* function, Node* feedback_vector, bool rhs_is_smi);
bool rhs_is_smi);
private: private:
typedef std::function<Node*(Node*, Node*, Variable*)> SmiOperation; typedef std::function<Node*(Node*, Node*, Variable*)> SmiOperation;
...@@ -50,9 +48,8 @@ class BinaryOpAssembler : public CodeStubAssembler { ...@@ -50,9 +48,8 @@ class BinaryOpAssembler : public CodeStubAssembler {
Node* Generate_BinaryOperationWithFeedback( Node* Generate_BinaryOperationWithFeedback(
Node* context, Node* lhs, Node* rhs, Node* slot_id, Node* feedback_vector, Node* context, Node* lhs, Node* rhs, Node* slot_id, Node* feedback_vector,
Node* function, const SmiOperation& smiOperation, const SmiOperation& smiOperation, const FloatOperation& floatOperation,
const FloatOperation& floatOperation, Token::Value opcode, Token::Value opcode, bool rhs_is_smi);
bool rhs_is_smi);
}; };
} // namespace internal } // namespace internal
......
...@@ -856,9 +856,11 @@ class InterpreterBinaryOpAssembler : public InterpreterAssembler { ...@@ -856,9 +856,11 @@ class InterpreterBinaryOpAssembler : public InterpreterAssembler {
OperandScale operand_scale) OperandScale operand_scale)
: InterpreterAssembler(state, bytecode, operand_scale) {} : InterpreterAssembler(state, bytecode, operand_scale) {}
typedef Node* (BinaryOpAssembler::*BinaryOpGenerator)( typedef Node* (BinaryOpAssembler::*BinaryOpGenerator)(Node* context,
Node* context, Node* left, Node* right, Node* slot, Node* vector, Node* left, Node* right,
Node* function, bool lhs_is_smi); Node* slot,
Node* vector,
bool lhs_is_smi);
void BinaryOpWithFeedback(BinaryOpGenerator generator) { void BinaryOpWithFeedback(BinaryOpGenerator generator) {
Node* reg_index = BytecodeOperandReg(0); Node* reg_index = BytecodeOperandReg(0);
...@@ -867,11 +869,10 @@ class InterpreterBinaryOpAssembler : public InterpreterAssembler { ...@@ -867,11 +869,10 @@ class InterpreterBinaryOpAssembler : public InterpreterAssembler {
Node* context = GetContext(); Node* context = GetContext();
Node* slot_index = BytecodeOperandIdx(1); Node* slot_index = BytecodeOperandIdx(1);
Node* feedback_vector = LoadFeedbackVector(); Node* feedback_vector = LoadFeedbackVector();
Node* function = LoadRegister(Register::function_closure());
BinaryOpAssembler binop_asm(state()); BinaryOpAssembler binop_asm(state());
Node* result = (binop_asm.*generator)(context, lhs, rhs, slot_index, Node* result = (binop_asm.*generator)(context, lhs, rhs, slot_index,
feedback_vector, function, false); feedback_vector, false);
SetAccumulator(result); SetAccumulator(result);
Dispatch(); Dispatch();
} }
...@@ -882,11 +883,10 @@ class InterpreterBinaryOpAssembler : public InterpreterAssembler { ...@@ -882,11 +883,10 @@ class InterpreterBinaryOpAssembler : public InterpreterAssembler {
Node* context = GetContext(); Node* context = GetContext();
Node* slot_index = BytecodeOperandIdx(1); Node* slot_index = BytecodeOperandIdx(1);
Node* feedback_vector = LoadFeedbackVector(); Node* feedback_vector = LoadFeedbackVector();
Node* function = LoadRegister(Register::function_closure());
BinaryOpAssembler binop_asm(state()); BinaryOpAssembler binop_asm(state());
Node* result = (binop_asm.*generator)(context, lhs, rhs, slot_index, Node* result = (binop_asm.*generator)(context, lhs, rhs, slot_index,
feedback_vector, function, true); feedback_vector, true);
SetAccumulator(result); SetAccumulator(result);
Dispatch(); Dispatch();
} }
...@@ -1033,9 +1033,8 @@ class InterpreterBitwiseBinaryOpAssembler : public InterpreterAssembler { ...@@ -1033,9 +1033,8 @@ class InterpreterBitwiseBinaryOpAssembler : public InterpreterAssembler {
Node* input_feedback = Node* input_feedback =
SmiOr(var_lhs_type_feedback.value(), var_rhs_type_feedback.value()); SmiOr(var_lhs_type_feedback.value(), var_rhs_type_feedback.value());
Node* function = LoadRegister(Register::function_closure());
UpdateFeedback(SmiOr(result_type, input_feedback), feedback_vector, UpdateFeedback(SmiOr(result_type, input_feedback), feedback_vector,
slot_index, function); slot_index);
SetAccumulator(result); SetAccumulator(result);
Dispatch(); Dispatch();
} }
...@@ -1111,9 +1110,8 @@ IGNITION_HANDLER(BitwiseOrSmi, InterpreterAssembler) { ...@@ -1111,9 +1110,8 @@ IGNITION_HANDLER(BitwiseOrSmi, InterpreterAssembler) {
Node* result_type = SelectSmiConstant(TaggedIsSmi(result), Node* result_type = SelectSmiConstant(TaggedIsSmi(result),
BinaryOperationFeedback::kSignedSmall, BinaryOperationFeedback::kSignedSmall,
BinaryOperationFeedback::kNumber); BinaryOperationFeedback::kNumber);
Node* function = LoadRegister(Register::function_closure());
UpdateFeedback(SmiOr(result_type, var_lhs_type_feedback.value()), UpdateFeedback(SmiOr(result_type, var_lhs_type_feedback.value()),
feedback_vector, slot_index, function); feedback_vector, slot_index);
SetAccumulator(result); SetAccumulator(result);
Dispatch(); Dispatch();
} }
...@@ -1137,9 +1135,8 @@ IGNITION_HANDLER(BitwiseXorSmi, InterpreterAssembler) { ...@@ -1137,9 +1135,8 @@ IGNITION_HANDLER(BitwiseXorSmi, InterpreterAssembler) {
Node* result_type = SelectSmiConstant(TaggedIsSmi(result), Node* result_type = SelectSmiConstant(TaggedIsSmi(result),
BinaryOperationFeedback::kSignedSmall, BinaryOperationFeedback::kSignedSmall,
BinaryOperationFeedback::kNumber); BinaryOperationFeedback::kNumber);
Node* function = LoadRegister(Register::function_closure());
UpdateFeedback(SmiOr(result_type, var_lhs_type_feedback.value()), UpdateFeedback(SmiOr(result_type, var_lhs_type_feedback.value()),
feedback_vector, slot_index, function); feedback_vector, slot_index);
SetAccumulator(result); SetAccumulator(result);
Dispatch(); Dispatch();
} }
...@@ -1163,9 +1160,8 @@ IGNITION_HANDLER(BitwiseAndSmi, InterpreterAssembler) { ...@@ -1163,9 +1160,8 @@ IGNITION_HANDLER(BitwiseAndSmi, InterpreterAssembler) {
Node* result_type = SelectSmiConstant(TaggedIsSmi(result), Node* result_type = SelectSmiConstant(TaggedIsSmi(result),
BinaryOperationFeedback::kSignedSmall, BinaryOperationFeedback::kSignedSmall,
BinaryOperationFeedback::kNumber); BinaryOperationFeedback::kNumber);
Node* function = LoadRegister(Register::function_closure());
UpdateFeedback(SmiOr(result_type, var_lhs_type_feedback.value()), UpdateFeedback(SmiOr(result_type, var_lhs_type_feedback.value()),
feedback_vector, slot_index, function); feedback_vector, slot_index);
SetAccumulator(result); SetAccumulator(result);
Dispatch(); Dispatch();
} }
...@@ -1192,9 +1188,8 @@ IGNITION_HANDLER(ShiftLeftSmi, InterpreterAssembler) { ...@@ -1192,9 +1188,8 @@ IGNITION_HANDLER(ShiftLeftSmi, InterpreterAssembler) {
Node* result_type = SelectSmiConstant(TaggedIsSmi(result), Node* result_type = SelectSmiConstant(TaggedIsSmi(result),
BinaryOperationFeedback::kSignedSmall, BinaryOperationFeedback::kSignedSmall,
BinaryOperationFeedback::kNumber); BinaryOperationFeedback::kNumber);
Node* function = LoadRegister(Register::function_closure());
UpdateFeedback(SmiOr(result_type, var_lhs_type_feedback.value()), UpdateFeedback(SmiOr(result_type, var_lhs_type_feedback.value()),
feedback_vector, slot_index, function); feedback_vector, slot_index);
SetAccumulator(result); SetAccumulator(result);
Dispatch(); Dispatch();
} }
...@@ -1221,9 +1216,8 @@ IGNITION_HANDLER(ShiftRightSmi, InterpreterAssembler) { ...@@ -1221,9 +1216,8 @@ IGNITION_HANDLER(ShiftRightSmi, InterpreterAssembler) {
Node* result_type = SelectSmiConstant(TaggedIsSmi(result), Node* result_type = SelectSmiConstant(TaggedIsSmi(result),
BinaryOperationFeedback::kSignedSmall, BinaryOperationFeedback::kSignedSmall,
BinaryOperationFeedback::kNumber); BinaryOperationFeedback::kNumber);
Node* function = LoadRegister(Register::function_closure());
UpdateFeedback(SmiOr(result_type, var_lhs_type_feedback.value()), UpdateFeedback(SmiOr(result_type, var_lhs_type_feedback.value()),
feedback_vector, slot_index, function); feedback_vector, slot_index);
SetAccumulator(result); SetAccumulator(result);
Dispatch(); Dispatch();
} }
...@@ -1250,9 +1244,8 @@ IGNITION_HANDLER(ShiftRightLogicalSmi, InterpreterAssembler) { ...@@ -1250,9 +1244,8 @@ IGNITION_HANDLER(ShiftRightLogicalSmi, InterpreterAssembler) {
Node* result_type = SelectSmiConstant(TaggedIsSmi(result), Node* result_type = SelectSmiConstant(TaggedIsSmi(result),
BinaryOperationFeedback::kSignedSmall, BinaryOperationFeedback::kSignedSmall,
BinaryOperationFeedback::kNumber); BinaryOperationFeedback::kNumber);
Node* function = LoadRegister(Register::function_closure());
UpdateFeedback(SmiOr(result_type, var_lhs_type_feedback.value()), UpdateFeedback(SmiOr(result_type, var_lhs_type_feedback.value()),
feedback_vector, slot_index, function); feedback_vector, slot_index);
SetAccumulator(result); SetAccumulator(result);
Dispatch(); Dispatch();
} }
...@@ -1312,9 +1305,7 @@ IGNITION_HANDLER(ToNumber, InterpreterAssembler) { ...@@ -1312,9 +1305,7 @@ IGNITION_HANDLER(ToNumber, InterpreterAssembler) {
// Record the type feedback collected for {object}. // Record the type feedback collected for {object}.
Node* slot_index = BytecodeOperandIdx(1); Node* slot_index = BytecodeOperandIdx(1);
Node* feedback_vector = LoadFeedbackVector(); Node* feedback_vector = LoadFeedbackVector();
Node* function = LoadRegister(Register::function_closure()); UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_index);
UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_index,
function);
Dispatch(); Dispatch();
} }
...@@ -1449,9 +1440,7 @@ IGNITION_HANDLER(Inc, InterpreterAssembler) { ...@@ -1449,9 +1440,7 @@ IGNITION_HANDLER(Inc, InterpreterAssembler) {
} }
BIND(&end); BIND(&end);
Node* function = LoadRegister(Register::function_closure()); UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_index);
UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_index,
function);
SetAccumulator(result_var.value()); SetAccumulator(result_var.value());
Dispatch(); Dispatch();
...@@ -1574,9 +1563,7 @@ IGNITION_HANDLER(Dec, InterpreterAssembler) { ...@@ -1574,9 +1563,7 @@ IGNITION_HANDLER(Dec, InterpreterAssembler) {
} }
BIND(&end); BIND(&end);
Node* function = LoadRegister(Register::function_closure()); UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_index);
UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_index,
function);
SetAccumulator(result_var.value()); SetAccumulator(result_var.value());
Dispatch(); Dispatch();
...@@ -2006,9 +1993,7 @@ class InterpreterCompareOpAssembler : public InterpreterAssembler { ...@@ -2006,9 +1993,7 @@ class InterpreterCompareOpAssembler : public InterpreterAssembler {
Node* slot_index = BytecodeOperandIdx(1); Node* slot_index = BytecodeOperandIdx(1);
Node* feedback_vector = LoadFeedbackVector(); Node* feedback_vector = LoadFeedbackVector();
Node* function = LoadRegister(Register::function_closure()); UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_index);
UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_index,
function);
SetAccumulator(result); SetAccumulator(result);
Dispatch(); Dispatch();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment