1. 29 Oct, 2015 1 commit
  2. 28 Oct, 2015 27 commits
  3. 27 Oct, 2015 12 commits
    • littledan's avatar
      Update to ES2015 == semantics for Symbol/SIMD wrappers · b436635a
      littledan authored
      When == is invoked on a Symbol or SIMD vector and an object, the object should
      be converted to a primitive with ToPrimitive and then compared again. This means,
      for example, that for a Symbol or SIMD vector s, s == Object(s). This patch makes
      that change in the implementation of ==. Only the runtime function needed to be
      changed, as the code stubs and compiler specializations don't operate on Symbols
      or SIMD vectors, and on these types, a fallback to the runtime function is always
      used.
      
      BUG=v8:3593
      LOG=Y
      R=adamk
      
      Review URL: https://codereview.chromium.org/1421413002
      
      Cr-Commit-Position: refs/heads/master@{#31614}
      b436635a
    • mstarzinger's avatar
      [turbofan] Fix OSR-ed callee trigged ty do-expressions. · f8465b45
      mstarzinger authored
      This fixes a missing SSA-renaming of the callee value used in the frame
      state of a call node. An OSR-entry within do-expressions contained in
      one of the argument expression can trigger that renaming.
      
      R=rossberg@chromium.org
      TEST=mjsunit/regress/regress-crbug-546968
      BUG=chromium:546968
      LOG=n
      
      Review URL: https://codereview.chromium.org/1430483002
      
      Cr-Commit-Position: refs/heads/master@{#31613}
      f8465b45
    • machenbach's avatar
      [swarming] Isolate custom libcxx. · fd0ee280
      machenbach authored
      BUG=chromium:535160
      LOG=n
      
      Review URL: https://codereview.chromium.org/1420473003
      
      Cr-Commit-Position: refs/heads/master@{#31612}
      fd0ee280
    • fedor's avatar
      [heap] fix crash during the scavenge of ArrayBuffer · 8d6a2288
      fedor authored
      Scavenger should not attempt to visit ArrayBuffer's storage, it is a
      user-supplied pointer that may have any alignment. Visiting it, may
      result in a crash.
      
      BUG=
      R=jochen
      
      Review URL: https://codereview.chromium.org/1406133003
      
      Cr-Commit-Position: refs/heads/master@{#31611}
      8d6a2288
    • littledan's avatar
      Reland of Check that array length stays a safe integer in Array.prototype.push... · 8adb1c47
      littledan authored
      Reland of Check that array length stays a safe integer in Array.prototype.push (patchset #1 id:1 of https://codereview.chromium.org/1418093007/ )
      
      Reason for revert:
      The test failure was unrelated; relanding.
      
      Original issue's description:
      > Revert of Check that array length stays a safe integer in Array.prototype.push (patchset #7 id:120001 of https://codereview.chromium.org/1428483002/ )
      >
      > Reason for revert:
      > Caused for-in-opt test to fail
      >
      > Original issue's description:
      > > Check that array length stays a safe integer in Array.prototype.push
      > >
      > > This patch adds a check in Array.prototype.push to assert that the new
      > > length does not become greater than 2**53-1. Such a length would be
      > > dangerous because integer arithmetic becomes imprecise after the
      > > boundary. The check is also required by a test262 test.
      > >
      > > R=adamk
      > > LOG=Y
      > > BUG=v8:3087
      > >
      > > Committed: https://crrev.com/e68adf4548dd101dc08fcbff14444152fb1b7fe7
      > > Cr-Commit-Position: refs/heads/master@{#31588}
      >
      > TBR=adamk@chromium.org
      > NOPRESUBMIT=true
      > NOTREECHECKS=true
      > NOTRY=true
      > BUG=v8:3087
      >
      > Committed: https://crrev.com/78abedb94431a233842fcb2f7a910805a05bed09
      > Cr-Commit-Position: refs/heads/master@{#31590}
      
      TBR=adamk@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:3087
      
      Review URL: https://codereview.chromium.org/1424823005
      
      Cr-Commit-Position: refs/heads/master@{#31610}
      8adb1c47
    • bmeurer's avatar
      [turbofan] Try hard(er) to use smi representation for float64 values. · 7709e41a
      bmeurer authored
      Previously ChangeLowering would always box float64 values when going to
      tagged representation, but that introduces a lot of deoptimizer loops
      and polymorphism into TurboFan, which is unfortunate and unnecessary.
      
      This adds some logic to ChangeFloat64ToTagged to try harder to create a
      Smi when going from Float64 to Tagged, instead of always allocating a
      HeapNumber.  This might need some additional tweaking, but at least it
      makes it possible to start comparing TurboFan and Crankshaft for some
      regular JavaScript.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1420913003
      
      Cr-Commit-Position: refs/heads/master@{#31609}
      7709e41a
    • machenbach's avatar
      [swarming] Isolate shared libraries for linux32. · 424ae377
      machenbach authored
      BUG=chromium:535160
      LOG=n
      
      Review URL: https://codereview.chromium.org/1424863002
      
      Cr-Commit-Position: refs/heads/master@{#31608}
      424ae377
    • jkummerow's avatar
      Fix deoptimization at ForInStatement::BodyId() · cabeb7db
      jkummerow authored
      Full-codegen prepared for the bailout in the wrong place, causing side
      effects to be replayed when they shouldn't. Crankshaft and Turbofan are
      in agreement about where the deopt should jump to.
      
      TEST=mjsunit/for-in-opt
      R=jarin@chromium.org
      BUG=v8:4381
      LOG=y
      
      Review URL: https://codereview.chromium.org/1413923005
      
      Cr-Commit-Position: refs/heads/master@{#31607}
      cabeb7db
    • Michael Achenbach's avatar
      Whitespace change to test swarming. · 0b14070d
      Michael Achenbach authored
      Cr-Commit-Position: refs/heads/master@{#31606}
      0b14070d
    • mbrandy's avatar
      Fix cctest/test-spaces/CompactionSpace · a0e7a76a
      mbrandy authored
      kExpectedPages should be ceil(kNumObjects / kNumObjectsPerPage)
      
      R=mlippautz@chromium.org, hpayer@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1418143004
      
      Cr-Commit-Position: refs/heads/master@{#31605}
      a0e7a76a
    • rmcilroy's avatar
      [Interpreter] Fix a register allocation bug and add a DCHECK. · f85c4106
      rmcilroy authored
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1413703007
      
      Cr-Commit-Position: refs/heads/master@{#31604}
      f85c4106
    • danno's avatar
      [turbofan] Create ExplicitOperands to specify operands without virtual registers · f1aa5562
      danno authored
      Up until now, if one wanted to specify an explicit stack location                                                                                                                                                                                                or register as an operand for an instruction, it had to also be
      explicitly associated with a virtual register as a so-called
      FixedRegister or FixedStackSlot.
      
      For the implementation of tail calls, the plan is to use the gap
      resolver needs to shuffle stack locations from the caller to the
      tail-called callee. In order to do this, it must be possible to
      explicitly address operand locations on the stack that are not
      associated with virtual registers.
      
      This CL introduces ExplictOperands, which can specify a specific
      register or stack location that is not associated with virtual
      register. This will allow tail calls to specify the target
      locations for the necessary stack moves in the gap for the tail
      call without the core register allocation having to know about
      the target of the stack moves at all.
      
      In the process this CL:
      * creates a new Operand kind, ExplicitOperand, with which
        instructions can specify register and stack slots without an
        associated virtual register.
      * creates a LocationOperand class from which AllocatedOperand and
        ExplicitOperand are derived and provides a common interface to
        get Register, DoubleRegister and spill slot information.
      * removes RegisterOperand, DoubleRegisterOperand,
        StackSlotOperand and DoubleStackSlotOperand, they are subsumed
        by LocationOperand.
      * addresses a cleanup TODO in AllocatedOperand to reduce the
        redundancy of AllocatedOperand::Kind by using machine_type() to
        determine if an operand corresponds to a general purpose or
        double register.
      
      BUG=v8:4076
      LOG=n
      
      Review URL: https://codereview.chromium.org/1389373002
      
      Cr-Commit-Position: refs/heads/master@{#31603}
      f1aa5562