platform/upstream/v8.git
10 years agoFix compile error.
alph@chromium.org [Tue, 18 Feb 2014 13:56:07 +0000 (13:56 +0000)]
Fix compile error.

LOG=N
TBR=yurys@chromium.org,dslomov@chromium.org

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

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

10 years agoFix merge-to-branch imports.
machenbach@chromium.org [Tue, 18 Feb 2014 13:51:46 +0000 (13:51 +0000)]
Fix merge-to-branch imports.

BUG=
TBR=ulan@chromium.org

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

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

10 years agoA64: Fix compiler warning in r19444.
jacob.bramley@arm.com [Tue, 18 Feb 2014 13:51:24 +0000 (13:51 +0000)]
A64: Fix compiler warning in r19444.

BUG=
R=jochen@chromium.org

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

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

10 years agoMake merge-to-branch python port executable
machenbach@chromium.org [Tue, 18 Feb 2014 13:47:56 +0000 (13:47 +0000)]
Make merge-to-branch python port executable

BUG=
TBR=ulan@chromium.org

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

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

10 years agoAllow self_size to be larger than 2GB in heap snapshots.
alph@chromium.org [Tue, 18 Feb 2014 13:22:07 +0000 (13:22 +0000)]
Allow self_size to be larger than 2GB in heap snapshots.

LOG=N
R=dslomov@chromium.org, yurys@chromium.org

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

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

10 years agoA64: Let the MacroAssembler resolve branches to distant targets.
alexandre.rames@arm.com [Tue, 18 Feb 2014 13:15:32 +0000 (13:15 +0000)]
A64: Let the MacroAssembler resolve branches to distant targets.

Code generation would fail when assembling a branch to a label that is bound
outside the immediate range of the instruction. A64 is sensitive to this, as the
various branching instructions have different ranges, going down to +-32KB for
TBZ/TBNZ.  The MacroAssembler is augmented to handle branches to targets that
may exceed the immediate range of instructions.

When branching backward to a label exceeding the instruction range, the
MacroAssembler can simply tweak the generated code to use an unconditional
branch with a longer range. For example instead of
    B(cond, &label);
the MacroAssembler can generate:
    b(InvertCondition(cond), &done);
    b(&label);
    bind(&done);

Since the target is not known when the branch is emitted, forward branches uses
a different mechanism. The MacroAssembler keeps track of forward branches to
unbound labels. When the code generation approaches the end of the range of a
branch, a veneer is generated for the branch.

BUG=v8:3148
LOG=Y
R=ulan@chromium.org

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

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

10 years agoAdd merge-to-branch python port.
machenbach@chromium.org [Tue, 18 Feb 2014 13:09:14 +0000 (13:09 +0000)]
Add merge-to-branch python port.

- To ease a line-by-line review, the script is intentionally close to the former bash version
- Disambiguate the existing "-r" option for reviewer in the other scripts
- The options design will be refactored in a follow up CL

TEST=python -m unittest test_scripts.ScriptTest.testMergeToBranch
R=ulan@chromium.org

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

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

10 years agoPass a BailoutReason to Runtime::kAbort.
jacob.bramley@arm.com [Tue, 18 Feb 2014 13:03:24 +0000 (13:03 +0000)]
Pass a BailoutReason to Runtime::kAbort.

BUG=
R=rmcilroy@chromium.org, ulan@chromium.org

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

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

10 years agotemplatize operand constructors
dcarney@chromium.org [Tue, 18 Feb 2014 12:38:12 +0000 (12:38 +0000)]
templatize operand constructors

R=jochen@chromium.org

BUG=

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

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

10 years agoDirectly store the transition target on LookupResult in TransitionResult.
verwaest@chromium.org [Tue, 18 Feb 2014 12:19:32 +0000 (12:19 +0000)]
Directly store the transition target on LookupResult in TransitionResult.
BUG=chromium:343964
LOG=N
R=jkummerow@chromium.org

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

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

10 years agoA64: Fix register usage in LCodeGen::ArgumentsLength
jochen@chromium.org [Tue, 18 Feb 2014 11:56:55 +0000 (11:56 +0000)]
A64: Fix register usage in LCodeGen::ArgumentsLength

The result should be just stored in a W register

BUG=none
R=m.m.capewell@googlemail.com, ulan@chromium.org
LOG=n

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

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

10 years agoConsistent use of const for LookupResult.
bmeurer@chromium.org [Tue, 18 Feb 2014 11:30:51 +0000 (11:30 +0000)]
Consistent use of const for LookupResult.

R=svenpanne@chromium.org

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

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

10 years agoCreate HandleScope before calling GetScriptLineNumber
yurys@chromium.org [Tue, 18 Feb 2014 11:30:38 +0000 (11:30 +0000)]
Create HandleScope before calling GetScriptLineNumber

Otherwise we may crash.

BUG=None
LOG=N
R=alph@chromium.org, hpayer@chromium.org

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

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

10 years agoUpdate LICENSE date.
yangguo@chromium.org [Tue, 18 Feb 2014 10:50:22 +0000 (10:50 +0000)]
Update LICENSE date.

R=jkummerow@chromium.org, danno@chromium.org

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

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

10 years agoHarmony: implement Math.clz32
yangguo@chromium.org [Tue, 18 Feb 2014 10:49:35 +0000 (10:49 +0000)]
Harmony: implement Math.clz32

R=dslomov@chromium.org, svenpanne@chromium.org
BUG=v8:2938
LOG=N

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

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

10 years agoFixed and improved code for integral division. Fixed and extended tests.
svenpanne@chromium.org [Tue, 18 Feb 2014 10:45:27 +0000 (10:45 +0000)]
Fixed and improved code for integral division. Fixed and extended tests.

Arithmetic right shifting is *not* division in two's complement
representation, only in one's complement. So we convert to one's
complement, shift, and go back to two's complement. By permutating the
last steps, one can get efficient branch-free code. This insight comes
from the paleozoic era of computer science, see the paper from 1976:

   Guy Lewis Steele Jr.: "Arithmetic Shifting Considered Harmful"
   ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-378.pdf

This results in better and more correct code than our previous
"neg/shift/neg" dance.

LOG=y
BUG=v8:3151
R=bmeurer@chromium.org

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

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

10 years agoHarmony: implement Math.fround.
yangguo@chromium.org [Tue, 18 Feb 2014 10:43:06 +0000 (10:43 +0000)]
Harmony: implement Math.fround.

R=jarin@chromium.org
BUG=v8:2938
LOG=N

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

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

10 years agoRevert "Handlify DescriptorArray::Merge()."
bmeurer@chromium.org [Tue, 18 Feb 2014 10:38:25 +0000 (10:38 +0000)]
Revert "Handlify DescriptorArray::Merge()."

This reverts commit r19410.

TBR=verwaest@chromium.org

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

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

10 years agoRemove unnecessary checks in CompileStoreInterceptor on a64.
verwaest@chromium.org [Tue, 18 Feb 2014 10:14:11 +0000 (10:14 +0000)]
Remove unnecessary checks in CompileStoreInterceptor on a64.

BUG=
R=dcarney@chromium.org

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

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

10 years agoReland "Allow ICs to be generated for own global proxy."
verwaest@chromium.org [Tue, 18 Feb 2014 10:10:06 +0000 (10:10 +0000)]
Reland "Allow ICs to be generated for own global proxy."

BUG=
R=dcarney@chromium.org

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

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

10 years agoA64: Optimize a loop by using post-indexing.
alexandre.rames@arm.com [Tue, 18 Feb 2014 09:59:02 +0000 (09:59 +0000)]
A64: Optimize a loop by using post-indexing.

R=ulan@chromium.org

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

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

10 years agoA64: Cleaning of Builtins::Generate_FunctionCall.
alexandre.rames@arm.com [Tue, 18 Feb 2014 09:44:43 +0000 (09:44 +0000)]
A64: Cleaning of Builtins::Generate_FunctionCall.

This is mostly register renaming, and a minor optimization merging two TBZ into
one TST and BNE.

R=jochen@chromium.org

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

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

10 years agoMake tools/bash-completion.sh robust against arbitrary CWD
jkummerow@chromium.org [Tue, 18 Feb 2014 09:12:11 +0000 (09:12 +0000)]
Make tools/bash-completion.sh robust against arbitrary CWD

R=yangguo@chromium.org

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

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

10 years agoA64: Update DoAllocate() to use a W register for the size
jochen@chromium.org [Tue, 18 Feb 2014 08:59:06 +0000 (08:59 +0000)]
A64: Update DoAllocate() to use a W register for the size

Inputs should always be 32bit

BUG=none
R=m.m.capewell@googlemail.com, ulan@chromium.org
LOG=n

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

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

10 years agoAlso compile A64 for quickcheck target
jochen@chromium.org [Tue, 18 Feb 2014 08:53:51 +0000 (08:53 +0000)]
Also compile A64 for quickcheck target

We don't run tests yet because even in release mode, this will take a
considerable amount of time.

BUG=none
R=ulan@chromium.org, machenbach@chromium.org
LOG=n

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

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

10 years agoUpdate v8heapconst.py
jkummerow@chromium.org [Tue, 18 Feb 2014 08:50:19 +0000 (08:50 +0000)]
Update v8heapconst.py

R=mstarzinger@chromium.org

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

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

10 years agoRevert r19409: "Allow ICs to be generated for own global proxy."
danno@chromium.org [Tue, 18 Feb 2014 08:34:56 +0000 (08:34 +0000)]
Revert r19409: "Allow ICs to be generated for own global proxy."

Causing Layout test crashes

TBR=verwaest@chromium.org

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

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

10 years agoMIPS: Remove arch specific api callback generate functions.
palfia@homejinni.com [Mon, 17 Feb 2014 20:37:29 +0000 (20:37 +0000)]
MIPS: Remove arch specific api callback generate functions.

Port r19406 (4eab88a)

BUG=
R=gergely@homejinni.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoA64: fix cctest/test-code-stubs-a64/ConvertDToI.
danno@chromium.org [Mon, 17 Feb 2014 17:37:55 +0000 (17:37 +0000)]
A64: fix cctest/test-code-stubs-a64/ConvertDToI.

R=danno@google.com

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

Patch from Ulan Degenbaev <ulan@chromium.org>.

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

10 years agoRevert r19403: "A64: Tidy up Push and Pop TODOs."
danno@chromium.org [Mon, 17 Feb 2014 16:08:44 +0000 (16:08 +0000)]
Revert r19403: "A64: Tidy up Push and Pop TODOs."

Causes a64 debug asserts

TBR=jacob.bramley@arm.com,ulan@chromium.org

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

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

10 years agobuild fix for 19415
dcarney@chromium.org [Mon, 17 Feb 2014 15:46:29 +0000 (15:46 +0000)]
build fix for 19415

TBR=jochen@chromium.org

BUG=

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

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

10 years ago(Pre)Parser: Simplify NewExpression handling (fixed).
marja@chromium.org [Mon, 17 Feb 2014 15:40:51 +0000 (15:40 +0000)]
(Pre)Parser: Simplify NewExpression handling (fixed).

Notes:
- We use simple recursion to keep track of how many "new" operators we have seen
  and where.
- This makes the self-baked stack class PositionStack in parser.cc unnecessary.
- Now the logic is also unified between Parser and PreParser.
- This is a fixed version of r19386.

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

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

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

10 years agoMake a single HeapEntry per single JSArrayBuffer data in heap snapshot.
alph@chromium.org [Mon, 17 Feb 2014 15:24:39 +0000 (15:24 +0000)]
Make a single HeapEntry per single JSArrayBuffer data in heap snapshot.

It turned out that JSArrayBuffer's may share their backing_store so
the backing_store should go through hash map registration just like
other heap objects, so they won't be reported twice.

BUG=341741
LOG=N
R=dslomov@chromium.org, yurys@chromium.org

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

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

10 years agomake a64 compile on mavericks - part 1
dcarney@chromium.org [Mon, 17 Feb 2014 15:20:54 +0000 (15:20 +0000)]
make a64 compile on mavericks - part 1

R=jochen@chromium.org

BUG=

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

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

10 years agoA64 support for DoubleToIStub (truncating).
rmcilroy@chromium.org [Mon, 17 Feb 2014 15:09:46 +0000 (15:09 +0000)]
A64 support for DoubleToIStub (truncating).

Added support for truncating DoubleToIStub and reorganize the macro-assembler
dToI operations to do the fast-path inline and the slow path by calling the
stub.

This a port essentially a port of https://codereview.chromium.org/23129003/.

R=jacob.bramley@arm.com, ulan@chromium.org

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

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

10 years agoSupport elements transitions in load elimination
verwaest@chromium.org [Mon, 17 Feb 2014 14:43:15 +0000 (14:43 +0000)]
Support elements transitions in load elimination

BUG=
R=titzer@chromium.org

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

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

10 years agoRevert "Add a premonomorphic state to the call target cache."
mvstanton@chromium.org [Mon, 17 Feb 2014 14:22:18 +0000 (14:22 +0000)]
Revert "Add a premonomorphic state to the call target cache."

This reverts commit r19402

R=verwaest@chromium.org

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

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

10 years agoCleanup the double field tracking in Hydrogen.
bmeurer@chromium.org [Mon, 17 Feb 2014 13:23:04 +0000 (13:23 +0000)]
Cleanup the double field tracking in Hydrogen.

Use a dedicated BuildLoadNamedField() with PropertyAccessInfo,
similar to BuildStoreNamedField() for optimized graph building,
and a dedicated BuildLoadNamedField() for the code stubs, and
don't depend on FLAG_track_double_fields during code generation.

R=verwaest@chromium.org

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

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

10 years agoHandlify DescriptorArray::Merge().
bmeurer@chromium.org [Mon, 17 Feb 2014 13:22:34 +0000 (13:22 +0000)]
Handlify DescriptorArray::Merge().

R=svenpanne@chromium.org

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

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

10 years agoAllow ICs to be generated for own global proxy.
verwaest@chromium.org [Mon, 17 Feb 2014 13:12:56 +0000 (13:12 +0000)]
Allow ICs to be generated for own global proxy.

R=dcarney@chromium.org

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

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

10 years agoA64: Make simulator compiler with optdebug
jochen@chromium.org [Mon, 17 Feb 2014 12:43:30 +0000 (12:43 +0000)]
A64: Make simulator compiler with optdebug

For some reason, the compiler cannot deduce the array bounds in opt
debug mode. An explicit check makes it happy.

BUG=none
R=ulan@chromium.org
LOG=n

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

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

10 years agoFix heap snapshot crash when JSArrayBuffer has no backing_store.
alph@chromium.org [Mon, 17 Feb 2014 12:39:01 +0000 (12:39 +0000)]
Fix heap snapshot crash when JSArrayBuffer has no backing_store.

LOG=N
BUG=344239
R=dslomov@chromium.org, yurys@chromium.org

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

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

10 years agoRemove arch specific api callback generate functions
dcarney@chromium.org [Mon, 17 Feb 2014 12:36:44 +0000 (12:36 +0000)]
Remove arch specific api callback generate functions

R=verwaest@chromium.org

BUG=

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

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

10 years agoAdded a special stack guard to deopt marked allocation sites.
hpayer@chromium.org [Mon, 17 Feb 2014 12:15:16 +0000 (12:15 +0000)]
Added a special stack guard to deopt marked allocation sites.

BUG=
R=mvstanton@chromium.org, ulan@chromium.org

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

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

10 years agoA64: Tidy up Push and Pop TODOs.
jacob.bramley@arm.com [Mon, 17 Feb 2014 12:08:06 +0000 (12:08 +0000)]
A64: Tidy up Push and Pop TODOs.

This addresses several TODOs:
  - Push and Pop requests can be queued up so that arrays of Registers
    can be pushed efficiently, with just one PrepareForPush/Pop.
  - PushMultipleTimes now takes an Operand. This allows variable-length
    arguments arrays to be initialized, for example.
  - A NoUseRealAbortsScope has been added to Abort so that
    AssertStackConsistency can be called from PrepareForPush without
    introducing infinite recursion.

BUG=
R=ulan@chromium.org

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

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

10 years agoAdd a premonomorphic state to the call target cache.
mvstanton@chromium.org [Mon, 17 Feb 2014 11:59:45 +0000 (11:59 +0000)]
Add a premonomorphic state to the call target cache.

From a CL by kasperl: https://codereview.chromium.org/162903004/

R=verwaest@chromium.org

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

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

10 years agoDo not visit smis in the root list during GC.
yangguo@chromium.org [Mon, 17 Feb 2014 10:41:25 +0000 (10:41 +0000)]
Do not visit smis in the root list during GC.

R=mstarzinger@chromium.org
BUG=328804
LOG=N

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

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

10 years agoARM: build fix for r19380.
jkummerow@chromium.org [Mon, 17 Feb 2014 08:10:02 +0000 (08:10 +0000)]
ARM: build fix for r19380.

This commit fixes the debug build on Linux with gcc 4.6.3 and 4.7.2.

Port r19381 (5476e11b)

BUG=
R=dcarney@chromium.org, plind44@gmail.com

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

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

10 years agoComparison in effect context lazy deopt fix.
jarin@chromium.org [Sun, 16 Feb 2014 05:51:10 +0000 (05:51 +0000)]
Comparison in effect context lazy deopt fix.

R=jkummerow@chromium.org
BUG=

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

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

10 years agoMIPS: build fix for r19380
palfia@homejinni.com [Fri, 14 Feb 2014 21:28:22 +0000 (21:28 +0000)]
MIPS: build fix for r19380

Port r19381 (5476e11b)

BUG=
R=plind44@gmail.com

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

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

10 years agoMIPS: Remove HandlerKindField and just encode the handlerkind as the only extra-ic...
plind44@gmail.com [Fri, 14 Feb 2014 18:11:31 +0000 (18:11 +0000)]
MIPS: Remove HandlerKindField and just encode the handlerkind as the only extra-ic-state.

Port r19385 (27769f9)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoMIPS: Don't mix handler flags into regular flag computation.
plind44@gmail.com [Fri, 14 Feb 2014 18:06:34 +0000 (18:06 +0000)]
MIPS: Don't mix handler flags into regular flag computation.

Port r19384 (4ba5d0d)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoMIPS: api accessor store ics should return passed value.
plind44@gmail.com [Fri, 14 Feb 2014 17:45:53 +0000 (17:45 +0000)]
MIPS: api accessor store ics should return passed value.

Port r19380 (114a9ca)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoMIPS: Fix assignment of function name constant.
plind44@gmail.com [Fri, 14 Feb 2014 17:37:45 +0000 (17:37 +0000)]
MIPS: Fix assignment of function name constant.

Port r19379 (622d830)

Original commit message:
If it's shadowed by a variable of the same name and both are forcibly
context-allocated, the function is assigned to the wrong context slot.

BUG=v8:3138
LOG=Y
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoDebug-mode check added: optimized keyed store of a smi on x64 is done to a entry...
ishell@chromium.org [Fri, 14 Feb 2014 16:41:59 +0000 (16:41 +0000)]
Debug-mode check added: optimized keyed store of a smi on x64 is done to a entry containing a smi.

R=verwaest@chromium.org

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

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

10 years agoRevert "(Pre)Parser: Simplify NewExpression handling."
marja@chromium.org [Fri, 14 Feb 2014 16:08:14 +0000 (16:08 +0000)]
Revert "(Pre)Parser: Simplify NewExpression handling."

This reverts revision 19386.

Reason: Mozilla failures.

BUG=
TBR=ulan@chromium.org,marja@chromium.org

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

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

10 years agoFix dictionary element load to pass correct elements kind.
ulan@chromium.org [Fri, 14 Feb 2014 15:52:24 +0000 (15:52 +0000)]
Fix dictionary element load to pass correct elements kind.

Using FAST_SMI_ELEMENTS triggers optimization on 64-bit architectures that load
only the higher 32 bits of the element. If the element is a pointer to undefined
that has 0 in the higher half than it is erroneously treated as SMI 0.

BUG=v8:3158
LOG=N
TEST=mjsunit/sparse-array-reverse,mjsunit/regress/regress-3158.js
R=danno@chromium.org, ishell@chromium.org

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

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

10 years ago(Pre)Parser: Simplify NewExpression handling.
marja@chromium.org [Fri, 14 Feb 2014 15:33:10 +0000 (15:33 +0000)]
(Pre)Parser: Simplify NewExpression handling.

Notes:
- We use simple recursion to keep track of how many "new" operators we have seen
  and where.
- This makes the self-baked stack class PositionStack in parser.cc unnecessary.
- Now the logic is also unified between Parser and PreParser.
- It might have been a copy-paste artifact (ParseLeftHandSideExpression ->
  ParseMemberWithNewPrefixesExpression) that the logic was so complicated
  before.

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

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

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

10 years agoRemove HandlerKindField and just encode the handlerkind as the only extra-ic-state.
verwaest@chromium.org [Fri, 14 Feb 2014 15:17:26 +0000 (15:17 +0000)]
Remove HandlerKindField and just encode the handlerkind as the only extra-ic-state.

R=ishell@chromium.org

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

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

10 years agoDon't mix handler flags into regular flag computation.
verwaest@chromium.org [Fri, 14 Feb 2014 15:15:08 +0000 (15:15 +0000)]
Don't mix handler flags into regular flag computation.

BUG=
R=ishell@chromium.org

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

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

10 years agoPass in the handler kind to IC computation rather than extracting it from the handler.
verwaest@chromium.org [Fri, 14 Feb 2014 15:14:34 +0000 (15:14 +0000)]
Pass in the handler kind to IC computation rather than extracting it from the handler.

R=ishell@chromium.org

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

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

10 years agoAdd flags for write barrier elimination and local allocation folding.
mstarzinger@chromium.org [Fri, 14 Feb 2014 14:58:05 +0000 (14:58 +0000)]
Add flags for write barrier elimination and local allocation folding.

R=hpayer@chromium.org

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

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

10 years agobuild fix for r19380
dcarney@chromium.org [Fri, 14 Feb 2014 14:48:20 +0000 (14:48 +0000)]
build fix for r19380

R=mstarzinger@chromium.org

BUG=

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

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

10 years agoapi accessor store ics should return passed value
dcarney@chromium.org [Fri, 14 Feb 2014 14:13:06 +0000 (14:13 +0000)]
api accessor store ics should return passed value

R=verwaest@chromium.org

BUG=

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

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

10 years agoFix assignment of function name constant.
yangguo@chromium.org [Fri, 14 Feb 2014 12:40:47 +0000 (12:40 +0000)]
Fix assignment of function name constant.

If it's shadowed by a variable of the same name and both are forcibly
context-allocated, the function is assigned to the wrong context slot.

R=rossberg@chromium.org
BUG=v8:3138
LOG=Y

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

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

10 years agoHandle the uninitialized oddball in Type::LubBitset().
bmeurer@chromium.org [Fri, 14 Feb 2014 12:34:28 +0000 (12:34 +0000)]
Handle the uninitialized oddball in Type::LubBitset().

R=rossberg@chromium.org

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

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

10 years agoThe sweeper thread should not write the page flags. Added a sweeping complete phase...
hpayer@chromium.org [Fri, 14 Feb 2014 12:33:35 +0000 (12:33 +0000)]
The sweeper thread should not write the page flags. Added a sweeping complete phase, where the main thread writes the given page flags.

BUG=
R=jarin@chromium.org, jochen@chromium.org

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

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

10 years agoRemove Parser::scanner(). There is already ParserBase::scanner().
marja@chromium.org [Fri, 14 Feb 2014 12:13:33 +0000 (12:13 +0000)]
Remove Parser::scanner(). There is already ParserBase::scanner().

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

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

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

10 years agoTest and fix for polymorphic named call deoptimization.
jarin@chromium.org [Fri, 14 Feb 2014 12:02:39 +0000 (12:02 +0000)]
Test and fix for polymorphic named call deoptimization.

The fix removes wrong simulates from the number branch of polymorphic
call/field access handling.

The change also fixes the same thing for polymorphic named field
access even thourgh the field access is probably safe in practice
(because it cannot deoptimize). It is better to keep all our simulates
in sync with full codegen.

R=jkummerow@chromium.org
BUG=

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

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

10 years ago(Pre)Parser: Move ParsePrimaryExpression to ParserBase.
marja@chromium.org [Fri, 14 Feb 2014 11:24:26 +0000 (11:24 +0000)]
(Pre)Parser: Move ParsePrimaryExpression to ParserBase.

Notes:
- To be able to move the recursive descent functions to ParserBase one at a
time, we temporarily need routing functions from traits to Parser/PreParser,
since the recursive descent functions form a cyclic structure.
- PreParser used to always allow intrinsic syntax. After this CL, it depends on
allow_natives_syntax() which was already in ParserBase.
- This CL also decouples (Pre)ParserTraits better from (Pre)Parser, passing more
information as parameters, so that the Traits don't need to get it from
(Pre)Parser.
R=ulan@chromium.org
BUG=v8:3126
LOG=N

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

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

10 years agoValgrind fix: always initialize HCheckTableEntry->is_stable_
jkummerow@chromium.org [Fri, 14 Feb 2014 10:03:17 +0000 (10:03 +0000)]
Valgrind fix: always initialize HCheckTableEntry->is_stable_

BUG=chromium:343621
LOG=N
R=ishell@chromium.org

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

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

10 years agoFix typed array error message.
yangguo@chromium.org [Fri, 14 Feb 2014 09:33:03 +0000 (09:33 +0000)]
Fix typed array error message.

R=dslomov@chromium.org
BUG=v8:3159
LOG=N

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

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

10 years agoA64: Prevent repeated restoring of root in gap resolver
m.m.capewell@googlemail.com [Fri, 14 Feb 2014 09:12:39 +0000 (09:12 +0000)]
A64: Prevent repeated restoring of root in gap resolver

BUG=
R=ulan@chromium.org

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

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

10 years agoPrepare push to trunk. Now working on version 3.24.40.
machenbach@chromium.org [Fri, 14 Feb 2014 01:05:20 +0000 (01:05 +0000)]
Prepare push to trunk.  Now working on version 3.24.40.

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

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

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

10 years agoMIPS: Fix r19360 "Improve positions tracking inside the HGraphBuilder."
palfia@homejinni.com [Thu, 13 Feb 2014 18:11:49 +0000 (18:11 +0000)]
MIPS: Fix r19360 "Improve positions tracking inside the HGraphBuilder."

BUG=
R=vegorov@chromium.org

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoFix polymorphic inlining of accessors in a test-context.
verwaest@chromium.org [Thu, 13 Feb 2014 16:55:38 +0000 (16:55 +0000)]
Fix polymorphic inlining of accessors in a test-context.

R=ishell@chromium.org

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

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

10 years agoFix A64 build: unwrap HSourcePosition into int before recording.
vegorov@chromium.org [Thu, 13 Feb 2014 16:53:18 +0000 (16:53 +0000)]
Fix A64 build: unwrap HSourcePosition into int before recording.

Remove unused position_ field in the LChunkBuilder.

R=ulan@chromium.org
BUG=

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

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

10 years ago(Pre)Parser: Move FunctionState, BlockState and Scope handling to ParserBase.
marja@chromium.org [Thu, 13 Feb 2014 16:17:55 +0000 (16:17 +0000)]
(Pre)Parser: Move FunctionState, BlockState and Scope handling to ParserBase.

Notes:
- This removes Parser::FunctionState and PreParser::FunctionState and adds
ParserBase::FunctionState etc.
- Also the scope stacks and function state stacks are moved to ParserBase.
- PreParser::FunctionState didn't add and subtract
JSFunction::kLiteralsPrefixSize (unlike Parser::FunctionState). Since the
actual value of NextMaterializedLiteralIndex is not used in the Preparser,
this change is valid.
- Traits no longer need functions like is_classic_mode(), since now there is a
 unified way of getting the information from the FunctionState / Scope.

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

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

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

10 years agoImprove positions tracking inside the HGraphBuilder.
vegorov@chromium.org [Thu, 13 Feb 2014 16:09:28 +0000 (16:09 +0000)]
Improve positions tracking inside the HGraphBuilder.

Instead of tracking simple absolute offset from the start of the script like other places do, track a pair of (inlining id, offset from the start of inlined function).

This enables us to pinpoint with inlining path an instruction came from. Previously in multi-script environments we emitted positions that made very little sense because inside a single optimized function they would point to different scripts without a way to distinguish them.

Start dumping the source of every inlined function to make possible IR viewing tools with integrated source views as there was previously no way to acquire this information from IR dumps. We also dump source position at which each inlining occured.

Tracked positions are written into hydrogen.cfg as pos:<inlining-id>_<offset>.

Flag --emit-opt-code-positions is renamed by this change into --hydrogen-track-positions to better convey it's meaning.

In addition this change assigned global unique identifier to each optimization performed inside isolate. This allows to precisely match compilation artifacts (e.g. IR and disassembly) and deoptimizations.

BUG=
R=yangguo@chromium.org

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

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

10 years agoReturn on the polymorphic hard deopt case to ensure we don't polute phis with fake...
verwaest@chromium.org [Thu, 13 Feb 2014 15:54:19 +0000 (15:54 +0000)]
Return on the polymorphic hard deopt case to ensure we don't polute phis with fake type information.

R=ishell@chromium.org

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

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

10 years agoA64: Fix some int32 accesses in lithium
m.m.capewell@googlemail.com [Thu, 13 Feb 2014 15:49:01 +0000 (15:49 +0000)]
A64: Fix some int32 accesses in lithium

This fixes mjsunit/sin-cos. There are further int32 accesses being investigated.

BUG=
R=jochen@chromium.org

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

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

10 years agoIntroduce --job-based-sweeping flag and use individual jobs for sweeping if set
jochen@chromium.org [Thu, 13 Feb 2014 15:36:17 +0000 (15:36 +0000)]
Introduce --job-based-sweeping flag and use individual jobs for sweeping if set

BUG=v8:3104
R=hpayer@chromium.org
LOG=y

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

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

10 years agoCount ArrayBuffer's backing_store memory in heap snapshot.
alph@chromium.org [Thu, 13 Feb 2014 15:31:39 +0000 (15:31 +0000)]
Count ArrayBuffer's backing_store memory in heap snapshot.

BUG=341741
LOG=N
R=dslomov@chromium.org, loislo@chromium.org

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

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

10 years agoUse NoBarrier_Load and NoBarrier_Store in FreeListCategory::Concatenate.
hpayer@chromium.org [Thu, 13 Feb 2014 15:01:10 +0000 (15:01 +0000)]
Use NoBarrier_Load and NoBarrier_Store in FreeListCategory::Concatenate.

BUG=
R=jarin@chromium.org

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

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

10 years agoRestore of compare-objeq-elim test accidentally removed in r19229.
ishell@chromium.org [Thu, 13 Feb 2014 12:22:24 +0000 (12:22 +0000)]
Restore of compare-objeq-elim test accidentally removed in r19229.

R=verwaest@chromium.org

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

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

10 years agoRemoved unused field, making clang happy again.
svenpanne@chromium.org [Thu, 13 Feb 2014 12:02:57 +0000 (12:02 +0000)]
Removed unused field, making clang happy again.

R=marja@chromium.org

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

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

10 years agoEnable test-api/SetFunctionEntryHook for a64. It was fixed in r19297.
ulan@chromium.org [Thu, 13 Feb 2014 10:56:10 +0000 (10:56 +0000)]
Enable test-api/SetFunctionEntryHook for a64. It was fixed in r19297.

BUG=v8:3153
LOG=N
R=jochen@chromium.org

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

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

10 years agoAllow map check hoisting in GVN for stable maps.
bmeurer@chromium.org [Thu, 13 Feb 2014 10:47:00 +0000 (10:47 +0000)]
Allow map check hoisting in GVN for stable maps.

R=verwaest@chromium.org

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

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

10 years agoA64: Indicate the correct size for constant pools.
alexandre.rames@arm.com [Thu, 13 Feb 2014 10:27:42 +0000 (10:27 +0000)]
A64: Indicate the correct size for constant pools.

This fixes potential issues that would appear when trying to insert a breakpoint
from JavaScript.
Without this, computing the mapping of addresses between versions of the code with
and without debug slots could be off by an instruction, trigerring nasty bugs.

R=jochen@chromium.org

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

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

10 years agoPrepare push to trunk. Now working on version 3.24.39.
mstarzinger@chromium.org [Thu, 13 Feb 2014 10:16:13 +0000 (10:16 +0000)]
Prepare push to trunk.  Now working on version 3.24.39.

R=machenbach@chromium.org
TBR=machenbach@chromium.org

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

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

10 years agoDo not internalize in TryConvertKey.
yangguo@chromium.org [Thu, 13 Feb 2014 09:36:20 +0000 (09:36 +0000)]
Do not internalize in TryConvertKey.

R=jkummerow@chromium.org

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

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

10 years agoInternalize string keys in Keyed{Store,Load}IC.
yangguo@chromium.org [Thu, 13 Feb 2014 08:43:53 +0000 (08:43 +0000)]
Internalize string keys in Keyed{Store,Load}IC.

R=jkummerow@chromium.org
BUG=v8:3144
LOG=N

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

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

10 years agoV8 Microtask Queue & API
rafaelw@chromium.org [Wed, 12 Feb 2014 22:04:19 +0000 (22:04 +0000)]
V8 Microtask Queue & API

This patch generalizes Object.observe callbacks and promise resolution into a FIFO queue called a "microtask queue".

It also exposes new V8 API which exposes the microtask queue to the embedder. In particular, it allows the embedder to

-schedule a microtask (EnqueueExternalMicrotask)
-run the microtask queue (RunMicrotasks)
-control whether the microtask queue is run automatically within V8 when the last script exits (SetAutorunMicrotasks).

R=dcarney@chromium.org, rossberg@chromium.org, dcarney, rossberg, svenpanne
BUG=

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

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

10 years agoMIPS: Omit redundant smi checks in write barriers.
plind44@gmail.com [Wed, 12 Feb 2014 18:55:33 +0000 (18:55 +0000)]
MIPS: Omit redundant smi checks in write barriers.

Port r19323 (929c047)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoReland: "Use stability to only conditionally flush information from the CheckMaps...
verwaest@chromium.org [Wed, 12 Feb 2014 18:48:12 +0000 (18:48 +0000)]
Reland: "Use stability to only conditionally flush information from the CheckMaps table."

BUG=
R=ishell@chromium.org

Original CL: https://codereview.chromium.org/153823003

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

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

10 years agoDon't propagate information through phis in loop headers.
verwaest@chromium.org [Wed, 12 Feb 2014 18:30:41 +0000 (18:30 +0000)]
Don't propagate information through phis in loop headers.
To properly do this, we'd have to iterate over CompareMaps (and their bodies) handling phis, until we have learned enough to decide which paths can be taken. For now, just disable learning from phis in loop headers.

BUG=
R=ishell@chromium.org

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

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

10 years ago[a64]: Disable failing sparse-array-reverse on a64 debug builds.
rmcilroy@chromium.org [Wed, 12 Feb 2014 18:22:28 +0000 (18:22 +0000)]
[a64]: Disable failing sparse-array-reverse on a64 debug builds.

BUG=v8:3158
LOG=N
R=ulan@chromium.org

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

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

10 years agoKeyedLoadIC::GenerateGeneric() fix for MIPS.
ishell@chromium.org [Wed, 12 Feb 2014 17:31:29 +0000 (17:31 +0000)]
KeyedLoadIC::GenerateGeneric() fix for MIPS.

R=verwaest@chromium.org

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

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

10 years agoFix test-heap/OptimizedPretenuringAllocationFolding wrt concurrent recompilation...
yangguo@chromium.org [Wed, 12 Feb 2014 16:18:18 +0000 (16:18 +0000)]
Fix test-heap/OptimizedPretenuringAllocationFolding wrt concurrent recompilation delay.

R=hpayer@chromium.org

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

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

10 years agoStack trace string should use dynamic script sourceURL if present.
alph@chromium.org [Wed, 12 Feb 2014 15:50:23 +0000 (15:50 +0000)]
Stack trace string should use dynamic script sourceURL if present.

BUG=v8:2342
R=dcarney@chromium.org, yurys@chromium.org, yurys
LOG=N

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

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