• Andreas Haas's avatar
    [wasm][anyref] Support importing mutable anyref globals · b3e6013e
    Andreas Haas authored
    With this CL we support importing mutable anyref globals. The CL
    contains the following changes:
    
    * We store a reference to the buffer of the imported global in
      `WasmInstance::imported_mutable_globals_buffer`. This FixedArray is
      already used to keep the ArrayBuffers of value-typed imported
      mutable globals alive but was not accessed otherwise.
    
    * We store the offset in the buffer of the imported global in
      `WasmInstance::imported_mutable_globals`. This `Address`-array is
      used for value-typed imported mutalbe globals to store direct
      pointers into the backing store of the ArrayBuffer of the imported
      global.
    
    * In wasm-compiler.cc we generate code to load these fields and then
      load or store globals.
    
    * in module-compiler.cc I removed the counter variable
      `next_imported_mutable_global_index`. The variable was only used for
      a DCHECK. I replaced the DCHECK with a slightly weaker DCHECK now.
    
    * Tests.
    
    R=mstarzinger@chromium.org
    
    Bug: v8:7581
    Change-Id: I11f0f4d8637c98eded5fb2eec44bc8ead8ed5c7b
    Reviewed-on: https://chromium-review.googlesource.com/c/1409169
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#58822}
    b3e6013e
module-instantiate.cc 62.2 KB