Prepare push to trunk.  Now working on version 3.25.12.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/199413005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Allow for compiling with xcode 5.1 (which doesn't have gcc anymore)

BUG=none
R=jkummerow@chromium.org, machenbach@chromium.org
LOG=y

Review URL: https://codereview.chromium.org/196983006

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
StopCpuProfiling should return non-const CpuProfile

StopCpuProfiling is replaced with StopProfiling which returns non-const CpuProfile which allows to call CpuProfile::Delete on it without const_cast. Also replaced StartCpuProfiling with StartProfiling to have symmetric names for start/stop actions.

BUG=v8:3213
LOG=Y
R=alph@chromium.org, svenpanne@chromium.org

Review URL: https://codereview.chromium.org/197873015

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Continued fix for 351257. Reusing the feedback vector is too complex.

Attempting to re-use the type feedback vector stored in the
SharedFunctionInfo turns out to be difficult among the various cases.
It will be much easier to do this when deferred type feedback processing
is removed, as is in the works.

Created bug v8:3212 to track re-introducing the optimization of reusing
the type vector on recompile before optimization.

The CL also brings back the type vector on the SharedFunctionInfo.

BUG=351257
LOG=Y
R=bmeurer@chromium.org, bmeuer@chromium.org

Review URL: https://codereview.chromium.org/199973004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Move ParseAssignmentExpression to ParserBase.

R=mstarzinger@chromium.org, mstarzinger
BUG=v8:3126
LOG=N

Committed: https://code.google.com/p/v8/source/detail?r=19908

Review URL: https://codereview.chromium.org/197653002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Move ParseYieldExpression to ParserBase.

R=mstarzinger@chromium.org
BUG=v8:3126
LOG=N

Review URL: https://codereview.chromium.org/197353003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add regression test for range analysis bug.

BUG=v8:3204
LOG=y
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/200103002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Propagate updated offsets in BoundsCheckBbData.

BUG=350863
LOG=Y
TEST=mjsunit/regress/regress-350863.js
R=bmeurer@chromium.org, jkummerow@chromium.org

Review URL: https://codereview.chromium.org/197823009

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fixed modulo by a power of 2 on A64.

Actually setting flags before checking them might be a good idea... :-/

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/200113003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
New Compilation API, part 1, try 2

- Distinguish between context bound scripts (Script) and context unbound scripts
(UnboundScript).
- Add ScriptCompiler (which will later contain functions for async compilation).

This is a breaking change, in particular, Script::New no longer exists (it is
replaced by ScriptCompiler::CompileUnbound). Script::Compile remains as a
backwards-compatible shorthand for ScriptCompiler::Compile.

Passing CompilerOptions with produce_data_to_cache = true doesn't do anything
yet; the only way to generate the data to cache is the old preparsing API. (To
be fixed in the next version.)

This is a fixed version of https://codereview.chromium.org/186723005/

BUG=
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/199063003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix for issue 351261.

This relands the following fix: "HAllocate should never generate
allocation code if the requested size does not fit into page. Regression
test included. (bug 347543)" along with additional fixes to KeyedStoreIC.

BUG=351261
LOG=N
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/200113002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
A64: Fix a few simulation inaccuracies.

  - Return the correct NaN when an invalid operation generates a NaN.
  - When one or more operands are NaN, handle them as the processor
    would, prioritising signalling NaNs and making them quiet.
  - Fix fmadd and related instructions:
     - Fnmadd is fma(-n, m, -a), not -fma(n, m, a).
     - Some common libc implementations incorrectly implement fma for
       zero results, so work around these cases.
  - Replace some unreliable tests.

This patch also adds support for Default-NaN mode, since once all the
other work was done, it only required a couple of lines of code.
Default-NaN mode was used for an optimisation in ARM, and it should now
be possible to apply the same optimisation to A64.

BUG=
R=jochen@chromium.org

Review URL: https://codereview.chromium.org/199083005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
PromiseCoerce should deal with an error during accessing "then".

PromiseCource(x) should return a rejected promise when accessing x.then
leads to an error.

BUG=347095
LOG=Y
R=rossberg@chromium.org

Review URL: https://codereview.chromium.org/194483002

Patch from Yutaka Hirano <yhirano@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Speed up A64 simulator by removing useless memcpy.

The addresses involved should always be aligned, so we can simply use
a cast, just like the ARM simulator. Even if the alignment assumption
did not hold and the platform we are running on couldn't handle
unaligned access, some #ifdefs would be much more preferable. The
affected member functions were the top 2 in a profile (18% and 15%),
so basically every hack is allowed here to speed things up. :-)

Removed some dead code for literals on the way. If we need to
resurrect it, we should do it without double(!) memcpys.

Generally, I still don't understand why we need the Instr/Instruction
distinction or simply wrap Instr within Instruction, this seems to
be much simpler and cleaner, but this would involve heavier changes.

The overall speedup of this CL is roughly 37%, see the numbers below
for a reduced Octane suite and the check targets:

------------------------------------------------------------
With memcpy:
------------------------------------------------------------

make -j32 a64.release.quickcheck => 03:29
make -j32 a64.release.check      => 11:30
Reduced Octane suite             => 05:16
Richards: 35.1
DeltaBlue: 64.1
RayTrace: 130
Splay: 66.1
SplayLatency: 619
NavierStokes: 58.7
PdfJS: 89.6
Mandreel: 58.5
MandreelLatency: 242
CodeLoad: 5103
Box2D: 124
----
Score (version 9): 144

------------------------------------------------------------
With casts:
------------------------------------------------------------
make -j32 a64.release.quickcheck => 02:14
make -j32 a64.release.check      => 07:21
Reduced Octane suite             => 03:21
Richards: 53.3
DeltaBlue: 103
RayTrace: 205
Splay: 95.9
SplayLatency: 859
NavierStokes: 103
PdfJS: 136
Mandreel: 94.8
MandreelLatency: 386
CodeLoad: 6493
Box2D: 179
----
Score (version 9): 219

R=ulan@chromium.org

Review URL: https://codereview.chromium.org/195873009

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Synchronize thread creation on posix platforms.

BUG=
R=jarin@chromium.org

Review URL: https://codereview.chromium.org/200173002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
More precise result types for contructor calls

R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/199413009

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Revert "Really skip dead blocks in GVN"

This reverts commit r19779 for breaking the GVN algorithm.

BUG=352149
LOG=y
R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/200223004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Make thread_creation_mutex a Thread::PlatformData member.

BUG=
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/198643003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove unused irregexp cache.

R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/200303002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix generalization with callbacks.

BUG=352588
LOG=n
R=danno@chromium.org

Review URL: https://codereview.chromium.org/200173003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00