• Vaclav Brozek's avatar
    TF stubs out of ArrayIndexOf and ArrayInclude builtins · 44bed6a8
    Vaclav Brozek authored
    ArrayIndexOf is a monolithic builtin which does some checking and then handles
    three groups of fast arrays: those with holey doubles, compacted doubles and
    SMIs+objects. TF cannot reuse this efficiently, because calling the TFJ
    ArrayIndexOf duplicates some checks and also does not allow passing arguments
    through registers. Similarly for ArrayInclude.
    
    This CL splits the three different types of fast array handling into a separate
    TF stubs, and makes the parent TFJ as well as TurboFan itself use them where
    appropriate.
    
    The TODOs not tackled in this CL inculde:
    * passing an empty context to spare a register when possible
    * inlining the search loop if there is any performance gain to it
    
    (This is the contiunation of http://crrev.com/2757853002, moved due to Rietveld
    deprecation.)
    
    BUG=v8:5985
    
    Change-Id: I00c97b71be4892f8bc7e1ed6d72e02087618a9a6
    Reviewed-on: https://chromium-review.googlesource.com/573020
    Commit-Queue: Vaclav Brozek <vabr@chromium.org>
    Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#51729}
    44bed6a8
builtins-definitions.h 100 KB