• Andreas Haas's avatar
    [wasm] Introduce WasmIndirectFunctionTable · 2fe2a08b
    Andreas Haas authored
    This is the first of three CLs which refactors 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=jkummerow@chromium.org
    
    Bug: v8:7581
    Change-Id: I0ecfcb9565e992ddba087d46c1f0e952abfa5822
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1681134Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#62492}
    2fe2a08b
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...