• Manos Koukoutos's avatar
    [wasm] Simplify 'ref' field for API-defined functions · 48b2b891
    Manos Koukoutos authored
    Design doc:  https://bit.ly/3jEVgzz
    
    Summary:
    We change the context for WasmJSFunction and WasmCapiFunction from a
    tuple containing the instance to a triple WasmAPIFunctionRef =
    {isolate root, context, callable}. This way we do not have to maintain
    the correct instance at runtime. Also, a few places in the code get
    simplified.
    
    Changes:
    - In WasmGraphBuilder, support having a WasmAPIFunctionRef at parameter
      0.
    - Remove unpacking of (instance, callable) tuple from code generators.
    - Remove the part in WasmGraphBuilder and LiftoffCompiler that used to
      set the instance field of the function reference.
    - Modify code that handles the 'ref' field in wasm-objects.*, factory.*
      and c-api.cc.
    - Fix the recorded safepoint address for arm when calling a C function
      from wasm.
    - (Drive-by) Remove WasmAllocatePair.
    
    Bug: v8:11510
    Change-Id: I2a4ef3abaf9da36c4a2d85b434965a40a289b9ec
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3236719
    Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
    Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#77639}
    48b2b891
c-api.cc 107 KB