[maglev] Embed FBV as constant in prologue

... instead of loading it from the closure.

Bug: v8:7700
Change-Id: Ie8128731e407eecd4f15bc7b3a875bd53793a402
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4165609
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85311}
This commit is contained in:
Leszek Swirski 2023-01-16 11:44:06 +01:00 committed by V8 LUCI CQ
parent cfdb4e0791
commit 11df29c4d6
2 changed files with 4 additions and 16 deletions

View File

@ -190,14 +190,6 @@ void MaglevAssembler::Prologue(Graph* graph) {
// register as well.
Register feedback_vector = x9;
// Load the feedback vector.
LoadTaggedPointerField(
feedback_vector,
FieldMemOperand(kJSFunctionRegister, JSFunction::kFeedbackCellOffset));
LoadTaggedPointerField(
feedback_vector, FieldMemOperand(feedback_vector, Cell::kValueOffset));
AssertFeedbackVector(feedback_vector, flags);
DeferredCodeInfo* deferred_flags_need_processing = PushDeferredCode(
[](MaglevAssembler* masm, Register feedback_vector) {
ASM_CODE_COMMENT_STRING(masm, "Optimized marker check");
@ -210,6 +202,8 @@ void MaglevAssembler::Prologue(Graph* graph) {
},
feedback_vector);
Move(feedback_vector,
compilation_info()->toplevel_compilation_unit()->feedback().object());
LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing(
flags, feedback_vector, CodeKind::MAGLEV,
&deferred_flags_need_processing->deferred_code_label);

View File

@ -391,14 +391,6 @@ void MaglevAssembler::Prologue(Graph* graph) {
Register flags = rcx;
Register feedback_vector = r9;
// Load the feedback vector.
LoadTaggedPointerField(
feedback_vector,
FieldOperand(kJSFunctionRegister, JSFunction::kFeedbackCellOffset));
LoadTaggedPointerField(feedback_vector,
FieldOperand(feedback_vector, Cell::kValueOffset));
AssertFeedbackVector(feedback_vector);
DeferredCodeInfo* deferred_flags_need_processing = PushDeferredCode(
[](MaglevAssembler* masm, Register flags, Register feedback_vector) {
ASM_CODE_COMMENT_STRING(masm, "Optimized marker check");
@ -410,6 +402,8 @@ void MaglevAssembler::Prologue(Graph* graph) {
},
flags, feedback_vector);
Move(feedback_vector,
compilation_info()->toplevel_compilation_unit()->feedback().object());
LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing(
flags, feedback_vector, CodeKind::MAGLEV,
&deferred_flags_need_processing->deferred_code_label);