1. 08 Feb, 2016 10 commits
    • bmeurer's avatar
      [runtime] Optimize and unify rest parameters. · 3ef573e9
      bmeurer authored
      Replace the somewhat awkward RestParamAccessStub, which would always
      call into the runtime anyway with a proper FastNewRestParameterStub,
      which is basically based on the code that was already there for strict
      arguments object materialization. But for rest parameters we could
      optimize even further (leading to 8-10x improvements for functions with
      rest parameters), by fixing the internal formal parameter count:
      
      Every SharedFunctionInfo has a formal_parameter_count field, which
      specifies the number of formal parameters, and is used to decide whether
      we need to create an arguments adaptor frame when calling a function
      (i.e. if there's a mismatch between the actual and expected parameters).
      Previously the formal_parameter_count included the rest parameter, which
      was sort of unfortunate, as that meant that calling a function with only
      the non-rest parameters still required an arguments adaptor (plus some
      other oddities). Now with this CL we fix, so that we do no longer
      include the rest parameter in that count. Thereby checking for rest
      parameters is very efficient, as we only need to check whether there is
      an arguments adaptor frame, and if not create an empty array, otherwise
      check whether the arguments adaptor frame has more parameters than
      specified by the formal_parameter_count.
      
      The FastNewRestParameterStub is written in a way that it can be directly
      used by Ignition as well, and with some tweaks to the TurboFan backends
      and the CodeStubAssembler, we should be able to rewrite it as
      TurboFanCodeStub in the near future.
      
      Drive-by-fix: Refactor and unify the CreateArgumentsType which was
      different in TurboFan and Ignition; now we have a single enum class
      which is used in both TurboFan and Ignition.
      
      R=jarin@chromium.org, rmcilroy@chromium.org
      TBR=rossberg@chromium.org
      BUG=v8:2159
      LOG=n
      
      Review URL: https://codereview.chromium.org/1676883002
      
      Cr-Commit-Position: refs/heads/master@{#33809}
      3ef573e9
    • ivica.bogosavljevic's avatar
      Reland of MIPS: Add FPXX support to MIPS32R2 · b23d5389
      ivica.bogosavljevic authored
      Fix failures on MIPS simulator because incomplete
      handling of MTHC1 and MFHC1 in Fp32 mode
      Fix failures on older kernels that have problems with
      MTHC1 and MFHC1 in kernel FPU emulation
      
      Original issue's description:
      > Revert of MIPS: Add FPXX support to MIPS32R2 (patchset #3
      > id:40001 of https://codereview.chromium.org/1586223004/ )
      >
      > Reason for revert:
      > Revert patch due to a number of failures appearing on the > MIPS v8 simulator
      >
      > Original issue's description:
      >> MIPS: Add FPXX support to MIPS32R2
      >>
      >> The JIT code generated by V8 is FPXX compliant
      >> when v8 compiled with FPXX flag. This allows the code to
      >> run in both FP=1 and FP=0 mode. It also alows v8 to be used
      >> as a library by both FP32 and FP64 binaries.
      >>
      >> BUG=
      >>
      >> Committed: https://crrev.com/95110dde666158a230a823fd50a68558ad772320
      >> Cr-Commit-Position: refs/heads/master@{#33576}
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1659883002
      
      Cr-Commit-Position: refs/heads/master@{#33808}
      b23d5389
    • jacob.bramley's avatar
      [arm64] Allow immediate-index write barriers. · 8643391f
      jacob.bramley authored
      This is effectively a port of 4eff883b (r27731).
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1671883003
      
      Cr-Commit-Position: refs/heads/master@{#33807}
      8643391f
    • ulan's avatar
      New page local store buffer. · bb883395
      ulan authored
      This replaces the global remembered set with per-page remembered sets.
      
      Each page in the old space, map space, and large object space keeps track of
      the set of slots in the page pointing to the new space.
      
      The data structure for storing slot sets is a two-level bitmap, which allows
      us to remove the store buffer overflow and SCAN_ON_SCAVENGE logic.
      
      Design doc: https://goo.gl/sMKCf7
      
      BUG=chromium:578883
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1608583002
      
      Cr-Commit-Position: refs/heads/master@{#33806}
      bb883395
    • verwaest's avatar
      [crankshaft] Allow inlining of base constructors · df711833
      verwaest authored
      This speeds up base constructor instantiation by ~3x.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1673163002
      
      Cr-Commit-Position: refs/heads/master@{#33805}
      df711833
    • machenbach's avatar
      android: Use libc++ instead of stlport. · ee57e14c
      machenbach authored
      Useful for example for using atomicops_internal_portable.h on Android.
      
      BUG=v8:4615
      LOG=y
      
      patch from issue 1525813002 at patchset 1 (http://crrev.com/1525813002#ps1)
      
      Review URL: https://codereview.chromium.org/1637473003
      
      Cr-Commit-Position: refs/heads/master@{#33804}
      ee57e14c
    • yangguo's avatar
      Update tools/v8heapconst.py. · a13e0af5
      yangguo authored
      R=jkummerow@chromium.org
      
      Review URL: https://codereview.chromium.org/1674023003
      
      Cr-Commit-Position: refs/heads/master@{#33803}
      a13e0af5
    • bmeurer's avatar
      [runtime] Set constructor field on preallocated maps. · 9257db77
      bmeurer authored
      The preallocated JSAccessorPropertyDescriptor, JSDataPropertyDescriptor and
      JSIteratorResult had the constructor field unset, which in turn causes
      GetCreationContext() to fail for those instances.
      
      R=verwaest@chromium.org
      BUG=v8:4738
      LOG=n
      
      Review URL: https://codereview.chromium.org/1676823002
      
      Cr-Commit-Position: refs/heads/master@{#33802}
      9257db77
    • yangguo's avatar
      Fix mips broken by 91009c50. · 9acdc884
      yangguo authored
      TBR=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/1674153002
      
      Cr-Commit-Position: refs/heads/master@{#33801}
      9acdc884
    • bmeurer's avatar
      [runtime] We don't need an actual instance type for JSIteratorResult. · f3b0dbb5
      bmeurer authored
      It's fine to use JS_OBJECT_TYPE for JSIteratorResult and only have a
      preallocated initial map for them to avoid unnecessary polymorphism
      from generators / builtin iterators. The instance type doesn't
      provide any advantage, since we always have to treat JSIteratorResult
      objects as regular JSObjects later.
      
      R=yangguo@chromium.org
      TBR=hpayer@chromium.org
      
      Review URL: https://codereview.chromium.org/1680513002
      
      Cr-Commit-Position: refs/heads/master@{#33800}
      f3b0dbb5
  2. 07 Feb, 2016 1 commit
  3. 06 Feb, 2016 6 commits
  4. 05 Feb, 2016 23 commits