1. 05 Jun, 2018 1 commit
  2. 01 Jun, 2018 1 commit
  3. 24 May, 2018 1 commit
    • Andreas Haas's avatar
      [wasm] Reimplement WebAssembly.instantiate without desugaring · 8a95da24
      Andreas Haas authored
      At the moment, WebAssembly.instantiate(bytes) is implemented by
      desugaring it to WebAssembly.compile(bytes).then(WebAssembly.instantiate).
      The problem is that the {then} in this snippet is observable. With this
      CL I introduce a CompilationResultResolver which allows to do the
      desugaring internally and thereby make the {then} unobservable.
      Unfortunately the result of WebAssembly.instantiate(bytes) is different
      than the result of WebAssembly.instantiate(module). Therefore I also
      introduced an InstantiationResultResolver for symmetry with
      WebAssembly.compile.
      
      R=mstarzinger@chromium.org
      Bug: chromium:837417
      
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: I2d98e03d65f2ada19041d5a9e2df5da91b24ccca
      Reviewed-on: https://chromium-review.googlesource.com/1059783
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53347}
      8a95da24
  4. 07 May, 2018 1 commit
  5. 30 Apr, 2018 2 commits
  6. 27 Apr, 2018 1 commit
    • Clemens Hammacher's avatar
      [wasm] Split off wasm-linkage.h · 8466b71a
      Clemens Hammacher authored
      Linkage-related methods were declared in wasm-compiler.h and
      implemented in wasm-linkage.cc. This required all users of e.g. wasm
      call descriptors to include the whole wasm compiler header. Also, some
      wasm linkage information is independent of turbofan and also used
      outside of the compiler directory.
      
      This CL splits off wasm-linkage.h (with minimal includes) and puts it
      in src/wasm. This allows to use that information without including
      compiler headers (will clean up several uses in follow-up CLs).
      
      R=mstarzinger@chromium.org, titzer@chromium.org
      
      Bug: v8:7570
      Change-Id: Ifcae70b4ea7932cda30953b325c2b87c4176c598
      Reviewed-on: https://chromium-review.googlesource.com/1013701Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52849}
      8466b71a
  7. 24 Apr, 2018 2 commits
  8. 16 Apr, 2018 1 commit
  9. 14 Apr, 2018 1 commit
    • Jakob Kummerow's avatar
      [ubsan] Change Address typedef to uintptr_t · 2459046c
      Jakob Kummerow authored
      The "Address" type is V8's general-purpose type for manipulating memory
      addresses. Per the C++ spec, pointer arithmetic and pointer comparisons
      are undefined behavior except within the same array; since we generally
      don't operate within a C++ array, our general-purpose type shouldn't be
      a pointer type.
      
      Bug: v8:3770
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779
      Reviewed-on: https://chromium-review.googlesource.com/988657
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52601}
      2459046c
  10. 09 Apr, 2018 1 commit
  11. 06 Apr, 2018 2 commits
    • Michael Achenbach's avatar
      Revert "[cleanup] Refactor the Factory" · 503e07c3
      Michael Achenbach authored
      This reverts commit f9a2e24b.
      
      Reason for revert: gc stress failures not all fixed by follow up.
      
      Original change's description:
      > [cleanup] Refactor the Factory
      > 
      > There is no good reason to have the meat of most objects' initialization
      > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      > this CL changes the protocol between Heap and Factory to be AllocateRaw,
      > and all object initialization work after (possibly retried) successful
      > raw allocation happens in the Factory.
      > 
      > This saves about 20KB of binary size on x64.
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      > Reviewed-on: https://chromium-review.googlesource.com/959533
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52416}
      
      TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org
      
      Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52420}
      503e07c3
    • Jakob Kummerow's avatar
      [cleanup] Refactor the Factory · f9a2e24b
      Jakob Kummerow authored
      There is no good reason to have the meat of most objects' initialization
      logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      this CL changes the protocol between Heap and Factory to be AllocateRaw,
      and all object initialization work after (possibly retried) successful
      raw allocation happens in the Factory.
      
      This saves about 20KB of binary size on x64.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      Reviewed-on: https://chromium-review.googlesource.com/959533
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52416}
      f9a2e24b
  12. 05 Apr, 2018 1 commit
    • jgruber's avatar
      Rename Code::instruction_{start,end,size} functions · 7b29fe43
      jgruber authored
      In order to clarify the difference between, e.g., InstructionStart and
      instruction_start, rename as follows:
      
      Code::instruction_start -> raw_instruction_start
      Code::instruction_end   -> raw_instruction_end
      Code::instruction_size  -> raw_instruction_size
      
      The difference between the camel-case and raw_* function families is
      in how they handle off-heap-trampoline Code objects. For example, when
      called on an off-heap-trampoline: raw_instruction_start returns the
      trampoline's entry point, while InstructionStart returns the off-heap
      code's entry point (located in the .text section of the binary).
      
      Some callsites were updated to call the camel-case function family as
      appropriate.
      
      Bug: v8:6666
      Change-Id: I4a572f47c2d161a853599d7c17879e263b0d1a87
      Reviewed-on: https://chromium-review.googlesource.com/997532
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52387}
      7b29fe43
  13. 04 Apr, 2018 1 commit
  14. 28 Mar, 2018 3 commits
  15. 26 Mar, 2018 1 commit
  16. 23 Mar, 2018 1 commit
  17. 22 Mar, 2018 1 commit
  18. 21 Mar, 2018 1 commit
    • Andreas Haas's avatar
      [wasm] Make multi-return tests wasm-specific · ba5409a6
      Andreas Haas authored
      The multi-return tests and fuzzer used a custom call descriptor which
      was based on the default RegisterConfiguration. This meant that for the
      tests, all available registers could be used to pass parameters and to
      return values. This caused a problem, because in some cases we need a
      scratch register in the frame deconstruction.
      
      With this CL I change both the tests and the fuzzer to use the
      WebAssembly call descriptor. Thereby we only use 2 registers for
      returns, and one of the other registers can be used as scratch
      register.
      
      WebAssembly is the only use case at the moment which wants to return
      values not only through registers but also over the stack. Therefore
      I think it's acceptable to only test the WebAssembly usecase.
      
      R=mstarzinger@chromium.org
      
      Bug: chromium:813288
      Change-Id: I31bed757af5f3e8589d2b3dfb6f0112ddecd1a20
      Reviewed-on: https://chromium-review.googlesource.com/970656Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52099}
      ba5409a6
  19. 28 Feb, 2018 1 commit
    • Andreas Haas's avatar
      [cleanup] Deprecate EnsureEventLoopInitialized · 9bacf523
      Andreas Haas authored
      Due to a recent refactoring the function EnsureEventLoopInitialized on
      the default platform became obsolete. It does not contain a single line
      of code. With this CL we prepare the removal of this function from the
      V8 platform API.
      
      R=rmcilroy@chromium.org
      
      Bug: v8:7310
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: If4d54cd989f8df2f40b322be3b67bb8a482398d0
      Reviewed-on: https://chromium-review.googlesource.com/934221
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51635}
      9bacf523
  20. 12 Feb, 2018 1 commit
  21. 09 Feb, 2018 1 commit
  22. 05 Feb, 2018 1 commit
  23. 02 Feb, 2018 2 commits
  24. 01 Feb, 2018 3 commits
  25. 31 Jan, 2018 5 commits
  26. 30 Jan, 2018 3 commits