Commit 84b9e927 authored by Mythri's avatar Mythri Committed by Commit Bot

Update construct bytecode handlers to work without feedback vectors

Bug: v8:8394
Change-Id: If9af9f3c79e442f6e384934e005ae5d82b0d358b
Reviewed-on: https://chromium-review.googlesource.com/c/1365277Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58070}
parent d8b59fc6
......@@ -940,6 +940,7 @@ Node* InterpreterAssembler::Construct(Node* target, Node* context,
VARIABLE(var_site, MachineRepresentation::kTagged);
Label extra_checks(this, Label::kDeferred), return_result(this, &var_result),
construct(this), construct_array(this, &var_site);
GotoIf(IsUndefined(feedback_vector), &construct);
// Increment the call count.
IncrementCallCount(feedback_vector, slot_id);
......@@ -1120,6 +1121,7 @@ Node* InterpreterAssembler::ConstructWithSpread(Node* target, Node* context,
// constructor _and_ spread the last argument at the same time.
DCHECK(Bytecodes::MakesCallAlongCriticalPath(bytecode_));
Label extra_checks(this, Label::kDeferred), construct(this);
GotoIf(IsUndefined(feedback_vector), &construct);
// Increment the call count.
IncrementCallCount(feedback_vector, slot_id);
......
......@@ -1730,7 +1730,7 @@ IGNITION_HANDLER(ConstructWithSpread, InterpreterAssembler) {
Node* constructor = LoadRegisterAtOperandIndex(0);
RegListNodePair args = GetRegisterListAtOperandIndex(1);
Node* slot_id = BytecodeOperandIdx(3);
Node* feedback_vector = LoadFeedbackVector();
Node* feedback_vector = LoadFeedbackVectorUnchecked();
Node* context = GetContext();
Node* result = ConstructWithSpread(constructor, context, new_target, args,
slot_id, feedback_vector);
......@@ -1749,7 +1749,7 @@ IGNITION_HANDLER(Construct, InterpreterAssembler) {
Node* constructor = LoadRegisterAtOperandIndex(0);
RegListNodePair args = GetRegisterListAtOperandIndex(1);
Node* slot_id = BytecodeOperandIdx(3);
Node* feedback_vector = LoadFeedbackVector();
Node* feedback_vector = LoadFeedbackVectorUnchecked();
Node* context = GetContext();
Node* result = Construct(constructor, context, new_target, args, slot_id,
feedback_vector);
......
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