Commit Graph

11275 Commits

Author SHA1 Message Date
svenpanne@chromium.org
627645fed7 Fixed evaluation order problem found by GCMole.
TBR=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-17 06:25:29 +00:00
palfia@homejinni.com
0400e05938 MIPS: Handle OOM failures correctly in the CEntryStub when embedders set V8::IgnoreOutOfMemoryException()
Port r14279 (81829ab4)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 21:35:42 +00:00
mstarzinger@chromium.org
091f0b7f35 Revert the commits adding new GC-related APIs.
We need to solve efficiency problems first.

This reverts the following revisions: 14283 14286 14221 14215

BUG=

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 16:37:04 +00:00
jkummerow@chromium.org
decb5394ef More ARM GYP fixes
Review URL: https://codereview.chromium.org/13902014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 15:36:11 +00:00
jkummerow@chromium.org
e1d9543a5e Fix ARM specific GYP variables
Review URL: https://codereview.chromium.org/14208011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 15:17:27 +00:00
jkummerow@chromium.org
d666b24255 Fix shared library build of preparser: properly #undef V8EXPORT
Review URL: https://codereview.chromium.org/14293010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 14:55:45 +00:00
mstarzinger@chromium.org
7c80328866 Fix compilation failure on Win64 since r14285.
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 14:55:09 +00:00
rodolph.perfetta@gmail.com
caa37597ad ARM: Makefile/gyp update allowing better control of ARM specific options.
This patch defines new makefile command line paramaters to better control the
ARM specific options. The new paramters are
 * armfpu      = vfp, vfpv3-d16, vfpv3, neon.
 * armfloatabi = softfp, hard
 * armneon     = on
 * armthumb    = on, off
 * armtest     = on
One existing paratemer has been modified:
 * armv7       = true, false
A number of parameters have been deprecated (but are still working):
 * hardfp      = on, off
 * vfp2        = off
 * vfp3        = off

the armtest paratmer when set to "on" will lock the options used during compile
time at runtime. This allows for example to easily test the ARMv6 build on an
ARMv7 platform without having to worry about features detected at runtime. When
not specified the compiler default will be used meaning it is not necessary
anymore to specify hardfp=on when natively building on an hardfp platform.

The shell help now prints the target options and features detected.

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 14:39:48 +00:00
dslomov@chromium.org
3fad52063a Release build fix
TBR=rossberg@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 14:34:02 +00:00
jkummerow@chromium.org
f0bd070087 Build error fix after r14283.
BUG=NONE

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 14:24:31 +00:00
dslomov@chromium.org
c1a19275d3 First cut at impementing ES6 TypedArrays in V8.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 14:16:30 +00:00
jkummerow@chromium.org
266d2e6320 Fix Windows build
Review URL: https://codereview.chromium.org/13929015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 13:17:47 +00:00
mstarzinger@chromium.org
e8bc8d76ae New GC related APIs: Implicit references.
When using these APIs, the embedder doesn't need to copy Persistent handles around.

BUG=NONE

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 12:57:01 +00:00
jkummerow@chromium.org
2df1620c28 Make gyp work with Cygwin
Review URL: https://codereview.chromium.org/13760003

Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 12:36:44 +00:00
yangguo@chromium.org
fa2c88d2fa Remove bogus CPU scope.
R=mvstanton@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 12:33:39 +00:00
jkummerow@chromium.org
586c4e74b6 Replace OS::MemCopy with OS::MemMove (just as fast but more flexible).
Review URL: https://codereview.chromium.org/13932006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 12:30:51 +00:00
jkummerow@chromium.org
fbe1a9e3c1 Handle OOM failures correctly in the CEntryStub when embedders set V8::IgnoreOutOfMemoryException()
BUG=chromium:231217

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 12:16:55 +00:00
yurys@chromium.org
2e41f0ce1a pthreads seem to be fully supported on Linux and Android which allows to remove many #ifdefs.
Also OS::Sleep(interval_) is used to pause sampling thread on all platforms. It makes no sense to send signal once 900mks to compensate 100mks delay on signal delivery as the signals would be delivered once 900mks.

BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14278 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 12:06:43 +00:00
palfia@homejinni.com
ecfa9675a2 MIPS: Remove soft-float support.
Port r14159 (0c64645)

Original commit message:
Remove ARM support for VFP2

BUG=

TEST=

Review URL: https://codereview.chromium.org/14113011
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 11:33:02 +00:00
vegorov@chromium.org
102c5170c2 Fix bug introduced by r13960.
Allocator does not backtrack thus during allocation we must not create an unhandled live
range which starts before the start of the current live range.

If such range is added to the list of unhandled it might see an inconsistent state of active/inactive live-ranges as they are retired to handled as soon as start of the current live range is larger than their end.

Add assertion to catch this kind of bugs early.

TEST=NavierStokes does not fail on ARM

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 11:31:04 +00:00
yangguo@chromium.org
e1742a6716 Remove relocation lock.
Freeze HValue hash codes that are based on object addresses.

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 11:00:02 +00:00
yurys@chromium.org
9585ead1e9 This change is a continuation of the refactoring started in r14265.
Renamed SignalSender to SamplerThread to match platforms that don't support signal sending.

Cygwin and Windows implementations are almost identical. Mac OS X uses different API to suspend thread but apart from that it is very similar to Windows implenenation.

BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 08:54:33 +00:00
m.m.capewell@googlemail.com
5c6b09e6c6 ARM: Enable VFP default NaN mode
BUG=none
TEST=Default NaN tests added to test-assembler-arm.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-15 15:55:47 +00:00
yangguo@chromium.org
d7b78dc230 Fix OOB write in --print-code.
R=jkummerow@chromium.org
BUG=v8:2624

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-15 15:19:51 +00:00
yurys@chromium.org
e103bd3521 Increase profiling interval in test-cpu-profiler/CollectCpuProfile to 500ms on Windows
BUG=v8:2628

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-15 14:45:38 +00:00
yurys@chromium.org
1596afa7f9 Move *BSD and Solaris Sampler implementation into sampler.cc
This is a first step to having profiler sampler implementation in one file with platform capabilities guarded with #ifdef. Otherwise we have very similar implementations scattered over platform-*.cc files which makes it hard to see differences and make changes.

The next steps will be to merge win32, Mac OS X and Cygwin implementations into sampler.cc They suspend profiled thread instead of sending a signal but apart from that the logic is pretty much the same. Then I'm going to move sampler-related code from log.* into sampler.*

BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-15 13:57:41 +00:00
mstarzinger@chromium.org
591a8ec86c Calling a generator function returns a generator object
* src/heap.h:
* src/heap.cc:
* src/objects-debug.cc:
* src/objects-inl.h:
* src/objects-printer.cc:
* src/objects-visiting.cc:
* src/objects.cc:
* src/objects.h: Define a new object type, JSGeneratorObject.

* src/factory.h:
* src/factory.cc (NewFunctionFromSharedFunctionInfo): Generator function
  inital maps construct the new JS_GENERATOR_OBJECT_TYPE objects, not
  generic JSObjects.

* src/runtime.h:
* src/runtime.cc (Runtime_CreateJSGeneratorObject):
* src/arm/full-codegen-arm.cc (Generate):
* src/ia32/full-codegen-ia32.cc (Generate):
* src/x64/full-codegen-x64.cc (Generate): Before visiting generator
  bodies, arrange to construct and return a generator object.

* test/mjsunit/harmony/generators-objects.js: Add tests for the
  properties and prototype of generator objects.

BUG=v8:2355
TEST=mjsunit/harmony/generators-objects

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

Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-15 12:29:44 +00:00
yangguo@chromium.org
55b2391857 Fix so that you can run presubmit.py in Windows.
presubmit.py tried to execute cpplint.py directly, but in Windows it's the shell that connects that to the python binary so the execution (subprocess.Popen) needs to be told how to find python. An alternative would be to call subprocess.Popen with shell=True but this is less dangerous.

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

Patch from Daniel Bratell <bratell@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-15 12:21:05 +00:00
hpayer@chromium.org
2345bdbeb3 Implement direct allocation in old data space infrastructure.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-15 11:52:34 +00:00
svenpanne@chromium.org
8ddca544fa A little code refactoring on VirtualMemory::Commit for platform-win32
Review URL: https://codereview.chromium.org/14244006

Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-15 10:40:25 +00:00
svenpanne@chromium.org
f70bcae9a9 Actually implement the sqrt intrinsic in Crankshaft
Review URL: https://codereview.chromium.org/13844009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-15 10:36:12 +00:00
dslomov@chromium.org
1441a13599 Homogenizes map checks for all polymorphic named field loads.
Tests show no perf regressions

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-15 09:05:50 +00:00
jkummerow@chromium.org
f0579acab6 MinGW: Add Cygwin-free Makefile generation script
Review URL: https://codereview.chromium.org/14046009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-15 08:43:18 +00:00
jkummerow@chromium.org
1d541a309d Make gyp work with MingW32
Review URL: https://codereview.chromium.org/13468015
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-15 08:33:31 +00:00
palfia@homejinni.com
ae37cb350f MIPS: Enable pretenuring of fast literals in high promotion mode.
Port r14248 (144e215a)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 17:06:23 +00:00
mstarzinger@chromium.org
c052d2f708 Switch generator builtins into strict mode.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 15:52:44 +00:00
rodolph.perfetta@gmail.com
ee7bdef143 ARM: Small copy optimization. Copying 64bits at a time.
BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 14:46:43 +00:00
danno@chromium.org
f5b660ac97 Intel VTune integration for V8/d8
In this patch, we added the JIT code event handler for Vtune. Most of the code is in the
folder src/third_party/vtune. Two APIs are added in include/v8.h to get the requirement info
from V8.

We add the v8_enable_vtunejit parameter for GYP to enable these Vtune code compilation.
vTune::InitilizeVtuneForV8() is invoked in the embedder of V8 to make sure it's invokded if
vtune support is enabled.

Review URL: https://codereview.chromium.org/11574031
Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 12:48:27 +00:00
yurys@chromium.org
5206b08451 Remove code that analyzes tos values from tickprocessor
Assuming that the value on top of stack is return address for a frameless invocation is error-prone. Corresponding logic was removed from profile-generator.cc in r14205 (see https://code.google.com/p/v8/source/diff?spec=svn14205&r=14205&format=side&path=/branches/bleeding_edge/src/profile-generator.cc) and now it is time to remove it from the tick processor.

Since the tos is not used anymore by profiler it is also removed from TickSample.

BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 11:20:22 +00:00
hpayer@chromium.org
73d81098da Turn off pre-tenuring of fast literals when we turn off high promotion mode.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 11:14:48 +00:00
svenpanne@chromium.org
79a13e63c0 Unified the structure of VirtualMemory implementations across platforms a bit.
This is just shuffling some code around to make comparing the platform files easier.

Made cygwin/nullos support a bit more complete on the way.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 11:10:19 +00:00
mstarzinger@chromium.org
5de8e81c1f Add tests for GlobalHandles::IterateObjectGroups.
BUG=none
TEST=cctest/test-global-handles

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 09:54:51 +00:00
hpayer@chromium.org
acc4568aff Enable pretenuring of fast literals in high promotion mode.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 09:45:46 +00:00
jkummerow@chromium.org
845990a350 Fix preparser build with snapshot=off
Review URL: https://codereview.chromium.org/14159006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 09:44:08 +00:00
hpayer@chromium.org
e7a5e69688 Remove unnecessary BailoutIds.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 09:36:56 +00:00
palfia@homejinni.com
8611646813 MIPS: Fix register usage in commit r14239.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 09:25:04 +00:00
jkummerow@chromium.org
a183e52085 Remove preparser library; link preparser executable against full V8
Review URL: https://codereview.chromium.org/13880018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 09:05:49 +00:00
mstarzinger@chromium.org
4a9c3d4a66 Support full deoptimization during GC via stack guard.
This adds support to the stack guard to trigger a full deoptimization of
all optimized code when the GC kicks into high promotion mode. Global
pretenuring decisions in optimized code can then be based on the high
promotion mode.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 08:58:22 +00:00
mstarzinger@chromium.org
75c388e691 Fix detection of indexed properties in Object.defineProperty()
When defining an indexed property on an Array object, the object's
length property should (perhaps) be updated.  This was done for any
property for which

  ToUInt32(name) == ToNumber(name)

was true, meaning any property name that, when converted to a number,
was an integer in the range [0, 2^32).  The detection should be more
strict; an indexed property is one for which

  ToString(ToUInt32(name)) == name

is true only.

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

Patch from Jens Lindström <jl@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 08:45:14 +00:00
hpayer@chromium.org
66f5c75dab Separate calculation of double element and object element sizes in IsFastLiteral.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 08:42:17 +00:00