• zhengxing.li's avatar
    X87: [turbofan] Support variable size argument removal in TF-generated functions. · c1753f5c
    zhengxing.li authored
      port 5319b50c (r40678)
    
      original commit message:
      This is preparation for using TF to create builtins that handle variable number of
      arguments and have to remove these arguments dynamically from the stack upon
      return.
    
      The gist of the changes:
      - Added a second argument to the Return node which specifies the number of stack
        slots to pop upon return in addition to those specified by the Linkage of the
        compiled function.
      - Removed Tail -> Non-Tail fallback in the instruction selector. Since TF now should
        handles all tail-call cases except where the return value type differs, this fallback
        was not really useful and in fact caused unexpected behavior with variable
        sized argument popping, since it wasn't possible to materialize a Return node
        with the right pop count from the TailCall without additional context.
      - Modified existing Return generation to pass a constant zero as the additional
        pop argument since the variable pop functionality
    
    BUG=
    
    Review-Url: https://codereview.chromium.org/2469623002
    Cr-Commit-Position: refs/heads/master@{#40684}
    c1753f5c
code-generator-x87.cc 93 KB