• Camillo Bruni's avatar
    Reland "[builtins][x64] Use callee-saved registers for write barrier stubs" · 8ff87ecc
    Camillo Bruni authored
    This is a reland of 17915002 with an
    added fix for TurboAssembler::CallTSANRelaxedStoreStub.
    
    Original change's description:
    > [builtins][x64] Use callee-saved registers for write barrier stubs
    >
    > Calls to the record write stub are quite frequent and the caller has to
    > save all registers used by the builtin.
    >
    > This CL moves the register saving to the builtin itself, reducing the
    > call-site code size significantly in many cases and thus improving
    > compilation speed of sparkplug.
    >
    > Follow-up CLs with introduce the same behaviour to other platforms.
    >
    > - CallRecordWriteStubSaveRegisters preserves the existing behaviour and
    >   saves clobbered registers.
    > - CallRecordWriteStub expects the registers to match the ones specified
    >   in the WriteBarrierDescriptor for more compact code.
    >
    > Bug: v8:11420
    > Change-Id: Ib1260cf972712bb9ba879beacd34b06a7fa347f1
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2922103
    > Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
    > Reviewed-by: Andreas Haas <ahaas@chromium.org>
    > Commit-Queue: Camillo Bruni <cbruni@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#74831}
    
    Bug: v8:11420
    Change-Id: Ibac3e6f0360d35579ee0b0dc5d698f8cdab93260
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2922604Reviewed-by: 's avatarSantiago Aboy Solanes <solanes@chromium.org>
    Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Commit-Queue: Camillo Bruni <cbruni@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#74870}
    8ff87ecc
builtins-x64.cc 174 KB