• 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
..
OWNERS Loading commit data...
runtime-array.cc Loading commit data...
runtime-atomics.cc Loading commit data...
runtime-bigint.cc Loading commit data...
runtime-classes.cc Loading commit data...
runtime-collections.cc Loading commit data...
runtime-compiler.cc Loading commit data...
runtime-date.cc Loading commit data...
runtime-debug.cc Loading commit data...
runtime-forin.cc Loading commit data...
runtime-function.cc Loading commit data...
runtime-futex.cc Loading commit data...
runtime-generator.cc Loading commit data...
runtime-internal.cc Loading commit data...
runtime-interpreter.cc Loading commit data...
runtime-intl.cc Loading commit data...
runtime-literals.cc Loading commit data...
runtime-module.cc Loading commit data...
runtime-numbers.cc Loading commit data...
runtime-object.cc Loading commit data...
runtime-operators.cc Loading commit data...
runtime-promise.cc Loading commit data...
runtime-proxy.cc Loading commit data...
runtime-regexp.cc Loading commit data...
runtime-scopes.cc Loading commit data...
runtime-strings.cc Loading commit data...
runtime-symbol.cc Loading commit data...
runtime-test.cc Loading commit data...
runtime-typedarray.cc Loading commit data...
runtime-utils.h Loading commit data...
runtime-wasm.cc Loading commit data...
runtime-weak-refs.cc Loading commit data...
runtime.cc Loading commit data...
runtime.h Loading commit data...