1. 23 Sep, 2016 2 commits
    • machenbach's avatar
      Revert of [wasm] Master CL for Binary 0xC changes. (patchset #26 id:490001 of... · e1eee748
      machenbach authored
      Revert of [wasm] Master CL for Binary 0xC changes. (patchset #26 id:490001 of https://codereview.chromium.org/2345593003/ )
      
      Reason for revert:
      Main suspect for tsan:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11893
      
      Also changes layout tests:
      https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/10036
      
      +mips builder:
      https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/4032
      
      Original issue's description:
      > [wasm] Master CL for Binary 0xC changes.
      >
      > [0xC] Convert to stack machine semantics.
      > [0xC] Use section codes instead of names.
      > [0xC] Add elements section decoding.
      > [0xC] Decoding of globals section.
      > [0xC] Decoding of memory section.
      > [0xC] Decoding of imports section.
      > [0xC] Decoding of exports section.
      > [0xC] Decoding of data section.
      > [0xC] Remove CallImport bytecode.
      > [0xC] Function bodies have an implicit block.
      > [0xC] Remove the bottom label from loops.
      > [0xC] Add signatures to blocks.
      > [0xC] Remove arities from branches.
      > Add tests for init expression decoding.
      > Rework compilation of import wrappers and how they are patched.
      > Rework function indices in debugging.
      > Fix ASM->WASM builder for stack machine.
      > Reorganize asm.js foreign functions due to import indices change.
      >
      > R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org
      > BUG=chromium:575167
      > LOG=Y
      >
      > Committed: https://crrev.com/76eb976a67273b8c03c744f64ad850b0432554b9
      > Cr-Commit-Position: refs/heads/master@{#39678}
      
      TBR=ahaas@chromium.org,bradnelson@chromium.org,mtrofin@chromium.org,rossberg@chromium.org,bradnelson@google.com,titzer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:575167
      
      Review-Url: https://codereview.chromium.org/2361053004
      Cr-Commit-Position: refs/heads/master@{#39685}
      e1eee748
    • titzer's avatar
      [wasm] Master CL for Binary 0xC changes. · 76eb976a
      titzer authored
      [0xC] Convert to stack machine semantics.
      [0xC] Use section codes instead of names.
      [0xC] Add elements section decoding.
      [0xC] Decoding of globals section.
      [0xC] Decoding of memory section.
      [0xC] Decoding of imports section.
      [0xC] Decoding of exports section.
      [0xC] Decoding of data section.
      [0xC] Remove CallImport bytecode.
      [0xC] Function bodies have an implicit block.
      [0xC] Remove the bottom label from loops.
      [0xC] Add signatures to blocks.
      [0xC] Remove arities from branches.
      Add tests for init expression decoding.
      Rework compilation of import wrappers and how they are patched.
      Rework function indices in debugging.
      Fix ASM->WASM builder for stack machine.
      Reorganize asm.js foreign functions due to import indices change.
      
      R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org
      BUG=chromium:575167
      LOG=Y
      
      Review-Url: https://codereview.chromium.org/2345593003
      Cr-Commit-Position: refs/heads/master@{#39678}
      76eb976a
  2. 22 Sep, 2016 1 commit
  3. 20 Sep, 2016 1 commit
  4. 15 Sep, 2016 1 commit
  5. 14 Sep, 2016 1 commit
  6. 02 Sep, 2016 1 commit
  7. 22 Aug, 2016 1 commit
  8. 08 Aug, 2016 1 commit
  9. 02 Aug, 2016 1 commit
  10. 28 Jul, 2016 1 commit
    • ddchen's avatar
      [wasm] Add support for multiple indirect function tables · 0a9d4003
      ddchen authored
      This patch updates internal data structures used by V8 to support
      multiple indirect function tables (WebAssembly/design#682). But, since
      this feature is post-MVP, the functionality is not directly exposed and
      parsing/generation of WebAssembly is left unchanged. Nevertheless, it
      is being used in an experiment to implement fine-grained control flow
      integrity based on C/C++ types.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2174123002
      Cr-Commit-Position: refs/heads/master@{#38110}
      0a9d4003
  11. 21 Jul, 2016 1 commit
  12. 11 Jul, 2016 1 commit
  13. 30 Jun, 2016 1 commit
    • ahaas's avatar
      [wasm] Detect unrepresentability in the float32-to-int32 conversion correctly on arm. · de369129
      ahaas authored
      In the current implementation of wasm an unrepresentable input of the
      float32-to-int32 conversion is detected by first truncating the input, then
      converting the truncated input to int32 and back to float32, and then checking
      whether the result is the same as the truncated input.
      
      This input check does not work on arm and arm64 for an input of (INT32_MAX + 1)
      because on these platforms the float32-to-int32 conversion results in INT32_MAX
      if the input is greater than INT32_MAX.  When INT32_MAX is converted back to
      float32, then the result is (INT32_MAX + 1) again because INT32_MAX cannot be
      represented precisely as float32, and rounding-to-nearest results in (INT32_MAX
      + 1). Since (INT32_MAX + 1) equals the truncated input value, the input appears
      to be representable.
      
      With the changes in this CL, the result of the float32-to-int32 conversion is
      incremented by 1 if the original result was INT32_MAX. Thereby the detection of
      unrepresenable inputs in wasm works. Note that since INT32_MAX cannot be
      represented precisely in float32, it can also never be a valid result of the
      float32-to-int32 conversion.
      
      @v8-mips-ports, can you do a similar implementation for mips?
      
      R=titzer@chromium.org, Rodolph.Perfetta@arm.com
      
      Review-Url: https://codereview.chromium.org/2105313002
      Cr-Commit-Position: refs/heads/master@{#37448}
      de369129
  14. 29 Jun, 2016 1 commit
  15. 23 Jun, 2016 1 commit
  16. 20 Jun, 2016 2 commits
  17. 17 Jun, 2016 1 commit
    • ivica.bogosavljevic's avatar
      Implement WASM big-endian support. · d3f3f6c8
      ivica.bogosavljevic authored
      Implement WASM support on big-endian platforms. WASM has
      an implicit requirement that it is running on little-endian
      machine. We achieve WASM support on BE by keeping data
      in memory in little-endian order, and changing data
      endianness before storing to memory and after loading from
      memory.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2034093002
      Cr-Commit-Position: refs/heads/master@{#37065}
      d3f3f6c8
  18. 09 Jun, 2016 1 commit
  19. 30 May, 2016 2 commits
  20. 25 May, 2016 1 commit
    • titzer's avatar
      [wasm] Implement an interpreter for WASM. · e4bb7ff9
      titzer authored
      This interpreter directly decodes and executes WASM binary code for
      the purpose of supporting low-level debugging. It is not currently
      integrated into the main WASM implementation.
      
      R=ahaas@chromium.org,clemensh@chromium.org,rossberg@chromium.org,binji@chromium.org
      BUG=
      
      Review-Url: https://codereview.chromium.org/1972153002
      Cr-Commit-Position: refs/heads/master@{#36497}
      e4bb7ff9