• Junliang Yan's avatar
    s390x: [wasm] Use a tuple as the instance for JS imports · 8343e75b
    Junliang Yan authored
    Port a2b34806
    
    Original Commit Message:
    
        This CL refactors the implementation of WASM->JS import wrappers in order
        to make the wrapper code shareable. Instead of specializing to the import
        index, we use a tuple as the object ref in the both the import and indirect
        tables. The tuple allows the wrapper code to load both the calling
        instance and the target callable, rather than relying on code specialization.
    
        This requires some tricky codegen machinery, because WASM call descriptors
        expect an instance argument in a given register, yet the wrappers receive
        a tuple, the code generator must generate a prologue that loads the
        instance (and the callable), since it is not possible to express this at
        the graph level.
    
    R=titzer@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
    BUG=
    LOG=N
    
    Change-Id: I34302b8ff737296fc98c032f1e9848b4bb9fae13
    Reviewed-on: https://chromium-review.googlesource.com/c/1273866Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
    Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
    Cr-Commit-Position: refs/heads/master@{#56541}
    8343e75b
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...