1. 22 Apr, 2016 5 commits
  2. 21 Apr, 2016 32 commits
  3. 20 Apr, 2016 3 commits
    • rmcilroy's avatar
      [Interpreter] Fix typo in generate-bytecode-expectations. · 04927031
      rmcilroy authored
      BUG=v8:4681
      LOG=N
      
      Review URL: https://codereview.chromium.org/1894073007
      
      Cr-Commit-Position: refs/heads/master@{#35679}
      04927031
    • adamk's avatar
      More accurately record an end position for default parameters in arrows · e96cbdcd
      adamk authored
      Our previous over-conservative answer caused us to emit hole checks in
      full-codegen when eagerly parsing but not when lazily parsing.
      
      With this patch, we use the positions of the BinaryOperations making up
      the parameter list (which are the positions of the commas) to determine
      the appropriate "end position" for each parameter's initializer. This means
      that we get accurate-enough positions for the initializers in the eager
      parsing step to get the same answers for hole-check-elimination that we
      will later during ParseLazy.
      
      In the included test case, for example:
      
        (function() { ((s = 17, y = s) => s)(); } )();
                              ^2     ^1
      
      The old code would generate a hole check when trying to load
      |s| for assignment to |y| (because it treated the closing parentheses
      pointed to by "^1" as the "initialization position" of |s|).
      
      The new code uses the comma pointed to by "^2" as the initialization
      position of |s|. Since that occurs textually before the load of |s|,
      full-codegen knows it can avoid the hole check.
      
      BUG=v8:4908
      LOG=n
      
      Review URL: https://codereview.chromium.org/1900343002
      
      Cr-Commit-Position: refs/heads/master@{#35678}
      e96cbdcd
    • jyan's avatar
      S390: [turbofan] CodeGenerator: Frame setup refactoring · 2f2b3040
      jyan authored
      Port 81a1530e
      
      Original commit message:
      
          Before frame elision, we finalized the frame shape when assembling the
          prologue, which is also when we prepared the frame (saving sp, etc).
      
          The frame finalization only needs to happen once, and happens to be
          actually a set of idempotent operations. With frame elision, the logic for
          frame finalization was happening every time we constructed the frame.
          Albeit idempotent operations, the code would become hard to maintain.
      
          This change separates frame shape finalization from frame
          construction. When constructing the CodeGenerator, we finalize the
          frame. Subsequent access is to a const Frame*.
      
          Also renamed AssemblePrologue to AssembleConstructFrame, as
          suggested in the frame elision CR.
      
          Separating frame setup gave the opportunity to do away with
          architecture-independent frame aligning (which is something just arm64
          cares about), and also with stack pointer setup (also arm64). Both of
          these happen now at frame finalization on arm64.
      
      R=mtrofin@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/1903403002
      
      Cr-Commit-Position: refs/heads/master@{#35677}
      2f2b3040