1. 09 Mar, 2016 25 commits
  2. 08 Mar, 2016 15 commits
    • binji's avatar
      [Wasm] Convert many of the fixed-size values to LEB128. · 78f6f838
      binji authored
      This CL modifies the following to be LEB128:
      * Function table indices
      * Import table signature indices
      * Export table function indices
      * Function signature param count
      * br/br_if break depth
      * br_table target count
      * block/loop expression count
      
      Still to do:
      * Import/export names (LEB128 count + inline data)
      * Data segments (LEB128 offset + size + inline data)
      * Function header stuff (should seperate into function sig and body sections)
      * Memory access alignment + offset (still discussing)
      
      BUG=
      R=titzer@chromium.org
      
      Review URL: https://codereview.chromium.org/1775873002
      
      Cr-Commit-Position: refs/heads/master@{#34603}
      78f6f838
    • verwaest's avatar
      Don't do any special normalization if a boilerplate contains function literals. · fd405704
      verwaest authored
      This mechanism was used to ensure that functions ended up as constants on the map of prototypes defined using object literals, e.g.,:
      
      function.prototype = {
        method: function() { ... }
      }
      
      Nowadays we treat prototypes specially, and make all their functions constants when an object turns prototype. Hence this special custom code isn't necessary anymore.
      
      This also affects boilerplates that do not become prototypes. Their functions will not be constants but fields instead. Calling their methods will slow down. However, multiple instances of the same boilerplate will stay monomorphic. We'll have to see what the impact is for such objects, but preliminary benchmarks do not show this as an important regression.
      
      BUG=chromium:593008
      LOG=n
      
      Review URL: https://codereview.chromium.org/1772423002
      
      Cr-Commit-Position: refs/heads/master@{#34602}
      fd405704
    • littledan's avatar
      Optimize new TypedArray(typedArray) constructor · ab6e48de
      littledan authored
      A previous spec compliance fix for TypedArrays caused a ~4x performance
      regression. This patch removes the regression by calling out
      to a path within the runtime which implements array copying more
      efficiently.
      
      BUG=chromium:592007
      R=adamk
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1767893002
      
      Cr-Commit-Position: refs/heads/master@{#34601}
      ab6e48de
    • titzer's avatar
      [wasm] Support a two-level namespace for imports. · d61a0c5a
      titzer authored
      R=binji@chromium.org,dschuff@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1780483002
      
      Cr-Commit-Position: refs/heads/master@{#34600}
      d61a0c5a
    • littledan's avatar
      Ensure the @@species protector is updated for accessors · 3f8af30e
      littledan authored
      The initial species protector hooked into property declaration in an
      incomplete place, and missed definitions of accessors. This patch repairs
      them by calling out to update the protector from an additional location.
      
      R=adamk
      CC=verwaest,cbruni
      BUG=v8:4093
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1746323002
      
      Cr-Commit-Position: refs/heads/master@{#34599}
      3f8af30e
    • bryleun's avatar
      S390: Fixed condition code handling on FP->INT and FP rounding in simulator. · 2fdc0ae3
      bryleun authored
      The below instructions were fixed so that the produced condition
      codes in simulator matched behaviour in native s390 CPUs:
      
      CFDBR
      CGDBR
      CGEBR
      CFEBR
      CLFDBR
      CLGDBR
      CLGEBR
      
      Also implemented the CLFEBR instruction in s390 simulator.
      
      (Copypaste of 1763663003, which was pointing at wrong branch - should be master, not lkgr)
      
      R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,joransiu@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com,jyan@ca.ibm.com
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1773813002
      
      Cr-Commit-Position: refs/heads/master@{#34598}
      2fdc0ae3
    • littledan's avatar
      Add UseCounters for various RegExp compatibility issues · 4ea11ca9
      littledan authored
      We have compatibility workarounds to return 'undefined' on accessors
      to RegExp.prototype. This patch adds two UseCounters for two categories
      of this non-spec-compliant path:
      - source
      - ignorecase, multiline, global
      
      R=yangguo
      BUG=chromium:581577
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1762423002
      
      Cr-Commit-Position: refs/heads/master@{#34597}
      4ea11ca9
    • verwaest's avatar
      Add GetProperty/GetElement to JSReceiver and use it where possible · 77361020
      verwaest authored
      Also move GetProperty with string-name to JSReceiver
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1775973002
      
      Cr-Commit-Position: refs/heads/master@{#34596}
      77361020
    • cbruni's avatar
      [counter] reducing the overhead of RuntimeCallTimerScope · 667b04a9
      cbruni authored
      BUG=chromium:589679
      LOG=N
      
      Review URL: https://codereview.chromium.org/1771323003
      
      Cr-Commit-Position: refs/heads/master@{#34595}
      667b04a9
    • mstarzinger's avatar
      [turbofan] Thread through object boilerplate length. · f7934b64
      mstarzinger authored
      This adds the number of properties to be expected within the boilerplate
      object for object literals to the TurboFan IR. The reason is that this
      length can no longer be easily inferred from just the constants array.
      The length is potentially non-zero for empty object literals and might
      also diverge in the presence of constant functions or duplicate property
      names.
      
      For future safety and for symmetry reasons, the same change was applied
      to array literals as well, even though inferring the length from the
      constant elements is still possible there.
      
      R=verwaest@chromium.org
      BUG=chromium:593008
      LOG=n
      
      Review URL: https://codereview.chromium.org/1772803003
      
      Cr-Commit-Position: refs/heads/master@{#34594}
      f7934b64
    • 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
    • jyan's avatar
      S390: Initial impl of regexp · be33a9d8
      jyan authored
      R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,joransiu@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1768383002
      
      Cr-Commit-Position: refs/heads/master@{#34592}
      be33a9d8
    • 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
    • zhengxing.li's avatar
      X87: [crankshaft] Support ES6 tail call elimination. · 802a906e
      zhengxing.li authored
        port 22938040 (r34542)
      
        original commit message:
        HInvokeFunction and HApplyArguments instructions now support tail calling.
      
        Inlining of calls at tail position is not supported yet and therefore still disabled.
      
        The tail-call-megatest was modified so that the usages of "arguments" object do not disable Crankshaft.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1767343003
      
      Cr-Commit-Position: refs/heads/master@{#34590}
      802a906e
    • mbrandy's avatar
      PPC: [turbofan] Further fixing ES6 tail call elimination in Turbofan. · fcaa643d
      mbrandy authored
      Port 2aae579c
      
      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.
      
      R=ishell@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:4698
      LOG=N
      
      Review URL: https://codereview.chromium.org/1773053002
      
      Cr-Commit-Position: refs/heads/master@{#34589}
      fcaa643d