1. 20 Apr, 2016 5 commits
    • mtrofin's avatar
      [turbofan] CodeGenerator: Frame setup refactoring · 81a1530e
      mtrofin authored
      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.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1843143002
      
      Cr-Commit-Position: refs/heads/master@{#35642}
      81a1530e
    • zhengxing.li's avatar
      X87: Remove all non-function-name uses of CONST_LEGACY. · b94e9d88
      zhengxing.li authored
        port 59546149 (r35632)
      
        original commit message:
        Now that all 'const' declarations are of the ES2015 variety, the only
        use of CONST_LEGACY is for function name bindings in sloppy mode
        named function expressions.
      
        This patch aims to delete all code meant to handle other cases, which
        mostly had to do with hole initialization/hole checks. Since function
        name bindings are initialized at entry to a function, it's impossible
        to ever observe one in an uninitialized state.
      
        To simplify the patch further, it removes the `IMPORT` VariableMode,
        as it's not likely to be needed (IMPORT is identical to CONST for
        the purpose of VariableMode).
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1902943003
      
      Cr-Commit-Position: refs/heads/master@{#35641}
      b94e9d88
    • zhengxing.li's avatar
      X87: [Interpreter] Remove register file register and replace with LoadParentFramePointer. · c14c1b9d
      zhengxing.li authored
        port 623ad7de (r35618)
      
        original commit message:
        Removes the register file machine register from the interpreter and
        replaces it will loads from the parent frame pointer. As part of this
        change the raw operand values for register values changes to enable the
        interpreter to keep using the operand value as the offset from the
        parent frame pointer.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1903093002
      
      Cr-Commit-Position: refs/heads/master@{#35640}
      c14c1b9d
    • bmeurer's avatar
      [turbofan] Properly connect potentially throwing ToNumber to control chain. · fc3ecad4
      bmeurer authored
      In JSTypedLowering we insert JSToNumber nodes for implicit type
      conversions, which can potentially throw (i.e. the input not statically
      known to be a plain primitive).
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1900383002
      
      Cr-Commit-Position: refs/heads/master@{#35639}
      fc3ecad4
    • jarin's avatar
      [turbofan] Fix static TypeCache::Get call in access builder. · 61e97fea
      jarin authored
      Review URL: https://codereview.chromium.org/1900043003
      
      Cr-Commit-Position: refs/heads/master@{#35638}
      61e97fea
  2. 19 Apr, 2016 35 commits