1. 12 May, 2016 1 commit
  2. 04 May, 2016 1 commit
  3. 26 Apr, 2016 1 commit
    • jyan's avatar
      S390: [turbofan] Introduce TruncateTaggedToWord32 simplified operator. · 1decc266
      jyan authored
      Port 0231a7ef
      
      Original commit message:
      
          This allows us to get rid of the "push TruncateFloat64ToInt32 into Phi"
          trick that was used in the MachineOperatorReducer to combine the
          ChangeTaggedToFloat64 and TruncateFloat64ToInt32 operations. Instead of
          doing that later, we can just introduce the proper operator during the
          representation selection directly.
      
          Also separate the TruncateFloat64ToInt32 machine operator, which had two
          different meanings depending on a flag (either JavaScript truncation or
          C++ style round to zero). Now there's a TruncateFloat64ToWord32 which
          represents the JavaScript truncation (implemented via TruncateDoubleToI
          macro + code stub) and the RoundFloat64ToInt32, which implements the C++
          round towards zero operation (in the same style as the other WebAssembly
          driven Round* machine operators).
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=
      LOG=N
      
      Review URL: https://codereview.chromium.org/1922183002
      
      Cr-Commit-Position: refs/heads/master@{#35802}
      1decc266
  4. 25 Apr, 2016 1 commit
    • jyan's avatar
      S390X: [turbofan] Word32 loads should be unsigned. · 6382a610
      jyan authored
      TEST=cctest/test-run-load-store/*
      R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
      BUG=
      
      S390: [interpreter] Heal closures when bytecode array is gone.
      
      Port 5c8609de
      
      Original commit message:
      
          This ensures the InterpreterEntryTrampoline heals code entry fields
          inside closures when being called without a valid bytecode array. This
          is preparatory work to allow removal of bytecode when switching some
          functions to other types of code.
      
      R=mstarzinger@chromium.org, joransiu@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1916143002
      
      Cr-Commit-Position: refs/heads/master@{#35779}
      6382a610
  5. 24 Apr, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Introduce TruncateTaggedToWord32 simplified operator. · 0231a7ef
      bmeurer authored
      This allows us to get rid of the "push TruncateFloat64ToInt32 into Phi"
      trick that was used in the MachineOperatorReducer to combine the
      ChangeTaggedToFloat64 and TruncateFloat64ToInt32 operations. Instead of
      doing that later, we can just introduce the proper operator during the
      representation selection directly.
      
      Also separate the TruncateFloat64ToInt32 machine operator, which had two
      different meanings depending on a flag (either JavaScript truncation or
      C++ style round to zero). Now there's a TruncateFloat64ToWord32 which
      represents the JavaScript truncation (implemented via TruncateDoubleToI
      macro + code stub) and the RoundFloat64ToInt32, which implements the C++
      round towards zero operation (in the same style as the other WebAssembly
      driven Round* machine operators).
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1919513002
      
      Cr-Commit-Position: refs/heads/master@{#35743}
      0231a7ef
  6. 20 Apr, 2016 1 commit
  7. 01 Apr, 2016 1 commit
    • jyan's avatar
      S390: [wasm] Fixed float-to-int conversion tests. · 652853da
      jyan authored
      port ac7f0e2b
      
      Original Commit Message:
         *) For all tests the input validation was incorrect, i.e. some values
         were considered invalid although they were valid. The problem was that
         values which are outside int range can get in range through truncation.
      
         *) Removed an assertion in the x64 code generation of
         TruncateFloat64ToUint32 which trapped on negative inputs.
      
         *) Introduced a new TF operator TruncateFloat32ToUint32 which does
         the same as ChangeFloat32ToUint32 but does not trap on negative inputs.
      
      R=titzer@chromium.org, ahaas@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1844053005
      
      Cr-Commit-Position: refs/heads/master@{#35207}
      652853da
  8. 31 Mar, 2016 1 commit
    • jyan's avatar
      S390: [wasm] Int64Lowering of Int64Mul. · b295462e
      jyan authored
      port 40bdbef9
      
       Original commit message:
           Int64Mul is lowered to a new turbofan operator, Int32MulPair. 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 multiplication.
      
      R=titzer@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1849543003
      
      Cr-Commit-Position: refs/heads/master@{#35167}
      b295462e
  9. 17 Mar, 2016 1 commit
    • jyan's avatar
      S390: [wasm] Int64Lowering of Int64Sub. · 680f50a9
      jyan authored
          Port 33c08596
      
          Original commit message:
              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.
      
      R=ahaas@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1807243002
      
      Cr-Commit-Position: refs/heads/master@{#34865}
      680f50a9
  10. 16 Mar, 2016 1 commit
    • jyan's avatar
      S390: [wasm] Int64Lowering of Int64Add · 06bceeb7
      jyan authored
      Original commit message:
          Int64Add is lowered to a new turbofan operator, Int32AddPair. 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 addition.
      
      R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1807013002
      
      Cr-Commit-Position: refs/heads/master@{#34840}
      06bceeb7
  11. 15 Mar, 2016 1 commit
  12. 09 Mar, 2016 1 commit
  13. 04 Mar, 2016 1 commit
  14. 24 Feb, 2016 1 commit
  15. 17 Feb, 2016 1 commit
  16. 16 Feb, 2016 1 commit
  17. 15 Feb, 2016 1 commit
    • mbrandy's avatar
      PPC: Support immediate indices for StoreWriteBarrier. · 5ca122a1
      mbrandy authored
      Port 4eff883b
           c72b49bd
      
      Original commit message:
          Ideally we would not need the StoreWriteBarrier instructions at all,
          but represent the RecordWrite functionality as machine subgraph, but
          that'll take some time to get there. In the mean time we can have a
          shorter instruction sequence by recognizing immediate indices here.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1695333002
      
      Cr-Commit-Position: refs/heads/master@{#34006}
      5ca122a1
  18. 08 Feb, 2016 2 commits
  19. 06 Feb, 2016 2 commits
  20. 19 Jan, 2016 1 commit
  21. 16 Jan, 2016 1 commit
    • ahaas's avatar
      [turbofan] Add the RoundInt32ToFloat32 operator to turbofan. · e06f7d78
      ahaas authored
      The new operator converts an int32 input to float32. If the input cannot
      be represented exactly in float32, the value is rounded using the
      round-ties-even rounding mode (the default rounding mode).
      
      I provide implementations of the new operator for x64, ia32, arm, arm64,
      mips, mips64, ppc, and ppc64.
      
      R=titzer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com, v8-ppc-ports@googlegroups.com
      
      Review URL: https://codereview.chromium.org/1589363002
      
      Cr-Commit-Position: refs/heads/master@{#33347}
      e06f7d78
  22. 11 Jan, 2016 1 commit
  23. 30 Dec, 2015 1 commit
  24. 23 Dec, 2015 1 commit
  25. 22 Dec, 2015 1 commit
  26. 21 Dec, 2015 1 commit
    • ahaas's avatar
      [turbofan] Pass type information of arguments to EmitPrepareArguments. · c0c8c756
      ahaas authored
      On ia32 the code which pushes parameters on the stack depends on the
      types of the parameters which are to be pushed. I provide this type
      information now by not only passing parameter nodes to
      EmitPrepareArguments, but also the index in the call descriptor which
      belongs to the parameter nodes.
      
      This type information will also be necessary if we want to use the
      PokePair instruction on arm64 again.
      
      R=bradnelson@chromium.org, bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/1534593004
      
      Cr-Commit-Position: refs/heads/master@{#32982}
      c0c8c756
  27. 16 Dec, 2015 3 commits
    • mbrandy's avatar
      PPC: [turbofan] Change TruncateFloat32ToUint64 to TryTruncateFloat32ToUint64. · 9418a710
      mbrandy authored
      Port 97161a29
      
      Original commit message:
          TryTruncateFloat32ToUint64 converts a float32 to a uint64. Additionally it
          provides an optional second return value which indicates whether the conversion
          succeeded (i.e. float32 value was within uint64 range) or not.
      
          Additionally I fixed a bug on x64 and mips64 in the implementation of
          TryTruncateFloat64ToUint64. Cases where the input value was between -1 and 0
          were handled incorrectly.
      
      R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1533613002
      
      Cr-Commit-Position: refs/heads/master@{#32919}
      9418a710
    • mbrandy's avatar
      PPC: [turbofan] Make MachineType a pair of enums. · 4903f82c
      mbrandy authored
      Port bb2a830d
      Port 56673804
      
      Original commit messages:
          MachineType is now a class with two enum fields:
          - MachineRepresentation
          - MachineSemantic
      
          Both enums are usable on their own, and this change switches some places
          from using MachineType to use just MachineRepresentation. Most notably:
          - register allocator now uses just the representation.
          - Phi and Select nodes only refer to representations.
      
         Store nodes use only MachineRepresentation, not MachineType.
      
      R=jarin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1523373003
      
      Cr-Commit-Position: refs/heads/master@{#32916}
      4903f82c
    • mbrandy's avatar
      PPC: [turbofan] Change TruncateFloat32ToInt64 to TryTruncateFloat32ToInt64. · 99b8e7c8
      mbrandy authored
      Port 28261daa
      
      Original commit message:
          This operator now provides a second output which indicates whether the
          conversion from float32 to int64 was successful or not. The second output
          returns 0 if the conversion fails, or something else if the conversion succeeds.
      
          The second output can be ignored, which means that the operator can be used the
          same as the original operator.
      
      R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1530273002
      
      Cr-Commit-Position: refs/heads/master@{#32914}
      99b8e7c8
  28. 11 Dec, 2015 1 commit
    • ahaas's avatar
      [turbofan] Change TruncateFloat32ToUint64 to TryTruncateFloat32ToUint64. · 97161a29
      ahaas authored
      TryTruncateFloat32ToUint64 converts a float32 to a uint64. Additionally it
      provides an optional second return value which indicates whether the conversion
      succeeded (i.e. float32 value was within uint64 range) or not.
      
      I implemented the new operator on x64, arm64, and mips64. @v8-ppc-ports, can you
      please take care of the ppc64 implementation of the second output?
      
      Additionally I fixed a bug on x64 and mips64 in the implementation of
      TryTruncateFloat64ToUint64. Cases where the input value was between -1 and 0
      were handled incorrectly.
      
      R=titzer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com
      
      Review URL: https://codereview.chromium.org/1512023002
      
      Cr-Commit-Position: refs/heads/master@{#32796}
      97161a29
  29. 09 Dec, 2015 3 commits
    • mbrandy's avatar
      PPC64: [turbofan] Change TruncateFloat64ToUint64 to TryTruncateFloatToUint64. · caea1bbd
      mbrandy authored
      Port c343f309
      
      Original commit message:
          This operator now provides a second output which indicates whether the
          conversion from float64 to uint64 was successful or not. The second output
          returns 0 if the conversion fails, or something else if the conversion
          succeeds.
      
          The second output can be ignored, which means that the operator can be used
          the same as the original operator.
      
      R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1512963002
      
      Cr-Commit-Position: refs/heads/master@{#32728}
      caea1bbd
    • mbrandy's avatar
      PPC64: [turbofan] Changed TruncateFloat64ToInt64 to TryTruncateFloat64ToInt64. · b9f92c15
      mbrandy authored
      Port 95844d94
      
      Original commit message:
          The new operator provides a second output which indicates whether the
          conversion from float64 to int64 was successful or not. The second
          output returns 0 if the conversion fails. If the conversion succeeds,
          then the second output is differs from 0.
      
          The second output can be ignored, which means that the operator can be
          used the same way as the original operator.
      
      R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1515603002
      
      Cr-Commit-Position: refs/heads/master@{#32724}
      b9f92c15
    • ahaas's avatar
      [turbofan] Change TruncateFloat64ToUint64 to TryTruncateFloatToUint64. · c343f309
      ahaas authored
      This operator now provides a second output which indicates whether the conversion from float64 to uint64 was successful or not. The second output returns 0 if the conversion fails, or something else if the conversion succeeds.
      
      The second output can be ignored, which means that the operator can be used the same as the original operator.
      
      I implement the new operator on x64 and arm64. @v8-mips-ports and @v8-ppc-ports, can you please take care of the mips64 and ppc64 implementation of the second output?
      
      R=titzer@chromium.org, v8-arm-ports@googlegroups.com
      
      Review URL: https://codereview.chromium.org/1507703002
      
      Cr-Commit-Position: refs/heads/master@{#32705}
      c343f309
  30. 07 Dec, 2015 1 commit
    • ahaas's avatar
      [turbofan] Changed TruncateFloat64ToInt64 to TryTruncateFloat64ToInt64. · 95844d94
      ahaas authored
      The new operator provides a second output which indicates whether the
      conversion from float64 to int64 was successful or not. The second
      output returns 0 if the conversion fails. If the conversion succeeds,
      then the second output is differs from 0.
      
      The second output can be ignored, which means that the operator can be
      used the same way as the original operator.
      
      I implemented the new operator on x64 and arm64. @v8-mips-ports and
      @v8-ppc-ports, can you please take care of the mips64 and ppc64
      implementation of the second output?
      
      R=titzer@chromium.org, v8-arm-ports@googlegroups.com
      
      Review URL: https://codereview.chromium.org/1495213003
      
      Cr-Commit-Position: refs/heads/master@{#32653}
      95844d94
  31. 01 Dec, 2015 3 commits
  32. 30 Nov, 2015 1 commit