Commit Graph

13646 Commits

Author SHA1 Message Date
Jacob.Bramley@arm.com
74d49a1e7e ARM64: Preserve x8 and x9 when necessary.
Fix a couple of places were x8 and x9 are excluded from lists of saved
registers. These are caller-saved registers, so C code can corrupt them.

x8 and x9 were originally reserved for debug code in the ARM64 port, so
we didn't bother preserving them, but they are now normal allocatable
registers.

BUG=v8:3263
LOG=N
R=rmcilroy@chromium.org, ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 15:47:45 +00:00
danno@chromium.org
2e9902b22a Partially fix semantics of Array.push()
Semantics of elements accessors are now preserved in all optimized code paths
through Array.push(). Previously it was possible to have inconsistent behavior
between optimized and unoptimized code, and there were cases where element
accessors were completely ingored.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 13:17:48 +00:00
mvstanton@chromium.org
8aa93f2443 Bugfix: A TransitionArray can disappear during copy.
During handlification of TransitionArray code, an error was introduced
in TransitionArray::CopyInsert because after creating a copy of a
TransitionArray, it may be that the array disappears during GC
because it is modified during the marking of the owning map.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 13:06:52 +00:00
ulan@chromium.org
f4cce54313 Revert r20652 "Handlify and convert string.length to new API-style accessor."
Reason: test failure with --noenable-sse3.

R=dcarney@chromium.org
TBR=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 12:40:55 +00:00
ulan@chromium.org
2564c72036 Handlify and convert string.length to new API-style accessor.
BUG=
R=dcarney@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 12:00:36 +00:00
verwaest@chromium.org
dcc142d547 Work towards unifying descriptor array handling.
BUG=
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 11:59:10 +00:00
bmeurer@chromium.org
990b57ba1d Treat uninitialized as internal type.
TEST=cctest/test-types
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 11:51:03 +00:00
rossberg@chromium.org
cf4eddd3f8 Yet more type system tests
R=bmeurer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 11:49:18 +00:00
dcarney@chromium.org
956d4f3ca0 Revert "Populate receiver types when there is no type feedback"
This reverts r20646.

TBR=verwaest@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 11:01:09 +00:00
verwaest@chromium.org
453d6fc285 Populate receiver types when there is no type feedback
When there is no type feedback yet, ComputeReceiverTypes
should still populate the SmallMapList when the receiver
is a HConstant.

BUG=
R=verwaest@chromium.org

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

Patch from Petka Antonov <p.antonov@partner.samsung.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 09:49:53 +00:00
svenpanne@chromium.org
5bddec047d Do not use ranges after range analysis.
Due to the SSA vs. SSI difference, we are only allowed to use the
flags computed during range analysis, not the ranges themselves. For
the case at hand, there is no such flag, so the condition is simply
remvoed.

BUG=361608
LOG=y
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 09:40:17 +00:00
ishell@chromium.org
32735ae3a9 Object::GetElements() and friends maybehandlification.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 09:20:11 +00:00
hpayer@chromium.org
21256676ad Grow small old generation faster.
BUG=
R=bmeurer@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20640 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 08:32:36 +00:00
bmeurer@chromium.org
4620ae5cf1 Fix symmetry of Maybe() predicate. Fix bug in NowContains() predicate.
Add tests for TypeImpl::Of(), TypeImpl::NowOf() and
TypeImpl::NowContains(). Improves the implementation of
TypeImpl::NowIs() to match that of TypeImpl::NowContains().

Mark test-types with NO_VARIANTS to speedup testing, since
the variants do not affect the type system at all.

Also improve test coverage for types.

TEST=cctest/test-types
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 08:04:50 +00:00
hpayer@chromium.org
0387b23552 Disable concurrent sweeping.
BUG=
R=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 07:56:40 +00:00
haitao.feng@intel.com
707a583116 Introduce LoadSharedFunctionInfoSpecialField for x64 port.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 02:11:43 +00:00
haitao.feng@intel.com
cee232e6a8 Update Integer32ToSmiField, SmiToInteger32, and SmiComprare to support 31-bit SMI for x32 port
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 01:25:28 +00:00
haitao.feng@intel.com
22ca5b97e4 Guard 32-bit SMI load/store optimization with SmiValuesAre32Bits predicate.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 00:32:19 +00:00
ishell@chromium.org
7135c9fde2 ElementsAccessor::Delete() maybehandlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 15:45:12 +00:00
yangguo@chromium.org
f320fe9471 Remove unused function typedefs.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 15:38:45 +00:00
mvstanton@chromium.org
41b6c8a0f1 Handlefy Descriptor and other code in objects.cc
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 14:26:32 +00:00
jarin@chromium.org
008a70c47b Revert "Make new space iterable when transitioning double array to objects"
This reverts r20603.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 13:39:03 +00:00
ishell@chromium.org
74e7a4ad07 ElementsAccessor::SetLength() maybehandlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 13:16:19 +00:00
jarin@chromium.org
57d70c149c Avoid hydrogen compare-objects-equal assertions in dead code
ClusterFuzz test is triggering assertions for dead code. This fix issues
HDeoptimize instruction when it finds out that the compare instruction
is dead (because of previous checks).

R=yangguo@chromium.org
BUG=359491
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 13:08:28 +00:00
yangguo@chromium.org
ea1dc8eeef Remove uses of non-handlified GetProperty.
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 13:05:56 +00:00
ishell@chromium.org
1862da47ec Reland of r20606: Further ElementsAccessor handlification (GetKeyForIndex(), GetCapacity(), GetType() and GetAttributes()).
It was not related to test failures.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 12:56:24 +00:00
jochen@chromium.org
dc4ba08d17 Allow the embedder to pass the virtual memory limit to v8
The getrlimit() call might be sandboxed, so it's not safe to use it.

BUG=none
R=mstarzinger@chromium.org
LOG=y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 12:45:56 +00:00
yangguo@chromium.org
4df132a878 Fix argument expectation Runtime_StringParseInt.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 12:33:51 +00:00
m.m.capewell@googlemail.com
936a77087b ARM64: Use pair memory access in deoptimizer entry
BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 12:27:51 +00:00
hpayer@chromium.org
24692b306c Turn on concurrent sweeping.
BUG=
R=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 12:27:20 +00:00
yangguo@chromium.org
aee76a059a Remove calls to non-handlified version of GetProperty(name).
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 12:21:47 +00:00
hpayer@chromium.org
66d63594bc Use no barrier size accessor in FreeListCategory::SumFreeList.
BUG=
R=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 12:21:20 +00:00
bmeurer@chromium.org
a0ac88db82 Fix various bugs in the type systems, and improve test coverage.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 11:12:15 +00:00
palfia@homejinni.com
a0355e3745 Fix build with gcc 4.8 on Linux.
This fixes a build failure on Linux with gcc 4.8, after r20581.

BUG=
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 11:01:58 +00:00
ishell@chromium.org
d49e3fa75a Revert "Further ElementsAccessor handlification (GetKeyForIndex(), GetCapacity(), GetType() and GetAttributes())."
This reverts commit r20606 for breaking tests on windows.

TBR=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 10:58:17 +00:00
ishell@chromium.org
773738d4d1 Further ElementsAccessor handlification (GetKeyForIndex(), GetCapacity(), GetType() and GetAttributes()).
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 09:58:26 +00:00
hpayer@chromium.org
728614daf9 Allow race-full access of map instance size when sweeping concurrently.
BUG=
R=jarin@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 09:50:25 +00:00
jarin@chromium.org
69d5b3c155 Make new space iterable when transitioning double array to objects
R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 09:50:08 +00:00
mstarzinger@chromium.org
e3aec7a587 Fix return value of push() and unshift() on Array.prototype.
R=ulan@chromium.org
TEST=mjsunit/regress/regress-builtinbust-3

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 09:14:56 +00:00
yangguo@chromium.org
a8ad1390e7 Fix regexp compilation cache.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 09:01:38 +00:00
mstarzinger@chromium.org
f1a22a0fd2 Handlify all context allocators from the Heap.
R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 08:51:46 +00:00
hpayer@chromium.org
c85cc472e7 Introduced Atomic8 and added no-barrier Atomic8 accessors.
BUG=
R=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 08:20:10 +00:00
jarin@chromium.org
05670b63bf Add stack overflow check for inlined property getter
We should check for overflow for each inlined property getter;
otherwise, we can get an overflow from inlining property getter while
still having pending overflow exception from some previous inlined
getter (in the same polymorphic access).

R=verwaest@chromium.org
TEST=test/mjsunit/regress/regress-inline-getter-near-stack-limit.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 07:35:12 +00:00
adamk@chromium.org
902ad4a17a Use OrderedHashTables as the backing store of JSSet and JSMap
This also deletes ObjectHashSet as it's no longer used.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-08 20:06:35 +00:00
jochen@chromium.org
60422b4541 Compile fix for NaCL
TBR=mstarzinger@chromium.org
BUG=none
LOG=n

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-08 18:12:00 +00:00
jochen@chromium.org
a9d9b72989 Return 0 as maximal amount of physical memory if there is no limit.
That's what the comment says should happen, and what Heap's ctor
expects.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-08 17:19:15 +00:00
hpayer@chromium.org
930ca1b52a Synchronize store buffer processing and concurrent sweeping.
BUG=
R=jarin@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20582 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-08 16:31:57 +00:00
ishell@chromium.org
df4ee49348 Further ElementsAccessor handlification (Get(), AddElementsToFixedArray() and HasElement()).
R=verwaest@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20581 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-08 14:20:29 +00:00
Jacob.Bramley@arm.com
e93599c502 ARM64: Put all simulator trace on the same stream.
The simulator can trace to a specified stream, typically stderr or
stdout. However, several messages (such as ASM_LOCATIONs) were printed
only to stdout. As a result, they often ended up out of order with
respect to the instruction trace. This patch causes all simulator output
to go to the same stream.

BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-08 13:23:04 +00:00
ulan@chromium.org
4b5f38ef0c Handlify RegExpKey.
This fixed mjsunit/unicode-case-overoptimization after r20578.

BUG=
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-08 13:14:03 +00:00