[wasm] [interpreter] Fix fall-through loop with value
Executing the |end| opcode of a loop assumed that the stack height was being reset to the height at start of the loop. Hence we were ignoring the arity of the loop. During computation of the side table, the arity of the label associated with the loop was explicitly set to 0, such that a |br| instruction to that label would not transfer any values. It turns out though that we need to remember the arity in order to precompute the correct stack height when executing the |end| opcode of a loop. Also, add a regression test. R=rossberg@chromium.org BUG=chromium:716936 Change-Id: Ib3a559998f1ce5f8fcd7b94af1426637b3e48f86 Reviewed-on: https://chromium-review.googlesource.com/493286 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Rossberg <rossberg@chromium.org> Cr-Commit-Position: refs/heads/master@{#45041}
Showing
Please
register
or
sign in
to comment