• Junliang Yan's avatar
    PPC/s390: Reland [turbofan] Implement on-stack returns (Intel) · cae7667c
    Junliang Yan authored
    Port bd732f7d
    
    Original Commit Message:
    
        The original CL introduced a test which uses a random number generator.
        I disable the test for now, which is okay because this CL adds to a
        work-in-progress feature anyways, and I will fix the problem in another
        CL.
    
        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.
    
        So far, only ia32 and x64 are implemented.
    
    R=ahaas@chromium.org, joransiu@ca.ibm.com, jbarboza@ca.ibm.com
    BUG=
    LOG=N
    
    Change-Id: I8d63286aa5af5f52cc2eeaf2adeee13d0ff19e7d
    Reviewed-on: https://chromium-review.googlesource.com/823084
    Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
    Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
    Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#50091}
    cae7667c
instruction-selector-s390.cc 102 KB