1. 21 Nov, 2017 38 commits
  2. 20 Nov, 2017 2 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