Commit Graph

10511 Commits

Author SHA1 Message Date
mstarzinger@chromium.org
aaada6e950 Fix SSE2 scope being too broad in DoCmpIDAndBranch.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 18:12:27 +00:00
palfia@homejinni.com
56f507c580 MIPS: Combine %_SubString and %_StringCharAt.
Port r13700 (587dc7c1)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 17:48:14 +00:00
adamk@chromium.org
deeddc7e76 Remove duplication and unnecessary HandleScope from HasElement helper functions
Review URL: https://codereview.chromium.org/12328064

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 17:20:21 +00:00
yurys@chromium.org
dc9b817667 Send SIGPROF signals on the profiler event processor thread
The patch is based on the previous one that was rolled out: https://code.google.com/p/v8/source/detail?r=12985

On Linux sampling for CPU profiler is initiated on the profiler event processor thread, other platforms to follow.

CPU profiler continues to use SamplingCircularQueue, we will replave it with a single sample buffer when Mac and Win ports support profiling on the event processing thread.

When --prof option is specified profiling is initiated either on the profiler event processor thread if CPU profiler is on or on the  SignalSender thread as it used to if no CPU profiles are being collected.

ProfilerEventsProcessor::ProcessEventsAndDoSample now waits in a tight loop, processing collected samples until sampling interval expires. To save CPU resources I'm planning to change that to use nanosleep as only one sample is expected in the queue at any point.

BUG=v8:2364

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 16:15:32 +00:00
ulan@chromium.org
0184fe5149 [Android] Fix v8_shell compilation for Android component build.
r12883 was in complete because the library was included for host and
target. Restrict to just target.

BUG=chromium:158821

Review URL: https://chromiumcodereview.appspot.com/12314118
Patch from Yaron Friedman <yfriedman@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 15:41:04 +00:00
ulan@chromium.org
16e089367b Visit stored context when iterating stack for optimized stub.
BUG=v8:2509
TEST=mjsunit/regress/regress-1125,NavierStokes fails on Nexus 10.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 14:24:16 +00:00
mstarzinger@chromium.org
7d681e014d Compile FastCloneShallowObjectStub using Crankshaft.
This changes FastCloneShallowObjectStub to be compiled independent of
the target architecture. It also adds tracing to the deoptimizer for
compiled stubs and contains some minor bugfixes.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 13:08:08 +00:00
yurys@chromium.org
d394f31d72 Use boolean instead of Atomic32 for is_profiling_ flag
The field is only accessed on the JS thread so it can be converted into bool.

BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 12:27:55 +00:00
dcarney@chromium.org
52a015b1af Fix overflow in WriteQuoteJsonString and SlowQuoteJsonString
R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13730 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 11:02:39 +00:00
yangguo@chromium.org
95c5e68714 Fix bogus regexp test.
The reason this test fails on ARM hardware but not on Intel hardware
(including the ARM simulator) is this:
'\xa0' is interpreted as a negative signed byte number. Casting it to
uc16 sign-extends it. The resulting string does not fit into a one-byte
string, thus a two-byte string is allocated.
For some reason the code compiled for ARM does not sign-extend, and 0xa0
fits into a one-byte string. Thus a one-byte string is allocated. Trying
to cast it to two-byte causes assertion failure.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13729 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 10:49:59 +00:00
mstarzinger@chromium.org
ce1e10f5fc Make __proto__ a foreign callback on Object.prototype.
This moves the __proto__ property to Object.prototype and turns it into
a callback property actually present in the descriptor array as opposed
to a hack in the properties lookup. For now it still is a "magic" data
property using foreign callbacks and not an accessor property visible to
JavaScript.

The second effect of this change is that JSON.parse() no longer treats
the __proto__ property specially, it will be defined as any other data
property. Note that object literals still have their special handling.

R=rossberg@chromium.org
BUG=v8:621,v8:1949,v8:2441
TEST=mjsunit,cctest,test262

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 10:46:00 +00:00
yangguo@chromium.org
72b802f27a Refactor RegExpStub to check lazily.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 09:53:07 +00:00
adamk@chromium.org
8f407c7b99 Move extensibility check to the top of Object.isFrozen/Object.isSealed
This speeds up isFrozen/isSealed checks on "normal" objects without
slowing down checks on frozen/sealed objects.

Though this ordering is not what ES5 specifies, the difference is not
observable (especially since the code bails out if the passed-in object
is a proxy).

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 19:44:21 +00:00
adamk@chromium.org
30a4a798e5 Speed up non-interceptor case of Object.getOwnPropertyNames
When there are interceptors on an object, it's possible to
end up with duplicate property names. But when all the names
are provided by v8, a collision is not possible, so we can
fast-path that case by not de-duping.

Also added better test coverage for interceptor API.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 18:58:47 +00:00
ulan@chromium.org
cb5c8554c0 Debugger: ScopeMirror has N^2 algorithm when building closure mirrors. (take 2).
Review URL: https://chromiumcodereview.appspot.com/12326103
Patch from Pavel Feldman <pfeldman@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13724 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 16:46:54 +00:00
jkummerow@chromium.org
8336fd2d3a MIPS: Add android build support for mips in gyp.
Added mipsel target in gyp and makefiles used for android build.

BUG=

Review URL: https://codereview.chromium.org/12248014
Patch from Paul Lind <plind44@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 16:39:03 +00:00
ulan@chromium.org
9ebcfb41e2 ARM: Make DoStoreKeyedFixedDoubleArray faster; don't allow conditional Vmov
This patch makes us generate faster code for DoStoreKeyedFixedDoubleArray,
by using a branch rather than a conditional Vmov instruction.

Conditional VFP instructions are not a great idea in general, and it was
especially bad in this case because Vmov expands to a bunch of instructions.
For this reason, the patch also removes the 'cond' parameter from Vmov.

Thanks to Rodolph for pointing me to this!

BUG=none

Review URL: https://chromiumcodereview.appspot.com/12316096
Patch from Hans Wennborg <hans@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 16:15:37 +00:00
loislo@chromium.org
34c372d800 Fix for HeapSnapshotAddressReuse test case.
BUG=V8:2189
TEST=HeapSnapshotAddressReuse

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 16:09:57 +00:00
ulan@chromium.org
d01fced78d Prepare push to trunk. Now working on version 3.17.5.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 15:47:52 +00:00
svenpanne@chromium.org
fb6776e84a Made Isolate a mandatory parameter for everything Handle-related.
Unified parameter order of CreateHandle with the rest of v8 on the way. A few
Isolate::Current()s had to be introduced, which is not nice, and not every place
will win a beauty contest, but we can clean this up later easily in smaller steps.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 14:46:09 +00:00
danno@chromium.org
cbe088fffc Fix bugs in generating and printing of Crankshaft stubs
Review URL: https://codereview.chromium.org/12317044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 14:03:09 +00:00
ulan@chromium.org
7dd0b1ca77 Zap holes in dependent code array after deoptimizing a code group.
BUG=crash on GC stress builder

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 12:27:28 +00:00
ulan@chromium.org
82a7ce63dc Revert r13699 "Debugger: ScopeMirror has N^2 algorithm when building closure mirrors." because of WebKit crashes.
BUG=v8:2554
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 11:56:37 +00:00
ulan@chromium.org
5c7bff3ed8 Prepare push to trunk. Now working on version 3.17.4.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 14:04:19 +00:00
svenpanne@chromium.org
54b4b1ecc2 Forced inlining of some GC-related methods.
The selection of methods were driven by GCC's -Winline plus some benchmarking.
On ia32, the additional amount of code is roughly 63kB (= 0.07% of Chrome ;-).

BUG=v8:1607

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 14:02:52 +00:00
loislo@chromium.org
4c72bb7508 Heap snapshot doesn't detect the fact that an old object was overriden by new one.
It is a test only patch. I have no solution yet.

BUG=V8:2189
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 13:16:17 +00:00
hpayer@chromium.org
ab3114df68 Release evacuation candidates after parallel sweeper threads completed.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 13:12:12 +00:00
yangguo@chromium.org
a9539ff51f Fix windows build warnings.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 12:17:48 +00:00
loislo@chromium.org
ea0817c7d4 Split profile-generator
CPU profile code and Heap Snapshot code are completely unrelated to each other.
So we can extract heap snapshot part into separate file.
No functional changes.

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 12:10:40 +00:00
yangguo@chromium.org
0d63cef35b Constant fold math and string operations.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 11:40:37 +00:00
jkummerow@chromium.org
e93011892e Avoid creating unnecessary branches in Hydrogen
Review URL: https://codereview.chromium.org/12281019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 11:29:51 +00:00
mmassi@chromium.org
8ef28eb5ee Fixed numeric relations on HPhi instances.
Review URL: https://codereview.chromium.org/12301027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 10:22:31 +00:00
yangguo@chromium.org
af5eed104c Handlify escape and unescape.
R=mvstanton@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 09:49:23 +00:00
mmassi@chromium.org
0832d08dd9 Also check if the length ia a smi in a HBoundsCheck.
Review URL: https://codereview.chromium.org/12301026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 09:09:01 +00:00
yangguo@chromium.org
215ba8cfc9 Combine %_SubString and %_StringCharAt.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-20 14:29:40 +00:00
yangguo@chromium.org
b62de7c04e Debugger: ScopeMirror has N^2 algorithm when building closure mirrors.
R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/12326009
Patch from Pavel Feldman <pfeldman@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-20 14:12:31 +00:00
mstarzinger@chromium.org
b5a64451b1 Ensure deopt entries have no relocation information.
R=ulan@chromium.org
BUG=chromium:176943

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-20 13:12:26 +00:00
ulan@chromium.org
3a1eca4242 Remove prototype checks for leaf maps in optimized code.
Review URL: https://chromiumcodereview.appspot.com/12225099

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-20 11:49:54 +00:00
mmassi@chromium.org
bb886feb20 Remove purely informative definitions from the graph.
Review URL: https://codereview.chromium.org/12282033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 16:32:02 +00:00
jkummerow@chromium.org
c6e670928d MIPS: Fix mips gyp build for chromium.
Our planned CL for the Chromium build system passes the toolchain
vars though the Makefiles, so that we do not depend on $CXX, etc.,
in the environment.

That causes a problem with deriving the 'm32flag' in v8 gyp.

This patch lets us build with or without the toolchain vars in
the environment.

BUG=

Review URL: https://codereview.chromium.org/12218113
Patch from Paul Lind <plind44@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 15:22:12 +00:00
mmassi@chromium.org
20913187c0 Fix HCheckSmiOrInt32 fake observed representation.
Review URL: https://codereview.chromium.org/12259008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 14:24:25 +00:00
yangguo@chromium.org
147ab36303 Prepare push to trunk. Now working on version 3.17.3.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 13:54:30 +00:00
ulan@chromium.org
61bb1b78d3 Remove bogus check for TOP register in deoptimizer.
R=danno@chromium.org
BUG=176943

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13690 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 12:37:19 +00:00
hpayer@chromium.org
86ce9a910e Precise GC time measurements.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 11:59:48 +00:00
mstarzinger@chromium.org
fa94a23ea8 Cleanup code-stub interface descriptor initialization.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 09:42:00 +00:00
mstarzinger@chromium.org
f31a50dc10 Update grokdump to reflect current heap layout.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 09:01:25 +00:00
danno@chromium.org
be8e8f7528 Improve the JitCodeEventHandler API to add support for line position information.
This includes:

* adding the CODE_ADD_LINE_POS_INFO, CODE_START_LINE_INFO_RECORDING, CODE_END_LINE_INFO_RECORDING event and the corresponding functionality.
 * adding the JITCodeLineInfo struct to record the code line info. I added this definition because Danno mentioned that "we'd like to cleanup and decouple the external debugging functionality"
 * some other small changes.

Review URL: https://chromiumcodereview.appspot.com/12223027
Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-18 18:06:12 +00:00
palfia@homejinni.com
261def53c4 MIPS: Split AccessorInfo into DeclaredAccessorInfo and ExecutableAccessorInfo
Port r13649 (0a9e0bf0)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-18 17:08:19 +00:00
yangguo@chromium.org
488b19701a Fix bogus assertion.
R=dcarney@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-18 13:01:00 +00:00
yangguo@chromium.org
77bc99c0b1 Fix bogus assertion.
R=dcarney@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-18 12:22:04 +00:00