platform/upstream/v8.git
11 years agoReduce usage of AssumeRepresentation
verwaest@chromium.org [Thu, 13 Jun 2013 18:09:33 +0000 (18:09 +0000)]
Reduce usage of AssumeRepresentation

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoMIPS: Delegating yield does not re-box result objects.
palfia@homejinni.com [Thu, 13 Jun 2013 17:47:28 +0000 (17:47 +0000)]
MIPS: Delegating yield does not re-box result objects.

Port r15113 (9d28761)

Delegating yield (yield*) should just pass on the iterator results it
receives instead of re-boxing them.

TEST=mjsunit/harmony/generators-iteration
BUG=

Review URL: https://codereview.chromium.org/16855009
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoRemove manual representation annotations for constants.
verwaest@chromium.org [Thu, 13 Jun 2013 17:38:10 +0000 (17:38 +0000)]
Remove manual representation annotations for constants.

R=mstarzinger@chromium.org

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

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

11 years agoAllow allocations in spaces with constant allocation size use the
hpayer@chromium.org [Thu, 13 Jun 2013 17:03:57 +0000 (17:03 +0000)]
Allow allocations in spaces with constant allocation size use the
smallest possible size-class.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoMIPS: Use keyed-call inline caches in delegating yield.
palfia@homejinni.com [Thu, 13 Jun 2013 16:50:22 +0000 (16:50 +0000)]
MIPS: Use keyed-call inline caches in delegating yield.

Port r15111 (7de1a19)

Original commit message:
Since we can't assume anything about the shape of the iterator in a
yield* (delegating yield), use an IC to do the next() and throw()
iterator method calls.

BUG=v8:2691
TEST=mjsunit/regress/regress-2691

Review URL: https://codereview.chromium.org/16923008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoMIPS: Increase sanity of integer division handling.
palfia@homejinni.com [Thu, 13 Jun 2013 16:44:54 +0000 (16:44 +0000)]
MIPS: Increase sanity of integer division handling.

Port r15057 (c82c777)

Original commit message:
- In the INT32 BinaryOpStub, fix type feedback collection for DIV,
bringing it in line with other platforms.
- In Lithium codegen, emit proper inlined code, don't call the stub.
- Drive-by fix: assert appropriate CpuFeaturesScope for SDIV.

BUG=

Review URL: https://codereview.chromium.org/16857004
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoRefactor turning polymorphic loads into monomorphic loads
verwaest@chromium.org [Thu, 13 Jun 2013 16:36:15 +0000 (16:36 +0000)]
Refactor turning polymorphic loads into monomorphic loads
- remove special code for polymorphic loading of array length
- use it in VisitCountOperation

BUG=
R=hpayer@chromium.org

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

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

11 years agoOnly extend storage if FIELD
verwaest@chromium.org [Thu, 13 Jun 2013 16:21:32 +0000 (16:21 +0000)]
Only extend storage if FIELD

R=jkummerow@chromium.org

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

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

11 years agoImplement IC support for Constant Function transitions.
verwaest@chromium.org [Thu, 13 Jun 2013 15:01:25 +0000 (15:01 +0000)]
Implement IC support for Constant Function transitions.

R=jkummerow@chromium.org

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

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

11 years agoDeprecate several unchecked accessors.
mstarzinger@chromium.org [Thu, 13 Jun 2013 15:00:30 +0000 (15:00 +0000)]
Deprecate several unchecked accessors.

R=hpayer@google.com
BUG=v8:1490

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

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

11 years agoTemporarily patch HCompareIDAndBranch to accept Smi.
verwaest@chromium.org [Thu, 13 Jun 2013 14:58:41 +0000 (14:58 +0000)]
Temporarily patch HCompareIDAndBranch to accept Smi.

R=jkummerow@chromium.org

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

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

11 years agoPrepare push to trunk. Now working on version 3.19.16.
danno@chromium.org [Thu, 13 Jun 2013 14:38:36 +0000 (14:38 +0000)]
Prepare push to trunk.  Now working on version 3.19.16.

R=jkummerow@chromium.org

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

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

11 years agoHCheckFunction is needed to protect new array constructors in
mvstanton@chromium.org [Thu, 13 Jun 2013 14:29:01 +0000 (14:29 +0000)]
HCheckFunction is needed to protect new array constructors in
crankshafted code.

BUG=
R=danno@chromium.org

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

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

11 years agoRevert "Notify CPU profiler when calling native getters"
yurys@chromium.org [Thu, 13 Jun 2013 14:05:19 +0000 (14:05 +0000)]
Revert "Notify CPU profiler when calling native getters"

This reverts commit f323d984a73bab345c4eab5c1907552ccfa7ccaa.

Broke compilation on the bots with an error that doesn't occur locally:

  CXX(target) /mnt/data/b/build/slave/v8-linux-debug/build/v8/out/Debug/obj.target/cctest/test/cctest/test-bignum-dtoa.o
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = int]’:
../test/cctest/test-api.cc:1129: error: insufficient contextual information to determine type
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = unsigned int]’:
../test/cctest/test-api.cc:1136: error: insufficient contextual information to determine type
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = double]’:
../test/cctest/test-api.cc:1143: error: insufficient contextual information to determine type
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = bool]’:
../test/cctest/test-api.cc:1150: error: insufficient contextual information to determine type
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = void]’:
../test/cctest/test-api.cc:1157: error: insufficient contextual information to determine type
  CXX(target) /mnt/data/b/build/slave/v8-linux-debug/build/v8/out/Debug/obj.target/cctest/test/cctest/test-circular-queue.o

BUG=None
TBR=svenpanne@chromium.org

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

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

11 years agoNotify CPU profiler when calling native getters
yurys@chromium.org [Thu, 13 Jun 2013 13:46:33 +0000 (13:46 +0000)]
Notify CPU profiler when calling native getters

This change modifies code produced by BaseLoadStubCompiler::GenerateLoadCallback so that instead of calling AccessorGetter direcly it calls InvokeAccessorGetter which changes VM state and calls the actual callback. This way CPU profiler knows which external callback is being executed in this case.

BUG=244580
R=dcarney@chromium.org, loislo@chromium.org, svenpanne@chromium.org

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

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

11 years agoDisable compaction stress for test-heap/Regression144230.
mstarzinger@chromium.org [Thu, 13 Jun 2013 12:49:38 +0000 (12:49 +0000)]
Disable compaction stress for test-heap/Regression144230.

R=yangguo@chromium.org
BUG=v8:2724
TEST=cctest/test-heap/Regression144230

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

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

11 years agoRevert "DevTools: CPUProfiler: provide url for scripts that have sourceURL property."
loislo@chromium.org [Thu, 13 Jun 2013 11:09:19 +0000 (11:09 +0000)]
Revert "DevTools: CPUProfiler: provide url for scripts that have sourceURL property."

This reverts commit d95b7bb92ad1a191cf505250830d094b86d61e8f.
This reverts commit ca81c09a367600be79452e1fc53ac63b75e369c4.

record-cpu-profile.html is crashing

TBR= yurys@chromium.org, danno@chromium.org
BUG=none

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

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

11 years agoDelegating yield does not re-box result objects
wingo@igalia.com [Thu, 13 Jun 2013 10:57:11 +0000 (10:57 +0000)]
Delegating yield does not re-box result objects

Delegating yield (yield*) should just pass on the iterator results it
receives instead of re-boxing them.

R=rossberg@chromium.org
TEST=mjsunit/harmony/generators-iteration
BUG=

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

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

11 years agoanother attempt at fixing 15107
dcarney@chromium.org [Thu, 13 Jun 2013 10:39:44 +0000 (10:39 +0000)]
another attempt at fixing 15107

TBR=svenpanne@chromium.org
BUG=

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

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

11 years agoUse keyed-call inline caches in delegating yield
wingo@igalia.com [Thu, 13 Jun 2013 10:18:28 +0000 (10:18 +0000)]
Use keyed-call inline caches in delegating yield

Since we can't assume anything about the shape of the iterator in a
yield* (delegating yield), use an IC to do the next() and throw()
iterator method calls.

BUG=v8:2691
R=rossberg@chromium.org
TEST=mjsunit/regress/regress-2691

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

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

11 years agobuild fix for 15107
dcarney@chromium.org [Thu, 13 Jun 2013 10:13:09 +0000 (10:13 +0000)]
build fix for 15107

TBR=svenpanne@chromium.org
BUG=

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

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

11 years agobuild fix for 15107
dcarney@chromium.org [Thu, 13 Jun 2013 09:55:42 +0000 (09:55 +0000)]
build fix for 15107

R=svenpanne@chromium.org
BUG=

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

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

11 years agoTrace amount of external memory with --trace-gc-verbose.
mstarzinger@chromium.org [Thu, 13 Jun 2013 09:48:23 +0000 (09:48 +0000)]
Trace amount of external memory with --trace-gc-verbose.

R=hpayer@google.com

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

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

11 years agoremove most uses of raw handle constructors
dcarney@chromium.org [Thu, 13 Jun 2013 09:27:09 +0000 (09:27 +0000)]
remove most uses of raw handle constructors

R=svenpanne@chromium.org
BUG=

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

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

11 years agoFix memory leak in assert scopes.
yangguo@chromium.org [Thu, 13 Jun 2013 07:47:42 +0000 (07:47 +0000)]
Fix memory leak in assert scopes.

R=svenpanne@chromium.org
BUG=246567

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

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

11 years agoDeprecate the version of MakeWeak which takes an Isolate.
dcarney@chromium.org [Thu, 13 Jun 2013 07:23:23 +0000 (07:23 +0000)]
Deprecate the version of MakeWeak which takes an Isolate.

BUG=NONE
R=svenpanne@chromium.org

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

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

11 years agoMIPS: Fix for bug 245480. Calling new Array(a) with a single argument could result...
palfia@homejinni.com [Wed, 12 Jun 2013 23:40:46 +0000 (23:40 +0000)]
MIPS: Fix for bug 245480. Calling new Array(a) with a single argument could result in creating a holey array with a packed elements kind.

Port r15095 (4a97e1e4)

BUG=

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

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

11 years agoMIPS: Separate Cell and PropertyCell spaces
palfia@homejinni.com [Wed, 12 Jun 2013 23:39:22 +0000 (23:39 +0000)]
MIPS: Separate Cell and PropertyCell spaces

Port r15089 (5c28e4e7)

Original commit message:
This makes it possible to store additional information on property cells, for example Type and optimized Code dependencies.

BUG=

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

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

11 years agoBump snapshot limits to fix BootUpMemoryUse tests
danno@chromium.org [Wed, 12 Jun 2013 23:02:05 +0000 (23:02 +0000)]
Bump snapshot limits to fix BootUpMemoryUse tests

R=jkummerow@chromium.org

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

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

11 years agoPrepare push to trunk. Now working on version 3.19.15.
danno@chromium.org [Wed, 12 Jun 2013 22:30:58 +0000 (22:30 +0000)]
Prepare push to trunk.  Now working on version 3.19.15.

R=jkummerow@chromium.org

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

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

11 years agoFix nosnap sarialization test failure (again)
danno@chromium.org [Wed, 12 Jun 2013 22:21:08 +0000 (22:21 +0000)]
Fix nosnap sarialization test failure (again)

TBR=hpayer@chromium.org

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

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

11 years agoMIPS: Allow the deoptimizer translation to track de-materialized objects.
palfia@homejinni.com [Wed, 12 Jun 2013 21:46:53 +0000 (21:46 +0000)]
MIPS: Allow the deoptimizer translation to track de-materialized objects.

Port r15087 (63e1626)

Original commit message:
This allows the deoptimizer to materialize objects (e.g. the arguments
object) while deopting without having a consective stack area holding
the object values. The LEnvironment explicitly tracks locations for
these values and preserves them in the translation.

TEST=mjsunit/compiler/inline-arguments
BUG=

Review URL: https://codereview.chromium.org/16846002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoMIPS: Allocate generator result objects before unwinding try handlers
palfia@homejinni.com [Wed, 12 Jun 2013 19:41:29 +0000 (19:41 +0000)]
MIPS: Allocate generator result objects before unwinding try handlers

Port r15079 (1ebdfdc6)

Original commit message:
When a generator suspends, it saves its state out to the heap and
unwinds try handlers but doesn't pop anything off the stack.  Instead it
relies on no GC happening between the suspend and the return from the
generator.  However this was not the case: boxing the result object
could cause GC, which would try to traverse the stack but would
misinterpret words from unwound try handlers as heap objects.

This CL changes to allocate the result objects before the suspend.  It
also removes the generators-iteration skip introduced in r15065.

BUG=

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

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

11 years agoFix for bug 245480. Calling new Array(a) with a single argument could result in creat...
mvstanton@chromium.org [Wed, 12 Jun 2013 18:04:16 +0000 (18:04 +0000)]
Fix for bug 245480. Calling new Array(a) with a single argument could result in creating a holey array with a packed elements kind.

BUG=245480
R=verwaest@chromium.org

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

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

11 years agoFix release serialization tests
danno@chromium.org [Wed, 12 Jun 2013 17:59:11 +0000 (17:59 +0000)]
Fix release serialization tests

R=mvstanton@chromium.org

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

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

11 years agoMigrate Compare ICs to new type rep
rossberg@chromium.org [Wed, 12 Jun 2013 17:20:37 +0000 (17:20 +0000)]
Migrate Compare ICs to new type rep

(Does not yet use common AST expression type field.)

R=jkummerow@chromium.org
BUG=

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

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

11 years agoFix serialization tests and Mac build
danno@chromium.org [Wed, 12 Jun 2013 16:23:17 +0000 (16:23 +0000)]
Fix serialization tests and Mac build

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoAdd sample usage / output and -u option
verwaest@chromium.org [Wed, 12 Jun 2013 15:36:11 +0000 (15:36 +0000)]
Add sample usage / output and -u option

R=jkummerow@chromium.org

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

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

11 years agoIncrease limit for snapshot size test
danno@chromium.org [Wed, 12 Jun 2013 15:35:03 +0000 (15:35 +0000)]
Increase limit for snapshot size test

R=yangguo@chromium.org

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

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

11 years agoSeparate Cell and PropertyCell spaces
danno@chromium.org [Wed, 12 Jun 2013 15:03:44 +0000 (15:03 +0000)]
Separate Cell and PropertyCell spaces

This makes it possible to store additional information on property cells, for example Type and optimized Code dependencies.

R=mstarzinger@chromium.org

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

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

11 years agotwo cpu profiler tests are flaky on windows.
loislo@chromium.org [Wed, 12 Jun 2013 14:34:19 +0000 (14:34 +0000)]
two cpu profiler tests are flaky on windows.

BUG=none
TEST=LogExistingFunctionSourceURLCheck, SourceURLSupportForNewFunctions
TBR=yurys

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

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

11 years agoAllow the deoptimizer translation to track de-materialized objects.
mstarzinger@chromium.org [Wed, 12 Jun 2013 14:22:49 +0000 (14:22 +0000)]
Allow the deoptimizer translation to track de-materialized objects.

This allows the deoptimizer to materialize objects (e.g. the arguments
object) while deopting without having a consective stack area holding
the object values. The LEnvironment explicitly tracks locations for
these values and preserves them in the translation.

R=svenpanne@chromium.org
TEST=mjsunit/compiler/inline-arguments

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

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

11 years agoDeprecate obsolete JSFunction::unchecked_shared accessor.
mstarzinger@chromium.org [Wed, 12 Jun 2013 14:05:56 +0000 (14:05 +0000)]
Deprecate obsolete JSFunction::unchecked_shared accessor.

R=hpayer@chromium.org
BUG=v8:1490

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

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

11 years agoClean up StoreBuffer::EnsureSpace.
hpayer@chromium.org [Wed, 12 Jun 2013 13:14:35 +0000 (13:14 +0000)]
Clean up StoreBuffer::EnsureSpace.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoGeneratorFunction() makes generator instances
wingo@igalia.com [Wed, 12 Jun 2013 12:52:16 +0000 (12:52 +0000)]
GeneratorFunction() makes generator instances

The current specification has GeneratorFunction() be like Function(),
except that it makes generator instances.  This commit implements that
behavior.  It also fills in a piece of the implementation where
otherwise calling GeneratorFunction or GeneratorFunctionPrototype would
cause an abort because they have no code.

R=mstarzinger@chromium.org
TEST=mjsunit/harmony/generators-iteration
TEST=mjsunit/harmony/generators-runtime
BUG=v8:2355,v8:2680

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

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

11 years agoImplemented function that returns code age.
hpayer@chromium.org [Wed, 12 Jun 2013 12:39:15 +0000 (12:39 +0000)]
Implemented function that returns code age.

This may be used to display debugging information.

BUG=
R=danno@chromium.org, mstarzinger@chromium.org

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

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

11 years agoFor-of statements do not permit initializers.
wingo@igalia.com [Wed, 12 Jun 2013 12:37:44 +0000 (12:37 +0000)]
For-of statements do not permit initializers.

R=rossberg@chromium.org
BUG=v8:2720

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

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

11 years agoRe-enable the harmony => harmony-generators implication after r15079.
wingo@igalia.com [Wed, 12 Jun 2013 11:48:55 +0000 (11:48 +0000)]
Re-enable the harmony => harmony-generators implication after r15079.

R=danno@chromium.org
BUG=

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

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

11 years agoPrint v8 revision rather than branches/$branch.
verwaest@chromium.org [Wed, 12 Jun 2013 11:18:45 +0000 (11:18 +0000)]
Print v8 revision rather than branches/$branch.

R=jkummerow@chromium.org

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

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

11 years agoAllocate generator result objects before unwinding try handlers
wingo@igalia.com [Wed, 12 Jun 2013 11:02:51 +0000 (11:02 +0000)]
Allocate generator result objects before unwinding try handlers

When a generator suspends, it saves its state out to the heap and
unwinds try handlers but doesn't pop anything off the stack.  Instead it
relies on no GC happening between the suspend and the return from the
generator.  However this was not the case: boxing the result object
could cause GC, which would try to traverse the stack but would
misinterpret words from unwound try handlers as heap objects.

This CL changes to allocate the result objects before the suspend.  It
also removes the generators-iteration skip introduced in r15065.

R=mstarzinger@chromium.org
TEST=mjsunit/harmony/generators-iteration
BUG=

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

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

11 years agoAdding useful scripts to parse revision info.
verwaest@chromium.org [Wed, 12 Jun 2013 10:39:52 +0000 (10:39 +0000)]
Adding useful scripts to parse revision info.

R=jkummerow@chromium.org

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

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

11 years agoReland "Enable map dependency to in-flight compilation info."
yangguo@chromium.org [Wed, 12 Jun 2013 09:43:22 +0000 (09:43 +0000)]
Reland "Enable map dependency to in-flight compilation info."

BUG=248076
R=ulan@chromium.org

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

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

11 years agoUnify processing of weak lists in heap.cc
dslomov@chromium.org [Wed, 12 Jun 2013 09:31:39 +0000 (09:31 +0000)]
Unify processing of weak lists in heap.cc

R=hpayer@chromium.org, mstarzinger@chromium.org

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

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

11 years agorelease callback table memory in ~Isolate
dcarney@chromium.org [Wed, 12 Jun 2013 08:57:36 +0000 (08:57 +0000)]
release callback table memory in ~Isolate

R=svenpanne@chromium.org
BUG=

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

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

11 years agoDevTools: CPUProfiler: provide url for scripts that have sourceURL property.
loislo@chromium.org [Wed, 12 Jun 2013 08:27:24 +0000 (08:27 +0000)]
DevTools: CPUProfiler: provide url for scripts that have sourceURL property.

BUG=none
TEST=SourceURLSupportForNewFunctions, LogExistingFunctionSourceURLCheck
R=jkummerow@chromium.org, yurys@chromium.org

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

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

11 years agoUse -O2 instead -O3 for Android build.
ulan@chromium.org [Wed, 12 Jun 2013 08:05:43 +0000 (08:05 +0000)]
Use -O2 instead -O3 for Android build.

It produces smaller binary with almost the same performance.

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

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

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

11 years agoMIPS: Skip some conditional deopts for Div/Mul when all uses are truncating.
plind44@gmail.com [Tue, 11 Jun 2013 17:41:03 +0000 (17:41 +0000)]
MIPS: Skip some conditional deopts for Div/Mul when all uses are truncating.

Port r15060 (8cdd204)

Original commit message:
- set "can be minus zero" flag properly so minus-zero checks are skipped
- skip "integer result?" check in division code when uses are truncating
- drive-by cleanup: consolidated computation of kCanOverflow flag for Add/Sub into range inference phase

BUG=v8:2132
R=plind44@gmail.com

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

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

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

11 years agoPrepare push to trunk. Now working on version 3.19.14.
ulan@chromium.org [Tue, 11 Jun 2013 15:37:56 +0000 (15:37 +0000)]
Prepare push to trunk.  Now working on version 3.19.14.

R=jkummerow@chromium.org
BUG=

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

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

11 years agoTest that functions created using v8::FunctionTemplate::New correctly displayed in...
yurys@chromium.org [Tue, 11 Jun 2013 15:00:41 +0000 (15:00 +0000)]
Test that functions created using v8::FunctionTemplate::New correctly displayed in CPU profiles

BUG=244580
R=jkummerow@chromium.org, loislo@chromium.org

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

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

11 years agoDisable --harmony -> --harmony-generators implication
wingo@igalia.com [Tue, 11 Jun 2013 14:45:17 +0000 (14:45 +0000)]
Disable --harmony -> --harmony-generators implication

A GC-related bug has started showing up after r15060 that unfortunately
I haven't been able to reproduce.  Disable generators by default for the
Canary push.

R=danno@chromium.org
BUG=

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

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

11 years agoAdd tracing for functions processed by code flushing.
mstarzinger@chromium.org [Tue, 11 Jun 2013 14:40:44 +0000 (14:40 +0000)]
Add tracing for functions processed by code flushing.

R=hpayer@chromium.org

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

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

11 years agoMIPS: Allow timeout for TerminateMultipleV8ThreadsDefaultIsolate.
plind44@gmail.com [Tue, 11 Jun 2013 14:31:46 +0000 (14:31 +0000)]
MIPS: Allow timeout for TerminateMultipleV8ThreadsDefaultIsolate.

test-thread-termination/TerminateMultipleV8ThreadsDefaultIsolate
times out on the MIPS simulator.

Allow the timeouts until this is fixed.

BUG=v8:2657
R=jkummerow@chromium.org

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

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

11 years agoMIPS: Fix memory barriers for atomic operations.
plind44@gmail.com [Tue, 11 Jun 2013 14:30:43 +0000 (14:30 +0000)]
MIPS: Fix memory barriers for atomic operations.

Add barriers using MIPS 'sync' instructions as needed for SMP
systems.

BUG=246947
R=jkummerow@chromium.org

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

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

11 years agoRevert "Enable map dependency to in-flight compilation info."
yangguo@chromium.org [Tue, 11 Jun 2013 11:55:56 +0000 (11:55 +0000)]
Revert "Enable map dependency to in-flight compilation info."

This includes r15032, r15030 and r15005.

R=ulan@chromium.org
BUG=248076

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

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

11 years agoSkip some conditional deopts for Div/Mul when all uses are truncating.
jkummerow@chromium.org [Tue, 11 Jun 2013 11:43:57 +0000 (11:43 +0000)]
Skip some conditional deopts for Div/Mul when all uses are truncating.

- set "can be minus zero" flag properly so minus-zero checks are skipped
- skip "integer result?" check in division code when uses are truncating
- drive-by cleanup: consolidated computation of kCanOverflow flag for Add/Sub into range inference phase

BUG=v8:2132
R=svenpanne@chromium.org

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

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

11 years agoFix crasher when checking for "of", but next token has no literal buffer
wingo@igalia.com [Tue, 11 Jun 2013 11:30:03 +0000 (11:30 +0000)]
Fix crasher when checking for "of", but next token has no literal buffer

Also fix a typo in an assertion in scanner.h.

R=mstarzinger@chromium.org
BUG=248025
TEST=mjsunit/regress/regress-crbug-248025.js

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

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

11 years agointerceptor return values escape their scope
dcarney@chromium.org [Tue, 11 Jun 2013 11:08:46 +0000 (11:08 +0000)]
interceptor return values escape their scope

R=svenpanne@chromium.org
BUG=

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

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

11 years agoIncrease sanity of integer division handling on ARM
jkummerow@chromium.org [Tue, 11 Jun 2013 10:47:44 +0000 (10:47 +0000)]
Increase sanity of integer division handling on ARM

- In the INT32 BinaryOpStub, fix type feedback collection for DIV,
  bringing it in line with other platforms.
- In Lithium codegen, emit proper inlined code, don't call the stub.
- Drive-by fix: assert appropriate CpuFeaturesScope for SDIV.

R=ulan@chromium.org

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

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

11 years agoChange ArrayBuffer API and implementation to use embedder-provided allocator.
dslomov@chromium.org [Tue, 11 Jun 2013 10:41:14 +0000 (10:41 +0000)]
Change ArrayBuffer API and implementation to use embedder-provided allocator.

R=svenpanne@chromium.org

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

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

11 years agoMake sure CallIC is in monomorphic state when starting profiling in NativeAccessorNam...
yurys@chromium.org [Tue, 11 Jun 2013 08:32:48 +0000 (08:32 +0000)]
Make sure CallIC is in monomorphic state when starting profiling in NativeAccessorNameInProfile2

Changed cctest/test-cpu-profiler/NativeAccessorNameInProfile2 to make a few warm-up cycles before starting profiler so that accessor invocations performed via monomorphic inline caches and slow paths traces do not distort the profile.

Drive-by: removed logging code that was used to diagnose NativeAccessorNameInProfile2 failures on Windows.
BUG=None
R=jkummerow@chromium.org, loislo@chromium.org

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

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

11 years agomake empty string returnable by ReturnValue
dcarney@chromium.org [Tue, 11 Jun 2013 07:42:12 +0000 (07:42 +0000)]
make empty string returnable by ReturnValue

R=svenpanne@chromium.org
BUG=

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

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

11 years agoMIPS: Fix abs_d instruction in the simulator.
palfia@homejinni.com [Mon, 10 Jun 2013 21:54:07 +0000 (21:54 +0000)]
MIPS: Fix abs_d instruction in the simulator.

The abs_d instruction was implemented wrongly in the simulator,
it doesn't reverse the sign of the -0 number.

This commit fixes the abs_d instruction implementation.

TEST=msjunit/math-abs

BUG=

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

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

11 years agoMIPS: Use compare nil ic only for non-strict equality.
palfia@homejinni.com [Mon, 10 Jun 2013 18:16:27 +0000 (18:16 +0000)]
MIPS: Use compare nil ic only for non-strict equality.

Port r15045 (cce366f)

Original commit message:
Strict-equality only has one check and cannot deopt. Should therefore not be part of the stub.

BUG=

Review URL: https://codereview.chromium.org/16690008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoMIPS: Generator object "next" method takes optional send value.
palfia@homejinni.com [Mon, 10 Jun 2013 18:14:15 +0000 (18:14 +0000)]
MIPS: Generator object "next" method takes optional send value.

Port r15028 (258a047)

Original commit message:
Update the generators implementation to make "next" also do the job of
what was previously called "send" by taking an optional argument.
Remove send, and do a bunch of renamings.

BUG=v8:2355, v8:2715

Review URL: https://codereview.chromium.org/16735005
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoMIPS: Fix LoadIC calling convention.
palfia@homejinni.com [Mon, 10 Jun 2013 18:10:58 +0000 (18:10 +0000)]
MIPS: Fix LoadIC calling convention.

Port r15027 (3ffb343)

Original commit message:
The comments in ic-arm.cc::LoadIC indicated that the receiver should be
both in a register and on the stack. This isn't true in fact: the code
is careful to spill the receiver if needed.

This CL also fixes up a mistaken use of this convention in VisitYield.

BUG=

Review URL: https://codereview.chromium.org/16131004
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoMIPS: add a default value for return value
palfia@homejinni.com [Mon, 10 Jun 2013 18:07:28 +0000 (18:07 +0000)]
MIPS: add a default value for return value

Port r15024 (1a76177)

BUG=

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

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

11 years agoFix compilation with gdbjit=on.
yangguo@chromium.org [Mon, 10 Jun 2013 16:31:55 +0000 (16:31 +0000)]
Fix compilation with gdbjit=on.

r14919 forgot three AssertNoAllocation -> DisallowHeapAllocation replacements.

BUG=v8:2719
R=yangguo@chromium.org

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

Patch from Kang-Hao (Kenny) Lu <kennyluck@csail.mit.edu>.

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

11 years agouse compare nil ic only for non-strict equality. strict-equality only has one check...
olivf@chromium.org [Mon, 10 Jun 2013 15:47:23 +0000 (15:47 +0000)]
use compare nil ic only for non-strict equality. strict-equality only has one check and cannot deopt. should therefore not be part of the stub.

BUG=
R=rossberg@chromium.org

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

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

11 years agorevert accidental dcommit
olivf@chromium.org [Mon, 10 Jun 2013 15:43:40 +0000 (15:43 +0000)]
revert accidental dcommit

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

11 years agoalso remove the constant
olivf@chromium.org [Mon, 10 Jun 2013 15:30:17 +0000 (15:30 +0000)]
also remove the constant

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

11 years agoremove equality kind from compare nil ic
olivf@chromium.org [Mon, 10 Jun 2013 15:30:02 +0000 (15:30 +0000)]
remove equality kind from compare nil ic

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

11 years agoPrepare push to trunk. Now working on version 3.19.13.
verwaest@chromium.org [Mon, 10 Jun 2013 15:10:44 +0000 (15:10 +0000)]
Prepare push to trunk.  Now working on version 3.19.13.

R=jkummerow@chromium.org
BUG=

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

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

11 years agoArray access fix: g++ darwin 4.2.1 compiler clamped array index to 0 when confronted...
mvstanton@chromium.org [Mon, 10 Jun 2013 14:44:05 +0000 (14:44 +0000)]
Array access fix: g++ darwin 4.2.1 compiler clamped array index to 0 when confronted with negative indices.

BUG=247303
R=jkummerow@chromium.org, ulan@chromium.org

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

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

11 years agoFix store buffer ensure space heuristics.
hpayer@chromium.org [Mon, 10 Jun 2013 14:22:41 +0000 (14:22 +0000)]
Fix store buffer ensure space heuristics.

This change results in less scan on scavenge memory chunks.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoKeep native fuzzing blacklists in sync
wingo@igalia.com [Mon, 10 Jun 2013 12:25:31 +0000 (12:25 +0000)]
Keep native fuzzing blacklists in sync

R=yangguo@chromium.org
BUG=

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

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

11 years agoDon't fuzz _GeneratorNext
wingo@igalia.com [Mon, 10 Jun 2013 12:06:13 +0000 (12:06 +0000)]
Don't fuzz _GeneratorNext

The previous patch that renamed _GeneratorSend to _GeneratorNext missed
the blacklist in fuzz-natives-part4.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoImprove code for integral modulus calculation.
svenpanne@chromium.org [Mon, 10 Jun 2013 12:05:54 +0000 (12:05 +0000)]
Improve code for integral modulus calculation.

Depending on what we know about the right operand, we basically do 3
different things (and the code is actually structured this way):

* If we statically know that the right operand is a power of 2, we do
  some bit fiddling instead of doing a "real" modulus calculation.
  This should actually be done on the Hydrogen level, not on the
  Lithium level, but this will be a separate CL.

* If type feedback tells us that the right operand is a power of 2, we
  do the same as above, but guarded by conditional deoptimization to
  make sure that the assumption is still valid. In the long run, we
  should make this guard visible on the Hydrogen level to make it
  visible for GVN and other optimizations.

* In the general case we only do the minimum steps necessary and don't
  try to be too clever, because cleverness actually slows us down on
  real-world code.

If we look at the code gerators for LModI, we actually see that we
basically have 3 (4 on ARM) fundamentally different translations. I
don't really like lumping them together, they should probably be
different Lithium instructions. For the time being, I restructured the
generators to make this crystal-clear, at the cost of some duplication
regarding the power-of-2 cases. This will go away when we do the
strength reduction on the Hydrogen level, so I'd like to keep it as it
is for now.

Note that the MIPS part was only slightly restructured, there is still
some work to do there.

R=jkummerow@chromium.org

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

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

11 years agoFix re-initialization of existing double field.
mstarzinger@chromium.org [Mon, 10 Jun 2013 11:55:47 +0000 (11:55 +0000)]
Fix re-initialization of existing double field.

R=verwaest@chromium.org
BUG=v8:2717
TEST=mjsunit/regress/regress-2717

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

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

11 years agoFix parallel recompilation wrt transition maps dependency.
yangguo@chromium.org [Mon, 10 Jun 2013 11:33:23 +0000 (11:33 +0000)]
Fix parallel recompilation wrt transition maps dependency.

R=ulan@chromium.org
BUG=

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

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

11 years agoLookup transition again after migrating a transition target.
verwaest@chromium.org [Mon, 10 Jun 2013 11:27:09 +0000 (11:27 +0000)]
Lookup transition again after migrating a transition target.
R=ulan@chromium.org
BUG=chromium:242332

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

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

11 years agoFix parallel recompilation wrt initial object/array map dependency.
yangguo@chromium.org [Mon, 10 Jun 2013 11:17:48 +0000 (11:17 +0000)]
Fix parallel recompilation wrt initial object/array map dependency.

R=ulan@chromium.org
BUG=

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

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

11 years agoadjust assertions for addition of default value
dcarney@chromium.org [Mon, 10 Jun 2013 09:35:47 +0000 (09:35 +0000)]
adjust assertions for addition of default value

R=svenpanne@chromium.org
BUG=

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

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

11 years agoGenerator object "next" method takes optional send value
wingo@igalia.com [Mon, 10 Jun 2013 09:26:18 +0000 (09:26 +0000)]
Generator object "next" method takes optional send value

Update the generators implementation to make "next" also do the job of
what was previously called "send" by taking an optional argument.
Remove send, and do a bunch of renamings.

R=rossberg@chromium.org
BUG=v8:2355, v8:2715

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

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

11 years agoFix LoadIC calling convention on ARM
wingo@igalia.com [Mon, 10 Jun 2013 09:12:57 +0000 (09:12 +0000)]
Fix LoadIC calling convention on ARM

The comments in ic-arm.cc::LoadIC indicated that the receiver should be
both in a register and on the stack.  This isn't true in fact: the code
is careful to spill the receiver if needed.

This CL also fixes up a mistaken use of this convention in in
VisitYield.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agobuild fix for 15025
dcarney@chromium.org [Mon, 10 Jun 2013 08:19:03 +0000 (08:19 +0000)]
build fix for 15025

R=yangguo@chromium.org
BUG=

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

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

11 years agobuild fix for 15023
dcarney@chromium.org [Mon, 10 Jun 2013 07:56:17 +0000 (07:56 +0000)]
build fix for 15023

R=yangguo@chromium.org
BUG=

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

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

11 years agoadd a default value for return value
dcarney@chromium.org [Mon, 10 Jun 2013 07:41:16 +0000 (07:41 +0000)]
add a default value for return value

R=svenpanne@chromium.org
BUG=

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

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

11 years agodo aligned reads in ContainsOnlyOneByte
dcarney@chromium.org [Mon, 10 Jun 2013 07:34:58 +0000 (07:34 +0000)]
do aligned reads in ContainsOnlyOneByte

R=yangguo@chromium.org
BUG=

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

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

11 years agoMake GCMole happy
svenpanne@chromium.org [Mon, 10 Jun 2013 06:37:30 +0000 (06:37 +0000)]
Make GCMole happy

TBR=yangguo@google.com

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

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

11 years agoFind breakpoint by PC rather than source position when clearing breakpoint
peter.rybin@gmail.com [Sun, 9 Jun 2013 20:10:29 +0000 (20:10 +0000)]
Find breakpoint by PC rather than source position when clearing breakpoint

Current approach is to find breakpoint by the statement position that was used when setting breakpoint. This doesn't work when setting breakpoint by anything else but statement position.

(Question: could PC of existing breakpoint change, for example because of recompilation, or this approach is safe)

R=yangguo@chromium.org

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

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