1. 22 Mar, 2016 3 commits
  2. 21 Mar, 2016 5 commits
  3. 17 Mar, 2016 1 commit
  4. 16 Mar, 2016 4 commits
  5. 11 Mar, 2016 1 commit
  6. 10 Mar, 2016 3 commits
  7. 09 Mar, 2016 5 commits
    • vogelheim's avatar
      Rework CallApi*Stubs. · 5096492f
      vogelheim authored
      - Eliminate stubs with a variable number of arguments.
        (That only worked due to their very limited use. These
         stubs' interface descriptors were basically lying
         about their number of args, which will fail when used
         generically.)
      - Fix all CallApi*Stubs' interface descriptors to no
        longer lie about their arguments.
      - Unify CallApi*Stub, for * in Function, Accessor,
        FunctionWithFixedArgs.
        (Since these are now all doing the same thing.)
      - Rename the unified stub (and interface descriptors) to
        *ApiCallback*, since that's really what they're doing.
      - Refuse inlining an API callback if its number of
        parameters exceeds the supported number of args.
      
      BUG=
      
      Committed: https://crrev.com/d238b953a474272c0e3ea22ef6a9b63fa9729340
      Cr-Commit-Position: refs/heads/master@{#34614}
      
      Review URL: https://codereview.chromium.org/1748123003
      
      Cr-Commit-Position: refs/heads/master@{#34627}
      5096492f
    • vogelheim's avatar
      Revert of Rework CallApi*Stubs. (patchset #5 id:100001 of... · 52a741d1
      vogelheim authored
      Revert of Rework CallApi*Stubs. (patchset #5 id:100001 of https://codereview.chromium.org/1748123003/ )
      
      Reason for revert:
      Breaks Chromium.
      
      Original issue's description:
      > Rework CallApi*Stubs.
      >
      > - Eliminate stubs with a variable number of arguments.
      >   (That only worked due to their very limited use. These
      >    stubs' interface descriptors were basically lying
      >    about their number of args, which will fail when used
      >    generically.)
      > - Fix all CallApi*Stubs' interface descriptors to no
      >   longer lie about their arguments.
      > - Unify CallApi*Stub, for * in Function, Accessor,
      >   FunctionWithFixedArgs.
      >   (Since these are now all doing the same thing.)
      > - Rename the unified stub (and interface descriptors) to
      >   *ApiCallback*, since that's really what they're doing.
      > - Refuse inlining an API callback if its number of
      >   parameters exceeds the supported number of args.
      >
      > BUG=
      >
      > Committed: https://crrev.com/d238b953a474272c0e3ea22ef6a9b63fa9729340
      > Cr-Commit-Position: refs/heads/master@{#34614}
      
      TBR=danno@chromium.org,jkummerow@chromium.org,mstarzinger@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review URL: https://codereview.chromium.org/1775933005
      
      Cr-Commit-Position: refs/heads/master@{#34624}
      52a741d1
    • vogelheim's avatar
      Rework CallApi*Stubs. · d238b953
      vogelheim authored
      - Eliminate stubs with a variable number of arguments.
        (That only worked due to their very limited use. These
         stubs' interface descriptors were basically lying
         about their number of args, which will fail when used
         generically.)
      - Fix all CallApi*Stubs' interface descriptors to no
        longer lie about their arguments.
      - Unify CallApi*Stub, for * in Function, Accessor,
        FunctionWithFixedArgs.
        (Since these are now all doing the same thing.)
      - Rename the unified stub (and interface descriptors) to
        *ApiCallback*, since that's really what they're doing.
      - Refuse inlining an API callback if its number of
        parameters exceeds the supported number of args.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1748123003
      
      Cr-Commit-Position: refs/heads/master@{#34614}
      d238b953
    • ishell's avatar
      [turbofan] [deoptimizer] Support inlining of ES6 tail calls. · c29a4560
      ishell authored
      In case when F was called with incompatible number of arguments (and therefore
      the arguments adator frame was created), F inlines a tail call of G which then
      deopts the deoptimizer should also remove the arguments adaptor frame for F.
      
      This CL adds required machinery to the deoptimizer.
      
      BUG=v8:4698
      LOG=N
      
      Review URL: https://codereview.chromium.org/1768263004
      
      Cr-Commit-Position: refs/heads/master@{#34610}
      c29a4560
    • bmeurer's avatar
      [undetectable] Really get comparisons of document.all right now. · 679d9503
      bmeurer authored
      According to https://www.w3.org/TR/html5/obsolete.html#dom-document-all,
      comparisons of document.all to other values such as strings or objects,
      are unaffected. In fact document.all only gets special treatment in
      comparisons with null or undefined according to HTML. Especially setting
      the undetectable doesn't make two distinct JSReceivers equal.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1774273002
      
      Cr-Commit-Position: refs/heads/master@{#34608}
      679d9503
  8. 08 Mar, 2016 2 commits
    • mstarzinger's avatar
      [compiler] Remove support for concurrent OSR. · 26692242
      mstarzinger authored
      R=yangguo@chromium.org
      
      Review URL: https://codereview.chromium.org/1773593002
      
      Cr-Commit-Position: refs/heads/master@{#34572}
      26692242
    • danno's avatar
      [runtime] Unify and simplify how frames are marked · 9dcd0857
      danno authored
      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).
      
      LOG=N
      
      Review URL: https://codereview.chromium.org/1696043002
      
      Cr-Commit-Position: refs/heads/master@{#34571}
      9dcd0857
  9. 07 Mar, 2016 2 commits
  10. 04 Mar, 2016 2 commits
  11. 03 Mar, 2016 3 commits
  12. 02 Mar, 2016 2 commits
    • bmeurer's avatar
      [compiler] Introduce initial StrictEqualStub. · 4acb492e
      bmeurer authored
      Initial version of a new StrictEqualStub written as TurboFan code stub,
      that implements the full strict equality comparison and is usable for
      both TurboFan and Ignition (and soon for the generic CompareIC case
      too). The stub is not fully optimized yet, i.e. we still go to the
      runtime for string comparisons, but that'll be addressed in a follow-up
      CL.
      
      R=yangguo@chromium.org
      
      Review URL: https://codereview.chromium.org/1753173003
      
      Cr-Commit-Position: refs/heads/master@{#34423}
      4acb492e
    • rmcilroy's avatar
      [Interpreter] Log source positions for bytecode arrays. · d5820158
      rmcilroy authored
      Add support to log source position offsets to the profiler. As part of
      this change PositionsRecorder is split into two, with the subset needed
      by log.cc moved into log.h and the remainder kept in assembler.h as
      AssemblerPositionsRecorder. The interpreter's source position table
      builder is updated to log positions when the profiler is active.
      
      BUG=v8:4766
      LOG=N
      
      Review URL: https://codereview.chromium.org/1737043002
      
      Cr-Commit-Position: refs/heads/master@{#34416}
      d5820158
  13. 27 Feb, 2016 1 commit
  14. 26 Feb, 2016 2 commits
    • bmeurer's avatar
      [turbofan] Don't use the CompareIC in JSGenericLowering. · d00da47b
      bmeurer authored
      The CompareICStub produces an untagged raw word value, which has to be
      translated to true or false manually in the TurboFan code. But for lazy
      bailout after the CompareIC, we immediately go back to fullcodegen or
      Ignition with the raw value, to a location where both fullcodegen and
      Ignition expect a boolean value, which might crash or in the worst case
      (depending on the exact computation inside the CompareIC) could lead to
      arbitrary memory access.
      
      Short-term fix is to use the proper runtime functions (unified with the
      interpreter now) for comparisons. Next task is to provide optimized
      versions of these based on the CodeStubAssembler, which can then be used
      via code stubs in TurboFan or directly in handlers in the interpreter.
      
      R=mstarzinger@chromium.org
      BUG=v8:4788
      LOG=n
      
      Review URL: https://codereview.chromium.org/1738153002
      
      Cr-Commit-Position: refs/heads/master@{#34335}
      d00da47b
    • adamk's avatar
      Revert of [compiler] Drop the CompareNilIC. (patchset #4 id:60001 of... · fca68bac
      adamk authored
      Revert of [compiler] Drop the CompareNilIC. (patchset #4 id:60001 of https://codereview.chromium.org/1722193002/ )
      
      Reason for revert:
      Speculative revert in attempt to fix #2 crasher on canary.
      
      Original issue's description:
      > [compiler] Drop the CompareNilIC.
      >
      > Since both null and undefined are also marked as undetectable now, we
      > can just test that bit instead of having the CompareNilIC try to collect
      > feedback to speed up the general case (without the undetectable bit
      > being used).
      >
      > Drive-by-fix: Update the type system to match the new handling of
      > undetectable in the runtime.
      >
      > R=danno@chromium.org
      >
      > Committed: https://crrev.com/666aec0348c8793e61c8633dee7ad29a514239ba
      > Cr-Commit-Position: refs/heads/master@{#34237}
      
      TBR=danno@chromium.org,verwaest@chromium.org,bmeurer@chromium.org
      LOG=y
      BUG=chromium:589897
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1743433002
      
      Cr-Commit-Position: refs/heads/master@{#34308}
      fca68bac
  15. 25 Feb, 2016 2 commits
    • bmeurer's avatar
      [runtime] Unify comparison operator runtime entries. · 55b4df73
      bmeurer authored
      Only use one set of %StrictEquals/%StrictNotEquals and
      %Equals/%NotEquals runtime entries for both the interpreter
      and the old-style CompareICStub. The long-term plan is to
      update the CompareICStub to also return boolean values, and
      even allow some more code sharing with the interpreter there.
      
      R=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/1738883002
      
      Cr-Commit-Position: refs/heads/master@{#34303}
      55b4df73
    • ahaas's avatar
      [wasm] mips: Turn off signalling NaN tests on mips and mips64. · 5dc96ae2
      ahaas authored
      I turn the test off for now. The problem is that mips does not deal with
      signalling NaNs as expected.
      
      @v8-mips-ports: Could it be that the mips simulator deals differently
      with signalling NaNs than the actual hardware? The implementation that
      is tested in these tests assumes that sNaN * 1.0 = qNaN, where the bits
      of sNaN and qNaN are equal except for the most significant mantissa bit.
      This assumption holds for the simulator, but seems not to hold for actual
      mips hardware. Do you know more about that?
      
      R=mstarzinger@chromium.org, titzer@chromium.org, v8-mips-ports@googlegroups.com
      
      Review URL: https://codereview.chromium.org/1735673003
      
      Cr-Commit-Position: refs/heads/master@{#34278}
      5dc96ae2
  16. 24 Feb, 2016 2 commits
    • mstarzinger's avatar
      [fullcodegen] Factor out EmitNamedPropertyLoad. · 9c53fcad
      mstarzinger authored
      This makes the FullCodeGenerator::EmitNamedPropertyLoad be architecture
      independent by adding MacroAssembler::Move helpers.
      
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/1734643002
      
      Cr-Commit-Position: refs/heads/master@{#34259}
      9c53fcad
    • mythria's avatar
      Revert of [Interpreter] Implements calls through CallICStub in the... · eb358178
      mythria authored
      Revert of [Interpreter] Implements calls through CallICStub in the interpreter. (patchset #15 id:270001 of https://codereview.chromium.org/1688283003/ )
      
      Reason for revert:
      It is not a good idea to call CallICStub from the builtin. It might be sensitive to the frame structure. Constructing a internal frame might cause problems. It is much better to inline the code  related to the type feedback vector into the builtin.
      
      Original issue's description:
      > [Interpreter] Implements calls through CallICStub in the interpreter.
      >
      > Calls are implemented through CallICStub to collect type feedback. Adds
      > a new builtin called InterpreterPushArgsAndCallIC that pushes the
      > arguments onto stack and calls CallICStub.
      >
      > Also adds two new bytecodes CallIC and CallICWide to indicate calls have to
      > go through CallICStub.
      >
      > MIPS port contributed by balazs.kilvady.
      >
      > BUG=v8:4280, v8:4680
      > LOG=N
      >
      > Committed: https://crrev.com/20362a2214c11a0f2ea5141b6a79e09458939cec
      > Cr-Commit-Position: refs/heads/master@{#34244}
      
      TBR=rmcilroy@chromium.org,mvstanton@chromium.org,mstarzinger@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4280, v8:4680
      
      Review URL: https://codereview.chromium.org/1731253003
      
      Cr-Commit-Position: refs/heads/master@{#34252}
      eb358178