[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:
parent
cfdb4e0791
commit
11df29c4d6
@ -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);
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user