-
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