1. 15 Apr, 2016 2 commits
  2. 14 Apr, 2016 2 commits
  3. 31 Mar, 2016 2 commits
    • ahaas's avatar
      [wasm] Fixed float-to-int conversion tests. · ac7f0e2b
      ahaas authored
      *) 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
      
      Review URL: https://codereview.chromium.org/1843983002
      
      Cr-Commit-Position: refs/heads/master@{#35176}
      ac7f0e2b
    • zhengxing.li's avatar
      X87: [wasm] Int64Lowering of Int64Mul on ia32 and arm. · 25fe0e01
      zhengxing.li authored
        port 40bdbef9 (r35131)
      
        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.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1845183002
      
      Cr-Commit-Position: refs/heads/master@{#35146}
      25fe0e01
  4. 30 Mar, 2016 2 commits
  5. 23 Mar, 2016 1 commit
  6. 17 Mar, 2016 1 commit
    • zhengxing.li's avatar
      X87: [wasm] Int64Lowering of Int64Sub on ia32 and arm. · 831add80
      zhengxing.li authored
        port 33c08596 (r34808)
      
        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.
      
        @v8-arm-ports: please take a careful look at the implementation of sbc
        in the simulator
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1812753003
      
      Cr-Commit-Position: refs/heads/master@{#34844}
      831add80
  7. 16 Mar, 2016 2 commits
    • 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
    • zhengxing.li's avatar
      X87: [wasm] Int64Lowering of Int64Add on ia32 and arm. · 7e66b57a
      zhengxing.li authored
        port 1b230799 (r34747)
      
        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.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1806833002
      
      Cr-Commit-Position: refs/heads/master@{#34803}
      7e66b57a
  8. 14 Mar, 2016 1 commit
    • ahaas's avatar
      [wasm] Int64Lowering of Int64Add on ia32 and arm. · 1b230799
      ahaas authored
      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=titzer@chromium.org, v8-arm-ports@googlegroups.com
      
      Review URL: https://codereview.chromium.org/1778493004
      
      Cr-Commit-Position: refs/heads/master@{#34747}
      1b230799
  9. 13 Mar, 2016 1 commit
  10. 10 Mar, 2016 2 commits
    • zhengxing.li's avatar
      X87: [wasm] Int64Lowering of I64ShrU and I64ShrS on ia32. · 25279332
      zhengxing.li authored
        port 240b7db9 (r34630)
      
        original commit message:
        I implemented I64ShrU and I64ShrS the same as I64Shl in https://codereview.chromium.org/1756863002
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1783703003
      
      Cr-Commit-Position: refs/heads/master@{#34656}
      25279332
    • zhengxing.li's avatar
      X87: [runtime] Unify and simplify how frames are marked. · 7a51f8c8
      zhengxing.li authored
        port 9dcd0857 (r34571)
      
        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).
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1774353002
      
      Cr-Commit-Position: refs/heads/master@{#34648}
      7a51f8c8
  11. 09 Mar, 2016 2 commits
  12. 08 Mar, 2016 2 commits
    • zhengxing.li's avatar
      X87: [turbofan] Further fixing ES6 tail call elimination in Turbofan. · 26abfc50
      zhengxing.li authored
        port 2aae579c (r34566)
      
        original commit message:
        In case when F tail calls G we should also remove the potential arguments adaptor frame for F.
      
        This CL introduces two new machine instructions ArchTailCallCodeObjectFromJSFunction and ArchTailCallJSFunctionFromJSFunction which (unlike existing ArchTailCallCodeObject and ArchTailCallJSFunction)
        also drop arguments adaptor frame if it exists right before jumping to the target function.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1777563002
      
      Cr-Commit-Position: refs/heads/master@{#34593}
      26abfc50
    • zhengxing.li's avatar
      X87: [wasm] Int64Lowering of I64Shl on ia32. · 8f506ac6
      zhengxing.li authored
        port ddc626e1 (r34546)
      
        original commit message:
        I64Shl is lowered to a new turbofan operator, WasmWord64Shl. The new
        operator takes 3 inputs, the low-word input, the high-word input, and
        the shift, and produces 2 output, the low-word output and the high-word
        output.
      
        At the moment I implemented the lowering only for ia32, but I think the
        CL is already big enough. I will add the other platforms in separate
        CLs.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1773083002
      
      Cr-Commit-Position: refs/heads/master@{#34591}
      8f506ac6
  13. 07 Mar, 2016 1 commit
    • ahaas's avatar
      [wasm] Int64Lowering of I64Shl on ia32. · ddc626e1
      ahaas authored
      I64Shl is lowered to a new turbofan operator, WasmWord64Shl. The new
      operator takes 3 inputs, the low-word input, the high-word input, and
      the shift, and produces 2 output, the low-word output and the high-word
      output.
      
      At the moment I implemented the lowering only for ia32, but I think the
      CL is already big enough. I will add the other platforms in separate
      CLs.
      
      R=titzer@chromium.org
      
      Review URL: https://codereview.chromium.org/1756863002
      
      Cr-Commit-Position: refs/heads/master@{#34546}
      ddc626e1
  14. 03 Mar, 2016 1 commit
  15. 23 Feb, 2016 1 commit
    • zhengxing.li's avatar
      X87: Emit memory operands for cmp and test on ia32 and x64 when it makes sense. · e1b9058f
      zhengxing.li authored
        port 0e43ff56 (r34187)
      
        original commit message:
        The InstructionSelector now associates an effect level to every node in a block.
      
        The effect level of a node is the number of non-eliminatable nodes encountered from the beginning of the block to the node itself.
      
        With this change, on ia32 and x64, a load from memory into a register can be replaced by a memory operand if all of the following conditions hold:
      
        1. The only use of the load is in a 32 or 64 bit word comparison.
        2. The user node and the load node belong to the same block.
        3. The values of the operands have the same size (i.e., no need to zero-extend or sign-extend the result of the load).
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1724473004
      
      Cr-Commit-Position: refs/heads/master@{#34204}
      e1b9058f
  16. 22 Feb, 2016 1 commit
  17. 19 Feb, 2016 2 commits
  18. 18 Feb, 2016 1 commit
  19. 17 Feb, 2016 2 commits
  20. 16 Feb, 2016 2 commits
  21. 15 Feb, 2016 3 commits
  22. 06 Feb, 2016 2 commits
  23. 04 Feb, 2016 1 commit
  24. 29 Jan, 2016 3 commits
    • ahaas's avatar
      [turbofan] Add the StackSlot operator to turbofan. · 64588037
      ahaas authored
      The StackSlot operator allows to allocate a spill slot on the stack. We
      are going to use this operator to pass floats through pointers to c
      functions, which we need for floating point rounding in the case where
      the architecture does not provide rounding instructions.
      
      R=titzer@chromium.org, v8-arm-ports@googlegroups.com, v8-ppc-ports@googlegroups.com, v8-mips-ports@googlegroups.com
      
      Committed: https://crrev.com/7a693437787090d62d937b862e29521debcc5223
      Cr-Commit-Position: refs/heads/master@{#33600}
      
      Review URL: https://codereview.chromium.org/1645653002
      
      Cr-Commit-Position: refs/heads/master@{#33606}
      64588037
    • ahaas's avatar
      Revert of [turbofan] Add the StackSlot operator to turbofan. (patchset #4... · 11f7c2e6
      ahaas authored
      Revert of [turbofan] Add the StackSlot operator to turbofan. (patchset #4 id:60001 of https://codereview.chromium.org/1645653002/ )
      
      Reason for revert:
      problems on Mac64
      
      Original issue's description:
      > [turbofan] Add the StackSlot operator to turbofan.
      >
      > The StackSlot operator allows to allocate a spill slot on the stack. We
      > are going to use this operator to pass floats through pointers to c
      > functions, which we need for floating point rounding in the case where
      > the architecture does not provide rounding instructions.
      >
      > R=titzer@chromium.org, v8-arm-ports@googlegroups.com, v8-ppc-ports@googlegroups.com, v8-mips-ports@googlegroups.com
      >
      > Committed: https://crrev.com/7a693437787090d62d937b862e29521debcc5223
      > Cr-Commit-Position: refs/heads/master@{#33600}
      
      TBR=titzer@chromium.org,v8-arm-ports@googlegroups.com,v8-mips-ports@googlegroups.com,v8-ppc-ports@googlegroups.com
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1644283002
      
      Cr-Commit-Position: refs/heads/master@{#33601}
      11f7c2e6
    • ahaas's avatar
      [turbofan] Add the StackSlot operator to turbofan. · 7a693437
      ahaas authored
      The StackSlot operator allows to allocate a spill slot on the stack. We
      are going to use this operator to pass floats through pointers to c
      functions, which we need for floating point rounding in the case where
      the architecture does not provide rounding instructions.
      
      R=titzer@chromium.org, v8-arm-ports@googlegroups.com, v8-ppc-ports@googlegroups.com, v8-mips-ports@googlegroups.com
      
      Review URL: https://codereview.chromium.org/1645653002
      
      Cr-Commit-Position: refs/heads/master@{#33600}
      7a693437