• Andreas Haas's avatar
    [wasm][multi-return] Fix problem with unused stack returns · e04238b7
    Andreas Haas authored
    There was an issue when the caller of a function with multiple returns
    did not use all values which were returned over the stack. The caller
    used only the used returns to calculate the offsets on the stack,
    whereas the callee used all returns to calculate the offsets.
    
    With this CL also the caller uses all returns to calculate the stack
    offsets and thereby agrees again with the callee on the location of
    all returns.
    
    In addition I fixed an issue on x64: A quad word is reserved on the
    stack frame to spill callee-saved FP registers, which is not pointer
    size.
    
    R=titzer@chromium.org
    
    Change-Id: Ibe56b4b57e4b6e59071a868805b1237412344f93
    Reviewed-on: https://chromium-review.googlesource.com/824043Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#50193}
    e04238b7
instruction-selector.cc 102 KB