• Igor Sheludko's avatar
    [builtins][masm] Move hot flags to the beginning of IsolateData · 8a56da44
    Igor Sheludko authored
    ... so that the offset fits into the maximum offset for load byte
    instruction for arm/arm64 (Ldrb) in order to produce smaller code.
    
    Update code generation so that the loading of the flag value is
    combined with the comparison operation where possible.
    
    Additionally, this CL moves the Isolate::is_profiling flag to the
    IsolateData so that it can be loaded directly via roots register which
    removes one indirection.
    
    The fields moved in the IsolateData:
     - is_marking_flag and is_minor_marking_flag (checked by write barriers)
     - is_profiling (checked on API callbacks/getter calls)
     - stack_is_iterable (not super hot, checked during deoptimization).
    
    Drive-by: this CL defines the bool fields as uint8_t in order to make
    the field size expectations clear.
    
    Bug: v8:11880
    Change-Id: I80c292c6ec919861684152b6062225aa0fda2d3e
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3856580Reviewed-by: 's avatarJakob Linke <jgruber@chromium.org>
    Commit-Queue: Igor Sheludko <ishell@chromium.org>
    Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#82771}
    8a56da44
external-reference.cc 53.5 KB