• jacob.bramley's avatar
    Reland r21101: "ARM64: use jssp for stack slots" · 48d726cd
    jacob.bramley authored
    The original implementation assumed that LPushArguments and
    LInvoke/Call* could be assumed to be exclusively sequential. However,
    this isn't always the case. For example, GenerateCallFunction pushes
    some arguments and then selects between HInvokeFunction and
    HCallFunction.
    
    This fixed implementation resets a pushed_arguments_ counter based on
    the argument_count() of the preceeding basic block, then tracks it
    per-instruction as before (except that now we maintain a count rather
    than a boolean flag).
    
    At the same time, since we now track exactly how many arguments have
    been pushed onto the stack, I was able to adjust the offset accordingly
    and use jssp for stack slots even when arguments have been pushed.
    
    BUG=
    
    Review URL: https://codereview.chromium.org/1038363002
    
    Cr-Commit-Position: refs/heads/master@{#29249}
    48d726cd
lithium-codegen-arm64.h 17.5 KB