• Yang Guo's avatar
    Support circular references between generated builtins. · 266be35b
    Yang Guo authored
    Until now, when generating a builtin, it can only embed builtins
    (as call targets) that have already been generated. This is either
    achieved by reordering the builtins list, or by loading the call
    target at runtime from the builtins list (see
    MacroAssembler::TailCallBuiltin).
    
    This patch works around this issue by filling the builtins list
    with dummy code objects, which are later replaced with the completed
    actual builtins. In release mode, this adds around 3ms to 140ms we
    previously needed to populate the builtins list. 
    
    Change-Id: I7d451b3c09a1db4b9e755548102a80c7f0dfada2
    Reviewed-on: https://chromium-review.googlesource.com/586531
    Commit-Queue: Yang Guo <yangguo@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47062}
    266be35b
macro-assembler-arm.cc 109 KB