hpayer@chromium.org
7ed7af2f9f
Tell the GC prologues to construct RetainedObjectInfos only when needed.
...
The GC prologue is called by the GC, but also by the heap snapshotter. The
RetainedObjectInfos are only needed by the heap snapshotter, so it's wasteful to
construct them always. (And it will be even more wasteful when Blink migrates to
the new GC APIs, since after that point it no longer knows about object groups.)
BUG=
Review URL: https://codereview.chromium.org/14471028
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-25 12:08:10 +00:00
dslomov@chromium.org
44f2d534b1
First cut at API for ES6 ArrayBuffers
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/13958007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-25 12:02:23 +00:00
mstarzinger@chromium.org
8f1fc88f8c
Relax --debug-code checks that runtime returns are not the hole
...
ia32, unlike the other architectures, includes a --debug-code check that
asserts that runtime functions do not return the hole. However the new
SuspendJSGeneratorObject runtime does return the hole at times.
This CL adds a wee hack that only signals an error if the callee was not
SuspendJSGeneratorObject.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/13856011
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-25 12:00:07 +00:00
mstarzinger@chromium.org
71dc9e165f
Capture receiver in generator object
...
Previously there has been no reason to context-allocate the receiver, so
access to the receiver always goes through the stack. This was failing
with generators, which assumed that forcing context allocation would
relieve the need of storing anything but the context and the function on
the stack.
This CL adds a slot in generator objects to capture the receiver, and
restores it when resuming a generator.
BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration
Review URL: https://codereview.chromium.org/14158006
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-25 10:59:09 +00:00
yangguo@chromium.org
1ad3d57d9d
Get isolate from thread local instead of (potentially missing) block in HConstant.
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/14284011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-25 10:57:24 +00:00
mstarzinger@chromium.org
a4ba7d6b65
Fix evaluation order problems in Object.observe hooks.
...
R=rossberg@chromium.org
TEST=gcmole
Review URL: https://codereview.chromium.org/14493012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-25 10:23:19 +00:00
hpayer@chromium.org
e93d12a470
Grow the old generation faster in high promotion mode.
...
BUG=
Review URL: https://codereview.chromium.org/14493011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-25 09:17:07 +00:00
jkummerow@chromium.org
628875475e
Fix overflow check in mul-i which was missing since r14322
...
Review URL: https://codereview.chromium.org/14471012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-25 07:36:59 +00:00
palfia@homejinni.com
16ed1db350
MIPS: Clean up VMState a little bit.
...
Port r14421 (31cd7dda)
BUG=
Review URL: https://codereview.chromium.org/14483002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 23:12:53 +00:00
palfia@homejinni.com
8ddaa0c1a5
MIPS: Generators can resume
...
Port r14415 (d358defa) and r14424 (7b549ce7)
Original commit message:
The generator object methods "next", "send", and "throw" now
include some inline assembly to set up a resumed stack frame. In some
common cases, we can just jump back into the frame to resume it.
Otherwise the resume code calls out to a runtime to fill in the operand
stack, rewind the handlers, and possibly to throw an exception.
BUG=v8:2355
TESTS=mjsunit/harmony/generators-iteration
Review URL: https://codereview.chromium.org/13864010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 23:11:48 +00:00
palfia@homejinni.com
6dc29db655
MIPS: Add monomorphic CompareNilICs and Crankshaft support
...
Port r14407 (cae6596b)
BUG=
Review URL: https://codereview.chromium.org/13840006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 23:10:53 +00:00
plind44@gmail.com
d0cb889086
MIPS: Fix NaN handling for start index in ArraySplice.
...
Casting NaN to int is unpredictable, on different architectures it produces different int value.
TEST=test262/S15.4.4.10_A2.1_T2, S15.4.4.10_A2.2_T2, S15.4.4.12_A2.1_T2
BUG=
Review URL: https://codereview.chromium.org/14257006
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 19:10:02 +00:00
mstarzinger@chromium.org
27a0700151
Remove bogus forward declaration of ObjectGroup.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/14333016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 16:51:00 +00:00
mstarzinger@chromium.org
338f11850a
Fix generator suspend and resume on ARM
...
This CL fixes a number of rookie mistakes in
FullCodeGenerator::VisitYield and
FullCodeGenerator::EmitGeneratorResume, and re-enables the
generators-iteration test on ARM.
R=mstarzinger@chromium.org
BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration
Review URL: https://codereview.chromium.org/13843022
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 16:07:44 +00:00
mstarzinger@chromium.org
e7c1f322a4
New GC APIs, try 2.
...
With these APIs, the embedder doesn't need to copy Persistent handles around.
BUG=
Review URL: https://codereview.chromium.org/14007008
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 15:59:23 +00:00
svenpanne@chromium.org
bc06a802a7
Fixed HUnaryMathOperation regarding its possible operations.
...
Review URL: https://codereview.chromium.org/14333013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 14:51:14 +00:00
yangguo@chromium.org
d1df0e631d
Clean up VMState a little bit.
...
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/14139033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 14:44:08 +00:00
dcarney@chromium.org
061f523b5a
Change cctest/test-lockers to not copy persistent handles around.
...
Instead, create Local handles to pass them around. This also means that the
code needs to be shifted around a bit such that a handle scope exists when
creating threads.
Review URL: https://codereview.chromium.org/14150017
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 14:23:46 +00:00
yangguo@chromium.org
3e7f38147b
Fix windows build.
...
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/14476003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 14:05:37 +00:00
yangguo@chromium.org
fc0c0e3357
Remove Isolate::Current() from histograms.
...
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/14471007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 13:52:26 +00:00
mstarzinger@chromium.org
23f39546b9
Generators can resume
...
The generator object methods "next", "send", and "throw" now
include some inline assembly to set up a resumed stack frame. In some
common cases, we can just jump back into the frame to resume it.
Otherwise the resume code calls out to a runtime to fill in the operand
stack, rewind the handlers, and possibly to throw an exception.
BUG=v8:2355
TESTS=mjsunit/harmony/generators-iteration
Review URL: https://codereview.chromium.org/14066016
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 13:00:16 +00:00
svenpanne@chromium.org
b08fcc54a0
MathSqrt and MathPowHalf do not cause any promotion.
...
Review URL: https://codereview.chromium.org/13829009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 12:43:33 +00:00
jkummerow@chromium.org
5ab6439615
Properly consider Double inputs for representation inference when they are not marked as kFlexibleRepresentation
...
Review URL: https://codereview.chromium.org/14408006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 12:39:30 +00:00
yurys@chromium.org
29a7186d11
Fix segmentation fault in CodeMap::Print
...
CodeEntry* is always NULL for SharedFunctionInfo entries in the CodeMap. Take this into account when printing the map.
Drive-by: removed CodeEntry::shared_id() which is never called.
BUG=None
Review URL: https://codereview.chromium.org/14387004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 12:09:04 +00:00
yangguo@chromium.org
1d03493d4d
Simplify some code related to x64 calling convention.
...
R=mvstanton@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/13940014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 12:01:08 +00:00
yangguo@chromium.org
cc846ab75b
Fix clang build for x64.
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/14471004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 11:44:39 +00:00
danno@chromium.org
f8ddf3a262
Add monomorphic CompareNilICs and Crankshaft support
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/14367018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 11:32:17 +00:00
danno@chromium.org
a0aed63bbb
Replace qsort with std::sort.
...
std::sort is a template, so it can be inlined more aggressively. Also, it's
O(n log n), while libc's qsort is O(n^2)
BUG=2639
Review URL: https://codereview.chromium.org/14315005
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 11:20:16 +00:00
ulan@chromium.org
5c0a2c739c
Prepare push to trunk. Now working on version 3.18.4.
...
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/14139031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 10:57:15 +00:00
svenpanne@chromium.org
36da987d3f
Removed unbalanced brackets when printing an LEnvironment.
...
Review URL: https://codereview.chromium.org/14286005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 09:31:55 +00:00
mvstanton@chromium.org
535df803b9
If the input to an HChange is of type smi, then no need to mark gvn flag changes new space promotion.
...
BUG=
Review URL: https://codereview.chromium.org/14253010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 09:14:56 +00:00
yangguo@chromium.org
cd99870ee7
Refactor ExternalReference::isolate_address() to not rely on Isolate::Current().
...
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/14429003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 07:39:35 +00:00
palfia@homejinni.com
2c9ff75d50
MIPS: Disallow dereferencing deferred handles when generating optimized code.
...
Port r14388 (6843e0c9), r14389 (331ea32d) and r14390 (c8528d1c)
BUG=
Review URL: https://codereview.chromium.org/14305011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 00:58:48 +00:00
dslomov@chromium.org
852f90339a
Adds EXTERNAL_DOUBLE_ARRAY to a list of instance types
...
BUG=v8:2646
Patch by Andrei Kashcha <anvaka@gmail.com>
Review URL: https://codereview.chromium.org/14042008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 17:02:09 +00:00
mstarzinger@chromium.org
3d84765fc2
Expose the GC under a name that is less collision prone than window.gc.
...
This also keeps backwards compatibility (window.gc() still works).
BUG=2641
Review URL: https://codereview.chromium.org/14075012
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 16:30:51 +00:00
ulan@chromium.org
bc4d7878e6
Do not emit Simulates in HandlePolymorphicElementAccess.
...
BUG=v8:2653
R=jkummerow@chromium.org
TEST=mjsunit/regress/regress-2653.js
Review URL: https://chromiumcodereview.appspot.com/14081025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 15:28:44 +00:00
ulan@chromium.org
ff9ceebe2f
Add a flag to deoptimize all functions every n garbage collections.
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/14091013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14395 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 15:21:11 +00:00
svenpanne@chromium.org
cd34acdae3
Do not emit double values at their use sites.
...
Revert part of r14179. From the regression test's comment:
Currently, the gap resolver doesn't handle moves from a ConstantOperand to a
DoubleRegister, but these kind of moves appeared when HConstant::EmitAtUses
was changed to allow special double values (-0, NaN, hole). So we should
either enhance the gap resolver or make sure that such moves don't happen.
BUG=chrome:234101
Review URL: https://codereview.chromium.org/14429002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 13:08:10 +00:00
mstarzinger@chromium.org
c46cbccefd
Make it clear that GCMole depends on Clang 2.9 currently.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/13950017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 12:48:59 +00:00
mstarzinger@chromium.org
7b412a7443
Fix ugly typo in r14391.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/14425006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 10:52:40 +00:00
mstarzinger@chromium.org
1794ac9bd9
Switch GYP script to not use utils.py anymore.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/14108010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 10:41:55 +00:00
yangguo@chromium.org
f873e83bbf
Fix typo.
...
R=mvstanton@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/14425005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 10:40:52 +00:00
yangguo@chromium.org
b2888632ea
Fix clang build.
...
R=mvstanton@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/14091011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 09:40:49 +00:00
yangguo@chromium.org
28bbe46a98
Disallow dereferencing deferred handles when generating optimized code.
...
R=mvstanton@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/14403015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 09:23:07 +00:00
mstarzinger@chromium.org
d352df8131
Change deprecated comments that still talk about SCons.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/14404012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14387 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 08:58:23 +00:00
yurys@chromium.org
75605f82b6
Print ProfileNode id when dumping CPU profile to console
...
Node ids are monotonically increasing and looking at them we can
say e.g. when the node was added before another one. We need this
to diagnose sporadic failures of cctest/test-cpu-profiler/CollectCpuProfile
BUG=v8:2628
Review URL: https://codereview.chromium.org/14402014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 07:26:30 +00:00
svenpanne@chromium.org
526558409d
Remove the executable bit from scanner.cc file.
...
Patch from Thiago Farina <tfarina@chromium.org>.
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/14081021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-23 07:24:08 +00:00
palfia@homejinni.com
c2fbc08b42
MIPS: ARM: Fix erroneous detection of Double result type in Integer32 BinaryOpStubs
...
Port r14371 (b5c4a990)
BUG=
Review URL: https://codereview.chromium.org/13973013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-22 22:46:51 +00:00
palfia@homejinni.com
5d7e335afd
MIPS: Improvements in lithium code generation. Recognizing if some operands are constants, we can often save on registers and instructions.
...
Port r14364 (2819e5ee)
BUG=
Review URL: https://codereview.chromium.org/14159015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-22 22:45:34 +00:00
rodolph.perfetta@gmail.com
eed788a7bb
ARM: VFP cleanup now that VFP2 is the baseline.
...
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/14119008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-22 21:30:57 +00:00