1. 17 Feb, 2022 1 commit
    • Thibaud Michaud's avatar
      [wasm] Handle arguments in stack-switching export wrapper · 921135c7
      Thibaud Michaud authored
      Use the existing generic js-to-wasm wrapper to handle arguments in
      the stack-switching export wrapper, by combining them into a single
      helper function parameterized by a boolean.
      
      If the stack_switch parameter is false, the generated js-to-wasm wrapper
      is the same as before.
      
      If the stack_switch parameter is true, we allocate and switch to the new
      stack before starting to process the parameters. To load the parameters,
      we also keep a pointer to the old stack.
      After the call, we convert the return value according to the return type
      as usual, and then switch back to the parent stack (which may be
      different than the original stack, but has a compatible stack frame
      layout).
      If the stack suspends during the call, control-flow jumps right before
      we deconstruct and leave the frame, and returns the Promise as an
      externref in the return register.
      
      R=ahaas@chromium.org,jkummerow@chromium.org
      CC=fgm@chromium.org
      
      Bug: v8:12191
      Change-Id: If3f8eaba8edebe6e98d4738f79f895fdb5322adc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3460410Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79148}
      921135c7
  2. 08 Dec, 2021 1 commit
  3. 08 Nov, 2021 1 commit
  4. 02 Sep, 2021 1 commit
  5. 16 Aug, 2021 1 commit
  6. 30 Apr, 2021 1 commit
  7. 11 Mar, 2021 3 commits
    • Clemens Backes's avatar
      Reland "[no-wasm] Exclude src/wasm from compilation" · 3f9ff062
      Clemens Backes authored
      This is a reland of 80f5dfda. A condition
      in pipeline.cc was inverted, which lead to a CSA verifier error.
      
      Original change's description:
      > [no-wasm] Exclude src/wasm from compilation
      >
      > This is the biggest chunk, including
      > - all of src/wasm,
      > - torque file for wasm objects,
      > - torque file for wasm builtins,
      > - wasm builtins,
      > - wasm runtime functions,
      > - int64 lowering,
      > - simd scala lowering,
      > - WasmGraphBuilder (TF graph construction for wasm),
      > - wasm frame types,
      > - wasm interrupts,
      > - the JSWasmCall opcode,
      > - wasm backing store allocation.
      >
      > Those components are all recursively entangled, so I found no way to
      > split this change up further.
      >
      > Some includes that were recursively included by wasm headers needed to
      > be added explicitly now.
      >
      > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
      > because it only tests wasm backing stores. This file is excluded from
      > no-wasm builds then.
      >
      > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
      >
      > Bug: v8:11238
      > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73344}
      
      TBR=jgruber@chromium.org
      
      Bug: v8:11238
      Change-Id: I20bd2847a59c68738b5a336cd42582b7b1499585
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      Cq-Include-Trybots: luci.v8.try:v8_linux_verify_csa_rel_ng
      Cq-Include-Trybots: luci.v8.try:v8_linux64_verify_csa_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752867Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73348}
      3f9ff062
    • Clemens Backes's avatar
      Revert "[no-wasm] Exclude src/wasm from compilation" · 92bc3d38
      Clemens Backes authored
      This reverts commit 80f5dfda.
      
      Reason for revert: Fails CSA verification: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20verify%20csa/21766/overview
      
      Original change's description:
      > [no-wasm] Exclude src/wasm from compilation
      >
      > This is the biggest chunk, including
      > - all of src/wasm,
      > - torque file for wasm objects,
      > - torque file for wasm builtins,
      > - wasm builtins,
      > - wasm runtime functions,
      > - int64 lowering,
      > - simd scala lowering,
      > - WasmGraphBuilder (TF graph construction for wasm),
      > - wasm frame types,
      > - wasm interrupts,
      > - the JSWasmCall opcode,
      > - wasm backing store allocation.
      >
      > Those components are all recursively entangled, so I found no way to
      > split this change up further.
      >
      > Some includes that were recursively included by wasm headers needed to
      > be added explicitly now.
      >
      > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
      > because it only tests wasm backing stores. This file is excluded from
      > no-wasm builds then.
      >
      > R=​jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
      >
      > Bug: v8:11238
      > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73344}
      
      Bug: v8:11238
      Change-Id: I93672002c1faa36bb0bb5b4a9cc2032ee2ccd814
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752866
      Auto-Submit: Clemens Backes <clemensb@chromium.org>
      Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/master@{#73346}
      92bc3d38
    • Clemens Backes's avatar
      [no-wasm] Exclude src/wasm from compilation · 80f5dfda
      Clemens Backes authored
      This is the biggest chunk, including
      - all of src/wasm,
      - torque file for wasm objects,
      - torque file for wasm builtins,
      - wasm builtins,
      - wasm runtime functions,
      - int64 lowering,
      - simd scala lowering,
      - WasmGraphBuilder (TF graph construction for wasm),
      - wasm frame types,
      - wasm interrupts,
      - the JSWasmCall opcode,
      - wasm backing store allocation.
      
      Those components are all recursively entangled, so I found no way to
      split this change up further.
      
      Some includes that were recursively included by wasm headers needed to
      be added explicitly now.
      
      backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
      because it only tests wasm backing stores. This file is excluded from
      no-wasm builds then.
      
      R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
      
      Bug: v8:11238
      Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73344}
      80f5dfda
  8. 15 Feb, 2021 1 commit
  9. 09 Feb, 2021 1 commit
  10. 18 Jan, 2021 1 commit
  11. 15 Oct, 2020 1 commit
  12. 14 Oct, 2020 1 commit
  13. 25 Sep, 2020 1 commit
  14. 02 Sep, 2020 1 commit
  15. 11 May, 2020 1 commit
  16. 16 Mar, 2020 1 commit
    • Clemens Backes's avatar
      [wasm] Fix registers spilled in DebugBreak frame · e47f9a9d
      Clemens Backes authored
      The set of registers to spill was wrong. Instead of spilling wasm
      parameter registers (like the WasmCompileLazy builtin), we should spill
      all registers that are being used as Liftoff cache registers.
      This CL defines platform-specific WasmDebugBreakFrameConstants which
      hold the set of registers to spill. This set is used in the builtin, and
      will later be used for inspecting the spilled registers.
      
      In order to iterate bit sets more easily in both direction (MSB to LSB
      or LSB to MSB), we add a base::bits::IterateBits{,Backwards} method
      which provides the respective iterators.
      
      R=jkummerow@chromium.org
      CC=thibaudm@chromium.org
      
      Bug: v8:10222
      Change-Id: I73ecbdff9b29e244c478b404063c0c9ee25bc821
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2102570Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66715}
      e47f9a9d
  17. 02 Mar, 2020 1 commit
  18. 21 Feb, 2020 1 commit
  19. 25 Oct, 2019 1 commit
  20. 27 Jun, 2019 1 commit
  21. 14 Jun, 2019 1 commit
  22. 29 May, 2019 1 commit
  23. 28 May, 2019 2 commits
  24. 24 May, 2019 1 commit
  25. 22 May, 2019 1 commit
  26. 19 Dec, 2018 1 commit
  27. 07 Dec, 2018 1 commit
  28. 29 May, 2018 1 commit
    • jgruber's avatar
      [masm] Don't push CodeObject when entering INTERNAL frames · 75763183
      jgruber authored
      The code slot of internal frames seems to be basically unused.
      As always, there are exceptions:
      
      1. In elements.cc we check whether the current code object is the apply
      builtin. We can use a heap lookup through the frame's pc instead.
      2. In isolate.cc we store a reference to the frame's code object to try
      and pack it into the minidump. This can safely be skipped.
      
      Remaining use-sites in frames.cc all skip INTERNAL frames by using the
      JavaScriptFrameIterator.
      
      Bug: v8:6666
      Change-Id: I93c5035812838bbae5109415450915db12497b9c
      Reviewed-on: https://chromium-review.googlesource.com/1075047
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53409}
      75763183
  29. 16 Apr, 2018 1 commit
  30. 10 Apr, 2018 2 commits
  31. 03 Apr, 2018 1 commit
  32. 08 Dec, 2017 1 commit
  33. 30 Nov, 2017 1 commit
    • Georgia Kouveli's avatar
      [arm64] ArgumentsAdaptorTrampoline fix for jssp removal. · 1228c556
      Georgia Kouveli authored
      Even though a previous patch made the number of slots pushed/claimed on
      the stack aligned, the boundary between frames was not a multiple of
      two slots as well. We were pushing the number of arguments (which belongs
      in the ArgumentAdaptor frame) together with the arguments to pass to the
      callee (which belong to the frame of the callee). Those need to be
      separated so we can drop the arguments without messing up the alignment.
      
      Bug: v8:6644
      Change-Id: I259c58db33a7c2726e5a3c74bcd67496f607d1d0
      Reviewed-on: https://chromium-review.googlesource.com/793047Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
      Cr-Commit-Position: refs/heads/master@{#49759}
      1228c556
  34. 13 Oct, 2017 1 commit
  35. 11 Oct, 2017 1 commit
    • Georgia Kouveli's avatar
      [arm64] Update BuiltinContinuation frames for jssp alignment. · a63f045c
      Georgia Kouveli authored
      Adds some necessary padding to ensure the frame is 16-byte aligned.
      We don't yet consider the bailout state, which will be handled separately.
      
      This patch also improves the code generated for ContinueTo*Builtin* stubs.
      
      Finally, it adds a test that checks the return value for Array.map in
      the case where a LAZY deopt results in a topmost builtin continuation
      frame - this is easy to break if the padding for the result is done
      incorrectly in NotifyBuiltinContinuation, but was not detected by existing
      tests.
      
      Bug: v8:6644
      Change-Id: Id1a294950cdf535e2bfdb0ed27c67f077ec34f8a
      Reviewed-on: https://chromium-review.googlesource.com/704835
      Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48465}
      a63f045c
  36. 28 Sep, 2017 1 commit