1. 30 Jun, 2016 1 commit
  2. 29 Jun, 2016 1 commit
  3. 27 Jun, 2016 2 commits
  4. 20 Jun, 2016 3 commits
    • bjaideep's avatar
      PPC/s390: [builtins] Introduce proper Float64Tan operator. · f1c2729d
      bjaideep authored
      Port c87168bc
      
      Original commit message:
      
          Import base::ieee754::tan() from fdlibm and introduce Float64Tan TurboFan
          operator based on that, similar to what we do for Float64Cos and Float64Sin.
          Rewrite Math.tan() as TurboFan builtin and use those operators to also
          inline Math.tan() into optimized TurboFan functions.
      
          Drive-by-fix: Kill the %_ConstructDouble intrinsics, and provide only
          the %ConstructDouble runtime entry for writing tests.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=v8:5086,v8:5126
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2080303002
      Cr-Commit-Position: refs/heads/master@{#37115}
      f1c2729d
    • yangguo's avatar
      Simplify AssemblerPositionsRecorder. · 9c3d730d
      yangguo authored
      R=bmeurer@chromium.org, jgruber@chromium.org
      
      Review-Url: https://codereview.chromium.org/2072963003
      Cr-Commit-Position: refs/heads/master@{#37089}
      9c3d730d
    • bjaideep's avatar
      PPC/s390: [builtins] Introduce proper Float64Cos and Float64Sin. · f7e7c32d
      bjaideep authored
      Port c781e831
      Port 4d4eb611
      
      Original commit message:
      
          Import base::ieee754::cos() and base::ieee754::sin() from fdlibm and
          introduce Float64Cos and Float64Sin TurboFan operator based on that,
          similar to what we do for Float64Log. Rewrite Math.cos() and Math.sin()
          as TurboFan builtins and use those operators to also inline Math.cos()
          and Math.sin() into optimized TurboFan functions.
      
          Unify Atanh, Cbrt and Expm1 as exports from flibm.
      
      R=bmeurer@chromium.org, mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=v8:5086,v8:5118,v8:5103
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2078273002
      Cr-Commit-Position: refs/heads/master@{#37083}
      f7e7c32d
  5. 18 Jun, 2016 1 commit
    • bjaideep's avatar
      PPC/s390: [builtins] Introduce proper Float64Exp operator. · a54e289e
      bjaideep authored
      Port d5f2ac5e
      
      Original commit message:
      
          Import base::ieee754::exp() from FreeBSD msun and introduce a Float64Exp
          TurboFan operator based on that, similar to what we do for Float64Log.
          Rewrite Math.exp() as TurboFan builtin and use that operator to also
          inline Math.exp() into optimized TurboFan functions.
      
      R=bmeurer@chromium.org, mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=v8:3266,v8:3468,v8:3493,v8:5086,v8:5108,chromium:620786
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2075263002
      Cr-Commit-Position: refs/heads/master@{#37073}
      a54e289e
  6. 14 Jun, 2016 2 commits
  7. 10 Jun, 2016 2 commits
  8. 09 Jun, 2016 2 commits
  9. 02 Jun, 2016 1 commit
  10. 30 May, 2016 2 commits
  11. 18 May, 2016 1 commit
  12. 17 May, 2016 1 commit
    • jyan's avatar
      PPC/S390: [es6] Reintroduce the instanceof operator in the backends. · e9aad72f
      jyan authored
      port 551e0aa1
      
      Original Commit Messag:
        This adds back the instanceof operator support in the backends and
        introduces a @@hasInstance protector cell on the isolate that guards the
        fast path for the InstanceOfStub. This way we recover the ~10%
        regression on Octane EarleyBoyer in Crankshaft and greatly improve
        TurboFan and Ignition performance of instanceof.
      
      R=bmeurer@chromium.org, ishell@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      TBR=hpayer@chromium.org,rossberg@chromium.org
      BUG=chromium:597249, v8:4447
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1989523002
      Cr-Commit-Position: refs/heads/master@{#36290}
      e9aad72f
  13. 13 May, 2016 1 commit
  14. 11 May, 2016 3 commits
  15. 06 May, 2016 2 commits
  16. 04 May, 2016 1 commit
    • mstarzinger's avatar
      [compiler] Remove dangerous language mode accessors. · db1b27e8
      mstarzinger authored
      The language mode is no longer constant accross a compilation unit. For
      example the extends clause of a class literal can be in strict mode even
      though the surrounding function is in sloppy mode. This makes any global
      language mode predicate that reasons over an entire function inherently
      dangerous. Instead one should use the appropriate predicate on scopes or
      literals directly.
      
      R=bmeurer@chromium.org
      
      Review-Url: https://codereview.chromium.org/1949013002
      Cr-Commit-Position: refs/heads/master@{#36010}
      db1b27e8
  17. 27 Apr, 2016 1 commit
  18. 20 Apr, 2016 1 commit
    • mbrandy's avatar
      PPC: [crankshaft] Address the deoptimization loops of Math.floor, Math.round and Math.ceil. · 4e93ce4f
      mbrandy authored
      Port 978ad03b
      
      Original commit message:
          Fix and re-enable the flexible representation for Math.floor (which is used to
          implement Math.ceil) and Math.round, which allows Math.floor and Math.round to
          return double results instead of int32, and therefore allows values outside
          the int32 range, especially -0 is now a valid result, which doesn't deopt.
      
          Also port this feature to x64 and ia32 when the CPU supports the SSE4.1
          extension.
      
          This addresses all the known deoptimization loops related to Math.round
          in the Kraken benchmark suite, and seems to also address most of the
          deoptimization loops related to Math.floor in the Oort Online benchmark.
      
          Drive-by-fix: Import the regression tests for the broken HMathFloorOfDiv
          optimization that caused the initial revert of the feature (for arm64 only
          back then).
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=chromium:476477,v8:2890,v8:4059
      LOG=n
      
      Review URL: https://codereview.chromium.org/1839643007
      
      Cr-Commit-Position: refs/heads/master@{#35659}
      4e93ce4f
  19. 07 Apr, 2016 2 commits
  20. 01 Apr, 2016 1 commit
  21. 31 Mar, 2016 1 commit
  22. 30 Mar, 2016 1 commit
  23. 22 Mar, 2016 3 commits
  24. 21 Mar, 2016 1 commit
  25. 16 Mar, 2016 1 commit
  26. 09 Mar, 2016 2 commits
    • mbrandy's avatar
      PPC: [runtime] Unify and simplify how frames are marked · 4445c095
      mbrandy authored
      Port 9dcd0857
      
      Original commit message:
          Before this CL, various code stubs used different techniques
          for marking their frames to enable stack-crawling and other
          access to data in the frame. All of them were based on a abuse
          of the "standard" frame representation, e.g. storing the a
          context pointer immediately below the frame's fp, and a
          function pointer after that. Although functional, this approach
          tends to make stubs and builtins do an awkward, unnecessary
          dance to appear like standard frames, even if they have
          nothing to do with JavaScript execution.
      
          This CL attempts to improve this by:
      
          * Ensuring that there are only two fundamentally different
            types of frames, a "standard" frame and a "typed" frame.
            Standard frames, as before, contain both a context and
            function pointer. Typed frames contain only a minimum
            of a smi marker in the position immediately below the fp
            where the context is in standard frames.
          * Only interpreted, full codegen, and optimized Crankshaft and
            TurboFan JavaScript frames use the "standard" format. All
            other frames use the type frame format with an explicit
            marker.
          * Typed frames can contain one or more values below the
            type marker. There is new magic macro machinery in
            frames.h that simplifies defining the offsets of these fields
            in typed frames.
          * A new flag in the CallDescriptor enables specifying whether
            a frame is a standard frame or a typed frame. Secondary
            register location spilling is now only enabled for standard
            frames.
          * A zillion places in the code have been updated to deal with
            the fact that most code stubs and internal frames use the
            typed frame format. This includes changes in the
            deoptimizer, debugger, and liveedit.
          * StandardFrameConstants::kMarkerOffset is deprecated,
            (CommonFrameConstants::kContextOrFrameTypeOffset
            and StandardFrameConstants::kFrameOffset are now used
            in its stead).
      
      R=danno@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1778713002
      
      Cr-Commit-Position: refs/heads/master@{#34643}
      4445c095
    • ishell's avatar
      [crankshaft] Added checks to tail call instructions that we don't have to restore caller doubles. · 24cd6676
      ishell authored
      TBR=bmeurer@chromium.org
      BUG=v8:4698
      LOG=N
      
      Review URL: https://codereview.chromium.org/1773173005
      
      Cr-Commit-Position: refs/heads/master@{#34613}
      24cd6676