1. 21 Sep, 2017 2 commits
    • Clemens Hammacher's avatar
      [wasm] [decoder] Minor interface change · 9693835a
      Clemens Hammacher authored
      The baseline compiler needs to know the depth in order to access the
      parent block. This is a small CL, but anything that can land before the
      big baseline CL reduced the complexity of the latter.
      
      R=ahaas@chromium.org
      
      Bug: v8:6600
      Change-Id: I2e29cc974908438266adb4301026dfe5fbfb1990
      Reviewed-on: https://chromium-review.googlesource.com/677301Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48112}
      9693835a
    • Clemens Hammacher's avatar
      [wasm] Remove redundant validation · 008d7b2a
      Clemens Hammacher authored
      And add some tests for (seemingly) previously uncovered cases.
      The additional check for unreachable code is not needed any more, since
      polymorphic stack values get assigned a specific type on their first
      use or validation anyway. Hence the first entry in the br_table will
      assign specific types to all polymorphic stack values, and type checking
      will fail if later entries do not match.
      
      R=rossberg@chromium.org
      CC=titzer@chromium.org
      
      Change-Id: I1d0f91f927a2aa5186f874112e91ebffa1f1b3a7
      Reviewed-on: https://chromium-review.googlesource.com/675405Reviewed-by: 's avatarAndreas Rossberg <rossberg@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48109}
      008d7b2a
  2. 19 Sep, 2017 1 commit
    • Clemens Hammacher's avatar
      [cleanup] [wasm] Fix (D)CHECK macros · 2d75dd9b
      Clemens Hammacher authored
      Use the (D)CHECK_{EQ,NE,GT,...} macros instead of (D)CHECK with an
      embedded comparison. This gives better error messages and also does the
      right comparison for signed/unsigned mismatches.
      
      This will allow us to reenable the readability/check cpplint check.
      
      R=ahaas@chromium.org
      
      Bug: v8:6837
      Change-Id: Ic8966dfeacf02b2684eeef23fde99ec2be4ed81e
      Reviewed-on: https://chromium-review.googlesource.com/671364
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48080}
      2d75dd9b
  3. 15 Sep, 2017 1 commit
  4. 14 Sep, 2017 1 commit
  5. 13 Sep, 2017 1 commit
  6. 11 Sep, 2017 2 commits
  7. 01 Sep, 2017 2 commits
  8. 31 Aug, 2017 1 commit
    • Clemens Hammacher's avatar
      [wasm] [decoder] Use inheritance instead of composition · 71b7c4c0
      Clemens Hammacher authored
      ... for AbstractValue and AbstractControl. This allows to access the
      fields directly instead of via {interface_data}, and hence makes the code
      more readable. Also, it makes AbstractValue and AbstractControl
      non-templates. They are also renamed to ValueBase and ControlBase.
      Unfortunately, it requires the introduction of new templates
      ValueWithNamedConstructors and ControlWithNamedConstructors, in order to
      provide correctly typed named constructors (we cannot define implicit
      conversion from {Value,Control}Base to a subtype because of our style
      guide, checked by a presubmit check).
      
      R=titzer@chromium.org
      
      Bug: v8:6600
      Change-Id: Icb7796d040afbf92309333a03d4286fc782f8d1b
      Reviewed-on: https://chromium-review.googlesource.com/643392Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47747}
      71b7c4c0
  9. 30 Aug, 2017 3 commits
  10. 29 Aug, 2017 4 commits
    • Clemens Hammacher's avatar
      [wasm] Fix throwing and catching exceptions · 9ee7e4ec
      Clemens Hammacher authored
      This reimplements functionality that was present before the decoder
      refactoring. It's implemented a bit differently though by generating
      the code for re-throwing an uncaught exception earlier (when generating
      code for the catch).
      
      R=titzer@chromium.org, kschimpf@chromium.org
      
      Bug: v8:6600
      Change-Id: Ie2f11837851c0602ab31506fa63475fc2d0b5047
      Reviewed-on: https://chromium-review.googlesource.com/641550
      Commit-Queue: Brad Nelson <bradnelson@chromium.org>
      Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47687}
      9ee7e4ec
    • Clemens Hammacher's avatar
      Reland "[wasm] Refactor function body decoder" · 54040fff
      Clemens Hammacher authored
      This is a reland of 6b4dc039
      Original change's description:
      > [wasm] Refactor function body decoder
      > 
      > This refactoring separates graph building from wasm decoding. The
      > WasmGraphBuilder is just a consumer of the decoded information.
      > Decoding without any consumer (i.e. just validation) gets 16% faster by
      > this refactoring, because no TFNode* have to be stored in the value
      > stack, and all dynamic tests to determine whether the graph should be
      > build are gone (measured on AngryBots; before: 110.2 +- 3.3ms, after:
      > 92.2 +- 3.1 ms).
      > 
      > This new design will allow us to also attach other consumers, e.g. a
      > new baseline compiler.
      > 
      > R=titzer@chromium.org
      > 
      > Bug: v8:6600
      > Change-Id: I4b60f2409d871a16c3c52a37e515bcfb9dbb8f54
      > Reviewed-on: https://chromium-review.googlesource.com/571010
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47671}
      
      TBR=titzer@chromium.org
      
      Bug: v8:6600
      Change-Id: Idd867c5a1917437de5b6e3de5917cc1c9f194489
      Reviewed-on: https://chromium-review.googlesource.com/640591Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47678}
      54040fff
    • Clemens Hammacher's avatar
      Revert "[wasm] Refactor function body decoder" · 425ede39
      Clemens Hammacher authored
      This reverts commit 6b4dc039.
      
      Reason for revert: Mips build failure: https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/11749
      
      Original change's description:
      > [wasm] Refactor function body decoder
      > 
      > This refactoring separates graph building from wasm decoding. The
      > WasmGraphBuilder is just a consumer of the decoded information.
      > Decoding without any consumer (i.e. just validation) gets 16% faster by
      > this refactoring, because no TFNode* have to be stored in the value
      > stack, and all dynamic tests to determine whether the graph should be
      > build are gone (measured on AngryBots; before: 110.2 +- 3.3ms, after:
      > 92.2 +- 3.1 ms).
      > 
      > This new design will allow us to also attach other consumers, e.g. a
      > new baseline compiler.
      > 
      > R=​titzer@chromium.org
      > 
      > Bug: v8:6600
      > Change-Id: I4b60f2409d871a16c3c52a37e515bcfb9dbb8f54
      > Reviewed-on: https://chromium-review.googlesource.com/571010
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47671}
      
      TBR=titzer@chromium.org,clemensh@chromium.org
      
      Change-Id: I76a50e355f0390cc53a2da4ceedd8830ca20a9c6
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6600
      Reviewed-on: https://chromium-review.googlesource.com/640870Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47672}
      425ede39
    • Clemens Hammacher's avatar
      [wasm] Refactor function body decoder · 6b4dc039
      Clemens Hammacher authored
      This refactoring separates graph building from wasm decoding. The
      WasmGraphBuilder is just a consumer of the decoded information.
      Decoding without any consumer (i.e. just validation) gets 16% faster by
      this refactoring, because no TFNode* have to be stored in the value
      stack, and all dynamic tests to determine whether the graph should be
      build are gone (measured on AngryBots; before: 110.2 +- 3.3ms, after:
      92.2 +- 3.1 ms).
      
      This new design will allow us to also attach other consumers, e.g. a
      new baseline compiler.
      
      R=titzer@chromium.org
      
      Bug: v8:6600
      Change-Id: I4b60f2409d871a16c3c52a37e515bcfb9dbb8f54
      Reviewed-on: https://chromium-review.googlesource.com/571010
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47671}
      6b4dc039
  11. 02 Aug, 2017 3 commits
    • Karl Schimpf's avatar
      Reland "Start migration of try/throw/catch to match proposal." · ad49b7b4
      Karl Schimpf authored
      This is a reland of 470a1001
      Original change's description:
      > Start migration of try/throw/catch to match proposal.
      > 
      > This CL does the first baby steps on moving the current (experimental)
      > exception handling to match that of the WebAssembly proposal.
      > 
      > It does the following:
      > 
      > 1) Use exception tags instead of integers.
      > 
      > 2) Only handle empty exception signatures (i.e. no values associated
      >    with the exception tag.
      > 
      > 3) Only handle one catch clause.
      > 
      > 4) Be sure to rethrow the exception if the exception tag does not match.
      > 
      > Note: There are many things that need to be fixed, and are too
      > numerous to list here. However, the code should have TODO's on each
      > missing parts of the implementation.
      > 
      > Also note that the code currently doesn't handle nested catch blocks,
      > nor does it change the throw value being an integer. Rather, the
      > integer value is still being thrown, and currently is the exception
      > tag. Therefore, we don't build an exception object. This is the reason
      > why this CL doesn't handle exceptions that pass values.
      > 
      > Also, the current implementation still can't handle multiple modules
      > because tag resolution (between) modules has not be implemented yet.
      > 
      > Bug: v8:6577
      > Change-Id: Id6d08b641b3c42d1eec7d4db582f2dab35406114
      > Reviewed-on: https://chromium-review.googlesource.com/591910
      > Reviewed-by: Brad Nelson <bradnelson@chromium.org>
      > Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47087}
      
      Bug: v8:6577
      Change-Id: I41c3309827c292cb787681a95aaef7cf9b931835
      Reviewed-on: https://chromium-review.googlesource.com/598968Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
      Commit-Queue: Brad Nelson <bradnelson@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47100}
      ad49b7b4
    • Ulan Degenbaev's avatar
      Revert "Start migration of try/throw/catch to match proposal." · 41daf8a5
      Ulan Degenbaev authored
      This reverts commit 470a1001.
      
      Reason for revert: GC stress bot failures.
      https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/14522
      
      
      Original change's description:
      > Start migration of try/throw/catch to match proposal.
      > 
      > This CL does the first baby steps on moving the current (experimental)
      > exception handling to match that of the WebAssembly proposal.
      > 
      > It does the following:
      > 
      > 1) Use exception tags instead of integers.
      > 
      > 2) Only handle empty exception signatures (i.e. no values associated
      >    with the exception tag.
      > 
      > 3) Only handle one catch clause.
      > 
      > 4) Be sure to rethrow the exception if the exception tag does not match.
      > 
      > Note: There are many things that need to be fixed, and are too
      > numerous to list here. However, the code should have TODO's on each
      > missing parts of the implementation.
      > 
      > Also note that the code currently doesn't handle nested catch blocks,
      > nor does it change the throw value being an integer. Rather, the
      > integer value is still being thrown, and currently is the exception
      > tag. Therefore, we don't build an exception object. This is the reason
      > why this CL doesn't handle exceptions that pass values.
      > 
      > Also, the current implementation still can't handle multiple modules
      > because tag resolution (between) modules has not be implemented yet.
      > 
      > Bug: v8:6577
      > Change-Id: Id6d08b641b3c42d1eec7d4db582f2dab35406114
      > Reviewed-on: https://chromium-review.googlesource.com/591910
      > Reviewed-by: Brad Nelson <bradnelson@chromium.org>
      > Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47087}
      
      TBR=bradnelson@chromium.org,eholk@chromium.org,kschimpf@chromium.org
      
      Change-Id: I01dc8c40cc1057333a988c1d275ce5f457b0cb64
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6577
      Reviewed-on: https://chromium-review.googlesource.com/598847Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47090}
      41daf8a5
    • Karl Schimpf's avatar
      Start migration of try/throw/catch to match proposal. · 470a1001
      Karl Schimpf authored
      This CL does the first baby steps on moving the current (experimental)
      exception handling to match that of the WebAssembly proposal.
      
      It does the following:
      
      1) Use exception tags instead of integers.
      
      2) Only handle empty exception signatures (i.e. no values associated
         with the exception tag.
      
      3) Only handle one catch clause.
      
      4) Be sure to rethrow the exception if the exception tag does not match.
      
      Note: There are many things that need to be fixed, and are too
      numerous to list here. However, the code should have TODO's on each
      missing parts of the implementation.
      
      Also note that the code currently doesn't handle nested catch blocks,
      nor does it change the throw value being an integer. Rather, the
      integer value is still being thrown, and currently is the exception
      tag. Therefore, we don't build an exception object. This is the reason
      why this CL doesn't handle exceptions that pass values.
      
      Also, the current implementation still can't handle multiple modules
      because tag resolution (between) modules has not be implemented yet.
      
      Bug: v8:6577
      Change-Id: Id6d08b641b3c42d1eec7d4db582f2dab35406114
      Reviewed-on: https://chromium-review.googlesource.com/591910Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
      Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47087}
      470a1001
  12. 31 Jul, 2017 1 commit
    • Clemens Hammacher's avatar
      Revert "[wasm] Allow for arbitrarily long error messages" · 20d25f40
      Clemens Hammacher authored
      This reverts commit 072d0e3e.
      
      Reason for revert: Performance regressions (https://crbug.com/749041).
      
      Original change's description:
      > [wasm] Allow for arbitrarily long error messages
      > 
      > We currently have a fixed limit of 256 characters for error messages
      > generated in the decoder. However, we sometimes embed names in it,
      > which makes it easy to generate a crash by using long names (e.g. for
      > exports) in invalid wasm modules.
      > This CL fixes this by switching to a stream based interface, allowing
      > to pass arbitrary objects to be printed. With this interface, we can
      > easily limit the length of output later.
      > 
      > R=​titzer@chromium.org
      > 
      > Bug: chromium:740023
      > Change-Id: I2848c31c63a015157e2a3a9458b54e523060cd69
      > Reviewed-on: https://chromium-review.googlesource.com/565282
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46860}
      
      TBR=titzer@chromium.org,clemensh@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: chromium:740023, chromium:749041
      Change-Id: I005a60d55dcf01d350230f8d98f715bab9c43886
      Reviewed-on: https://chromium-review.googlesource.com/593807
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47008}
      20d25f40
  13. 25 Jul, 2017 1 commit
    • Clemens Hammacher's avatar
      [wasm] Allow for arbitrarily long error messages · 072d0e3e
      Clemens Hammacher authored
      We currently have a fixed limit of 256 characters for error messages
      generated in the decoder. However, we sometimes embed names in it,
      which makes it easy to generate a crash by using long names (e.g. for
      exports) in invalid wasm modules.
      This CL fixes this by switching to a stream based interface, allowing
      to pass arbitrary objects to be printed. With this interface, we can
      easily limit the length of output later.
      
      R=titzer@chromium.org
      
      Bug: chromium:740023
      Change-Id: I2848c31c63a015157e2a3a9458b54e523060cd69
      Reviewed-on: https://chromium-review.googlesource.com/565282Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46860}
      072d0e3e
  14. 13 Jun, 2017 1 commit
  15. 08 Jun, 2017 1 commit
    • bbudge's avatar
      [WASM] Eliminate SIMD boolean vector types. · 381f7da0
      bbudge authored
      - Eliminates b1x4, b1x8, and b1x16 as distinct WASM types.
      - All vector comparisons return v128 type.
      - Eliminates b1xN and, or, xor, not.
      - Selects take a v128 mask vector and are now bit-wise.
      - Adds a new test for Select, where mask is non-canonical (not 0's and -1's).
      
      LOG=N
      BUG=v8:6020
      
      Review-Url: https://codereview.chromium.org/2919203002
      Cr-Commit-Position: refs/heads/master@{#45795}
      381f7da0
  16. 31 May, 2017 1 commit
    • Clemens Hammacher's avatar
      [wasm] Make prototype flags experimental · 45618a9a
      Clemens Hammacher authored
      Most prototype implementations are not fully supported in the
      interpreter. This is the case at least for exception handling, simd, and
      atomics. Any function can be redirected to the interpreter though,
      either by passing --wasm-interpret-all, or by dynamically redirecting to
      the interpreter for debugging.
      Making the flags experimental keeps the fuzzer from playing around with
      these flags.
      
      Drive-by: Refactor tests which explicitly set the prototype flag to use
      a new scope for that.
      
      R=ahaas@chromium.org
      BUG=chromium:727584
      
      Change-Id: I67da79f579f1ac93c67189afef40c6524bdd4430
      Reviewed-on: https://chromium-review.googlesource.com/519402
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45639}
      45618a9a
  17. 04 May, 2017 1 commit
  18. 19 Apr, 2017 1 commit
    • bbudge's avatar
      [WASM SIMD] Implement primitive shuffles. · 5806d862
      bbudge authored
      - Adds unary Reverse shuffles (swizzles): S32x2Reverse, S16x4Reverse,
        S16x2Reverse, S8x8Reverse, S8x4Reverse, S8x2Reverse. Reversals are
        done within the sub-vectors that prefix the opcode name, e.g. S8x2
        reverses the 8 consecutive pairs in an S8x16 vector.
      
      - Adds binary Zip (interleave) left and right half-shuffles to return a
        single vector: S32x4ZipLeft, S32x4ZipRightS16x8ZipLeft, S16x8ZipRight,
        S8x16ZipLeft, S8x16ZipRight.
      
      - Adds binary Unzip (de-interleave) left and right half shuffles to return
        a single vector: S32x4UnzipLeft, S32x4UnzipRight, S16x8UnzipLeft,
        S16x8UnzipRight, S8x16UnzipLeft, S8x16UnzipRight.
      
      - Adds binary Transpose left and right half shuffles to return
        a single vector: S32x4TransposeLeft, S32x4TransposeRight,
        S16x8TransposeLeft, S16xTransposeRight, S8x16TransposeLeft,
        S8x16TransposeRight.
      
      - Adds binary Concat (concatenate) byte shuffle: S8x16Concat #bytes to
        paste two vectors together.
      
      LOG=N
      BUG=v8:6020
      
      Review-Url: https://codereview.chromium.org/2801183002
      Cr-Commit-Position: refs/heads/master@{#44734}
      5806d862
  19. 05 Apr, 2017 2 commits
    • Clemens Hammacher's avatar
      [wasm] [decoder] Templatize decode function for unchecked decoding · eeaceccb
      Clemens Hammacher authored
      In the C++ wasm interpreter, we decode LEB encoded immediates each time
      we execute the respective instruction. The whole instruction sequence
      was validated before, thus we know that all integers are valid.
      This CL refactors several Decoder methods to allow for either checked
      or unchecked decoding. In the checked case, an error is set if a check
      fails, in the unchecked case, a DCHECK will fail.
      
      This improves performance of the interpreter by 20.5%.
      
      R=ahaas@chromium.org
      BUG=v8:5822
      
      Change-Id: If69efd4f6fbe19d84bfc2f4aa000f429a8e22bf5
      Reviewed-on: https://chromium-review.googlesource.com/468786
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44406}
      eeaceccb
    • Clemens Hammacher's avatar
      [wasm] [decoder] Merge checked_read_leb and consume_leb · 02b4d0e6
      Clemens Hammacher authored
      Both methods decoded a LEB128 encoded integer, but only consume_leb
      incremented the pc pointer accordingly.
      This CL implements consume_leb by using checked_read_leb.
      
      It also refactors a few things:
      1) It removes error_pt, which was only avaible in checked_read_leb.
      2) It renames the error method to errorf, since it receives a format
         string. This also avoids a name clash.
      3) It implements sign extension directly in checked_read_leb instead of
         doing this in the caller.
      
      R=ahaas@chromium.org
      BUG=v8:5822
      
      Change-Id: I8058f57418493861e5df26d4949041f6766d5138
      Reviewed-on: https://chromium-review.googlesource.com/467150
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44405}
      02b4d0e6
  20. 16 Mar, 2017 1 commit
    • Clemens Hammacher's avatar
      [wasm] [interpreter] Implement calling imported functions · f3aeb762
      Clemens Hammacher authored
      When instantiating the wasm interpreter for debugging, we unwrap all
      wasm-to-js wrappers and store the callable objects. The handles are
      stored in a DeferredHandleScope and deleted when the InterpreterHandle
      (store in WasmDebugInfo) is freed.
      A call to an imported function reads the arguments from the stack,
      converts them to JS objects, calls the callable, converts back the
      return value and pushes it onto the stack.
      Reentering the interpreter from the calles JS code is not permitted
      yet, but will be in a follow-up CL.
      Also, indirect calls to imported functions will have to follow.
      
      R=titzer@chromium.org, ahaas@chromium.org
      BUG=v8:5822
      
      Change-Id: I66c35053bccb6cf8d416606e4f840d888ccb3b65
      Reviewed-on: https://chromium-review.googlesource.com/453838
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#43855}
      f3aeb762
  21. 21 Feb, 2017 1 commit
    • bbudge's avatar
      [V8] Implement SIMD Boolean vector types to allow mask registers. · 9fe0b4c7
      bbudge authored
      - Adds new machine types SimdBool4/8/16 for the different boolean vector types.
      - Adds a kSimdMaskRegisters flag for each platform. These are all false for now.
      - Removes Create, ExtractLane, ReplaceLane, Equal, NotEqual, Swizzle and Shuffle
        opcodes from the Boolean types. These are unlikely to be well supported natively,
        and can be synthesized using Select.
      - Changes the signature of Relational opcodes to return boolean vectors.
      - Changes the signature of Select opcodes to take boolean vectors.
      - Updates the ARM implementation of Relational and Select opcodes.
      
      LOG=N
      BUG=v8:4124
      
      Review-Url: https://codereview.chromium.org/2700813002
      Cr-Commit-Position: refs/heads/master@{#43348}
      9fe0b4c7
  22. 10 Feb, 2017 1 commit
  23. 25 Jan, 2017 1 commit
  24. 20 Jan, 2017 1 commit
  25. 19 Jan, 2017 2 commits
  26. 06 Jan, 2017 1 commit
    • mtrofin's avatar
      [wasm] factor lower level utilties out of WasmFullDecoder · ccfb815c
      mtrofin authored
      Separated:
      - decoding of locals
      - loop assignment analysis
      - determination of opcode length
      
      as statics that work on a Decoder. Neither need the context of a
      Module, and were used in scenarios where one wasn't available either.
      
      Changed BodyLocalDecls to match the usecases for the type. In all but
      one (a printer), we want the list (in order of declaration, with
      repetitions) of types of locals.
      
      Removed a now-unnecessary constructor for the WasmFullDecoder.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2610813009
      Cr-Commit-Position: refs/heads/master@{#42115}
      ccfb815c
  27. 04 Jan, 2017 1 commit
  28. 21 Dec, 2016 1 commit