1. 09 Sep, 2015 9 commits
    • mbrandy's avatar
      PPC: [builtins] Unify the various versions of [[Call]] with a Call builtin. · 31a9396e
      mbrandy authored
      Port ccbb4ff0
      
      Original commit message:
          The new Call and CallFunction builtins supersede the current
          CallFunctionStub (and CallIC magic) and will be the single bottleneck
          for all calling, including the currently special Function.prototype.call
          and Function.prototype.apply builtins, which had handwritten (and
          not fully compliant) versions of CallFunctionStub, and also the
          CallIC(s), which where also slightly different.
      
          This also reduces the overhead for API function calls, which is still
          unnecessary high, but let's do that step-by-step.
      
          This also fixes a bunch of cases where the implicit ToObject for
          sloppy receivers was done in the wrong context (in the caller
          context instead of the callee context), which basically meant
          that we allowed cross context access to %ObjectPrototype%.
      
          MIPS and MIPS64 ports contributed by akos.palfi@imgtec.com.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=v8:4413
      LOG=n
      
      Review URL: https://codereview.chromium.org/1327093002
      
      Cr-Commit-Position: refs/heads/master@{#30656}
      31a9396e
    • mbrandy's avatar
      PPC: [runtime] Replace many buggy uses of %_CallFunction with %_Call. · 50c6b031
      mbrandy authored
      Port db2ba190
      
      Original commit message:
          The semantics of the %_CallFunction intrinsic seem to be very unclear,
          which resulted in a lot of bugs. Especially the combination with
          %IsSloppyModeFunction is always a bug, because the receiver would be
          wrapped in the wrong context. So the %IsSloppyModeFunction helper is
          gone now, and many of the buggy uses of %_CallFunction are also
          eliminated.
      
          If you ever need to call something with a different receiver, then
          %_Call is your friend now. It does what you want and implements the
          call sequence fully (and correct).
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=v8:4413
      LOG=n
      
      Review URL: https://codereview.chromium.org/1310303008
      
      Cr-Commit-Position: refs/heads/master@{#30655}
      50c6b031
    • mstarzinger's avatar
      [turbofan] Make %Arguments composable with inlining. · a504a184
      mstarzinger authored
      This makes the C++ fallback implementations for the two intrinsics,
      %Arguments and %ArgumentsLength composable with respect to inlining.
      Using deoptimization information gives us accurate data here.
      
      R=bmeurer@chromium.org
      TEST=mjsunit/regress/regress-4374
      BUG=v8:4374
      LOG=n
      
      Review URL: https://codereview.chromium.org/1328363002
      
      Cr-Commit-Position: refs/heads/master@{#30654}
      a504a184
    • balazs.kilvady's avatar
      MIPS64: Fix 'On a call to Array(), we patched a call ic.' · da830b0e
      balazs.kilvady authored
      Port ba7b6413
      
      Original commit message:
      This CL makes do with a single dispatcher which inlines the special handling for the Array() call case, loading the allocation site found in the vector and calling the array constructor stub appropriately.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1324093005
      
      Cr-Commit-Position: refs/heads/master@{#30653}
      da830b0e
    • bmeurer's avatar
      [runtime] Remove unused %NumberUnaryMinus runtime function. · 100da0a7
      bmeurer authored
      This has been dead code for quite a while now.
      
      R=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/1314353006
      
      Cr-Commit-Position: refs/heads/master@{#30652}
      100da0a7
    • mstarzinger's avatar
      [turbofan] Handle stack overflow exceptions in JSInliner. · c505907d
      mstarzinger authored
      R=bmeurer@chromium.org
      BUG=chromium:527364
      LOG=n
      
      Review URL: https://codereview.chromium.org/1322203005
      
      Cr-Commit-Position: refs/heads/master@{#30651}
      c505907d
    • jochen's avatar
      Use v8-reviews@ for review mail, so v8-dev@ is free for dev discussions · 65ba650f
      jochen authored
      BUG=none
      R=danno@chromium.org
      LOG=y
      
      Review URL: https://codereview.chromium.org/1308953011
      
      Cr-Commit-Position: refs/heads/master@{#30650}
      65ba650f
    • mvstanton's avatar
      On a call to Array(), we patched a call ic. This CL makes do with a single... · ba7b6413
      mvstanton authored
      On a call to Array(), we patched a call ic. This CL makes do with a single dispatcher which inlines the special handling for the Array() call case, loading the allocation site found in the vector and calling the array constructor stub appropriately.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1332563003
      
      Cr-Commit-Position: refs/heads/master@{#30649}
      ba7b6413
    • bmeurer's avatar
      [calls] Consistent call protocol for calls. · b37907ff
      bmeurer authored
      The number of actual arguments should always be available, there's no
      point in trying to optimize away a simple assignment of an immediate to
      a register before some calls.
      
      The main motivation is to have a consistent state at the beginning of every
      function. Currently the arguments register (i.e. rax or eax) either contains
      the number of arguments or some random garbage depending on whether
      the callsite decided that the callee might need the information or not.
      This causes trouble with runtime implementations of functions that
      do not set internal_formal_parameter_count to the DontAdaptArguments
      sentinel (we don't have any of those yet), but also makes it impossible
      to sanity check the arguments in the callee, because the callee doesn't
      know whether the caller decided to pass the number of arguments or
      random garbage.
      
      BUG=v8:4413
      LOG=n
      
      Review URL: https://codereview.chromium.org/1330033002
      
      Cr-Commit-Position: refs/heads/master@{#30648}
      b37907ff
  2. 08 Sep, 2015 23 commits
  3. 07 Sep, 2015 8 commits