• Andreas Haas's avatar
    [mips][turbofan] Implement on-stack returns. · 3ede3487
    Andreas Haas authored
    This is the implementation of crrev.com/c/766371 for mips.
    
    Original description:
    
    Add the ability to return (multiple) return values on the stack:
    
    - Extend stack frames with a new buffer region for return slots.
      This region is located at the end of a caller's frame such that
      its slots can be indexed as caller frame slots in a callee
      (located beyond its parameters) and assigned return values.
    - Adjust stack frame constructon and deconstruction accordingly.
    - Extend linkage computation to support register plus stack returns.
    - Reserve return slots in caller frame when respective calls occur.
    - Introduce and generate architecture instructions ('peek') for
      reading back results from return slots in the caller.
    - Aggressive tests.
    - Some minor clean-up.
    
    R=v8-mips-ports@googlegroups.com
    
    Change-Id: I2f30cc297771ec74b0b935b6ea28d3d61a986d5c
    Reviewed-on: https://chromium-review.googlesource.com/839660Reviewed-by: 's avatarIvica Bogosavljevic <ivica.bogosavljevic@mips.com>
    Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#50272}
    3ede3487
instruction-selector-mips.cc 82.6 KB