platform/upstream/v8.git
11 years agoRemove some ascii checks in advance of latin-1 release
yangguo@chromium.org [Wed, 16 Jan 2013 12:52:27 +0000 (12:52 +0000)]
Remove some ascii checks in advance of latin-1 release

BUG=

Review URL: https://chromiumcodereview.appspot.com/11880017
Patch from Dan Carney <dcarney@google.com>.

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

11 years agoAvoid pointer underflow in CopyCharsUnsigned.
yangguo@chromium.org [Wed, 16 Jan 2013 12:27:38 +0000 (12:27 +0000)]
Avoid pointer underflow in CopyCharsUnsigned.

R=dcarney@chromium.org
BUG=v8:2493

Review URL: https://chromiumcodereview.appspot.com/11961012

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

11 years agoImplement Context::GetIsolate()
svenpanne@chromium.org [Wed, 16 Jan 2013 12:11:43 +0000 (12:11 +0000)]
Implement Context::GetIsolate()

BUG=
TEST=test-api.cc (IsolateOfContext)

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

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

11 years agoRevert "Optimize the emitted instruction of random function for X64"
jkummerow@chromium.org [Wed, 16 Jan 2013 11:45:08 +0000 (11:45 +0000)]
Revert "Optimize the emitted instruction of random function for X64"

This reverts r13393.

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

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

11 years agoMIPS: Some more instrumentation to narrow down Failure leaks.
jkummerow@chromium.org [Wed, 16 Jan 2013 10:50:01 +0000 (10:50 +0000)]
MIPS: Some more instrumentation to narrow down Failure leaks.

Port r13341 (673c3243)

Original commit message:
The basic idea is to tag OOM-Failure objects with an ID indicating where they were created. This requires changes to equality comparisons.

BUG=
TEST=

Review URL: https://codereview.chromium.org/11972002
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoRecord vdso and vsyscall as shared libraries in OS::LogSharedLibraryAddresses on...
jkummerow@chromium.org [Wed, 16 Jan 2013 10:46:34 +0000 (10:46 +0000)]
Record vdso and vsyscall as shared libraries in OS::LogSharedLibraryAddresses on Linux

Review URL: https://codereview.chromium.org/11879036
Patch from Haitao Feng <haitao.feng@intel.com>.

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

11 years agoOptimize the emitted instruction of random function for X64
jkummerow@chromium.org [Wed, 16 Jan 2013 10:35:24 +0000 (10:35 +0000)]
Optimize the emitted instruction of random function for X64

Review URL: https://codereview.chromium.org/11852007
Patch from Weiliang Lin <weiliang.lin@intel.com>.

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

11 years agoGenerate shim headers when using system v8.
jkummerow@chromium.org [Wed, 16 Jan 2013 10:16:46 +0000 (10:16 +0000)]
Generate shim headers when using system v8.

BUG=chromium:165264

Review URL: https://codereview.chromium.org/11642006
Patch from PaweÅ‚ Hajdan Jr. <phajdan.jr@chromium.org>.

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

11 years agoInline MarkIndependent(), MarkPartiallyDependent(), IsIndependent()
mstarzinger@chromium.org [Wed, 16 Jan 2013 10:10:53 +0000 (10:10 +0000)]
Inline MarkIndependent(), MarkPartiallyDependent(), IsIndependent()

TEST=test-api.cc (IndependentWeakHandle, ApiObjectGroupsCycleForScavenger)

Review URL: https://codereview.chromium.org/11879044
Patch from Kentaro Hara <haraken@chromium.org>.

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

11 years agoMIPS: Remove move ascii data hint for one byte strings
yangguo@chromium.org [Wed, 16 Jan 2013 10:05:15 +0000 (10:05 +0000)]
MIPS: Remove move ascii data hint for one byte strings

Port r13375 (198859e8)

Original commit message:
This is mostly a rollback of r12966 [Make kAsciiDataHintTag have correct semantics for all both 1 and 2 byte string types.]

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11969004
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoMIPS: Continues Latin-1 support. All tests pass with ENABLE_LATIN_1 flag.
yangguo@chromium.org [Wed, 16 Jan 2013 10:00:31 +0000 (10:00 +0000)]
MIPS: Continues Latin-1 support. All tests pass with ENABLE_LATIN_1 flag.

Port r13344 (e5638dd9)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11971003
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoFix arguments materialization for inlined apply().
mstarzinger@chromium.org [Wed, 16 Jan 2013 09:25:45 +0000 (09:25 +0000)]
Fix arguments materialization for inlined apply().

This fixes materialization of the arguments object in case the constant
function check if TryCallApply() inside an inlined frame fails.

R=svenpanne@chromium.org
BUG=v8:2489
TEST=mjsunit/regress/regress-2489

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

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

11 years agoAdd some runtime checks to MayNamedAccess
svenpanne@chromium.org [Wed, 16 Jan 2013 08:54:04 +0000 (08:54 +0000)]
Add some runtime checks to MayNamedAccess

R=svenpanne@chromium.org
BUG=

Review URL: https://codereview.chromium.org/11877027
Patch from Dan Carney <dcarney@google.com>.

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

11 years agoPack GlobalHandles::Node::state_ and three flags into uint8_t
mstarzinger@chromium.org [Tue, 15 Jan 2013 10:26:48 +0000 (10:26 +0000)]
Pack GlobalHandles::Node::state_ and three flags into uint8_t

TEST=test-api.cc (ApiObjectGroupsCycle, ApiObjectGroupsCycleForScavenger, IndependentWeakHandle)

Review URL: https://codereview.chromium.org/11875015
Patch from Kentaro Hara <haraken@chromium.org>.

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

11 years agoSync laziness between BuildFunctionInfo and MakeFunctionInfo.
yangguo@chromium.org [Tue, 15 Jan 2013 10:16:52 +0000 (10:16 +0000)]
Sync laziness between BuildFunctionInfo and MakeFunctionInfo.

BuildFunctionInfo compiles the function eagerly when there are debug
break points. However, the AST may have been parsed lazily since
MakeFunctionInfo does not check for debug break points.

This fixes a regression introduced in r11866.

BUG=147497

Review URL: https://chromiumcodereview.appspot.com/11661008

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

11 years agoFix windows build wrt symbol export.
yangguo@chromium.org [Tue, 15 Jan 2013 10:04:18 +0000 (10:04 +0000)]
Fix windows build wrt symbol export.

R=dcarney@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11888022

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

11 years agoAdd sanity check to CodeFlusher::AddCandidate.
mstarzinger@chromium.org [Tue, 15 Jan 2013 10:00:48 +0000 (10:00 +0000)]
Add sanity check to CodeFlusher::AddCandidate.

R=hpayer@chromium.org
BUG=chromium:169209

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

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

11 years agoPrepare push to trunk. Now working on version 3.16.6.
yangguo@chromium.org [Tue, 15 Jan 2013 09:30:04 +0000 (09:30 +0000)]
Prepare push to trunk.  Now working on version 3.16.6.

R=ulan@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11885038

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

11 years agoAdd back ascii fast path for toupper/tolower
yangguo@chromium.org [Tue, 15 Jan 2013 09:22:14 +0000 (09:22 +0000)]
Add back ascii fast path for toupper/tolower

R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11889007
Patch from Dan Carney <dcarney@google.com>.

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

11 years agoRemove move ascii data hint for one byte strings
yangguo@chromium.org [Mon, 14 Jan 2013 15:17:56 +0000 (15:17 +0000)]
Remove move ascii data hint for one byte strings

This is mostly a rollback of r12966
[Make kAsciiDataHintTag have correct semantics for all both 1 and 2 byte string types.]

R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11857015
Patch from Dan Carney <dcarney@google.com>.

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

11 years agoRemoved deprecated functions from v8's external API.
svenpanne@chromium.org [Mon, 14 Jan 2013 13:41:08 +0000 (13:41 +0000)]
Removed deprecated functions from v8's external API.

Removed the following deprecated functions:

   * Object::GetPointerFromInternalField
   * Object::SetPointerInInternalField
   * External::Wrap
   * External::Unwrap
   * Context::GetData
   * Context::SetData

They have been deprecated in the 3.15 branch and are not used by Chrome anymore.
Furthermore, judging from bug reports and email threads, embedders like node.js
and others are already using 3.15, too. All removed API entries can be emulated
by a one-liner, so adapting should not be hard for anybody.

We want to introduce more deprecations soon, but to keep things simple and avoid
having old and not-so-old deprecations in v8.h, the 3.15 deprecations are now
removed.

In general, the strategy of keeping deprecated things for one stable release and
then removing them seems to be a good compromise between a maintenance nightmare
and annoying external embedders. :-)

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

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

11 years agoReland r13188, r13194, r13256 (Deferred formatting of error stack trace during GC).
yangguo@chromium.org [Mon, 14 Jan 2013 13:19:27 +0000 (13:19 +0000)]
Reland r13188, r13194, r13256 (Deferred formatting of error stack trace during GC).

BUG=

Review URL: https://chromiumcodereview.appspot.com/11880018

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

11 years agoThe time spent in GCPrologue callbacks and GCEpilogue callbacks should be measured...
mstarzinger@chromium.org [Mon, 14 Jan 2013 12:59:41 +0000 (12:59 +0000)]
The time spent in GCPrologue callbacks and GCEpilogue callbacks should be measured as EXTERNAL time

BUG=

Review URL: https://codereview.chromium.org/11817044
Patch from Kentaro Hara <haraken@chromium.org>.

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

11 years agoPrepare API for webkit use of Latin-1
yangguo@chromium.org [Mon, 14 Jan 2013 11:22:05 +0000 (11:22 +0000)]
Prepare API for webkit use of Latin-1

R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11852019
Patch from Dan Carney <dcarney@google.com>.

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

11 years agoFix problem with NULL handle in r13367.
mstarzinger@chromium.org [Mon, 14 Jan 2013 10:59:00 +0000 (10:59 +0000)]
Fix problem with NULL handle in r13367.

R=svenpanne@chromium.org
BUG=chromium:169723

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

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

11 years agoFix unhandlified value in GetOwnProperty function.
mstarzinger@chromium.org [Mon, 14 Jan 2013 10:21:22 +0000 (10:21 +0000)]
Fix unhandlified value in GetOwnProperty function.

R=svenpanne@chromium.org
BUG=chromium:169723

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

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

11 years agoWe can't print the AST or the source for stubs.
svenpanne@chromium.org [Mon, 14 Jan 2013 08:36:38 +0000 (08:36 +0000)]
We can't print the AST or the source for stubs.

BUG=v8:2486

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

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

11 years agoConsistently use V8EXPORT on all classes and not on individual methods.
svenpanne@chromium.org [Mon, 14 Jan 2013 07:30:13 +0000 (07:30 +0000)]
Consistently use V8EXPORT on all classes and not on individual methods.

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

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

11 years agoPrepare push to trunk. Now working on version 3.16.5.
yangguo@chromium.org [Fri, 11 Jan 2013 14:49:30 +0000 (14:49 +0000)]
Prepare push to trunk.  Now working on version 3.16.5.

R=ulan@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11854011

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

11 years agoFix shared function info code replacement.
mstarzinger@chromium.org [Fri, 11 Jan 2013 13:13:11 +0000 (13:13 +0000)]
Fix shared function info code replacement.

This fixes a corner case when the unoptimized code for a shared function
info is replaced while the function is enqueued as a flushing candidate.
Since the link field is stored within the code object, the candidates
list got destroyed.

R=hpayer@chromium.org
BUG=v8:169209
TEST=cctest/test-heap/Regress169209

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

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

11 years agoMake v8 handle OOM during Heap construction more gracefully.
svenpanne@chromium.org [Thu, 10 Jan 2013 15:53:11 +0000 (15:53 +0000)]
Make v8 handle OOM during Heap construction more gracefully.

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

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

11 years agoBetter --trace-ic output for UnaryOpICs, matching other IC types
jkummerow@chromium.org [Thu, 10 Jan 2013 14:35:06 +0000 (14:35 +0000)]
Better --trace-ic output for UnaryOpICs, matching other IC types

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

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

11 years agoAdd non-ASCII support to d8's read() function
jkummerow@chromium.org [Thu, 10 Jan 2013 14:27:45 +0000 (14:27 +0000)]
Add non-ASCII support to d8's read() function

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

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

11 years agoMake recent regression test resilient against GC stress.
mstarzinger@chromium.org [Thu, 10 Jan 2013 14:21:27 +0000 (14:21 +0000)]
Make recent regression test resilient against GC stress.

R=danno@chromium.org
TEST=mjsunit/regress/regress-165637

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

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

11 years agoCombine DEBUG_BREAK and DEBUG_PREPARE_STEP_IN into one IC stub kind DEBUG_STUB, encod...
verwaest@chromium.org [Thu, 10 Jan 2013 14:15:12 +0000 (14:15 +0000)]
Combine DEBUG_BREAK and DEBUG_PREPARE_STEP_IN into one IC stub kind DEBUG_STUB, encoding DEBUG_BREAK and DEBUG_PREPARE_STEP_IN as extra ic state.

Review URL: https://chromiumcodereview.appspot.com/11821049

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

11 years agoFix missing exception check in typed array constructor (2).
mstarzinger@chromium.org [Thu, 10 Jan 2013 11:45:29 +0000 (11:45 +0000)]
Fix missing exception check in typed array constructor (2).

This fixes another crash when the the typed array constructor accesses
an array that has a throwing accessor defined on one of it's elements.

R=verwaest@chromium.org
BUG=chromium:168545
TEST=mjsunit/regress/regress-crbug-168545.js

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

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

11 years agoFix objectprint=on build.
yangguo@chromium.org [Wed, 9 Jan 2013 16:34:45 +0000 (16:34 +0000)]
Fix objectprint=on build.

R=dcarney@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11827023

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

11 years agoPrepare push to trunk. Now working on version 3.16.4.
jkummerow@chromium.org [Wed, 9 Jan 2013 16:13:05 +0000 (16:13 +0000)]
Prepare push to trunk.  Now working on version 3.16.4.

R=yangguo@chromium.org

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

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

11 years agoContinues Latin-1 support. All tests pass with ENABLE_LATIN_1 flag.
yangguo@chromium.org [Wed, 9 Jan 2013 15:47:53 +0000 (15:47 +0000)]
Continues Latin-1 support. All tests pass with ENABLE_LATIN_1 flag.

R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11818025
Patch from Dan Carney <dcarney@google.com>.

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

11 years agoFilter old space and large object space to new space references when moving parts...
hpayer@chromium.org [Wed, 9 Jan 2013 14:01:39 +0000 (14:01 +0000)]
Filter old space and large object space to new space references when moving parts of a FixedArray.

BUG=v8:2452

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

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

11 years agoMIPS: Emit madd.d for multiply-add on MIPS.
yangguo@chromium.org [Wed, 9 Jan 2013 12:31:34 +0000 (12:31 +0000)]
MIPS: Emit madd.d for multiply-add on MIPS.

Based on commit r12958 (04586adf).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11783049
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoSome more instrumentation to narrow down Failure leaks.
jkummerow@chromium.org [Wed, 9 Jan 2013 12:29:06 +0000 (12:29 +0000)]
Some more instrumentation to narrow down Failure leaks.

The basic idea is to tag OOM-Failure objects with an ID indicating where they were created. This requires changes to equality comparisons.

Note to MIPS folks: I'm planning to revert this CL in a couple of days, so feel free to skip porting the platform-specific changes.

BUG=chromium:156010

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

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

11 years agoIntroduce ENABLE_LATIN_1 compile flag
yangguo@chromium.org [Wed, 9 Jan 2013 10:30:54 +0000 (10:30 +0000)]
Introduce ENABLE_LATIN_1 compile flag

Mostly a bunch of renaming when flag is disabled.

R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11759008
Patch from Dan Carney <dcarney@google.com>.

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

11 years agoMIPS: Adapt Danno's Track Allocation Info idea to fast literals.
mvstanton@chromium.org [Wed, 9 Jan 2013 10:12:56 +0000 (10:12 +0000)]
MIPS: Adapt Danno's Track Allocation Info idea to fast literals.

Port r13330 (6d9ce8a8)

Original commit message:
Adapt Danno's Track Allocation Info idea to fast literals. When allocating a literal array, we store an AllocationSiteInfo object right after the JSArray, with a pointer to the boilerplate object. Later, if the array transitions we check for the continued existence of the temporary AllocationSiteInfo object (has no roots). If found, we'll use it to transition the boilerplate array as well.

Danno's original changeset: https://codereview.chromium.org/10615002/

BUG=
TEST=

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

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

11 years agoMIPS: Fix typo in commit r13326 (f8c9bf84).
yangguo@chromium.org [Wed, 9 Jan 2013 09:40:00 +0000 (09:40 +0000)]
MIPS: Fix typo in commit r13326 (f8c9bf84).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11824015
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoAdded %FlattenString and use it to speed up a regression test.
svenpanne@chromium.org [Wed, 9 Jan 2013 09:32:12 +0000 (09:32 +0000)]
Added %FlattenString and use it to speed up a regression test.

Flattening strings is relatively costly and by doing it after every duplication
we avoid combinatorial explosion.

Note that flattening could have been done by e.g. using a regular expression,
too, but this is just another implementation detail and %FlattenString seems
general enough to be useful in other tests, too.

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

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

11 years agoMIPS: Generalize calling to C++ on stub deopt
danno@chromium.org [Wed, 9 Jan 2013 08:43:36 +0000 (08:43 +0000)]
MIPS: Generalize calling to C++ on stub deopt

Port r13320 (916d70a6)

Original commit message:
Remove code specific to KeyedLoadICs in DoCompiledStubFrame on all platforms, driving stub frame translation by the register parameter information found in a stub's CodeStubInterfaceDescriptor.

BUG=
TEST=

Review URL: https://codereview.chromium.org/11783046
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoFix nosse2 crash introduced by r13320
danno@chromium.org [Tue, 8 Jan 2013 16:21:39 +0000 (16:21 +0000)]
Fix nosse2 crash introduced by r13320

R=jkummerow@chromium.org

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

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

11 years agoOnly enable MinGW-w64 pow() workaround if needed
yangguo@chromium.org [Tue, 8 Jan 2013 15:32:40 +0000 (15:32 +0000)]
Only enable MinGW-w64 pow() workaround if needed

The pow() workaround is no longer needed in the latest version of
MinGW-w64.

Contributed by net147@gmail.com

BUGS=
TEST=mjsunit/math-pow,mjsunit/math-sqrt

Review URL: https://chromiumcodereview.appspot.com/11748033
Patch from Jonathan Liu <net147@gmail.com>.

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

11 years agoEnable readline on d8 while building a shared lib.
yangguo@chromium.org [Tue, 8 Jan 2013 15:24:17 +0000 (15:24 +0000)]
Enable readline on d8 while building a shared lib.

This patch enables readline on d8 except for completion support.
It sould be useful enough for history and line editing.

This is related to V8's issue 1781 (http://code.google.com/p/v8/issues/detail?id=1781), not chromium's.

BUG=1781

Review URL: https://chromiumcodereview.appspot.com/11776017
Patch from Luis Reis <luis.m.reis@gmail.com>.

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

11 years agoUse POLYMORPHIC for polymorphic Keyed(Load|Store)IC
verwaest@chromium.org [Tue, 8 Jan 2013 12:01:51 +0000 (12:01 +0000)]
Use POLYMORPHIC for polymorphic Keyed(Load|Store)IC

Review URL: https://chromiumcodereview.appspot.com/11794045

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

11 years agoTest fix: missing check for JSArray.
mvstanton@chromium.org [Tue, 8 Jan 2013 10:22:12 +0000 (10:22 +0000)]
Test fix: missing check for JSArray.

BUG=

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

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

11 years agoAdapt Danno's Track Allocation Info idea to fast literals. When allocating a literal...
mvstanton@chromium.org [Tue, 8 Jan 2013 09:03:16 +0000 (09:03 +0000)]
Adapt Danno's Track Allocation Info idea to fast literals. When allocating a literal array,
we store an AllocationSiteInfo object right after the JSArray, with a pointer to the
boilerplate object. Later, if the array transitions we check for the continued existence
of the temporary AllocationSiteInfo object (has no roots). If found, we'll use it to
transition the boilerplate array as well.

Danno's original changeset: https://codereview.chromium.org/10615002/

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

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

11 years agoIntroduce POLYMORPHIC
verwaest@chromium.org [Mon, 7 Jan 2013 15:36:26 +0000 (15:36 +0000)]
Introduce POLYMORPHIC

Review URL: https://chromiumcodereview.appspot.com/11747022

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

11 years agoSlight cleanup of UpdateCache code.
verwaest@chromium.org [Mon, 7 Jan 2013 15:35:00 +0000 (15:35 +0000)]
Slight cleanup of UpdateCache code.

Review URL: https://chromiumcodereview.appspot.com/11737033

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

11 years agoEnvironment bookkeping has linear time complexity now, not a quadratic one.
svenpanne@chromium.org [Mon, 7 Jan 2013 15:28:20 +0000 (15:28 +0000)]
Environment bookkeping has linear time complexity now, not a quadratic one.

This reduces the time take for mjsunit/limit-locals from 56.8s to 15.1s in debug
mode and from 12.0s to 1.6s in release mode.

Note that GrowableBitVector and BitVector should really be merged, and probably
have their allocation strategy parmeterized. The current state of affairs
involving tons of checks and delegation is extremely ugly, and it is far from
clear if all that special casing is a clear win. STL FTW! :-P

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

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

11 years agoUse C++ style type casts.
yangguo@chromium.org [Mon, 7 Jan 2013 15:02:56 +0000 (15:02 +0000)]
Use C++ style type casts.

R=mstarzinger@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11644097

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

11 years agoFix missing exception check in typed array constructor.
mstarzinger@chromium.org [Mon, 7 Jan 2013 14:01:04 +0000 (14:01 +0000)]
Fix missing exception check in typed array constructor.

The typed array constructor might fail if the first argument is an
object with a length property. Accessing the property can cause an
exception to be thrown and an explicit check needs to be performed.

R=verwaest@chromium.org
BUG=chromium:168545
TEST=mjsunit/regress/regress-crbug-168545.js

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

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

11 years agoCheck interceptor before optimizing load/store
verwaest@chromium.org [Mon, 7 Jan 2013 12:14:36 +0000 (12:14 +0000)]
Check interceptor before optimizing load/store

Review URL: https://chromiumcodereview.appspot.com/11753027

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

11 years agoMIPS: Elide unnecessary context reload in generated stubs.
danno@chromium.org [Mon, 7 Jan 2013 10:23:30 +0000 (10:23 +0000)]
MIPS: Elide unnecessary context reload in generated stubs.

Port r13290 (6970ca83)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11773013
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoMIPS: Re-land Crankshaft-generated KeyedLoad stubs.
danno@chromium.org [Mon, 7 Jan 2013 10:18:25 +0000 (10:18 +0000)]
MIPS: Re-land Crankshaft-generated KeyedLoad stubs.

Port r13236 (cd9236c5)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11801002
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoMIPS: Remove redundant loads in DoCheckMaps Hoist the loop-invariant load out of...
danno@chromium.org [Mon, 7 Jan 2013 10:10:38 +0000 (10:10 +0000)]
MIPS: Remove redundant loads in DoCheckMaps Hoist the loop-invariant load out of the loop and call the other CheckMap function

Port r13253 (5af29105)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11784014
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoGeneralize calling to C++ on stub deopt
danno@chromium.org [Mon, 7 Jan 2013 10:06:11 +0000 (10:06 +0000)]
Generalize calling to C++ on stub deopt

Remove code specific to KeyedLoadICs in DoCompiledStubFrame on all platforms, driving stub frame translation by the register parameter information found in a stub's CodeStubInterfaceDescriptor.

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

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

11 years agoAdd ARM support to tools/grokdump.py
ulan@chromium.org [Mon, 7 Jan 2013 09:48:04 +0000 (09:48 +0000)]
Add ARM support to tools/grokdump.py

R=svenpanne@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11565014

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

11 years agoARM: generate integer zero in a uniform manner.
ulan@chromium.org [Mon, 7 Jan 2013 09:43:12 +0000 (09:43 +0000)]
ARM: generate integer zero in a uniform manner.

ARM generated integer zero as either Operand(0, RelocInfo::NONE32), or
Operand(0), or Operand::Zero(). My change makes it use only
Operand::Zero().

This has no functional impact, it's pure cleanup.

R= ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11745030
Patch from JF Bastien <jfb@chromium.org>.

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

11 years agoUse RelocInfo::IsNone in a few more places.
ulan@chromium.org [Mon, 7 Jan 2013 09:15:25 +0000 (09:15 +0000)]
Use RelocInfo::IsNone in a few more places.

I had missed some earlier.

Followup to:
https://chromiumcodereview.appspot.com/11695006/

There are now NONE and NONE64 RelocInfo types, but only ARM uses them
both at the same time. They were added in:
https://chromiumcodereview.appspot.com/11191029/

R= ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11742045
Patch from JF Bastien <jfb@chromium.org>.

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

11 years agoMIPS: Fix ARM code for DoModI.
yangguo@chromium.org [Mon, 7 Jan 2013 08:58:52 +0000 (08:58 +0000)]
MIPS: Fix ARM code for DoModI.

Port r13247 (4dda8131)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11782009
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoMIPS: Enable type feedback for branch statement and function call
ulan@chromium.org [Mon, 7 Jan 2013 08:49:52 +0000 (08:49 +0000)]
MIPS: Enable type feedback for branch statement and function call

Port r13288 (5fa2c889)

Original commit message:
This change associates TypeFeedbackIds with ToBoolean stubs in
full-compiled code on ARM, allowing their information to be used in
Crankshaft. This eliminates unnecessary checks, especially in
DoBranch.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11801003
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoUse enum instead of bool for force_generic (MISS / MISS_FORCE_GENERIC)
verwaest@chromium.org [Fri, 4 Jan 2013 15:37:59 +0000 (15:37 +0000)]
Use enum instead of bool for force_generic (MISS / MISS_FORCE_GENERIC)

Review URL: https://chromiumcodereview.appspot.com/11737032

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

11 years agoCheck for read-only-ness when preparing for array sort.
yangguo@chromium.org [Fri, 4 Jan 2013 15:24:47 +0000 (15:24 +0000)]
Check for read-only-ness when preparing for array sort.

R=verwaest@chromium.org
BUG=v8:2419

Review URL: https://chromiumcodereview.appspot.com/11759022

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

11 years agoReplaced a bailout ID assertion with quadratic time complexity by a linear one.
svenpanne@chromium.org [Fri, 4 Jan 2013 12:48:18 +0000 (12:48 +0000)]
Replaced a bailout ID assertion with quadratic time complexity by a linear one.

This reduces the time to run our test suite in debug mode considerably (from
8:43 to 4:05 on my local workstation using 32 threads). Note that the assertion
is so fast now that it doesn't need to be hidden behind --enable-slow-asserts.
Furthermore, the bookkeeping of the set is not measurable in all our benchmarks,
so I intentionally avoided any #ifdef chaos to keep things simple.

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

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

11 years agoRename RelocInfo::NONE to RelocInfo::NONE32.
ulan@chromium.org [Fri, 4 Jan 2013 10:56:24 +0000 (10:56 +0000)]
Rename RelocInfo::NONE to RelocInfo::NONE32.

This CL only does renaming, nothing else.

Followup to:
https://chromiumcodereview.appspot.com/11695006/

There are now NONE and NONE64 RelocInfo types, but only ARM uses them
both at the same time. They were added in:
https://chromiumcodereview.appspot.com/11191029/

R= ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11744020
Patch from JF Bastien <jfb@chromium.org>.

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

11 years agoPrepare push to trunk. Now working on version 3.16.3.
yangguo@chromium.org [Fri, 4 Jan 2013 08:55:22 +0000 (08:55 +0000)]
Prepare push to trunk.  Now working on version 3.16.3.

R=svenpanne@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11748029

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

11 years agoCleanup RelocInfo::NONE usage.
ulan@chromium.org [Thu, 3 Jan 2013 14:20:08 +0000 (14:20 +0000)]
Cleanup RelocInfo::NONE usage.

There are now NONE and NONE64 RelocInfo types, but only ARM uses them
both at the same time. They were added in:
  https://chromiumcodereview.appspot.com/11191029/

I'll rename NONE to NONE32 in a later CL.

This CL cleans up the RelocInfo::NONE usage by:
 - Using RelocInfo::IsNone when testing for NONE-ness.
 - Using NONE on 32-bit platforms (MIPS and IA32), and NONE64 on 64-bit
   platforms (x64).

This cleans up the code and prevents it from evolving bugs in the future
because NONE32 and NONE64 are used in misleading ways.

R= ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11695006
Patch from JF Bastien <jfb@chromium.org>.

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

11 years agoFix Win64 build.
yangguo@chromium.org [Thu, 3 Jan 2013 13:16:00 +0000 (13:16 +0000)]
Fix Win64 build.

R=dcarney@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11746015

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

11 years agoSynched postmortem script with not-so-recent changes.
svenpanne@chromium.org [Thu, 3 Jan 2013 13:11:47 +0000 (13:11 +0000)]
Synched postmortem script with not-so-recent changes.

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

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

11 years agoRefactor out assumption that one byte strings are ascii in utf8 processing.
yangguo@chromium.org [Thu, 3 Jan 2013 12:59:54 +0000 (12:59 +0000)]
Refactor out assumption that one byte strings are ascii in utf8 processing.

R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11725006
Patch from Dan Carney <dcarney@google.com>.

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

11 years agoImproved printing of HForceRepresentation.
svenpanne@chromium.org [Thu, 3 Jan 2013 10:05:40 +0000 (10:05 +0000)]
Improved printing of HForceRepresentation.

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

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

11 years agoRemove InputBuffer
yangguo@chromium.org [Thu, 3 Jan 2013 09:18:01 +0000 (09:18 +0000)]
Remove InputBuffer

R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11727004
Patch from Dan Carney <dcarney@google.com>.

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

11 years agoAdd Makefile options to build for the Raspberry Pi (armv7=0, arm_fpu=vfp2).
yangguo@chromium.org [Thu, 3 Jan 2013 08:56:05 +0000 (08:56 +0000)]
Add Makefile options to build for the Raspberry Pi (armv7=0, arm_fpu=vfp2).

With these Makefile changes, it is possible to build V8 on the Raspberry Pi with the following make invocation:

make native armv7=false vfp3=off hardfp=on disassembler=on console=readline snapshot=on gdbjit=on strictaliasing=off

R=danno@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11722003
Patch from Luis Reis <luis.m.reis@gmail.com>.

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

11 years agoFixed printing of LInstructions in the presence of optional arguments
svenpanne@chromium.org [Thu, 3 Jan 2013 07:23:33 +0000 (07:23 +0000)]
Fixed printing of LInstructions in the presence of optional arguments

TBR=yangguo@chromium.org

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

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

11 years agoRelax test expectations in BootUpMemoryUse.
yangguo@chromium.org [Wed, 2 Jan 2013 15:00:12 +0000 (15:00 +0000)]
Relax test expectations in BootUpMemoryUse.

R=dcarney@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11738004

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

11 years agoMove CopyElements to the accessor of the target.
verwaest@chromium.org [Wed, 2 Jan 2013 10:09:42 +0000 (10:09 +0000)]
Move CopyElements to the accessor of the target.

Review URL: https://chromiumcodereview.appspot.com/11416238

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

11 years agoReland r13275 and 13276 (Remove most uses of StringInputBuffer).
yangguo@chromium.org [Mon, 31 Dec 2012 11:13:50 +0000 (11:13 +0000)]
Reland r13275 and 13276 (Remove most uses of StringInputBuffer).

R=dcarney@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11727003
Patch from Dan Carney <dcarney@google.com>.

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

12 years agoElide unnecessary context reload in generated stubs.
danno@chromium.org [Fri, 28 Dec 2012 16:25:38 +0000 (16:25 +0000)]
Elide unnecessary context reload in generated stubs.

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

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

12 years agoHandle non-constant divisor in MathFloorOfDiv, on ia32/x64
yangguo@chromium.org [Fri, 28 Dec 2012 15:52:17 +0000 (15:52 +0000)]
Handle non-constant divisor in MathFloorOfDiv, on ia32/x64

Zheng Liu
zheng.z.liu@intel.com

Review URL: https://chromiumcodereview.appspot.com/11624022
Patch from Zheng Liu <zheng.z.liu@intel.com>.

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

12 years agoEnable type feedback for branch statement and function call
ulan@chromium.org [Fri, 28 Dec 2012 15:14:44 +0000 (15:14 +0000)]
Enable type feedback for branch statement and function call

This change associates TypeFeedbackIds with ToBoolean stubs in
full-compiled code on ARM, allowing their information to be used in
Crankshaft. This eliminates unnecessary checks, especially in
DoBranch.

Review URL: https://chromiumcodereview.appspot.com/11635046
Patch from Jay Conrod <dconrod@codeaurora.org>.

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

12 years agoUse EXTERNAL_REFERENCE instead of RUNTIME_ENTRY for Runtime::PerformGC and
danno@chromium.org [Fri, 28 Dec 2012 14:36:55 +0000 (14:36 +0000)]
Use EXTERNAL_REFERENCE instead of RUNTIME_ENTRY for Runtime::PerformGC and
CallApiFunctionAndReturn in X64

Review URL: https://codereview.chromium.org/11694008
Patch from Haitao Feng <haitao.feng@intel.com>.

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

12 years agoUse VLDR instead of VMOVs from GPR when a 64-bit double can't be encoded as a VMOV...
ulan@chromium.org [Fri, 28 Dec 2012 13:34:15 +0000 (13:34 +0000)]
Use VLDR instead of VMOVs from GPR when a 64-bit double can't be encoded as a VMOV immediate.

This requires constant blinding before it can be enabled. There are other interesting optimizations that can be added later, detailed in a TODO.

BUG=optimization
R=ulan@chromium.org,mstarzinger@chromium.org, hwennborg@google.com

Review URL: https://chromiumcodereview.appspot.com/11191029
Patch from JF Bastien <jfb@chromium.org>.

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

12 years agopostmortem: export kSmiShiftSize
danno@chromium.org [Fri, 28 Dec 2012 13:06:08 +0000 (13:06 +0000)]
postmortem: export kSmiShiftSize

Right now it's impossible to figure out from headers that smis are left shifted
by 31 bit on x64, and only then tagged.

R=erik.corry@gmail.com

Review URL: https://codereview.chromium.org/11676005
Patch from Fedor Indutny <fedor@indutny.com>.

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

12 years agoRefactor and improve inlined double-aligned allocations
danno@chromium.org [Fri, 28 Dec 2012 11:09:16 +0000 (11:09 +0000)]
Refactor and improve inlined double-aligned allocations

Change is performance neutral but generates smaller code and encapsulates double alignment in the macro-assembler rather than at the allocation site.

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

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

12 years agoPrepare push to trunk. Now working on version 3.16.2.
ulan@chromium.org [Thu, 27 Dec 2012 15:56:02 +0000 (15:56 +0000)]
Prepare push to trunk.  Now working on version 3.16.2.

R=danno@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11675006

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

12 years agoFix SSE2 debug asserts in LayoutTests
danno@chromium.org [Thu, 27 Dec 2012 15:40:34 +0000 (15:40 +0000)]
Fix SSE2 debug asserts in LayoutTests

R=ulan@chromium.org

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

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

12 years agoRevert r13188, r13194, r13256 (Deferred formatting of error stack trace during GC).
yangguo@chromium.org [Thu, 27 Dec 2012 13:12:27 +0000 (13:12 +0000)]
Revert r13188, r13194, r13256 (Deferred formatting of error stack trace during GC).

R=ulan@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11678006

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

12 years agoAdd kNumberStringCacheRootIndex into writable_roots
yangguo@chromium.org [Thu, 27 Dec 2012 10:11:08 +0000 (10:11 +0000)]
Add kNumberStringCacheRootIndex into writable_roots

Review URL: https://chromiumcodereview.appspot.com/11660028
Patch from Haitao Feng <haitao.feng@intel.com>.

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

12 years agoRevert r13275 and 13276 (Remove most uses of StringInputBuffer).
yangguo@chromium.org [Thu, 27 Dec 2012 10:03:17 +0000 (10:03 +0000)]
Revert r13275 and 13276 (Remove most uses of StringInputBuffer).

This is due to test failures in test-mark-compact/BootUpMemoryUse.

R=ulan@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11688003

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

12 years agoFix build warnings.
yangguo@chromium.org [Mon, 24 Dec 2012 08:52:32 +0000 (08:52 +0000)]
Fix build warnings.

TBR=dcarney@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11669020

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

12 years agoRemove most uses of StringInputBuffer
yangguo@chromium.org [Mon, 24 Dec 2012 08:29:48 +0000 (08:29 +0000)]
Remove most uses of StringInputBuffer

R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11638037
Patch from Dan Carney <dcarney@google.com>.

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

12 years agoFix typo in the CheckSSE2OperandIsInt32: use bitwise not instead of integer negation.
vegorov@chromium.org [Fri, 21 Dec 2012 18:16:27 +0000 (18:16 +0000)]
Fix typo in the CheckSSE2OperandIsInt32: use bitwise not instead of integer negation.

R=ulan@chromium.org
BUG=

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

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

12 years agoFix x64 MathMinMax for negative untagged int32 arguments.
ulan@chromium.org [Fri, 21 Dec 2012 17:52:00 +0000 (17:52 +0000)]
Fix x64 MathMinMax for negative untagged int32 arguments.

An untagged int32 has zeros in the upper half even if it is negative.
Using cmpq to compare such numbers will incorrectly ignore the sign.

BUG=164442
R=mvstanton@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11665007

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