1. 19 Mar, 2021 1 commit
  2. 12 Mar, 2021 1 commit
    • Milad Fa's avatar
      PPC/s390: [wasm][liftoff] Avoid x28 even without pointer compression · f468a85d
      Milad Fa authored
      Port 8d0f5a04
      
      Original Commit Message:
      
          Due to a recent change Liftoff used different register configurations
          in the pointer-compression and no-pointer-compression setups. This
          caused a mismatch between the registers used by Liftoff and the
          registers spilled by the WasmDebugBreak builtin.
      
          With this CL the same register configuration is used both with and
          without pointer compression. Even without x28 there are 24 registers
          that can be used. Moreover, 24 registers can be spilled without
          padding, which would be needed with 25 registers to preserve stack
          alignment.
      
          Drive-by change: Use Reglist in frame-constants on all platforms.
      
      R=ahaas@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
      BUG=
      LOG=N
      
      Change-Id: Ibad93faeaba88f929db16d239858da6e45ca673b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756550
      Commit-Queue: Milad Fa <mfarazma@redhat.com>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarJunliang Yan <junyan@redhat.com>
      Cr-Commit-Position: refs/heads/master@{#73379}
      f468a85d
  3. 23 Feb, 2021 1 commit
  4. 02 Feb, 2021 1 commit
    • Milad Fa's avatar
      PPC/s390: Fix frame size to account for q registers · f8360140
      Milad Fa authored
      Port 45b99aaa
      
      Original Commit Message:
      
          In https://crrev.com/c/2645694 we push the full q registers before lazy
          compile, but we did not change the fixed frame size to account for the
          wider registers being pushed.
      
          This manifested in the frame having data like:
      
          (gdb) x/10xg start.ptr_
          0x7f5576ff3eb0: 0x0000000000000000      0x0000336b08202759
          0x7f5576ff3ec0: 0x7ff000007f801000      0x0000000000000000
          0x7f5576ff3ed0: 0x7ff000007f801001      0x0000000000000000
          0x7f5576ff3ee0: 0x7ff000007f801002      0x0000000000000000
          0x7f5576ff3ef0: 0x7ff000007f801003      0x0000000000000000
      
          The GC then walks part of this frame, thinking that 0x7ff000007f801003
          is a heap object, and then crashes.
      
          Add some static_asserts (similar to builtins-x64) to remind ourselves
          that the pushed registers have to match the size in frame constants.
      
      R=zhin@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
      BUG=
      LOG=N
      
      Change-Id: I994f1b7fecbb24ea97d846b1eed98201bc3b08ad
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2669308Reviewed-by: 's avatarJunliang Yan <junyan@redhat.com>
      Commit-Queue: Milad Fa <mfarazma@redhat.com>
      Cr-Commit-Position: refs/heads/master@{#72496}
      f8360140
  5. 29 Jan, 2021 1 commit
  6. 03 Sep, 2020 1 commit
  7. 16 Mar, 2020 2 commits
    • Milad Farazmand's avatar
      PPC/s390: [wasm] Load register values from DebugBreak frame · fcf5d2a7
      Milad Farazmand authored
      Port ae03752f
      
      Original Commit Message:
      
          This implements inspection of live registers on breakpoints in Liftoff.
          To that end, the frame pointer of the WasmDebugBreak frame is remembered
          when iterating the stack. Based on a platform-specific implementation of
          {WasmDebugBreakFrameConstants}, the offset of the respective register
          within that frame is computed, and the value is read from the frame.
      
          As a drive-by, the wasm debug side table is storing register codes as
          liftoff codes, which can also store register pairs (needed for i64 on
          32-bit platforms, and for SIMD, which is not supported yet).
      
      R=clemensb@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I1f4a52c349bd57098f633c5fd641642695b6fe96
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2106294Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
      Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#66737}
      fcf5d2a7
    • Milad Farazmand's avatar
      PPC/s390: [wasm] Fix registers spilled in DebugBreak frame · e54259ee
      Milad Farazmand authored
      Port e47f9a9d
      
      Original Commit Message:
      
          The set of registers to spill was wrong. Instead of spilling wasm
          parameter registers (like the WasmCompileLazy builtin), we should spill
          all registers that are being used as Liftoff cache registers.
          This CL defines platform-specific WasmDebugBreakFrameConstants which
          hold the set of registers to spill. This set is used in the builtin, and
          will later be used for inspecting the spilled registers.
      
          In order to iterate bit sets more easily in both direction (MSB to LSB
          or LSB to MSB), we add a base::bits::IterateBits{,Backwards} method
          which provides the respective iterators.
      
      R=clemensb@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: Ic308a7712f080e43a0c45f496b087ce8450f657a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2105563Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
      Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#66736}
      e54259ee
  8. 25 Oct, 2019 2 commits
  9. 30 Sep, 2019 1 commit
  10. 28 May, 2019 1 commit
  11. 22 May, 2019 1 commit
  12. 15 Mar, 2019 1 commit
  13. 15 Jan, 2019 1 commit
  14. 02 Jan, 2019 1 commit
  15. 10 Oct, 2018 1 commit
    • Ben L. Titzer's avatar
      [wasm] Use a tuple as the instance for JS imports · a2b34806
      Ben L. Titzer authored
      This CL refactors the implementation of WASM->JS import wrappers in order
      to make the wrapper code shareable. Instead of specializing to the import
      index, we use a tuple as the object ref in the both the import and indirect
      tables. The tuple allows the wrapper code to load both the calling
      instance and the target callable, rather than relying on code specialization.
      
      This requires some tricky codegen machinery, because WASM call descriptors
      expect an instance argument in a given register, yet the wrappers receive
      a tuple, the code generator must generate a prologue that loads the
      instance (and the callable), since it is not possible to express this at
      the graph level.
      
      R=mstarzinger@chromium.org
      CC=clemensh@chromium.org
      
      Change-Id: Id67e307f7f5089e776f5439a53b5aee4b76934b6
      Reviewed-on: https://chromium-review.googlesource.com/c/1268237
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56520}
      a2b34806
  16. 19 Jun, 2018 1 commit
  17. 29 May, 2018 1 commit
  18. 10 Apr, 2018 1 commit
  19. 02 Feb, 2018 1 commit
  20. 03 Aug, 2017 1 commit
  21. 01 Aug, 2017 1 commit
  22. 15 Mar, 2016 1 commit
  23. 26 Feb, 2016 1 commit
    • joransiu's avatar
      S390: Initial impl of S390 asm, masm, code-stubs,... · 23cf6592
      joransiu authored
      Initial commit with the bulk of the src/s390/* changes
      along with associated changes to the build toolchain for
      the new files.
      
      A minor update to V8PRIuPTR definition for Mac OS X
      affecting 32-bit S390 sim compilations.
      
      R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1725243004
      
      Cr-Commit-Position: refs/heads/master@{#34331}
      23cf6592