Commit Graph

16087 Commits

Author SHA1 Message Date
Jacob.Bramley@arm.com
137833248a ARM64: Move sign-extension to load instructions.
The SXTW extend mode is usually free when used in a load or store
operand, but it can slightly increase the latency of an arithmetic
instruction. This patch optimises some address calculations accordingly:
  - PrepareKeyedExternalArrayOperand.
  - BuildSeqStringOperand.
  - DoStringCharFromCode.

BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 15:57:04 +00:00
mvstanton@chromium.org
5600046f59 Use MaybeHandles in Compiler to indicate failure instead of a null Handle.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 14:55:47 +00:00
danno@chromium.org
b4fa81dbca Insert HSimulate immediately after Crankshaft-inlined push.
R=jarin@chromium.org
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 12:55:40 +00:00
yangguo@chromium.org
41bfa036b3 Return Object* instead of MaybeObject* from runtime calls.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 12:50:58 +00:00
dslomov@chromium.org
b0f91095bd Cache maps for externalized typed array objects.
After this, the maps do not garbage-collect, and typed array
constructors do not deopt.

R=ulan@chromium.org
BUG=363855
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 12:24:28 +00:00
wingo@igalia.com
a2ac40aca7 Context-allocate all parameters in generators
Generator function scopes have forced context allocation.  Ensure that
all variables in such scopes get context allocation -- even unused
variables.

This fixes an assertion when reifying generator scopes in the debugger.

R=yangguo@chromium.org
LOG=Y
BUG=v8:3280

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 11:34:16 +00:00
yangguo@chromium.org
a68be7629b Do not avoid flattening cons string when creating a string slice.
R=ulan@chromium.org
BUG=364656
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 11:19:27 +00:00
bmeurer@chromium.org
9437b59a6c HBranch should also print its expected input types.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 11:00:27 +00:00
bmeurer@chromium.org
376bff2411 Optimize numeric comparison with known successors.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 10:49:28 +00:00
svenpanne@chromium.org
eeb1d7020e Revert "Simplify v8/Isolate teardown."
This reverts commit r20876, it broke non-snapshot tests.

TBR=bmeurer@chromium.org

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 10:45:43 +00:00
svenpanne@chromium.org
206dbe87e7 Bumped the boot-up memory-limit, part 2.
Basically a follow-up to r20851

TBR=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 09:40:18 +00:00
mvstanton@chromium.org
5ef2c18639 JSObject::DeepCopy and other functions returned an empty handle to
indicate an exception. All usages but one changed to return
MaybeHandles, and to use macros around the call.

The remaining work is in Compiler::GetUnoptimizedCode(), and when
that is turned into a MaybeHandle, then the macros dealing with
null handle returns can be eliminated.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 09:32:42 +00:00
svenpanne@chromium.org
618ff3a3f5 Simplify v8/Isolate teardown.
This implies that one better has a v8::V8::Initialize when v8::V8::Dispose is used.

BUG=359977
LOG=y
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 09:24:56 +00:00
bmeurer@chromium.org
2a941b2ecd Cons string maps must be marked as unstable.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 08:49:46 +00:00
bmeurer@chromium.org
7ab274d4f5 Make sure to clear any previously collected field maps.
TEST=http://www.chaostoperfection.com/
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 08:34:44 +00:00
verwaest@chromium.org
c9db6148a9 Set code on the SharedFunctionInfo before creating the function.
BUG=
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 08:30:09 +00:00
bmeurer@chromium.org
af05141176 Improve code generation for bounds checks.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 08:28:14 +00:00
yangguo@chromium.org
2c394ad00d Introduce exception object and remove some uses of MaybeObject::IsFailure().
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 07:33:20 +00:00
bmeurer@chromium.org
eccda7f000 Fix field type handling in load elimination.
Drive-by-fix: map_set() must return a pointer to the UniqueSet
instead of a copy.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 07:24:05 +00:00
yangguo@chromium.org
c44dc2fc3d Fix interpreted-regexp test.
TBR=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 06:54:16 +00:00
alph@chromium.org
b97a2a2585 Switch CPU profile start/stop markers to monotonic time.
LOG=N
BUG=363976
R=bmeurer@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-19 14:33:18 +00:00
haitao.feng@intel.com
3416e7bc49 Return int64_t instead of intptr_t for RootRegisterDelta and support x32 as well.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 23:25:02 +00:00
haitao.feng@intel.com
6e40573330 Update CheckBothSmi, CheckInteger32ValidSmiValue, CheckUInteger32ValidSmiValue, SmiAddConstant, SmiNot, AddSmiField and Test to support x32 port.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 23:17:08 +00:00
palfia@homejinni.com
c8c951204c MIPS: Serializer enable/disable flags need thread safety.
Port r20855 (ac70e129)

BUG=
R=plind44@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 20:06:50 +00:00
adamk@chromium.org
1572115483 Fix breakage on V8 Linux - nosse2
This was introduced by https://code.google.com/p/v8/source/detail?r=20857

R=adamk@chromium.org
TBR=mstarzinger@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 19:39:48 +00:00
adamk@chromium.org
3308cb5857 ES6: Add support for Map/Set forEach
This implements MapIterator and SetIterator which matches
the same constructs in the ES6 spec. However, these 2
iterators are not exposed to user code yet. They are only
used internally to implement Map.prototype.forEach and
Set.prototype.forEach.

Each iterator has a reference to the OrderedHashTable where
it directly accesses the hash table's entries.

The OrderedHashTable has a reference to the newest iterator
and each iterator has a reference to the next and previous
iterator, effectively creating a double linked list.

When the OrderedHashTable is mutated (or replaced) all the
iterators are updated.

When the iterator iterates passed the end of the data table
it closes itself. Closed iterators no longer have a
reference to the OrderedHashTable and they are removed from
the double linked list. In the case of Map/Set forEach, we
manually call Close on the iterator in case an exception was
thrown so that the iterator never reached the end.

At this point the OrderedHashTable keeps all the non finished
iterators alive but since the only thing we currently expose
is forEach there are no unfinished iterators outside a forEach
call. Once we expose the iterators to user code we will need
to make the references from the OrderedHashTable to the
iterators weak and have some mechanism to close an iterator
when it is garbage collected.

BUG=1793, 2323
LOG=Y
R=adamk@chromium.org
TBR=mstarzinger@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 17:45:32 +00:00
mstarzinger@chromium.org
1213ecb50b Make Heap::AllocateRaw*String private.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 14:58:03 +00:00
mvstanton@chromium.org
9ce1c5144a Serializer enable/disable flags need thread safety.
BUG=
R=hpayer@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 14:45:06 +00:00
jarin@chromium.org
1e0045083f This should make the NaCl build jobs green again.
BUG=
R=hpayer@chromium.org, jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 14:22:20 +00:00
hpayer@chromium.org
540a4c3895 Initialize elements pointer in BuildCloneShallowArray when allocation folding is turned off for arrays with lenght larger than zero.
BUG=
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 14:20:26 +00:00
dslomov@chromium.org
439f68dd45 Handlify PolymorphicCodeCache.
R=yangguo@chromium.org, yannguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 13:59:57 +00:00
jarin@chromium.org
3277f2b90b Bump up the boot-up memory limit.
... to compansate for the extre memory consumed by r20840
("Select function map based on prototype and shared function info.")

R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 13:58:51 +00:00
dslomov@chromium.org
fe64313fa6 Change IS_UNDEFINED to perform value comparison instead on typeof check.
This makes our builtins immune to bug v8:3264.

R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 13:55:03 +00:00
mstarzinger@chromium.org
1def20d5ef Make Heap::AllocateRaw private.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 13:53:06 +00:00
ishell@chromium.org
9ef20a1e99 Fix for a Mac build issue after r20846.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 13:45:13 +00:00
plind44@gmail.com
fd0df23b10 MIPS: Track up to 5 stable maps as field type.
Port r20831 (f91f993)

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 13:37:28 +00:00
ishell@chromium.org
313844d842 Heap::AllocateStringFromOneByte() and major part of its callers handlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 13:27:02 +00:00
yangguo@chromium.org
c918ccd392 Allocate filler objects in the factory.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 13:15:22 +00:00
yangguo@chromium.org
14010d37c6 Cleanups in runtime.cc
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 13:05:28 +00:00
hpayer@chromium.org
04a0223ab7 Initialize elements pointer in BuildCloneShallowArray when allocation folding is turned off.
BUG=
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 11:58:48 +00:00
verwaest@chromium.org
49b19ecd20 Always pass in code to NewFunctionWithoutPrototype
BUG=
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 11:57:32 +00:00
mstarzinger@chromium.org
1c314382c0 Extend GCMole to also cover cctest files.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 11:57:08 +00:00
verwaest@chromium.org
107a359080 Select function map based on prototype and shared function info.
BUG=
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 11:50:22 +00:00
danno@chromium.org
59b3dc5812 Remove hand-written assembly ArrayPush stubs
R=mstarzinger@chromium.org, verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 11:37:59 +00:00
ulan@chromium.org
85cf6ce9fa X64: fix arguments adaptor stack check after r20751.
BUG=
R=haitao.feng@intel.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 11:30:25 +00:00
hpayer@chromium.org
39b5090f8e Grow old generation slower on low-memory devices.
BUG=
R=mstarzinger@chromium.org, rmcilroy@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 11:27:45 +00:00
jkummerow@chromium.org
09c615940c Harden runtime functions
Part 1 of many.

R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 09:55:53 +00:00
rossberg@chromium.org
6d475fb350 Fix handlification bug in test
R=bmeurer@chromium.org, mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 09:30:41 +00:00
marja@chromium.org
a6db82d81e Tiny Parser fix: init identifiers.
This bug went unnoticed because PreParserIdentifier and Handle<String> have
default ctors which create a null identifier, but this it not true for all
possible identifier types (especially pointers).

R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 09:23:04 +00:00
ulan@chromium.org
494d014798 Handlify function.prototype accessor.
BUG=
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 09:12:19 +00:00