1. 16 Oct, 2017 2 commits
  2. 13 Oct, 2017 1 commit
  3. 04 Oct, 2017 1 commit
  4. 02 Oct, 2017 1 commit
  5. 28 Sep, 2017 1 commit
  6. 27 Sep, 2017 1 commit
  7. 25 Sep, 2017 1 commit
    • Karl Schimpf's avatar
      Add capability of throwing values in WASM · 49106e48
      Karl Schimpf authored
      This is a second attempt at landing CL 644866 which was reverted by
      CL 667019.
      
      Extends the current implementation of WASM exceptions to be able to
      throw exceptions with values (not just tags).
      
      A JS typed (uint_16) array is used to hold the thrown values. This
      allows all WASM types to be stored (i32, i64, f32, and f64) as well as
      be inspected in JS.
      
      The previous CL was reverted because the WASM compiler made calls to
      run time functions with tagged objects, which must not be done. To fix
      this, all run time calls use the thread-level isolate to hold the
      exception being processed.
      
      Bug: v8:6577
      Change-Id: I4b1ef7e2847b71a2fab8e9934a0531057db9de63
      Reviewed-on: https://chromium-review.googlesource.com/677056
      Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarEric Holk <eholk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48148}
      49106e48
  8. 15 Sep, 2017 2 commits
  9. 14 Sep, 2017 1 commit
  10. 13 Sep, 2017 1 commit
  11. 07 Sep, 2017 1 commit
  12. 05 Sep, 2017 1 commit
  13. 19 Aug, 2017 2 commits
  14. 18 Aug, 2017 1 commit
  15. 10 Aug, 2017 2 commits
  16. 09 Aug, 2017 1 commit
  17. 08 Aug, 2017 1 commit
    • Mircea Trofin's avatar
      [wasm] Consolidate ownership of instantiation/specialization parameters · f9d4090b
      Mircea Trofin authored
      This CL consolidates ownership of parameters used to compile code (which
      we always specialize) in 2 places:
      - ModuleEnv for compile-time data
      - WasmCompiledModule for runtime data
      
      The parameters in question are: memory size and start; globals start; 
      address of indirect function tables (and their signatures, respectively); 
      and address to be used for wasm call sites.
      
      Ideally, we'd collapse this down to one place, however, we need
      specialization data to survive serialization. We can achieve this we get off 
      the GC heap and use a different wasm code serializer.
      
      The CL:
      - removes aliasing of parts of the specialization data, and moves
      to using ModuleEnv as a token of passing around compile-time data, instead
      of a mixture of ModuleEnv, WasmInstance, and some other structures. ModuleEnv
      is responsible for providing a consistent view of the specialization data,
      e.g. valid memory sizes (multiples of page size), and matching sized function
      tables and signatures.
      
      - removes WasmInstance, as its data is now contained by ModuleEnv.
      
      - removes ModuleBytesEnv. We now pass the wire bytes explicitly. They can't
      always be assumed as present (e.g. streaming compilation), and probably more
      refactoring may need to happen once streaming compilation lands and we
      better understand our dependencies.
      
      Change-Id: Id7e6f2cf29e51b5756eee8b6f8827fb1f375e5c3
      Reviewed-on: https://chromium-review.googlesource.com/592531
      Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47229}
      f9d4090b
  18. 04 Aug, 2017 1 commit
  19. 03 Aug, 2017 2 commits
  20. 02 Aug, 2017 1 commit
  21. 27 Jul, 2017 1 commit
    • Mircea Trofin's avatar
      [wasm] Explicit opt-out of stack checks and traps · be915fd7
      Mircea Trofin authored
      We've been passing a context to the compiler, which turns out to be
      solely used to determine if we're executing in a specific cctest configuration.
      
      This change adds a configuration to the graph builder that we can use to
      explicitly opt out of stack checks and traps. CcTests default to opting out,
      except for the few that don't.
      
      Bug: 
      Change-Id: I4724e31c2a62e9b3ab4feadb788287c374b39f53
      Reviewed-on: https://chromium-review.googlesource.com/585779Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46943}
      be915fd7
  22. 19 Jul, 2017 1 commit
    • Clemens Hammacher's avatar
      [base] Remove pre-c++11 restrictions of macros · d16b45eb
      Clemens Hammacher authored
      Before the existence of "= delete", we were enforcing that the
      DISALLOW_* macros were used in the private: section of classes only.
      This is not needed any more, hence remove the comment on the macros.
      
      Also, introduce macros for making types move-only, and use them
      instead of our special macro in wasm.
      
      R=bmeurer@chromium.org
      CC=titzer@chromium.org
      
      Change-Id: Iceba456fb0a32ae67defe16e35b865db8c8da500
      Reviewed-on: https://chromium-review.googlesource.com/577687Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46773}
      d16b45eb
  23. 18 Jul, 2017 2 commits
    • Clemens Hammacher's avatar
      [wasm] Make more central data structure move-only · 043f4cd5
      Clemens Hammacher authored
      This makes all data structures containing non-trivially-copyable fields
      move-only, to prevent security and performance bugs.
      
      Drive-by: Fix smaller performance bugs found by this refactoring.
      
      R=titzer@chromium.org
      
      Change-Id: I6802ac3591534c2ab5cacb2ca42b737f3b7fa801
      Reviewed-on: https://chromium-review.googlesource.com/576170Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46747}
      043f4cd5
    • Clemens Hammacher's avatar
      [wasm] Make signature map move-only · 0725ff15
      Clemens Hammacher authored
      Signature maps should only be updated, but never copied. We had a bug
      because we accidentally updated a copy of the map. This refactoring
      prevents any such bugs in the future, and fixes more occurences where
      we accidentally copied structs containing a signature map (the move-only
      constraint also extends to all structs containing a signature map).
      
      Drive-by: Make InstanceBuilder::NeedsWrappers const.
      
      R=titzer@chromium.org
      
      Bug: chromium:741750
      Change-Id: Id919203d8c4078e608a1163e5c790c97d06a9753
      Reviewed-on: https://chromium-review.googlesource.com/571791Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46728}
      0725ff15
  24. 10 Jul, 2017 3 commits
  25. 07 Jul, 2017 1 commit
    • titzer's avatar
      [wasm] Introduce instance types for WebAssembly.* objects. · 17001a05
      titzer authored
      This CL refactors the internal representation of JavaScript-exposed
      WebAssembly objects to be more like other such objects in V8. By introducing
      a new instance type for each of the JS-exposed types, we get more robust
      typechecking without using embedder fields (which were previously used
      when these objects where instance type JS_API_OBJECT).
      
      In addition to the new instance types, the subclasses X of JSObject
      (WasmInstanceObject, WasmMemoryObject, WasmModuleObject, WasmTableObject)
      now have appropriate Is##X() methods on Object and are now robust.
      
      BUG=v8:6547
      CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng
      
      Review-Url: https://codereview.chromium.org/2964943002
      Cr-Commit-Position: refs/heads/master@{#46475}
      17001a05
  26. 03 Jul, 2017 1 commit
    • Clemens Hammacher's avatar
      [wasm] Decode local names for debugging · 07752032
      Clemens Hammacher authored
      When providing scope information (containing the value of local
      variables of live stack frames), decode the local variable names of all
      functions in a wasm module and store this in the WasmDebugInfo
      structure.
      Use these names to actually name the reported locals, instead of using
      the default names "param#<d>" and "local#<d>". These names are only used
      as fallbacks for locals which were not assigned a name.
      
      R=titzer@chromium.org,kozyatinskiy@chromium.org
      BUG=v8:6245
      
      Change-Id: Ibf7d30e392248ef5590177cd8b6329239b45e018
      Reviewed-on: https://chromium-review.googlesource.com/548495
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46379}
      07752032
  27. 29 Jun, 2017 1 commit
  28. 28 Jun, 2017 1 commit
  29. 27 Jun, 2017 2 commits
  30. 26 Jun, 2017 1 commit
  31. 23 Jun, 2017 1 commit