1. 27 Jun, 2017 1 commit
    • Ilija Pavlovic's avatar
      MIPS[64]: Fix restartability issues. · 7a6d35e6
      Ilija Pavlovic authored
      For handling restartability issues, following conditions must be
      fulfilled:
      - For Branch-and-link restartability: GPR 31 (ra register) must not be
      used for the source register rs.
      - For Jump-and-Link restartability: Register specifiers rs and rd must
      not be equal.
      This CL implements checking that GPR 31 is not used as source register.
      
      TEST=
      BUG=
      
      Change-Id: I568ff9c497b4efca73f1a5353cb7520202524479
      Reviewed-on: https://chromium-review.googlesource.com/549362Reviewed-by: 's avatarIvica Bogosavljevic <ivica.bogosavljevic@imgtec.com>
      Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com>
      Cr-Commit-Position: refs/heads/master@{#46252}
      7a6d35e6
  2. 26 Jun, 2017 2 commits
  3. 23 Jun, 2017 1 commit
  4. 22 Jun, 2017 1 commit
  5. 20 Jun, 2017 5 commits
  6. 14 Jun, 2017 1 commit
  7. 08 Jun, 2017 1 commit
    • bmeurer's avatar
      [builtins] Start refactoring the Apply builtin. · af76779a
      bmeurer authored
      This splits the monolithic Apply builtin into several smaller builtins,
      namely CallVargargs and ConstructVarargs, which accept a length and a
      FixedArray of elements and deal with the actual stack manipulation, and
      CallWithArrayLike / ConstructWithArrayLike that deal with getting the
      elements from the receiver (for Function.prototype.apply, Reflect.apply
      and Reflect.construct), which can now be written using the CSA.
      
      The idea is that these builtins can be reused by TurboFan directly in
      the future when we optimize apply better, and that we can also reuse the
      core logic in the handling of spread calls/constructs.
      
      R=petermarshall@chromium.org
      BUG=v8:4587,v8:5269
      
      Review-Url: https://codereview.chromium.org/2930623002
      Cr-Commit-Position: refs/heads/master@{#45794}
      af76779a
  8. 07 Jun, 2017 2 commits
  9. 01 Jun, 2017 1 commit
  10. 31 May, 2017 2 commits
  11. 25 May, 2017 2 commits
  12. 23 May, 2017 1 commit
    • Miran.Karic's avatar
      MIPS64: Add optimizations to li macro. · cc1aae28
      Miran.Karic authored
      A number of improvements in mips64 load immediate macro is added per
      suggestions from MIPS ART team. Also fix Subu and Dsubu macro, add a
      test for Subu and Dsubu and make minor code adjustments.
      
      BUG=
      TEST=cctest/test-assembler-mips/li_macro
           cctest/test-assembler-mips/Subu
           cctest/test-assembler-mips/Dsubu
      
      Review-Url: https://codereview.chromium.org/2892163002
      Cr-Commit-Position: refs/heads/master@{#45493}
      cc1aae28
  13. 22 May, 2017 1 commit
  14. 19 May, 2017 1 commit
  15. 18 May, 2017 1 commit
    • bmeurer's avatar
      [turbofan] Avoid allocating rest parameters for spread calls. · bfa319e5
      bmeurer authored
      We already had an optimization to turn Function.prototype.apply with
      arguments object, i.e.
      
        function foo() { return bar.apply(this, arguments); }
      
      into a special operator JSCallForwardVarargs, which avoids the
      allocation and deconstruction of the arguments object, but just passes
      along the incoming parameters. We can do the same for rest parameters
      and spread calls/constructs, i.e.
      
        class A extends B {
          constructor(...args) { super(...args); }
        }
      
      or
      
        function foo(...args) { return bar(1, 2, 3, ...args); }
      
      where we basically pass along the parameters (plus maybe additional
      statically known parameters).
      
      For this, we introduce a new JSConstructForwardVarargs operator and
      generalize the CallForwardVarargs builtins that are backing this.
      
      BUG=v8:6407,v8:6278,v8:6344
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2890023004
      Cr-Commit-Position: refs/heads/master@{#45388}
      bfa319e5
  16. 12 May, 2017 1 commit
  17. 04 May, 2017 1 commit
  18. 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
  19. 28 Apr, 2017 1 commit
  20. 27 Apr, 2017 1 commit
    • Miran.Karic's avatar
      MIPS: Fix Subu and add optimization · de14ba9f
      Miran.Karic authored
      For int16 imm values Subu would emit addiu with -imm value, but doing
      this with min_int16 would overflow and produce incorrect result. This is
      fixed by checking if -imm is int16. A test for this case is created.
      
      An optimization is also added for values imm where we cannot just emit
      addiu and loading -imm to a register takes one instruction using ori.
      Then instead of loading imm with lui;ori and subtracting with subu, we
      can load -imm with ori and add with addu.
      
      BUG=
      TEST=cctest/test-assembler-mips/Subu
      
      Review-Url: https://codereview.chromium.org/2845043002
      Cr-Commit-Position: refs/heads/master@{#44932}
      de14ba9f
  21. 25 Apr, 2017 3 commits
    • bmeurer's avatar
      [stubs] Drop CallApiCallbackStub::call_data_undefined optimization. · 46d0e481
      bmeurer authored
      The CallApiCallbackStub can avoid loading undefined in case the
      call_data is already undefined, which doubles the number of versions of
      the stub and adds unnecessary complexity (at the benefit of saving one
      stupid load). The idea is to turn the CallApiCallbackStub into a single
      builtin instead, which does the right thing, so this is the first step
      towards that goal.
      
      R=yangguo@chromium.org
      BUG=v8:6304
      
      Review-Url: https://codereview.chromium.org/2838143003
      Cr-Commit-Position: refs/heads/master@{#44869}
      46d0e481
    • ulan's avatar
      Add a host parameter to ObjectVisitor methods. · c59f78f6
      ulan authored
      This makes an ObjectVisitor as powerful as a StaticVisitor and allows
      slots recording in ObjectVisitor.
      
      This patch also renames VisitCell method of ObjectVisitor to
      VisitCellPointer, so that VisitCell is free to be used for actually
      visiting a cell.
      
      BUG=chromium:709075
      
      Review-Url: https://codereview.chromium.org/2810653002
      Cr-Commit-Position: refs/heads/master@{#44860}
      c59f78f6
    • Miran.Karic's avatar
      MIPS: Use JIC/JIALC offset when possible · fe916cd2
      Miran.Karic authored
      Until now JIC and JIALC compact branches were emited without using their
      offset. Here we optimize their use by using offset after addition and/or
      load immediate operations.
      
      The CL also fixes a problem with deserialization that occurs when a code
      object ends with an optimized LUI/AUI and JIC/JIALC instruction pair.
      Deserializer processed these instruction pairs by moving to a location
      immediately after it, but when this location is the end of the object it
      would finish with the current object before doing relocation. This is
      fixed by moving the deserializer one instruction before the location of
      the instruction pair end.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2542403002
      Cr-Commit-Position: refs/heads/master@{#44841}
      fe916cd2
  22. 24 Apr, 2017 1 commit
  23. 21 Apr, 2017 5 commits
  24. 12 Apr, 2017 1 commit
  25. 11 Apr, 2017 2 commits