1. 04 Jan, 2019 1 commit
  2. 19 Dec, 2018 1 commit
    • Clemens Hammacher's avatar
      [cleanup] Fix include guards of simulators · bf2b5d0b
      Clemens Hammacher authored
      The platform-specific simulators are only included on the respective
      hardware, so no need to guard against other platforms.
      Also, unify where the USE_SIMULATOR macro is evaluated. Make it cover
      the whole implementation file.
      Also, make sure to include the respective header file first, as
      suggested by the style guide, and fix up includes in general.
      
      R=ishell@chromium.org
      
      Bug: v8:8562, v8:7490
      Change-Id: Ifc6a87030364eab1e6a6fcbda008607ccd1c1f2f
      Reviewed-on: https://chromium-review.googlesource.com/c/1384090Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58365}
      bf2b5d0b
  3. 17 Dec, 2018 3 commits
    • Sigurd Schneider's avatar
      Reland "[assembler] Split out CPUFeatures into its own file" · 01b0afd5
      Sigurd Schneider authored
      This is a reland of 3ad101f5
      
      Original change's description:
      > [assembler] Split out CPUFeatures into its own file
      >
      > This reduces the preprocessor expanded source size by 84,675 LoC:
      >
      > gen         (   20 files):    71,349 to    1,523,934 (   21x)
      > src         (  624 files):   367,410 to   53,253,894 (  145x)
      > test        (  392 files):   490,503 to   37,436,176 (   76x)
      > third_party (  432 files):   239,085 to    9,547,902 (   40x)
      > total       ( 1520 files): 1,183,031 to  102,736,424 (   87x)
      >
      > to
      >
      > gen         (   20 files):    71,349 to    1,523,794 (   21x)
      > src         (  624 files):   367,411 to   53,186,896 (  145x)
      > test        (  392 files):   490,504 to   37,418,639 (   76x)
      > third_party (  432 files):   239,085 to    9,547,902 (   40x)
      > total       ( 1520 files): 1,183,033 to  102,651,749 (   87x)
      >
      >
      > Change-Id: Ia8a79092051a42815b65e86a0784297915368c9b
      > Reviewed-on: https://chromium-review.googlesource.com/c/1291471
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Marja Hölttä <marja@chromium.org>
      > Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#58266}
      
      TBR=marja@chromium.org,clemensh@chromium.org,ulan@chromium.org
      
      Change-Id: I5b857666508b1c80dcadd0b470aada37dd49077e
      Reviewed-on: https://chromium-review.googlesource.com/c/1379872Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58278}
      01b0afd5
    • Maya Lekova's avatar
      Revert "[assembler] Split out CPUFeatures into its own file" · 316b152a
      Maya Lekova authored
      This reverts commit 3ad101f5.
      
      Reason for revert: Broken Android Arm64 debug builder - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Android%20Arm64%20-%20debug%20builder/3089
      
      Original change's description:
      > [assembler] Split out CPUFeatures into its own file
      > 
      > This reduces the preprocessor expanded source size by 84,675 LoC:
      > 
      > gen         (   20 files):    71,349 to    1,523,934 (   21x)
      > src         (  624 files):   367,410 to   53,253,894 (  145x)
      > test        (  392 files):   490,503 to   37,436,176 (   76x)
      > third_party (  432 files):   239,085 to    9,547,902 (   40x)
      > total       ( 1520 files): 1,183,031 to  102,736,424 (   87x)
      > 
      > to
      > 
      > gen         (   20 files):    71,349 to    1,523,794 (   21x)
      > src         (  624 files):   367,411 to   53,186,896 (  145x)
      > test        (  392 files):   490,504 to   37,418,639 (   76x)
      > third_party (  432 files):   239,085 to    9,547,902 (   40x)
      > total       ( 1520 files): 1,183,033 to  102,651,749 (   87x)
      > 
      > 
      > Change-Id: Ia8a79092051a42815b65e86a0784297915368c9b
      > Reviewed-on: https://chromium-review.googlesource.com/c/1291471
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Marja Hölttä <marja@chromium.org>
      > Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#58266}
      
      TBR=ulan@chromium.org,marja@chromium.org,sigurds@chromium.org,clemensh@chromium.org
      
      Change-Id: I111f9bbef9e66cd1ee7f4206b6af1097f7c50e66
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/1379933Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58268}
      316b152a
    • Sigurd Schneider's avatar
      [assembler] Split out CPUFeatures into its own file · 3ad101f5
      Sigurd Schneider authored
      This reduces the preprocessor expanded source size by 84,675 LoC:
      
      gen         (   20 files):    71,349 to    1,523,934 (   21x)
      src         (  624 files):   367,410 to   53,253,894 (  145x)
      test        (  392 files):   490,503 to   37,436,176 (   76x)
      third_party (  432 files):   239,085 to    9,547,902 (   40x)
      total       ( 1520 files): 1,183,031 to  102,736,424 (   87x)
      
      to
      
      gen         (   20 files):    71,349 to    1,523,794 (   21x)
      src         (  624 files):   367,411 to   53,186,896 (  145x)
      test        (  392 files):   490,504 to   37,418,639 (   76x)
      third_party (  432 files):   239,085 to    9,547,902 (   40x)
      total       ( 1520 files): 1,183,033 to  102,651,749 (   87x)
      
      
      Change-Id: Ia8a79092051a42815b65e86a0784297915368c9b
      Reviewed-on: https://chromium-review.googlesource.com/c/1291471Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58266}
      3ad101f5
  4. 20 Aug, 2018 1 commit
  5. 16 Aug, 2018 1 commit
  6. 14 Apr, 2018 1 commit
    • Jakob Kummerow's avatar
      [ubsan] Change Address typedef to uintptr_t · 2459046c
      Jakob Kummerow authored
      The "Address" type is V8's general-purpose type for manipulating memory
      addresses. Per the C++ spec, pointer arithmetic and pointer comparisons
      are undefined behavior except within the same array; since we generally
      don't operate within a C++ array, our general-purpose type shouldn't be
      a pointer type.
      
      Bug: v8:3770
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779
      Reviewed-on: https://chromium-review.googlesource.com/988657
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52601}
      2459046c
  7. 09 Feb, 2018 1 commit
  8. 12 Jan, 2018 1 commit
  9. 09 Jan, 2018 1 commit
  10. 08 Jan, 2018 1 commit
    • Clemens Hammacher's avatar
      [simulator] Make Call variadic · a3baa353
      Clemens Hammacher authored
      In order to remove the CALL_GENERATED_CODE macro, it helps a lot to
      unify the interfaces of the simulators and make the Call method variadic
      in the number of arguments.
      This CL does that for each simulator. A follow-up CL will then
      completely remove the CALL_GENERATED_CODE macro and replace uses with
      the (new) GeneratedCode wrapper.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:7182
      Change-Id: I1f81445ec2faba30f0bd233b022ae1f0fae4e96f
      Reviewed-on: https://chromium-review.googlesource.com/850873
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50413}
      a3baa353
  11. 15 Dec, 2017 1 commit
  12. 13 Dec, 2017 1 commit
    • Michael Starzinger's avatar
      [simulator] Refactor redirections to be process-wide. · f4dde200
      Michael Starzinger authored
      This refactors the list of redirections of runtime call targets that
      simulators maintain to be process-wide (as opposed to be per Isolate).
      Such redirections are used for static C++ call targets which themselves
      are process-wide, which makes this model a closer fit. Access is already
      properly synchronized via a mutex.
      
      Along the way this also introduces the {SimulatorBase} class as a common
      base class for all simulator implementations.
      
      R=clemensh@chromium.org
      
      Change-Id: Iae8602c44b1b34cb916dde2b22c9403b0496b3d4
      Reviewed-on: https://chromium-review.googlesource.com/823966
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50074}
      f4dde200
  13. 11 Dec, 2017 2 commits
  14. 17 Oct, 2017 1 commit
  15. 02 Aug, 2017 1 commit
  16. 02 May, 2017 1 commit
    • neis's avatar
      [simulator] Make reference redirection thread-safe. · 34e79456
      neis authored
      In the simulators, the ExternalReference constructor rewrites external
      addresses, which involves mutating a linked list rooted in the isolate.
      
      We already construct external references concurrently (at least in Turbofan),
      but the list mutation was not thread-safe (though no crashes are known). This
      CL adds the necessary locking.
      
      BUG=v8:6048
      
      Review-Url: https://codereview.chromium.org/2852983002
      Cr-Commit-Position: refs/heads/master@{#45014}
      34e79456
  17. 21 Apr, 2017 5 commits
  18. 10 Apr, 2017 3 commits
  19. 02 Mar, 2017 1 commit
    • bbudge's avatar
      Implement remaining Boolean SIMD operations on ARM. · 386e5a11
      bbudge authored
      - Implements Select instructions using a single ARM vbsl instruction.
      - Renames boolean machine operators to match renamed S1xN machine types.
      - Implements S1xN vector logical ops, AND, OR, XOR, NOT for ARM.
      - Implements S1xN AnyTrue, AllTrue ops for ARM.
      - Eliminates unused SIMD op categories in opcodes.h.
      
      LOG=N
      BUG=v8:6020
      
      Review-Url: https://codereview.chromium.org/2711863002
      Cr-Commit-Position: refs/heads/master@{#43556}
      386e5a11
  20. 18 Jan, 2017 1 commit
    • binji's avatar
      Implement ldrex/strex instructions in ARM simulator · 66ae5f7d
      binji authored
      This CL implements ldrex, ldrexb, ldrexh, strex, strexb, and strexh in the
      Simulator. These instructions provide "exclusive" access, which provides mutual
      exclusion for concurrent threads of execution.
      
      The ARM specification gives some leeway to implementors, but essentially
      describes each processor as having Local Monitor and Global Monitor. The Local
      Monitor is used to check the exclusivity state without having to synchronize
      with other processors. The Global Monitor is shared between processors. We
      model both to make it easier to match behavior with the spec.
      
      When running with multiple OS threads, each thread has its own isolate, and
      each isolate has its own Simulator. The Local Monitor is stored directly on the
      Simulator, and the Global Monitor is stored as a lazy singleton. The Global
      Monitor maintains a linked-list of all Simulators.
      
      All loads/stores (even non-exclusive) are guarded by the Global Monitor's mutex.
      
      BUG=v8:4614
      
      Review-Url: https://codereview.chromium.org/2006183004
      Cr-Commit-Position: refs/heads/master@{#42481}
      66ae5f7d
  21. 09 Jan, 2017 1 commit
  22. 15 Dec, 2016 1 commit
  23. 30 Sep, 2016 1 commit
  24. 06 Sep, 2016 1 commit
  25. 09 Jun, 2016 1 commit
    • lpy's avatar
      Move hashmap into src/base. · 2fd55667
      lpy authored
      We ported hashmap.h into libsampler as a workaround before, so the main focus of
      this patch is to reduce code duplication. This patch moves the hashmap into
      src/base as well as creates DefaultAllocationPolicy using malloc and free.
      
      BUG=v8:5050
      LOG=n
      
      Review-Url: https://codereview.chromium.org/2010243003
      Cr-Commit-Position: refs/heads/master@{#36873}
      2fd55667
  26. 16 Mar, 2016 1 commit
    • ahaas's avatar
      [wasm] Int64Lowering of Int64Sub on ia32 and arm. · 33c08596
      ahaas authored
      Int64Sub is lowered to a new turbofan operator, Int32SubPair. The new
      operator takes 4 inputs an generates 2 outputs. The inputs are the low
      word of the left input, high word of the left input, the low word of the
      right input, and high word of the right input. The ouputs are the low
      and high word of the result of the subtraction.
      
      The implementation is very similar to the implementation of Int64Add.
      
      @v8-arm-ports: please take a careful look at the implementation of sbc
      in the simulator.
      
      R=titzer@chromium.org, v8-arm-ports@googlegroups.com
      
      Review URL: https://codereview.chromium.org/1778893005
      
      Cr-Commit-Position: refs/heads/master@{#34808}
      33c08596
  27. 10 Mar, 2016 1 commit
  28. 23 Nov, 2015 1 commit
  29. 30 Sep, 2015 1 commit
  30. 24 Aug, 2015 1 commit
  31. 20 May, 2015 1 commit
    • svenpanne's avatar
      Fixed various simulator-related space leaks. · 84aa494e
      svenpanne authored
      Alas, this involved quite a bit of copy-n-paste between the
      architectures, but this is caused by the very convoluted
      relationships, lifetimes and distribution of responsibilities. This
      should really be cleaned up by moving code around and using STL maps,
      but that's not really a priority right now.
      
      Bonus: Fixed leaks in the ARM64 disassembler tests.
      
      Review URL: https://codereview.chromium.org/1132943007
      
      Cr-Commit-Position: refs/heads/master@{#28496}
      84aa494e