1. 21 Nov, 2017 30 commits
  2. 20 Nov, 2017 10 commits
    • Ben Smith's avatar
      Enforce restriction on ARM strex{b,h} instruction · 44c52f7b
      Ben Smith authored
      The strex (Store Exclusive) instruction has the form:
      
          strex rd, rt, [rn]
      
      It stores the value in register rt at the address in register rn. If the
      store succeeds, then 0 is stored in rd, otherwise 1 is stored. The ARM
      manual says that behavior is "unpredictable" if d == n || d == t (i.e.
      those registers are aliased).
      
      We were not checking for this behavior in the assembler or simulator,
      and as a result were generating output where it occurred. This didn't
      always break; the tests we run on ARM hardware run this instruction and
      pass.
      
      BUG: chromium:786168
      
      Change-Id: I57fe3a1db406eac96eb04ef2246f6970548d3cf9
      Reviewed-on: https://chromium-review.googlesource.com/777777Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarMircea Trofin <mtrofin@chromium.org>
      Commit-Queue: Ben Smith <binji@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49513}
      44c52f7b
    • Mircea Trofin's avatar
      Reland "[wasm] Data structures for JIT-ing wasm to native memory." · 0cd6166c
      Mircea Trofin authored
      This is a reland of c71fd20c
      Original change's description:
      > [wasm] Data structures for JIT-ing wasm to native memory.
      >
      > This CL introduces the structures for JIT-ing wasm on the native heap.
      > They are described in detail at go/wasm-on-native-heap-stage-1
      >
      > Briefly:
      > - WasmCodeManager manages memory for modules and offers an interior
      > pointer lookup (i.e. PC -> WasmCode)
      > - WasmCode represents code, including reloc info. It holds wasm
      > specific data, like function index, and runtime information, like trap
      > handler info.
      > - NativeModule manages memory for one module.
      >
      > Tests cover the allocation and lookup aspects, following that current
      > regression tests cover the JITed code. A separate CL will enable
      > JITing using the new data structures.
      >
      > Bug: v8:6876
      > Change-Id: I1731238409001fe97c97eafb7a12fd3922da6a42
      > Reviewed-on: https://chromium-review.googlesource.com/767581
      > Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49501}
      
      Bug: v8:6876
      Change-Id: Ifd1a4c23de8150dbdc75f059cd657e9670b15c9b
      Reviewed-on: https://chromium-review.googlesource.com/779680
      Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
      Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49512}
      0cd6166c
    • Michael Achenbach's avatar
      [test] Run the future variant on a subset of bots. · 7e2033eb
      Michael Achenbach authored
      TBR=sergiyb@chromium.org
      
      Bug: chromium:786938,v8:7106
      Change-Id: Id60354be899187e4c09d53434ad70019c857f9e9
      Reviewed-on: https://chromium-review.googlesource.com/779725
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49511}
      7e2033eb
    • Michael Achenbach's avatar
      [test] Prepare activating future variant on bots · f93b14b0
      Michael Achenbach authored
      TBR=sergiyb@chromium.org
      
      Bug: v8:7106,chromium:786938
      Change-Id: Iddd573013cb9322d1df06038f10f0e49a6497110
      Reviewed-on: https://chromium-review.googlesource.com/779721
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49510}
      f93b14b0
    • Georg Neis's avatar
      [bigint,compiler] Support bigints in typeof operator. · a4637502
      Georg Neis authored
      This adds a bigint branch to the typed-optimization of the TypeOf
      bytecode. The implementation of the TestTypeOf bytecode already supports
      bigints, as does the Typeof stub.
      
      R=jarin@chromium.org
      
      Bug: v8:6791
      Change-Id: Ib9a21f3fc48d57873b014a01c68a143bfb8ac6c6
      Reviewed-on: https://chromium-review.googlesource.com/778880
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49509}
      a4637502
    • Clemens Hammacher's avatar
      Reland "[wasm] Unify deoptimization data" · 3380e9a4
      Clemens Hammacher authored
      This is a reland of 236298ac.
      
      Original change's description:
      > [wasm] Unify deoptimization data
      >
      > Add methods to add deoptimization data and use them from all the places
      > where we currently add them manually. Also add them to wasm-to-wasm
      > wrappers compiled on table set, which was missing before, leading to
      > the referenced bug.
      >
      > R=ahaas@chromium.org
      >
      > Bug: chromium:779292
      > Change-Id: Ib9132d9faeb1092c46e22dd8196d201ce5c0942f
      > Reviewed-on: https://chromium-review.googlesource.com/774838
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49452}
      
      Bug: chromium:779292
      Change-Id: I8219305fc894c50904db57e51245733f6613dcd3
      Reviewed-on: https://chromium-review.googlesource.com/778159Reviewed-by: 's avatarMircea Trofin <mtrofin@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49508}
      3380e9a4
    • Michael Achenbach's avatar
      Revert "[test] Add Liftoff variant" · b5bdb762
      Michael Achenbach authored
      This reverts commit 712fa675.
      
      Reason for revert: Infra side change was reverted. Please reland
      after it stays in for a bot cycle...
      
      Original change's description:
      > [test] Add Liftoff variant
      > 
      > Add a variant for testing the current state of the Liftoff
      > implementation.
      > This variant will only run on a subset of the bots, just like the
      > --future variant.
      > 
      > R=​machenbach@chromium.org, hablich@chromium.org
      > 
      > Bug: v8:7088, v8:6600
      > Change-Id: If49fad3a8ed579356504b821a787326754f24e78
      > Reviewed-on: https://chromium-review.googlesource.com/779420
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49504}
      
      TBR=machenbach@chromium.org,hablich@chromium.org,clemensh@chromium.org
      
      Change-Id: Ib6b2e79cea5d9f99f8933c72bbb9d9dddbd6ae07
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7088, v8:6600
      Reviewed-on: https://chromium-review.googlesource.com/779719Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49507}
      b5bdb762
    • Brad Nelson's avatar
      [wasm] Disallow calling wasm constructors without new. · fa268032
      Brad Nelson authored
      BUG=chromium:786021
      R=titzer@chromium.org
      
      Change-Id: I188ea4d639ef9d5ceeab5052e043ec1c9150bd77
      Reviewed-on: https://chromium-review.googlesource.com/778282Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Brad Nelson <bradnelson@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49506}
      fa268032
    • Peter Marshall's avatar
      reland: [heap] Concurrently free ArrayBuffer allocations. · d8981833
      Peter Marshall authored
      Free ArrayBuffer backing stores on a background thread, rather than
      blocking the main thread after processing. Could potentially cause
      contention with the array buffer allocator once JS execution resumes.
      
      The new ArrayBufferCollector class tracks these dead allocations.
      
      Later, the processing of array buffers can happen in parallel.
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      
      Bug: v8:6992
      Change-Id: I2b74f008f79521414374f607ed510f66508af160
      Reviewed-on: https://chromium-review.googlesource.com/779182
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49505}
      d8981833
    • Clemens Hammacher's avatar
      [test] Add Liftoff variant · 712fa675
      Clemens Hammacher authored
      Add a variant for testing the current state of the Liftoff
      implementation.
      This variant will only run on a subset of the bots, just like the
      --future variant.
      
      R=machenbach@chromium.org, hablich@chromium.org
      
      Bug: v8:7088, v8:6600
      Change-Id: If49fad3a8ed579356504b821a787326754f24e78
      Reviewed-on: https://chromium-review.googlesource.com/779420
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49504}
      712fa675