• Andreas Haas's avatar
    [wasm] Refactor indirect function calls · 02f18b2d
    Andreas Haas authored
    This is the combined second and third step of refactoring indirect
    function calls through tables with index > 0 to work without runtime
    calls.
    
    The first CL introduces the WasmIndirectFunctionTable heap object. For
    a table of type anyfunc within a WebAssembly instance,
    WasmIndirectFunctionTable stores the size, the signature id's, the
    call targets, and the reference parameters for that table. I used the
    names that are already used for the matching fields of the
    WasmInstanceObject.
    
    The second CL expands the IndirectFunctionTableEntry to work also on
    WasmIndirectFunctionTable objects. All changes to a function table go
    through this class.
    
    The third CL introduces uses of the WasmIndirectFunctionTable. In this
    CL I change the code generation in TurboFan to replace runime calls with
    direct accesses to the new WasmIndirectFunctionTable. Additionally I
    extended the initialization of WasmIndirectFunctionTable, and also
    implement Table.grow.
    
    R=mstarzinger@chromium.org
    
    Bug: v8:7581
    Change-Id: Ic7615c0138562d27897683358ddc0943add1acfe
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1684186
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#62515}
    02f18b2d
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...
COMMON_OWNERS Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
ENG_REVIEW_OWNERS Loading commit data...
INFRA_OWNERS Loading commit data...
INTL_OWNERS 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...
MIPS_OWNERS Loading commit data...
OWNERS Loading commit data...
PPC_OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
S390_OWNERS Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...