1. 04 Dec, 2020 7 commits
  2. 03 Dec, 2020 26 commits
  3. 02 Dec, 2020 7 commits
    • Junliang Yan's avatar
      s390x: Unify VectorReg access on simulator · 736e7144
      Junliang Yan authored
      Cleanup Memcpy and use get/set_simd_register_by_lane
      
      Change-Id: Icbdd838e075d93d75064bd8e47eb95c02f1da9d4
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2568589
      Commit-Queue: Junliang Yan <junyan@redhat.com>
      Reviewed-by: 's avatarMilad Fa <mfarazma@redhat.com>
      Cr-Commit-Position: refs/heads/master@{#71577}
      736e7144
    • Junliang Yan's avatar
      s390x: unify FP register access on simulator · 6cbc7198
      Junliang Yan authored
      Change-Id: Ia92e1e85aa19abb8cc0f756e5334a539cf604287
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2570135Reviewed-by: 's avatarMilad Fa <mfarazma@redhat.com>
      Commit-Queue: Junliang Yan <junyan@redhat.com>
      Cr-Commit-Position: refs/heads/master@{#71576}
      6cbc7198
    • Milad Fa's avatar
      PPC: [was-simd] Fix Vector pack behaviour. · 4aeb4a34
      Milad Fa authored
      Due to the lane numbering difference between Intel and IBM machines,
      we need to switch the input registers when doing a vector pack.
      
      Change-Id: Id01d6292cb2a65b78dccdf3bab1d5ff010e1d018
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569996Reviewed-by: 's avatarJunliang Yan <junyan@redhat.com>
      Reviewed-by: 's avatarMilad Fa <mfarazma@redhat.com>
      Commit-Queue: Milad Fa <mfarazma@redhat.com>
      Cr-Commit-Position: refs/heads/master@{#71575}
      4aeb4a34
    • Milad Fa's avatar
      PPC/s390: [cleanup][TurboProp] Unify DynamicMapChecks names. · 073d0690
      Milad Fa authored
      Port 7730fd94
      
      Original Commit Message:
      
          Unifies various operators for dynamic map checks with the naming
          scheme of DynamicCheckMaps (to be similar to CheckMaps.
      
      R=rmcilroy@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
      BUG=v8:10582
      LOG=N
      
      Change-Id: I0c7665eb5ec3cd0b0b8217af3ec8e9e18a3d3055
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569593Reviewed-by: 's avatarJunliang Yan <junyan@redhat.com>
      Commit-Queue: Milad Fa <mfarazma@redhat.com>
      Cr-Commit-Position: refs/heads/master@{#71574}
      073d0690
    • Santiago Aboy Solanes's avatar
      [objects] Remove MakeExternal case for uncached internal strings · 3a6f75ac
      Santiago Aboy Solanes authored
      Concurrently accessing internal external uncached strings is not
      thread-safe. We are removing a case where we can make such a string
      through MakeExternal.
      
      Bug: v8:7790
      Change-Id: I958062c15cf40ccc330600bb572de98620866e54
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565511
      Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71573}
      3a6f75ac
    • Manos Koukoutos's avatar
      [wasm-gc] read_heap_type should check if index is in module bounds · 0396b732
      Manos Koukoutos authored
      read_heap_type did not have knowledge of the module for which the heap
      type was being decoded. As a result, callers of read_heap_type (or
      read_value_type, which in turn calls read_heap_type) had to check after
      the fact that a decoded indexed type (ref, ref null, or rtt) references
      a type index within the module's bounds. This was not done consistently,
      and was missing (at least) in DecodeLocals.
      To avoid such problems in the future, this CL refactors read_heap_type
      to accept a module and check the decoded index against it.
      
      Changes:
      - Add WasmModule argument to read_heap_type. Do so accordingly to all
        its transitive callers (read_value_type, immediate arguments,
        DecodeLocalDecls, DecodeValue/HeapType in unittests).
      - Add index check to read_heap_type and emit an error for an
        out-of-bounds index.
      - Remove all other now-redundant index validations. Replace them with
        decoder->ok() if needed (since read_heap_type will now emit an error).
      - Fix error message in Validate for BlockTypeImmediate.
      - In DecodeLocalDecls in unittests, pass an empty module to
        DecodeLocalDecls in the main code.
      - Add a unit test with an invalid index in local type declarations.
      
      Bug: v8:9495
      Change-Id: I4ed1204847db80f78b6ae85fa40d300cd2456295
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569757Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71572}
      0396b732
    • Milad Fa's avatar
      PPC/s390: [Turboprop] Move deoptimizations for dynamic map checks into builtin. · 2bc979aa
      Milad Fa authored
      Port b6643320
      
      Original Commit Message:
      
          In order to reduce the codegen size of dynamic map checks, add the
          ability to have an eager with resume deopt point, which can call
          a given builitin to perform a more detailed check than can be done
          in codegen, and then either deoptimizes itself (as if the calling
          code had performed an eager deopt) or resumes execution in the
          calling code after the check.
      
          In addition, support for adding extra arguments to a
          deoptimization continuation is added to enable us to pass the
          necessary arguments to the DynamicMapChecks builtin.
      
          Finally, a trampoline is added to the DynamicMapChecks which saves
          the registers that might be clobbered by that builtin, to avoid
          having to save them in the generated code. This trampoline also
          performs the deoptimization based on the result of the
          DynamicMapChecks builtin.
      
          In order to ensure both the trampoline and DynamicMapChecks
          builtin have the same call interface, and to limit the number
          of registers that need saving in the trampoline, the
          DynamicMapChecks builtin is moved to be a CSA builtin with a
          custom CallInterfaceDescriptor, that calls an exported Torque
          macro that implements the actual functionality.
      
          All told, this changes the codegen for a monomorphic dynamic
          map check from:
              movl rbx,<expected_map>
              cmpl [<object>-0x1],rbx
              jnz <deferred_call>
             resume_point:
              ...
             deferred_call:
              <spill registers>
              movl rax,<slot>
              movq rbx,<object>
              movq rcx,<handler>
              movq r10,<DynamicMapChecks>
              call r10
              cmpq rax,0x0
              jz <restore_regs>
              cmpq rax,0x1
              jz <deopt_point_1>
              cmpq rax,0x2
              jz <deopt_point_2>
              int3l
             restore_regs:
              <restore_regs>
              jmp <resume_point>
              ...
             deopt_point_1:
              call Deoptimization_Eager
             deopt_point_2:
              call Deoptimization_Bailout
      
              movl rcx,<expected_map>
              movq rdx,<handler>
              cmpl [<object>-0x1],rcx
              jnz <deopt_point>
             resume_point:
              ...
             deopt_point:
              call DynamicMapChecksTrampoline
              jmp <resume_point>
      
      R=rmcilroy@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
      BUG=v8:10582
      LOG=N
      
      Change-Id: I0739c1b40ed06bb22b73ebe1833ea648b540882a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569359Reviewed-by: 's avatarJunliang Yan <junyan@redhat.com>
      Commit-Queue: Milad Fa <mfarazma@redhat.com>
      Cr-Commit-Position: refs/heads/master@{#71571}
      2bc979aa