1. 14 Mar, 2017 38 commits
  2. 13 Mar, 2017 2 commits
    • eholk's avatar
      [wasm] Initial signal handler · 118c376f
      eholk authored
      This is basically the minimum viable signal handler for Wasm bounds checks.
      It includes the TLS check and the fine grained instructions checks. These
      two checks provide most of the safety for the signal handler. Future CLs will
      add code range and data range checks for more robustness.
      
      The trap handling code and data structures are all in src/trap-handler, with
      the code that actually runs in the signal handler confined to
      src/trap-handler/signal-handler.cc.
      
      This changes adds a new V8 API that the embedder should call from a signal
      handler that will give V8 the chance to handle the fault first. For hosts that
      do not want to implement their own signal handler, we include the option to
      install a simple one. This simple handler is also used for the tests.
      
      When a Wasm module is instantiated, information about each function is passed
      to the trap handler, which is used to classify faults. These are removed during
      the instance finalizer.
      
      Several future enhancements are planned before turning this on by default.
      Obviously, the additional checks will be added to MaybeHandleFault. We are
      also planning to add a two-level CodeObjectData table that is grouped by
      isolates to make cleanup easier and also reduce potential for contending on
      a single data structure.
      
      BUG= https://bugs.chromium.org/p/v8/issues/detail?id=5277
      
      Review-Url: https://codereview.chromium.org/2371833007
      Cr-Original-Original-Commit-Position: refs/heads/master@{#43523}
      Committed: https://chromium.googlesource.com/v8/v8/+/a5af7fe9ee388a636675f4a6872b1d34fa7d1a7a
      Review-Url: https://codereview.chromium.org/2371833007
      Cr-Original-Commit-Position: refs/heads/master@{#43755}
      Committed: https://chromium.googlesource.com/v8/v8/+/338622d7cae787a63cece1f2e79a8b030023940b
      Review-Url: https://codereview.chromium.org/2371833007
      Cr-Commit-Position: refs/heads/master@{#43759}
      118c376f
    • binji's avatar
      Reland moving Atomics builtins to C++ · 65200967
      binji authored
      This reverts the previous revert, commit
      5a04f4fd.
      
      Previously reverted changes:
      
      >    Revert "[SAB] Move Atomics builtins to C++"
      >
      >     This reverts commit 2b9840d8.
      >
      >     Revert "[SAB] Remove unreachable Uint8Clamped atomics paths"
      >
      >     This reverts commit d1160fb1.
      >
      >     Revert "Remove tiny unit test for MinSimple/MaxSimple"
      >
      >     This reverts commit 837760ec.
      >
      >     Revert "Remove infrastructure for experimental JS natives"
      >
      >     This reverts commit 8cfe45b6.
      
      These changes were reverted to improve a perf regression on a Chrome
      bot. Since then, the regression has reappeared, then disappeared again
      all from seemingly unrelated changes.
      
      BUG=v8:6033
      TBR=adamk@chromium.org,hpayer@chromium.org,yangguo@chromium.org
      
      Review-Url: https://codereview.chromium.org/2732213005
      Cr-Commit-Position: refs/heads/master@{#43758}
      65200967