1. 08 Oct, 2019 1 commit
  2. 30 Jan, 2019 1 commit
  3. 29 Aug, 2018 1 commit
  4. 27 Jul, 2018 1 commit
    • Ben L. Titzer's avatar
      [wasm] Support 4GiB memories in Liftoff · 352e408b
      Ben L. Titzer authored
      Add codegen support for up to 4GiB memories in Liftoff code.
      
      This CL also adds three new mjsunit tests that stress large WASM
      memories (1, 2, and 4 GiB) and checks that accesses near these
      boundaries properly generate traps.
      
      Note there is still some trickiness around the setting of:
        1.) the flag --wasm-max-mem-pages
        2.) wasm-limits.h kSpecMaxWasmMemoryPages = 65536
        3.) wasm-limits.h kV8MaxWasmMemoryPages = 32767
      
      In particular, the allocation of memories is still limited to
      3.) and the runtime flag can only lower this limit.
      
      The above means that the tests for 2GiB and 4GiB memories will silently
      OOM by design until 3.) is changed (though they currently pass with
      manual testing). I argue it is better to include these tests up front,
      since they will immediately trigger if their memory allocation succeeds.
      
      Therefore the plan is to lift the restriction on 3.) after removing
      all other other internal V8 limitations including array buffers and views.
      
      R=clemensh@chromium.org
      CC=mstarzinger@chromium.org
      BUG=v8:7881
      
      Change-Id: I3205ac2daf5c9a84364c670a2c3ef2258e5649f6
      Reviewed-on: https://chromium-review.googlesource.com/1151309
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54754}
      352e408b
  5. 18 Oct, 2017 1 commit
    • Andreas Haas's avatar
      [wasm] Change the memory access offset to pointer size · 50ecc42c
      Andreas Haas authored
      TurboFan expects the offset input of a Load or Store node to be a
      pointer-size input, i.e. an int32 input on 32-bit platforms, and int64
      on 64-bit platforms. In WebAssembly we always provided 32-bit offset
      though, which caused problems when the high word of the register which
      contained the offset was not empty.
      
      With this CL we change the offset input to int64 on 64-bit platforms.
      In addition we also change the type of the memory_size_ node to int64,
      so that that we do not have to adjust the type of the memory size at
      every memory load.
      
      This CL will cause performance regressions but is necessary for
      correctness and to avoid crashes.
      
      R=titzer@chromium.org
      
      Bug: chromium:766666
      Change-Id: I5301e108d05e125258d2a06d500c1b75e91697b8
      Reviewed-on: https://chromium-review.googlesource.com/723379Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48689}
      50ecc42c