1. 03 Apr, 2019 6 commits
    • Michael Starzinger's avatar
      [wasm] Introduce {BranchOnExceptionImmediate} helper. · fbce172c
      Michael Starzinger authored
      This introduces a helper class for the immediates to a "br_on_exn"
      instruction. It is basically a wrapper around a pair of existing
      immediates to simplify PC offset calculations. This is similar to what
      is being done for e.g. {MemoryCopyImmediate} already.
      
      R=clemensh@chromium.org
      BUG=v8:8091
      
      Change-Id: I85a552baa6bfa78304abc6cf9509aef365d47057
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547865Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60586}
      fbce172c
    • Clemens Hammacher's avatar
      [regexp][cleanup] Using 'using' instead of 'typedef' · d78b7a0e
      Clemens Hammacher authored
      Even though both are allowed in the style guide, it recommends to use
      'using', as its syntax is more consistent with the rest of C++.
      This CL turns all typedefs in src/regexp to 'using' declarations.
      
      R=jgruber@chromium.org
      
      Bug: v8:8834
      Change-Id: I2765c3465fec7e8c42c3a84b924522f220ab5676
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545904Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60585}
      d78b7a0e
    • Clemens Hammacher's avatar
      [vector] Rename {is_empty} to {empty} · 38ddf33c
      Clemens Hammacher authored
      All standard containers provide a method named {empty} to check whether
      the container is empty. On {base::Vector}, that method is named
      {is_empty}, while {empty} is an unused factory method for creating an
      empty {Vector}.
      This CL renames {is_empty} to {empty} and removes the unused factory
      method.
      
      R=leszeks@chromium.org
      
      Bug: v8:8834
      Change-Id: I686bd07527801fbe783c412bc241221d8ec3660a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547862
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60584}
      38ddf33c
    • Michael Lippautz's avatar
      [heap] Filter out fillers in worklist during atomic pause marking · cb68c2e3
      Michael Lippautz authored
      They are already filtered by the incremental marker.
      
      Change-Id: If43a16d54a2b0eb7d6a36482d3439fc7191c31a6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549160
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60583}
      cb68c2e3
    • Igor Sheludko's avatar
      Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64" · 42beed97
      Igor Sheludko authored
      This is a reland of 4f051fd5
      
      Relanding after fixing Chromium issues.
      
      Original change's description:
      > [ptr-compr][x64] Temporarily enable pointer compression on x64
      >
      > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > pointer compression in order to keep testing the full pointer mode.
      >
      > Bug: v8:7703
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > Change-Id: Iee725deda813425a6f0722948b54976154f50909
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139
      > Reviewed-by: Michael Hablich <hablich@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60230}
      
      Bug: v8:7703
      Change-Id: Ic2d1c2ae41ec645f34963f5f561c33199c72ef4b
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535819
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60582}
      42beed97
    • Paolo Severini's avatar
      Reland "V8 x64 backend doesn't emit ABI compliant stack frames" · 969cb0c7
      Paolo Severini authored
      This is a reland of 3cda21de
      
      Original change's description:
      > V8 x64 backend doesn't emit ABI compliant stack frames
      > 
      > On 64 bit Windows, the OS stack walking does not work because the V8 x64
      > backend doesn't emit unwinding info and also because it doesn't emit ABI
      > compliant stack frames. See
      > https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit
      > for more details.
      > 
      > This problem can be fixed by observing that V8 frames usually all have the same
      > prolog and epilog:
      > 
      > push rbp,
      > mov rbp, rsp
      > ...
      > pop rbp
      > ret N
      > 
      > and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows
      > should walk through V8 frames. Furthermore, since V8 Code objects are all
      > allocated in the same code-range for an Isolate, it is possible to register a
      > single PDATA/XDATA entry to cover stack walking for all the code generated
      > inside that code-range.
      > 
      > This PR contains changes required to enable stack walking on Win64:
      > 
      > EmbeddedFileWriter now adds assembler directives to the builtins
      > snapshot source file (embedded.cc) to emit additional entries in the .pdata and
      > in the .xdata section of the V8 executable. This takes care of stack walking
      > for embedded builtins. (The case of non-embedded builtins is not supported).
      > The x64 Assembler has been modified to collect the information required to emit
      > this unwind info for builtins.
      > 
      > Stack walking for jitted code is handled is Isolate.cpp, by registering
      > dynamically PDATA/XDATA for the whole code-range address space every time a new
      > Isolate is initialized, and by unregistering them when the Isolate is
      > destroyed.
      > 
      > Stack walking for WASM jitted code is handled is the same way in
      > wasm::NativeModule (wasm/wasm-code-manager.cpp).
      > 
      > It is important to note that Crashpad and Breakpad are already registering
      > PDATA/XDATA to manage and report unhandled exceptions (but not for embedded
      > builtins). Since it is not possible to register multiple PDATA entries for the
      > same address range, a new function is added to the V8 API:
      > SetUnhandledExceptionCallback() can be used by an embedder to register its own
      > unhandled exception handler for exceptions that arise in v8-generated code.
      > V8 embedders should be modified accordingly (code for this is in a separate PR
      > in the Chromium repository:
      > https://chromium-review.googlesource.com/c/chromium/src/+/1474703).
      > 
      > All these changes are experimental, behind:
      > 
      > the 'v8_win64_unwinding_info' build flag, and
      > the '--win64-unwinding-info' runtime flag.
      > 
      > Bug: v8:3598
      > Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Commit-Queue: Paolo Severini <paolosev@microsoft.com>
      > Cr-Commit-Position: refs/heads/master@{#60330}
      
      Bug: v8:3598
      Change-Id: If988baf7d3e4af165b919d6e54c1ad985f8e25e3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534618Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Paolo Severini <paolosev@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#60581}
      969cb0c7
  2. 02 Apr, 2019 19 commits
  3. 01 Apr, 2019 15 commits