1. 06 Apr, 2017 1 commit
  2. 28 Mar, 2017 1 commit
  3. 17 Mar, 2017 1 commit
  4. 23 Feb, 2017 1 commit
  5. 10 Feb, 2017 1 commit
    • ahaas's avatar
      [wasm] Do not use setjmp/longjmp in cctests. · 79570f87
      ahaas authored
      The use of setjmp/longjmp makes the cctests in test-run-wasm and
      test-run-wasm-64 flaky on Windows, and I think that it is better not
      to use it. With this CL I replace it as follows:
      
      Similar to the setjmp/longjmp implementation we still call a C
      function when a trap happens. However, instead of calling longjmp in
      this C function we just set a flag which indicates that a trap
      happened and then return. After we return from the C function we leave
      the frame of the current wasm function and return with a RET
      instruction. At the end of a test the wasm test runner checks the flag
      to see if a trap happened.
      
      Please take a special look at the LeaveFrame function on arm64.
      
      R=titzer@chromium.org, clemensh@chromium.org, v8-arm-ports@googlegroups.com
      CC=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2685583003
      Cr-Commit-Position: refs/heads/master@{#43095}
      79570f87
  6. 02 Feb, 2017 1 commit
  7. 20 Jan, 2017 1 commit
  8. 19 Jan, 2017 2 commits
  9. 18 Jan, 2017 1 commit
  10. 15 Jan, 2017 1 commit
  11. 13 Jan, 2017 2 commits
  12. 12 Jan, 2017 4 commits
  13. 09 Jan, 2017 1 commit
  14. 21 Dec, 2016 1 commit
  15. 16 Dec, 2016 1 commit
  16. 15 Dec, 2016 3 commits
    • clemensh's avatar
      Revert of [wasm] Make WasmRunner the central test structure (patchset #5... · 5993a116
      clemensh authored
      Revert of [wasm] Make WasmRunner the central test structure (patchset #5 id:80001 of https://codereview.chromium.org/2551043002/ )
      
      Reason for revert:
      Win64 dbg failures
      
      Original issue's description:
      > [wasm] Make WasmRunner the central test structure
      >
      > The WasmRunner now always holds a TestingModule, and allows to add
      > several functions to it. The prepares a change to always run wasm code
      > with a full module behind it, removing the special handling for "no wasm
      > instance" at runtime (http://crrev.com/2551053002).
      > This CL here also templatizes the WasmRunner such that the Call method must
      > be called with the same signature specified for the WasmRunner. This
      > already catched several mismatches there.
      >
      > R=titzer@chromium.org, ahaas@chromium.org
      > BUG=v8:5620
      >
      > Review-Url: https://codereview.chromium.org/2551043002
      > Cr-Commit-Position: refs/heads/master@{#41728}
      > Committed: https://chromium.googlesource.com/v8/v8/+/2ff59062314e9b86bcc28dfaa53cedf2d98e3a13
      
      TBR=ahaas@chromium.org,titzer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5620
      
      Review-Url: https://codereview.chromium.org/2583543002
      Cr-Commit-Position: refs/heads/master@{#41732}
      5993a116
    • clemensh's avatar
      [wasm] Make WasmRunner the central test structure · 2ff59062
      clemensh authored
      The WasmRunner now always holds a TestingModule, and allows to add
      several functions to it. The prepares a change to always run wasm code
      with a full module behind it, removing the special handling for "no wasm
      instance" at runtime (http://crrev.com/2551053002).
      This CL here also templatizes the WasmRunner such that the Call method must
      be called with the same signature specified for the WasmRunner. This
      already catched several mismatches there.
      
      R=titzer@chromium.org, ahaas@chromium.org
      BUG=v8:5620
      
      Review-Url: https://codereview.chromium.org/2551043002
      Cr-Commit-Position: refs/heads/master@{#41728}
      2ff59062
    • ahaas's avatar
      [wasm] Introduce the TrapIf and TrapUnless operators to generate trap code. · 7bd61b60
      ahaas authored
      Some instructions in WebAssembly trap for some inputs, which means that the
      execution is terminated and (at least at the moment) a JavaScript exception is
      thrown. Examples for traps are out-of-bounds memory accesses, or integer
      divisions by zero.
      
      Without the TrapIf and TrapUnless operators trap check in WebAssembly introduces 5
      TurboFan nodes (branch, if_true, if_false, trap-reason constant, trap-position
      constant), in addition to the trap condition itself. Additionally, each
      WebAssembly function has four TurboFan nodes (merge, effect_phi, 2 phis) whose
      number of inputs is linear to the number of trap checks in the function.
      Especially for functions with high numbers of trap checks we observe a
      significant slowdown in compilation time, down to 0.22 MiB/s in the sqlite
      benchmark instead of the average of 3 MiB/s in other benchmarks. By introducing
      a TrapIf common operator only a single node is necessary per trap check, in
      addition to the trap condition. Also the nodes which are shared between trap
      checks (merge, effect_phi, 2 phis) would disappear. First measurements suggest a
      speedup of 30-50% on average.
      
      This CL only implements TrapIf and TrapUnless on x64. The implementation is also
      hidden behind the --wasm-trap-if flag.
      
      Please take a special look at how the source position is transfered from the
      instruction selector to the code generator, and at the context that is used for
      the runtime call.
      
      R=titzer@chromium.org
      
      Review-Url: https://codereview.chromium.org/2562393002
      Cr-Commit-Position: refs/heads/master@{#41720}
      7bd61b60
  17. 11 Nov, 2016 1 commit
  18. 10 Nov, 2016 1 commit
  19. 09 Nov, 2016 1 commit
    • ahaas's avatar
      [wasm] Indirect calls without function table cause validation errors. · 4db05d40
      ahaas authored
      The spec defines that indirect calls in WebAssembly code should cause a
      validation error if no function table exists.
      
      The CL contains the following changes:
      1) Throw a validation error for indirect calls if the function table
         not exist.
      2) Do not create TF nodes to throw a runtime error for indirect calls
         if the function table does not exist.
      3) Fix existing unit tests by creating a dummy function table.
      4) Add new a new test which tests that indirect calls without function
         table cause a validation error.
      
      R=rossberg@chromium.org
      CC=titzer@chromium.org
      
      TEST=unittests/AstDecoderTest.IndirectCallsWithoutTableCrash
      
      Review-Url: https://codereview.chromium.org/2484623002
      Cr-Commit-Position: refs/heads/master@{#40852}
      4db05d40
  20. 08 Nov, 2016 1 commit
  21. 07 Nov, 2016 2 commits
    • machenbach's avatar
      Revert of [wasm] Indirect calls without function table cause validation... · 32ec567d
      machenbach authored
      Revert of [wasm] Indirect calls without function table cause validation errors. (patchset #3 id:40001 of https://codereview.chromium.org/2484623002/ )
      
      Reason for revert:
      Speculative revert for blocking roll:
      https://codereview.chromium.org/2479233002/
      
      Original issue's description:
      > [wasm] Indirect calls without function table cause validation errors.
      >
      > The spec defines that indirect calls in WebAssembly code should cause a
      > validation error if no function table exists.
      >
      > The CL contains the following changes:
      > 1) Throw a validation error for indirect calls if the function table
      >    not exist.
      > 2) Do not create TF nodes to throw a runtime error for indirect calls
      >    if the function table does not exist.
      > 3) Fix existing unit tests by creating a dummy function table.
      > 4) Add new a new test which tests that indirect calls without function
      >    table cause a validation error.
      >
      > R=rossberg@chromium.org
      > CC=titzer@chromium.org
      >
      > TEST=unittests/AstDecoderTest.IndirectCallsWithoutTableCrash
      
      TBR=rossberg@chromium.org,titzer@chromium.org,ahaas@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2479283002
      Cr-Commit-Position: refs/heads/master@{#40811}
      32ec567d
    • ahaas's avatar
      [wasm] Indirect calls without function table cause validation errors. · 3de52047
      ahaas authored
      The spec defines that indirect calls in WebAssembly code should cause a
      validation error if no function table exists.
      
      The CL contains the following changes:
      1) Throw a validation error for indirect calls if the function table
         not exist.
      2) Do not create TF nodes to throw a runtime error for indirect calls
         if the function table does not exist.
      3) Fix existing unit tests by creating a dummy function table.
      4) Add new a new test which tests that indirect calls without function
         table cause a validation error.
      
      R=rossberg@chromium.org
      CC=titzer@chromium.org
      
      TEST=unittests/AstDecoderTest.IndirectCallsWithoutTableCrash
      
      Review-Url: https://codereview.chromium.org/2484623002
      Cr-Commit-Position: refs/heads/master@{#40802}
      3de52047
  22. 02 Nov, 2016 1 commit
    • ahaas's avatar
      [wasm] Fix br_table in the wasm interpreter to use varuint32. · a3b77d56
      ahaas authored
      The wasm interpreter crashed because it interpreted the table of
      br_table as a table of uint8, but according to the spec it is a table of
      varint32. Therefore the wasm interpreter misinterpreted 0x80 0x00 as 128
      and not as 0, which caused a crash.
      
      R=tizer@chromium.org
      BUG=chromium:660262
      TEST=cctest/test-run-wasm/RunWasmInterpreted_Regression_660262
      
      Review-Url: https://codereview.chromium.org/2463063002
      Cr-Commit-Position: refs/heads/master@{#40708}
      a3b77d56
  23. 31 Oct, 2016 1 commit
  24. 27 Oct, 2016 1 commit
  25. 26 Oct, 2016 1 commit
  26. 20 Oct, 2016 1 commit
  27. 19 Oct, 2016 1 commit
  28. 17 Oct, 2016 1 commit
  29. 11 Oct, 2016 1 commit
  30. 05 Oct, 2016 3 commits