platform/upstream/v8.git
10 years agoX87: Clean up the global object naming madness.
weiliang.lin@intel.com [Wed, 2 Jul 2014 07:07:22 +0000 (07:07 +0000)]
X87: Clean up the global object naming madness.

port r22117

original message:

  Clean up the global object naming madness.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

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

10 years agoReland 22105 "Remove static initializer from isolate"
jochen@chromium.org [Wed, 2 Jul 2014 07:04:44 +0000 (07:04 +0000)]
Reland 22105 "Remove static initializer from isolate"

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

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

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

10 years agoRe-enable the check in GetRangeConstraint() function.
jochen@chromium.org [Wed, 2 Jul 2014 07:02:39 +0000 (07:02 +0000)]
Re-enable the check in GetRangeConstraint() function.

Now that we have ASSERT() macro in src/base/logging.h we can use it in
safe_conversions_impl.h, re-enable this assertion and fix the TODO
there.

BUG=None
TEST=None
R=jochen@chromium.org
LOG=n

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

Patch from Thiago Farina <tfarina@chromium.org>.

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

10 years agoHandle "//# sourceURL" comments in the Parser instead of the JS.
marja@chromium.org [Wed, 2 Jul 2014 07:01:31 +0000 (07:01 +0000)]
Handle "//# sourceURL" comments in the Parser instead of the JS.

BUG=v8:2948
LOG=N
R=svenpanne@chromium.org, yurys@chromium.org

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

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

10 years agoAdded a promotion queue unit test that test promotion queue memory corruption
hpayer@chromium.org [Tue, 1 Jul 2014 18:48:02 +0000 (18:48 +0000)]
Added a promotion queue unit test that test promotion queue memory corruption
by semi-space evacuation.

BUG=
R=titzer@chromium.org

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

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

10 years agoSkip mjsunit/migrations test in debug mode to avoid timeout failures.
ishell@chromium.org [Tue, 1 Jul 2014 17:39:16 +0000 (17:39 +0000)]
Skip mjsunit/migrations test in debug mode to avoid timeout failures.

TBR=yangguo@chromium.org

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

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

10 years agoMake freeze & friends ignore private properties
rossberg@chromium.org [Tue, 1 Jul 2014 15:47:41 +0000 (15:47 +0000)]
Make freeze & friends ignore private properties

R=verwaest@chromium.org
BUG=v8:3419
LOG=Y

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

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

10 years agoIntroduce a builddeps make target
jochen@chromium.org [Tue, 1 Jul 2014 15:03:30 +0000 (15:03 +0000)]
Introduce a builddeps make target

In contrast to "dependencies", this only pulls in dependencies required
for building. The dependencies make target will also pull in development
tools and requires depot_tools to be installed and in the path.

BUG=v8:3418
LOG=y
R=jkummerow@chromium.org

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

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

10 years agoReland r22082 "Replace HeapNumber as doublebox with an explicit MutableHeapNumber."
ishell@chromium.org [Tue, 1 Jul 2014 15:02:31 +0000 (15:02 +0000)]
Reland r22082 "Replace HeapNumber as doublebox with an explicit MutableHeapNumber."

R=verwaest@chromium.org

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

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

10 years agoBuildGrowElementsCapacity bounds check used wrong elements kind.
mvstanton@chromium.org [Tue, 1 Jul 2014 14:52:14 +0000 (14:52 +0000)]
BuildGrowElementsCapacity bounds check used wrong elements kind.

In a refactoring, HGraphBuilder::BuildGrowElementsCapacity() ended up
using the old_elements_kind instead of new_kind when calculating if a
new capacity for an array exceeds Page::kMaxRegularHeapObjectSize.

Repair, such that the check is correct.

R=hpayer@chromium.org
BUG=

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

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

10 years agoTest mjsunit/allocation-site-info is flaky without explicit gc()
mvstanton@chromium.org [Tue, 1 Jul 2014 14:51:11 +0000 (14:51 +0000)]
Test mjsunit/allocation-site-info is flaky without explicit gc()

It started failing on arm64 nosnap during a test case where complex nested
literal arrays are created.

R=machenbach@chromium.org
BUG=

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

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

10 years agoRevert "Add msan build option." (r22109)
yangguo@chromium.org [Tue, 1 Jul 2014 13:51:27 +0000 (13:51 +0000)]
Revert "Add msan build option." (r22109)

Building d8 with msan requires instrumented libc++. Currently the
advised way to do this is from a chromium checkout with d8 as target.

R=jarin@chromium.org

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

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

10 years agoRevert "ARM64: Faster immediate check and fix corner cases"
yangguo@chromium.org [Tue, 1 Jul 2014 13:50:46 +0000 (13:50 +0000)]
Revert "ARM64: Faster immediate check and fix corner cases"

This reverts r22120 due to build breakage of arm64.debug target.

TBR=m.m.capewell@googlemail.com

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

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

10 years agoX87: KeyedLoadIC should have same register spec as LoadIC.
weiliang.lin@intel.com [Tue, 1 Jul 2014 13:34:18 +0000 (13:34 +0000)]
X87: KeyedLoadIC should have same register spec as LoadIC.

port r22103.

original commit message:
On arm, arm64 and x64 there is a different register specification between LoadIC and KeyedLoadIC.

It would be nicer if these are the same, allowing some key optimizations.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

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

10 years agoARM64: optimize TruncateDoubleToI
Jacob.Bramley@arm.com [Tue, 1 Jul 2014 13:33:22 +0000 (13:33 +0000)]
ARM64: optimize TruncateDoubleToI

R=ulan@chromium.org, bmeurer@chromium.org

BUG=

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

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

10 years agoARM64: Faster immediate check and fix corner cases
m.m.capewell@googlemail.com [Tue, 1 Jul 2014 13:25:33 +0000 (13:25 +0000)]
ARM64: Faster immediate check and fix corner cases

Improve the code used to check for encodable logical immediates, fix some corner
cases associated with moving kWMinInt into W registers, and add tests.

BUG=
R=ulan@chromium.org

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

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

10 years agoRevert "Linux perf tool support update + refactoring." (r22118).
jarin@chromium.org [Tue, 1 Jul 2014 13:12:08 +0000 (13:12 +0000)]
Revert "Linux perf tool support update + refactoring." (r22118).

Android ninja build still failing.

TBR=yangguo@chromium.org

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

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

10 years agoReland "Linux perf tool support update + refactoring."
jarin@chromium.org [Tue, 1 Jul 2014 12:20:21 +0000 (12:20 +0000)]
Reland "Linux perf tool support update + refactoring."

This relands r22098.

BUG=
R=yangguo@chromium.org

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

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

10 years agoClean up the global object naming madness.
verwaest@chromium.org [Tue, 1 Jul 2014 12:12:34 +0000 (12:12 +0000)]
Clean up the global object naming madness.

BUG=
R=ishell@chromium.org

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

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

10 years agoDisable test-spaces/SizeOfFirstPageIsLargeEnough for snapshot=off build.
yangguo@chromium.org [Tue, 1 Jul 2014 11:54:57 +0000 (11:54 +0000)]
Disable test-spaces/SizeOfFirstPageIsLargeEnough for snapshot=off build.

R=hpayer@chromium.org

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

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

10 years agoMake JsNative1JsNative2JsSample cctest work on Win Release
alph@chromium.org [Tue, 1 Jul 2014 10:10:12 +0000 (10:10 +0000)]
Make JsNative1JsNative2JsSample cctest work on Win Release

MSVC optimization realizes that CallJsFunction2 is just the same as CallJsFunction, so it eliminates the former making the call stack contain two instances of the same function.

The patch makes two functions distinct.

LOG=N
BUG=v8:3055
R=aandrey@chromium.org, jkummerow@chromium.org, yurys@chromium.org

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

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

10 years agoImprove error reporting for duplicate object template properties.
verwaest@chromium.org [Tue, 1 Jul 2014 10:00:19 +0000 (10:00 +0000)]
Improve error reporting for duplicate object template properties.

BUG=
R=yangguo@chromium.org

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

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

10 years agoMake Map.set() and Set.add() chainable
rossberg@chromium.org [Tue, 1 Jul 2014 09:49:25 +0000 (09:49 +0000)]
Make Map.set() and Set.add() chainable

From the Harmony draft:

https://people.mozilla.org/~jorendorff/es6-draft.html#sec-map.prototype.set
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakmap.prototype.set
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-set.prototype.add
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakset.prototype.add

BUG=v8:3410
R=arv@chromium.org, rossberg@chromium.org

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

Patch from caitp <caitpotter88@gmail.com>.

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

10 years agoAndroid ARM64: update Makefile for new NDK.
ulan@chromium.org [Tue, 1 Jul 2014 09:40:14 +0000 (09:40 +0000)]
Android ARM64: update Makefile for new NDK.

BUG=
R=rmcilroy@chromium.org

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

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

10 years agoAdd msan build option.
yangguo@chromium.org [Tue, 1 Jul 2014 09:04:48 +0000 (09:04 +0000)]
Add msan build option.

Currently works only in combination with i18nsupport=off.

R=jkummerow@chromium.org

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

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

10 years agoMark long-running tests as TIMEOUT for gc stress.
yangguo@chromium.org [Tue, 1 Jul 2014 08:32:47 +0000 (08:32 +0000)]
Mark long-running tests as TIMEOUT for gc stress.

R=machenbach@chromium.org

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

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

10 years agoMove libplatform files into v8::platform namespace
jochen@chromium.org [Tue, 1 Jul 2014 08:15:09 +0000 (08:15 +0000)]
Move libplatform files into v8::platform namespace

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

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

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

10 years agoRevert 22105 "Remove static initializer from isolate"
jochen@chromium.org [Tue, 1 Jul 2014 07:07:50 +0000 (07:07 +0000)]
Revert 22105 "Remove static initializer from isolate"

Fails to run on mac

BUG=none
LOG=n
TBR=yangguo@chromium.org

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

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

10 years agoRemove static initializer from isolate
jochen@chromium.org [Tue, 1 Jul 2014 06:43:14 +0000 (06:43 +0000)]
Remove static initializer from isolate

We don't have a default isolate anymore, so we can just create the
thread data and keys on demand

BUG=none
R=dcarney@chromium.org, svenpanne@chromium.org
LOG=y

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

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

10 years agoRevert 22098 "Linux perf tool support update + refactoring."
jochen@chromium.org [Mon, 30 Jun 2014 17:21:35 +0000 (17:21 +0000)]
Revert 22098 "Linux perf tool support update + refactoring."

GetCurrentThreadId doesn't compile on android

Also reverts follow up build fix attempts

BUG=none
LOG=n
TBR=jarin@chromium.org

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

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

10 years agoKeyedLoadIC should have same register spec as LoadIC.
mvstanton@chromium.org [Mon, 30 Jun 2014 15:56:50 +0000 (15:56 +0000)]
KeyedLoadIC should have same register spec as LoadIC.

On arm, arm64 and x64 there is a different register specification between LoadIC and KeyedLoadIC.

It would be nicer if these are the same, allowing some key optimizations.

R=jkummerow@chromium.org

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

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

10 years agoFix perfjit printf format for filename
jochen@chromium.org [Mon, 30 Jun 2014 15:39:19 +0000 (15:39 +0000)]
Fix perfjit printf format for filename

TBR=jarin@chromium.org
LOG=n
BUG=none

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

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

10 years agoAdd missing cpu.h includes to mips/x87
jochen@chromium.org [Mon, 30 Jun 2014 15:37:07 +0000 (15:37 +0000)]
Add missing cpu.h includes to mips/x87

BUG=none
TBR=yangguo@chromium.org
LOG=n

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

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

10 years agoFix build (forgot to update BUILD.gn)
jarin@chromium.org [Mon, 30 Jun 2014 15:06:04 +0000 (15:06 +0000)]
Fix build (forgot to update BUILD.gn)

TBR=yangguo@chromium.org

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

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

10 years agoES6: Add missing Set.prototype.keys function
rossberg@chromium.org [Mon, 30 Jun 2014 14:37:07 +0000 (14:37 +0000)]
ES6: Add missing Set.prototype.keys function

https://people.mozilla.org/~jorendorff/es6-draft.html#sec-set.prototype.keys

The value of the keys property is just the initial value of the values
function.

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

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

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

10 years agoLinux perf tool support update + refactoring.
jarin@chromium.org [Mon, 30 Jun 2014 14:35:58 +0000 (14:35 +0000)]
Linux perf tool support update + refactoring.

This adds timestamps to allow profiling with code space reuse. Also a couple of updates to reflect the changes in the JIT perf interface + a move of the perf-related stuff into separate files.

Unfortunately, the change only works with the latest patch  to the perf tool from a Linux perf tool contributor (Stephane Eranian).

BUG=
R=yangguo@chromium.org

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

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

10 years agoFix external snapshot compilation
jochen@chromium.org [Mon, 30 Jun 2014 14:26:40 +0000 (14:26 +0000)]
Fix external snapshot compilation

TBR=yangguo@chromium.org
LOG=n
BUG=none

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

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

10 years agoRip out unused inner_scope_contains_with flag
rossberg@chromium.org [Mon, 30 Jun 2014 13:59:00 +0000 (13:59 +0000)]
Rip out unused inner_scope_contains_with flag

R=marja@chromium.org
BUG=

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

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

10 years agoWrap InitializeProperty around SetOwnPropertyIgnoreAttributes and switch over uses
verwaest@chromium.org [Mon, 30 Jun 2014 13:48:57 +0000 (13:48 +0000)]
Wrap InitializeProperty around SetOwnPropertyIgnoreAttributes and switch over uses

This is a step in the direction of disentangling all uses of SetOwnPropertyIgnoreAttributes so we can provide a more specific implementation for those usecases, and reduce the capabilities of those clients, avoiding subtle bugs.

InitializeProperty only supports adding properties to extensible objects that do not contain the property yet. JSGlobalProxies cannot have properties themselves, so are not supported either.

BUG=
R=rossberg@chromium.org

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

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

10 years agoFix compilation on arm after r22092
jochen@chromium.org [Mon, 30 Jun 2014 13:47:20 +0000 (13:47 +0000)]
Fix compilation on arm after r22092

TBR=yangguo@chromium.org
LOG=n
BUG=none

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

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

10 years agoParser: add usage counters for "use asm".
marja@chromium.org [Mon, 30 Jun 2014 13:35:16 +0000 (13:35 +0000)]
Parser: add usage counters for "use asm".

R=jochen@chromium.org
BUG=

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

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

10 years agoMove platform abstraction to base library
jochen@chromium.org [Mon, 30 Jun 2014 13:25:46 +0000 (13:25 +0000)]
Move platform abstraction to base library

Also split v8-core independent methods from checks.h to base/logging.h and
merge v8checks with the rest of checks.

The CPU::FlushICache method is moved to CpuFeatures::FlushICache

RoundUp and related methods are moved to base/macros.h

Remove all layering violations from src/libplatform

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

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

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

10 years agoRevert "Fix stack trace accessor behavior."
yangguo@chromium.org [Mon, 30 Jun 2014 13:16:42 +0000 (13:16 +0000)]
Revert "Fix stack trace accessor behavior."

This reverts r22089.

TBR=verwaest@chromium.org

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

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

10 years agoWaiting for sweeper threads is last resort in SlowAllocateRaw.
hpayer@chromium.org [Mon, 30 Jun 2014 12:39:06 +0000 (12:39 +0000)]
Waiting for sweeper threads is last resort in SlowAllocateRaw.

BUG=
R=ulan@chromium.org

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

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

10 years agoFix stack trace accessor behavior.
yangguo@chromium.org [Mon, 30 Jun 2014 11:48:20 +0000 (11:48 +0000)]
Fix stack trace accessor behavior.

R=verwaest@chromium.org
BUG=v8:3404
LOG=N

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

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

10 years agoIntroduce debug events for promises.
yangguo@chromium.org [Mon, 30 Jun 2014 11:12:42 +0000 (11:12 +0000)]
Introduce debug events for promises.

R=aandrey@chromium.org, rossberg@chromium.org
BUG=v8:3093
LOG=Y

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

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

10 years ago[Arm]: Make Assembler::movw only emit a movw instruction.
rmcilroy@chromium.org [Mon, 30 Jun 2014 11:07:28 +0000 (11:07 +0000)]
[Arm]: Make Assembler::movw only emit a movw instruction.

Currently Assembler::movw is really the mov macro instruction, leading to raw
emit calls to generate the real movw instruction. Replace all calls of mow
with the mov macro instruction (which will emit a movw if appropriate) and
make movw always emit movw.

R=ulan@chromium.org

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

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

10 years ago[Arm]: Fix liveedit support if --enable_ool_constant_pool is true.
rmcilroy@chromium.org [Mon, 30 Jun 2014 11:06:03 +0000 (11:06 +0000)]
[Arm]: Fix liveedit support if --enable_ool_constant_pool is true.

If the out of line constant pool is enabled, there is an extra value on the stack frame (the
constant pool pointer).  This change fixes GenerateFrameDropperLiveEdit to pull the function
pointer and pop the stack frame correctly whether or not the constant pool pointer is on the
frame.

R=yangguo@chromium.org

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

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

10 years agoRevert "Replace HeapNumber as doublebox with an explicit MutableHeapNumber."
ishell@chromium.org [Mon, 30 Jun 2014 10:19:31 +0000 (10:19 +0000)]
Revert "Replace HeapNumber as doublebox with an explicit MutableHeapNumber."

This reverts commit r22082 for breaking arm64 build.

TBR=verwaest@chromium.org

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

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

10 years agoReplace HeapNumber as doublebox with an explicit MutableHeapNumber.
ishell@chromium.org [Mon, 30 Jun 2014 09:44:43 +0000 (09:44 +0000)]
Replace HeapNumber as doublebox with an explicit MutableHeapNumber.

R=verwaest@chromium.org

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

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

10 years agoRemove kDontInline and simplify compiler hints.
mstarzinger@chromium.org [Mon, 30 Jun 2014 08:59:23 +0000 (08:59 +0000)]
Remove kDontInline and simplify compiler hints.

R=svenpanne@chromium.org

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

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

10 years agoUse simple keyed store again in ArrayPush_JS_Builtin
danno@chromium.org [Mon, 30 Jun 2014 08:39:04 +0000 (08:39 +0000)]
Use simple keyed store again in ArrayPush_JS_Builtin

This reverts the change of array.js in r20839 and recovers 38%
performance regression of DOM-Search case in Browsermark2.0. There is
no performance impact on JavaScript benchmarks (Octane, Kraken and
SunSpider).

BUG=
R=danno@chromium.org

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

Patch from Weiliang Lin <weiliang.lin@intel.com>.

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

10 years agoSet promotion queue limit before migrating object.
hpayer@chromium.org [Mon, 30 Jun 2014 08:02:38 +0000 (08:02 +0000)]
Set promotion queue limit before migrating object.

BUG=
R=titzer@chromium.org

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

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

10 years agoRevert "Add mechanism to postpone interrupts selectively."
yangguo@chromium.org [Mon, 30 Jun 2014 06:45:23 +0000 (06:45 +0000)]
Revert "Add mechanism to postpone interrupts selectively."

This reverts commit r22073.

TBR=yurys@chromium.org

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

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

10 years agoAdd mechanism to postpone interrupts selectively.
yangguo@chromium.org [Mon, 30 Jun 2014 06:27:20 +0000 (06:27 +0000)]
Add mechanism to postpone interrupts selectively.

BUG=v8:3408
LOG=N
R=yurys@chromium.org

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

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

10 years agoSupport non-internalized string key lookups in Hydrogen KeyedLoadIC
danno@chromium.org [Sat, 28 Jun 2014 00:33:04 +0000 (00:33 +0000)]
Support non-internalized string key lookups in Hydrogen KeyedLoadIC

R=jkummerow@chromium.org

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

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

10 years agoWhitespace change to trigger bots.
machenbach@chromium.org [Fri, 27 Jun 2014 18:30:14 +0000 (18:30 +0000)]
Whitespace change to trigger bots.

TBR=jkummerow@chromium.org
BUG=

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

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

10 years agoBuild "snapshot_blob.bin" only for the host when using separate toolsets.
vogelheim@chromium.org [Fri, 27 Jun 2014 16:47:25 +0000 (16:47 +0000)]
Build "snapshot_blob.bin" only for the host when using separate toolsets.

BUG=389310
LOG=N
R=jochen@chromium.org

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

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

10 years agoCannot check the interceptor since it may not be ready yet.
verwaest@chromium.org [Fri, 27 Jun 2014 15:34:18 +0000 (15:34 +0000)]
Cannot check the interceptor since it may not be ready yet.

BUG=
R=ishell@chromium.org

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

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

10 years agoPort the ic part
verwaest@chromium.org [Fri, 27 Jun 2014 14:01:42 +0000 (14:01 +0000)]
Port the ic part

BUG=
R=rossberg@chromium.org

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

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

10 years agoDon't leak the global object in the Function constructor.
verwaest@chromium.org [Fri, 27 Jun 2014 13:50:37 +0000 (13:50 +0000)]
Don't leak the global object in the Function constructor.

BUG=
R=dcarney@chromium.org

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

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

10 years agoSplit SetProperty(...attributes, strictmode) into DefineProperty(...attributes) and...
verwaest@chromium.org [Fri, 27 Jun 2014 13:48:37 +0000 (13:48 +0000)]
Split SetProperty(...attributes, strictmode) into DefineProperty(...attributes) and SetProperty(...strictmode)

BUG=
R=rossberg@chromium.org

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

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

10 years agoRemove script collected debug event.
yangguo@chromium.org [Fri, 27 Jun 2014 12:10:43 +0000 (12:10 +0000)]
Remove script collected debug event.

R=yurys@chromium.org

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

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

10 years agoRemove remaining dependencies on allocation.h from a few platform files
jochen@chromium.org [Fri, 27 Jun 2014 11:37:09 +0000 (11:37 +0000)]
Remove remaining dependencies on allocation.h from a few platform files

I could move parts of allocation to base/ instead, but I see little to
no value in the allocation base classes, soo..

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

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

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

10 years agoRemove the duplicated file include.
mstarzinger@chromium.org [Fri, 27 Jun 2014 11:07:44 +0000 (11:07 +0000)]
Remove the duplicated file include.

BUG=
R=mstarzinger@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

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

10 years agoAllow inlining of functions containing %_Arguments.
mstarzinger@chromium.org [Fri, 27 Jun 2014 11:04:35 +0000 (11:04 +0000)]
Allow inlining of functions containing %_Arguments.

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

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

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

10 years agoUnbreak Mac build.
svenpanne@chromium.org [Fri, 27 Jun 2014 11:02:18 +0000 (11:02 +0000)]
Unbreak Mac build.

TBR=marja@chromium.org

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

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

10 years agoUnbreak "os" stuff in shared d8 builds.
svenpanne@chromium.org [Fri, 27 Jun 2014 10:37:42 +0000 (10:37 +0000)]
Unbreak "os" stuff in shared d8 builds.

Note that "os" still has no properties on Windows, but at least it's there.

BUG=v8:3407
LOG=y
R=jkummerow@chromium.org

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

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

10 years agoWhitespace change to trigger bots.
machenbach@chromium.org [Fri, 27 Jun 2014 10:28:44 +0000 (10:28 +0000)]
Whitespace change to trigger bots.

TBR=jkummerow@chromium.org
BUG=

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

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

10 years agoUnbreak Win64 build (hopefully).
svenpanne@chromium.org [Fri, 27 Jun 2014 10:01:44 +0000 (10:01 +0000)]
Unbreak Win64 build (hopefully).

cpplint, our fragile overloading of CheckEqualsHelper and Win64 don't
really play together very well...

TBR=marja@chromium.org

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

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

10 years agoLet test driver nuke test perf data on errors.
machenbach@chromium.org [Fri, 27 Jun 2014 09:51:08 +0000 (09:51 +0000)]
Let test driver nuke test perf data on errors.

BUG=
R=jkummerow@chromium.org

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

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

10 years agoARM64: avoid duplicate load of double constants
Jacob.Bramley@arm.com [Fri, 27 Jun 2014 09:00:31 +0000 (09:00 +0000)]
ARM64: avoid duplicate load of double constants

R=bmeurer@chromium.org, ulan@chromium.org

BUG=

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

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

10 years agoRevert "ARM: Use the shifter operand to merge in previous shift instructions."
marja@chromium.org [Fri, 27 Jun 2014 08:55:41 +0000 (08:55 +0000)]
Revert "ARM: Use the shifter operand to merge in previous shift instructions."

This reverts r 22017

Reason: broke Nexus 7 GPU bots (see crbug.com/389198)

BUG=389198
LOG=n
TBR=machenbach@chromium.org, ulan@chromium.org

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

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

10 years agoAdded slim versions of output streams.
svenpanne@chromium.org [Fri, 27 Jun 2014 08:42:17 +0000 (08:42 +0000)]
Added slim versions of output streams.

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

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

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

10 years agoRemove dependency from platform files on v8.h
jochen@chromium.org [Fri, 27 Jun 2014 08:38:56 +0000 (08:38 +0000)]
Remove dependency from platform files on v8.h

Pass flag values in through a central initialize call.

We still depend on utils.h for RoundUp and IsAligned.

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

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

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

10 years agoX87: Use IC register definitions in platform files.
weiliang.lin@intel.com [Fri, 27 Jun 2014 03:23:31 +0000 (03:23 +0000)]
X87: Use IC register definitions in platform files.

port r22035

original commit message:
  Use IC register definitions in platform files.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

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

10 years agoMIPS: Use IC register definitions in platform files.
palfia@homejinni.com [Thu, 26 Jun 2014 21:03:09 +0000 (21:03 +0000)]
MIPS: Use IC register definitions in platform files.

Port r22035 (0eac506)

BUG=
R=palfia@homejinni.com

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

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

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

10 years agoAdd OnCompileError handler and v8::CompileError debug event.
yurys@chromium.org [Thu, 26 Jun 2014 16:03:52 +0000 (16:03 +0000)]
Add OnCompileError handler and v8::CompileError debug event.
This event is generated when the parser can not generate code.

R=vsevik@chromium.org, yangguo@chromium.org, yurys@chromium.org

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

Patch from Alexey Kozyatinskiy <kozyatinskiy@google.com>.

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

10 years agoRemove unused Debug::AfterCompileFlags flags.
yurys@chromium.org [Thu, 26 Jun 2014 15:12:04 +0000 (15:12 +0000)]
Remove unused Debug::AfterCompileFlags flags.

R=yangguo@chromium.org

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

Patch from Alexey Kozyatinskiy <kozyatinskiy@google.com>.

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

10 years agoFix regexp=interpreted build.
yangguo@chromium.org [Thu, 26 Jun 2014 13:48:22 +0000 (13:48 +0000)]
Fix regexp=interpreted build.

R=jkummerow@chromium.org

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

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

10 years agoAdded more detailed sweeping timing counters.
hpayer@chromium.org [Thu, 26 Jun 2014 12:56:14 +0000 (12:56 +0000)]
Added more detailed sweeping timing counters.

BUG=
R=ulan@chromium.org

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

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

10 years agoInfer whether a variable is assigned in inner functions
rossberg@chromium.org [Thu, 26 Jun 2014 11:59:42 +0000 (11:59 +0000)]
Infer whether a variable is assigned in inner functions

R=titzer@chromium.org
BUG=

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

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

10 years agoReland "Allow inlining of functions containing %_ArgumentsLength."
mstarzinger@chromium.org [Thu, 26 Jun 2014 11:55:31 +0000 (11:55 +0000)]
Reland "Allow inlining of functions containing %_ArgumentsLength."

The layout test failures were unrelated to this change.

R=svenpanne@chromium.org
TBR=svenpanne@chromium.org

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

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

10 years agoKeep CodeRange::current_allocation_block_index_ in range after r21869.
ulan@chromium.org [Thu, 26 Jun 2014 11:49:39 +0000 (11:49 +0000)]
Keep CodeRange::current_allocation_block_index_ in range after r21869.

BUG=305878,388328
LOG=N
R=hpayer@chromium.org

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

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

10 years agoRoll buildtools to fb782d4369d5ae04f17a2fceef7de5a63e50f07b
jochen@chromium.org [Thu, 26 Jun 2014 10:49:27 +0000 (10:49 +0000)]
Roll buildtools to fb782d4369d5ae04f17a2fceef7de5a63e50f07b

Also add hooks to download clang-format binaries.

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

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

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

10 years agoUse IC register definitions in platform files.
mvstanton@chromium.org [Thu, 26 Jun 2014 10:00:36 +0000 (10:00 +0000)]
Use IC register definitions in platform files.

R=jkummerow@chromium.org

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

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

10 years agoSuppress GC stress failure for a test that asserts code being optimized.
yangguo@chromium.org [Thu, 26 Jun 2014 09:49:17 +0000 (09:49 +0000)]
Suppress GC stress failure for a test that asserts code being optimized.

The reason is that GC stress causes additional deopts that the test
originally did not foresee.

R=marja@chromium.org

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

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

10 years agoAvoid adjusting live bytes in JSObject::MigrateFastToFast() if the size delta is...
ishell@chromium.org [Thu, 26 Jun 2014 08:34:34 +0000 (08:34 +0000)]
Avoid adjusting live bytes in JSObject::MigrateFastToFast() if the size delta is zero.

BUG=chromium:388880
LOG=N
R=hpayer@chromium.org

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

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

10 years agoX87: Cleanup CallInterfaceDescriptor
weiliang.lin@intel.com [Thu, 26 Jun 2014 07:32:17 +0000 (07:32 +0000)]
X87: Cleanup CallInterfaceDescriptor

port r22014

original commit message:
 Make CallInterfaceDescriptor work like CodeStubInterfaceDescriptor, owning it's
 register and representation arrays. This also eliminates a host of TSAN warnings
 xfor static arrays

 This CL depends on https://codereview.chromium.org/352583002 landing first
 (a conceptual dependency at least).

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

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

10 years agoCompile optimized code with active debugger but no break points.
yangguo@chromium.org [Thu, 26 Jun 2014 06:32:51 +0000 (06:32 +0000)]
Compile optimized code with active debugger but no break points.

R=ulan@chromium.org
BUG=386492
LOG=Y

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

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

10 years agoX87: The IC exposes a register definition.
weiliang.lin@intel.com [Thu, 26 Jun 2014 05:43:16 +0000 (05:43 +0000)]
X87: The IC exposes a register definition.

port r22011

original commit message:
  Centralize a register definition in an IC that provides:
  1) symbolic names for the register (like, edx == receiver)
  2) defines ordering when passed on the stack

  Code that implements or uses the IC should use this definition instead of "knowing" what the registers are. Or at least have the definition to validate it's assumptions.

  As a side effect of avoiding runtime static initializers (enforced by tools/check-static-initializers.sh, neat), I gave ownership of the registers array to CodeStubInterfaceDescriptor. This prompted a cleanup of that struct

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

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

10 years agoOptimize Map/Set.prototype.forEach
danno@chromium.org [Thu, 26 Jun 2014 00:40:45 +0000 (00:40 +0000)]
Optimize Map/Set.prototype.forEach

Instead of using an iterator result object and an entries array
(for Map) we introduce a new runtime function that uses an array
as an out param.

On the Map ForEach perf test this leads to a 2.5x performance
improvement. On the overall Map and Set tests this leads to a 18%
and 13% improvement respectively.

BUG=None
LOG=Y
R=danno@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

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

10 years agoMIPS: Fix r22021 “The IC exposes a register definition.” after r22018.
kilvadyb@homejinni.com [Wed, 25 Jun 2014 19:30:48 +0000 (19:30 +0000)]
MIPS: Fix r22021 “The IC exposes a register definition.” after r22018.

BUG=
R=palfia@homejinni.com

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

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

10 years agoMIPS: Cleanup CallInterfaceDescriptor.
kilvadyb@homejinni.com [Wed, 25 Jun 2014 18:43:06 +0000 (18:43 +0000)]
MIPS: Cleanup CallInterfaceDescriptor.

Port r22014 (234866c)

Original commit message:
Make CallInterfaceDescriptor work like CodeStubInterfaceDescriptor, owning it's
register and representation arrays. This also eliminates a host of TSAN warnings
for static arrays.

This CL depends on https://codereview.chromium.org/352583002 landing first
(a conceptual dependency at least).

BUG=
R=palfia@homejinni.com

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

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

10 years agoRevert "Allow inlining of functions containing %_ArgumentsLength."
mstarzinger@chromium.org [Wed, 25 Jun 2014 17:21:44 +0000 (17:21 +0000)]
Revert "Allow inlining of functions containing %_ArgumentsLength."

This cuased layout test failures.

TBR=svenpanne@chromium.org

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

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

10 years agoMIPS: The IC exposes a register definition.
kilvadyb@homejinni.com [Wed, 25 Jun 2014 16:17:31 +0000 (16:17 +0000)]
MIPS: The IC exposes a register definition.

Port r22011 (be22370)

Original commit message:
Centralize a register definition in an IC that provides:
1) symbolic names for the register (like, edx == receiver)
2) defines ordering when passed on the stack

Code that implements or uses the IC should use this definition instead of "knowing" what the registers are. Or at least have the definition to validate it's assumptions.

As a side effect of avoiding runtime static initializers (enforced by tools/check-static-initializers.sh, neat), I gave ownership of the registers array to CodeStubInterfaceDescriptor. This prompted a cleanup of that struct.

BUG=
R=mvstanton@chromium.org

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

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

10 years agoAllow inlining of functions containing %_ArgumentsLength.
mstarzinger@chromium.org [Wed, 25 Jun 2014 16:02:49 +0000 (16:02 +0000)]
Allow inlining of functions containing %_ArgumentsLength.

R=svenpanne@chromium.org

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

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

10 years agoCollect garbage with kReduceMemoryFootprintMask in IdleNotification.
ulan@chromium.org [Wed, 25 Jun 2014 15:29:58 +0000 (15:29 +0000)]
Collect garbage with kReduceMemoryFootprintMask in IdleNotification.

BUG=350720
LOG=Y
TBR=hpayer@chromium.org

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

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

10 years agoRemove distinction between hidden and normal runtime functions
danno@chromium.org [Wed, 25 Jun 2014 15:26:10 +0000 (15:26 +0000)]
Remove distinction between hidden and normal runtime functions

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

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

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

10 years agoARM: Use the shifter operand to merge in previous shift instructions.
alexandre.rames@arm.com [Wed, 25 Jun 2014 15:11:00 +0000 (15:11 +0000)]
ARM: Use the shifter operand to merge in previous shift instructions.

When possible, we transform sequences of code of the form
    lsl r1, r2, #imm
    add r0, r5, r1
into
    add r0, r5, r2 LSL #imm

This is an adaptation of r21161.

R=ulan@chromium.org

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

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