• Clemens Backes's avatar
    [liftoff] Push the instance as part of frame construction · 593fbb69
    Clemens Backes authored
    Currently we first construct the frame (via
    {TurboAssembler::EnterFrame}), then we spill the instance to the
    respective slot (via {LiftoffAssembler::SpillInstance}). Instead, we
    should already spill the instance as part of frame construction. That
    allows for a more compact instruction to be used ("push" instead of
    "mov" on Intel), and on arm64 even allows to merge pushing into an
    existing instruction (where we currently push the zero register x31
    instead).
    
    This makes the prologue more similar to what TurboFan generates in
    {TurboAssembler::AssembleConstructFrame} (which does not use
    {TurboAssembler::EnterFrame}).
    
    R=ahaas@chromium.org
    
    Bug: v8:12017
    Change-Id: Ibb4a38d2049cff66fec9450db4f7f375d006beac
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055302Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#75938}
    593fbb69
liftoff-assembler-arm64.h 119 KB