kmillikin@chromium.org [Fri, 29 Jan 2010 09:52:51 +0000 (09:52 +0000)]
Propagate receiver from initial call site to code generator.
When doing lazy compilation of methods, allow the code generator to know the
(initial) receiver at the (initial) call site.
Review URL: http://codereview.chromium.org/551189
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3739
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 29 Jan 2010 09:42:13 +0000 (09:42 +0000)]
Add a pass for the fast compiler to label expression nodes.
This change adds a post-order numbering to AST nodes that
are relevant for the fast code generator. It is only invoked
together with the fast compiler.
Also changed the ast printer to print the numbering for
testing purposes if it is present.
Review URL: http://codereview.chromium.org/553134
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3738
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 28 Jan 2010 14:01:14 +0000 (14:01 +0000)]
Remove some unneeded restorations of a register in StoreIC.
Review URL: http://codereview.chromium.org/548181
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3737
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 28 Jan 2010 13:05:29 +0000 (13:05 +0000)]
Remove unsafe and unneeded logging during deserialization.
Review URL: http://codereview.chromium.org/558018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3736
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Thu, 28 Jan 2010 12:45:14 +0000 (12:45 +0000)]
Use registers to pass arguments to GenericBinaryOpStub (x64).
This is a port to x64 of the following CLs:
http://codereview.chromium.org/554062 (use registers at all)
http://codereview.chromium.org/555098 (use registers for MUL, DIV and virtual frames)
http://codereview.chromium.org/556019 (optimize register order)
Review URL: http://codereview.chromium.org/555147
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3735
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 28 Jan 2010 12:41:27 +0000 (12:41 +0000)]
Move a line, in codegen-*.cc. Make formatting of ic-*.cc uniform.
Review URL: http://codereview.chromium.org/552210
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3734
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 28 Jan 2010 10:46:58 +0000 (10:46 +0000)]
Fix typo.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/554114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3731
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Thu, 28 Jan 2010 09:08:01 +0000 (09:08 +0000)]
Add missing break.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/548178
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3730
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Thu, 28 Jan 2010 08:46:56 +0000 (08:46 +0000)]
Strengthen a few assertions and add zapping of allocated
memory blocks filling them out with recognizable non-zero
bit pattern in debug mode.
Review URL: http://codereview.chromium.org/558016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3729
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 28 Jan 2010 08:41:31 +0000 (08:41 +0000)]
Updage Visual Studio project files
Add the new files for the fast compiler.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/557034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3728
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 28 Jan 2010 08:15:00 +0000 (08:15 +0000)]
Implement SUB and BIT_NOT unary operations in full codegenerator.
This change depends on landing the BIT_NOT unary op stub on arm. That
change is out for review.
Review URL: http://codereview.chromium.org/557016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3727
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 28 Jan 2010 08:14:19 +0000 (08:14 +0000)]
Port bit not unary op stub to ARM.
Review URL: http://codereview.chromium.org/552188
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3726
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 27 Jan 2010 20:14:46 +0000 (20:14 +0000)]
Make sure to initialize all fields in the special maps
created during bootstrapping. Without this change we
risk having weird flags set on the map for the null
value (among others), which can lead to crashes.
Review URL: http://codereview.chromium.org/552195
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3725
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 27 Jan 2010 17:21:48 +0000 (17:21 +0000)]
Rename flags in unit tests to match the new flag definitions.
TBR=kmillikin@chromium.org,
Review URL: http://codereview.chromium.org/555132
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3724
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
leonclarke@gmail.com [Wed, 27 Jan 2010 17:10:28 +0000 (17:10 +0000)]
Get it to compile when ENABLE_LOGGING_AND_PROFILING isn't defined.
I think it currently is defined on all platforms except Android.
Review URL: http://codereview.chromium.org/554101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3723
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 27 Jan 2010 16:18:58 +0000 (16:18 +0000)]
Fix 64-bit build on Windows and Visual Studio project files
64-bit version now builds on Windows again in both release and debug mode.
The Visual Studio project files have been updated so that all three configurations work (32-bit, 64-bit and 32-bit with ARM simulator). They all convert from Visual Studio 2005 to Visual Studio 2008.
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/549174
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3722
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 27 Jan 2010 15:23:48 +0000 (15:23 +0000)]
Refactor the selection of code generator and add the possibility of a
simpler backend for non-toplevel code.
Review URL: http://codereview.chromium.org/549158
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3721
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 27 Jan 2010 14:07:12 +0000 (14:07 +0000)]
Refactor Reference so that SetValue and GetValue pop the reference state.
Review URL: http://codereview.chromium.org/487017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3720
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 27 Jan 2010 13:53:19 +0000 (13:53 +0000)]
Changed JSObject::DefineGetterSetter to also set the right attributes
when an existing accessor is redefined (a configurable accessor can
potentially be redefined as a non-configurable (i.e., DONT_DELETE)).
Review URL: http://codereview.chromium.org/556040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3719
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 27 Jan 2010 13:51:04 +0000 (13:51 +0000)]
Set iIsExtensible to true as default in the map.
Review URL: http://codereview.chromium.org/556041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3718
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 27 Jan 2010 13:34:29 +0000 (13:34 +0000)]
Port code to load an integer directly from a heap number from ia32 to x64.
For now, this is a direct port from ia32, so there is probably still
stuff that can be improved here.
Review URL: http://codereview.chromium.org/555131
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3717
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 27 Jan 2010 12:14:26 +0000 (12:14 +0000)]
Enable references and assignments to lookup slots in the toplevel code
generator.
Review URL: http://codereview.chromium.org/553116
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3716
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 27 Jan 2010 12:13:32 +0000 (12:13 +0000)]
Move heap numbers directly to VFP3 registers in comparison stub.
Review URL: http://codereview.chromium.org/556020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3715
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 27 Jan 2010 11:08:32 +0000 (11:08 +0000)]
Add counters for the different code generators.
Review URL: http://codereview.chromium.org/552184
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3714
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 27 Jan 2010 08:25:48 +0000 (08:25 +0000)]
Another step on the way to context snapshots. We can now refer to
objects in the startup heap from a partial snapshot. This happens
through the partial snapshot cache. A startup snapshot and a
partial snapshot are created together so that the startup snapshot
contains the partial snapshot cache entries needed.
Review URL: http://codereview.chromium.org/548149
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3713
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 26 Jan 2010 14:43:40 +0000 (14:43 +0000)]
Refactoring and small optimization of the smi code for binary op stubs
on ia32.
1. Operate on the values in edx,eax when possible (all operations
except DIV and MOD). This saves moving them on entry and when falling
out to the non-smi code.
2. Do not perform ADD and SUB before the smi check of their inputs.
This saves undoing the operation in the case that we fall through to
the non-smi case due to non-smi inputs (probably common?), and we can
avoid emitting the smi check code twice (code size reduction).
3. Don't perform OR twice (once to smi check the inputs and once to
smi check the result).
Review URL: http://codereview.chromium.org/556019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3712
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 26 Jan 2010 13:57:11 +0000 (13:57 +0000)]
Implement unary addition in the full (non-optimizing) code generator.
Review URL: http://codereview.chromium.org/555099
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3711
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 26 Jan 2010 11:45:53 +0000 (11:45 +0000)]
Alow long running test to time out on ARM
This test have been timing out on ARM hardware from time to time.
Review URL: http://codereview.chromium.org/543206
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3710
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 26 Jan 2010 11:08:42 +0000 (11:08 +0000)]
Don't pass the "at start" parameter to native RegExp
As the start index is already passed it is easy to calculate the "at start" boolean in generated code. Also as direct entry has been implemented this needs to be done in generated code anyway, and therefore might as well be moved to the generated code for RegExp. The "at start" value is now calcualted as a local variable on the native RegExp frame based on the value of the start index argument.
The x64 version have been tested on both Linux and 64-bit Windows Vista.
For ARM I have tested cctest/test-regexp on ARM hardware, but the rest of the tests have only been run on the ARM simulator.
Review URL: http://codereview.chromium.org/554078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3709
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Tue, 26 Jan 2010 10:27:27 +0000 (10:27 +0000)]
Support register arguments in more cases.
1. MUL and DIV on SMIs.
2. When calling GenericBinaryOpStub from a virtual frame.
3. When generating code for a loop counter.
Overall performance gain is about 0.6%.
Review URL: http://codereview.chromium.org/555098
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3708
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 26 Jan 2010 10:03:44 +0000 (10:03 +0000)]
Increase young generation size on Android.
Review URL: http://codereview.chromium.org/556018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3705
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 26 Jan 2010 09:31:40 +0000 (09:31 +0000)]
Load HeapNumbers directly into floating-point registers in BinaryOpSlowCase.
Review URL: http://codereview.chromium.org/549147
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3703
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 26 Jan 2010 08:44:50 +0000 (08:44 +0000)]
Fix building on 64-bit Windows
Review URL: http://codereview.chromium.org/546147
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3700
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 25 Jan 2010 22:53:18 +0000 (22:53 +0000)]
Merge ObjectIterator::has_next and ObjectIterator::next methods.
This reduces chances of improper usage, see http://code.google.com/p/v8/issues/detail?id=586
for more details.
BUG=586
Review URL: http://codereview.chromium.org/555072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3696
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Mon, 25 Jan 2010 17:47:53 +0000 (17:47 +0000)]
Fixing style issues in codegen-ia32.*
See Kevin's comments for http://codereview.chromium.org/554062.
Review URL: http://codereview.chromium.org/543193
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3695
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Mon, 25 Jan 2010 17:03:34 +0000 (17:03 +0000)]
Fixing an assertion fail introduced in 3692.
Also fixing some formatting issues.
Review URL: http://codereview.chromium.org/556002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3694
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 25 Jan 2010 16:48:53 +0000 (16:48 +0000)]
Actually land the platform-solaris.cc file for solaris support.
Review URL: http://codereview.chromium.org/545125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3693
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Mon, 25 Jan 2010 16:00:03 +0000 (16:00 +0000)]
Use registers to pass arguments to GenericBinaryOpStub.
Currently arguments are never passed on registers (due to the way ArgsInRegistersSupported is written) and
if they were, the stub would break in several places because registers are not preserved properly in the
course of execution. This CL makes use of registers more often (than never) and makes sure that registers are
handler properly.
A peformance gain is small (0.2-0.3%) but stable.
This CL was extracted from the one sent out earlier (http://codereview.chromium.org/551093).
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3692
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 25 Jan 2010 15:17:58 +0000 (15:17 +0000)]
Make ARM assembler VFP3 test pass on machines without VFP3 floating point hardware.
Review URL: http://codereview.chromium.org/543187
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3691
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 25 Jan 2010 12:56:49 +0000 (12:56 +0000)]
Fix bug in character-set merging. Add test case.
See Chromium bug 32637.
Review URL: http://codereview.chromium.org/553067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3689
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 25 Jan 2010 12:37:31 +0000 (12:37 +0000)]
Land patch to add Solaris platform support.
Patch by Erich Ocean and Ryan Dahl.
Review URL: http://codereview.chromium.org/545125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3688
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 25 Jan 2010 11:54:10 +0000 (11:54 +0000)]
Add vstr and vldr floating point load and store to ARM assembler, disassembler, and simulator.
Review URL: http://codereview.chromium.org/545155
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3687
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 25 Jan 2010 08:55:08 +0000 (08:55 +0000)]
Ported SubStringStub to X64.
Review URL: http://codereview.chromium.org/555049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3683
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 25 Jan 2010 08:28:39 +0000 (08:28 +0000)]
Change the candidate version on bleeding_edge from 2.0.7 to
2.1.0. This means that the next version pushed to trunk will
be the first version in the 2.1.x series.
Review URL: http://codereview.chromium.org/551139
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3682
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 22 Jan 2010 14:07:25 +0000 (14:07 +0000)]
Inline smi code in count operations in the full code generator.
We now test for a smi before calling ToNumber and inline
the smi increment/decrement for ++ and --. There only a small
increase in code size but loops in top-level code are
becoming much faster as a result.
Review URL: http://codereview.chromium.org/553056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3681
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 22 Jan 2010 13:56:12 +0000 (13:56 +0000)]
Make KeyedLoadIC::generic_stub go into slow case if receiver has an indexed interceptor.
BUG=589,27967.
Review URL: http://codereview.chromium.org/555048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3680
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 22 Jan 2010 09:42:24 +0000 (09:42 +0000)]
A follow-up to fix 553: really report function object moves.
As an afterthought, I realized that I put function objects moves
reporting into a method that deals with only code object moves. I've
looked up that function objects are allocated in old pointer space and
new space, so I moved logging to the corresponding VM methods.
BUG=553
Review URL: http://codereview.chromium.org/552089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3679
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 22 Jan 2010 08:31:33 +0000 (08:31 +0000)]
Add support for two byte strings in direct call to RegExp
The stub for calling RegExp directly now also handles two byte strings.
Support for flat cons strings added for both ascii and two byte.
Some code code simplifications and added a few constants.
Review URL: http://codereview.chromium.org/545151
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3678
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Thu, 21 Jan 2010 19:28:13 +0000 (19:28 +0000)]
Fix lint errors
Review URL: http://codereview.chromium.org/543154
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3676
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Thu, 21 Jan 2010 17:41:17 +0000 (17:41 +0000)]
Fix disable_break parameter
Review URL: http://codereview.chromium.org/552068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3675
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Thu, 21 Jan 2010 17:37:28 +0000 (17:37 +0000)]
Fix EVEN number of bugs in already passing test
Review URL: http://codereview.chromium.org/552043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3674
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 21 Jan 2010 16:42:41 +0000 (16:42 +0000)]
Fix issue 553: function frame is skipped in profile when compare stub is called.
The problem appeared due to a fact that stubs doesn't create a stack
frame, reusing the stack frame of the caller function. When building
stack traces, the current function is retrieved from PC, and its
callees are retrieved by traversing the stack backwards. Thus, for
stubs, the stub itself was discovered via PC, and then stub's caller's
caller was retrieved from stack.
To fix this problem, a pointer to JSFunction object is now captured
from the topmost stack frame, and is saved into stack trace log
record. Then a simple heuristics is applied whether a referred
function should be added to decoded stack, or not, to avoid reporting
the same function twice (from PC and from the pointer.)
BUG=553
TEST=added to mjsunit/tools/tickprocessor
Review URL: http://codereview.chromium.org/546089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3673
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 21 Jan 2010 14:22:28 +0000 (14:22 +0000)]
Fix map compact implementation.
Always invoke HeapObjectIterator::has_next() before invoking HeapObjectIterator::next().
This is necessary as ::has_next() has an important side-effect of going to the next
page when current page is exhausted.
And to find if pointers are encodable use more precise data---top of map space, not a number
of pages, as pages might stay in map space due to chunking.
Review URL: http://codereview.chromium.org/552066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3672
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 21 Jan 2010 13:59:15 +0000 (13:59 +0000)]
Fix Android build.
Review URL: http://codereview.chromium.org/545153
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3671
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 21 Jan 2010 12:10:56 +0000 (12:10 +0000)]
Implement inline string compare on ARM.
Backport optimizations from x64 version to ia32.
Review URL: http://codereview.chromium.org/546087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3670
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 21 Jan 2010 11:28:11 +0000 (11:28 +0000)]
Revert previous change that activated the full (non-optimizing)
compiler for all code.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3669
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 21 Jan 2010 11:15:02 +0000 (11:15 +0000)]
Enable full (non-optimizing) compiler for testing purposes.
I will revert when the bots have picked this one up.
Review URL: http://codereview.chromium.org/549118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3668
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 21 Jan 2010 08:31:16 +0000 (08:31 +0000)]
Add the for statement back into the set of things the
non-optimizing compiler can cope with. By default it bails out
to the old compiler on encountering a for loop (for performance)
but with this change the --always-fast-compiler flag will enable
functions with for loops to be compiled in the non-optimizing
compiler. Also enables the non-optimizing compiler on functions
that can be lazily compiled (again only with the flag).
Review URL: http://codereview.chromium.org/552065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3667
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Wed, 20 Jan 2010 18:27:44 +0000 (18:27 +0000)]
Fix lint error with strtol in test
Review URL: http://codereview.chromium.org/549111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3666
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Wed, 20 Jan 2010 17:06:23 +0000 (17:06 +0000)]
Don't mention obsolete Issue 548
Review URL: http://codereview.chromium.org/543121
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3665
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 20 Jan 2010 17:01:34 +0000 (17:01 +0000)]
Fix V8 issue 580: Arithmetic on some integer constants gives wrong anwers.
Review URL: http://codereview.chromium.org/545134
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3664
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Wed, 20 Jan 2010 16:56:49 +0000 (16:56 +0000)]
Support backtrace debug command when stack is empty
Review URL: http://codereview.chromium.org/536089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3663
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 20 Jan 2010 16:28:21 +0000 (16:28 +0000)]
Rename the fast-codegen* files to full-codegen*.
Review URL: http://codereview.chromium.org/549109
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3662
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 20 Jan 2010 16:13:53 +0000 (16:13 +0000)]
Refactor GenericBinaryOperation and its helper functions to always return a Result.
This is a preparation step for including number type information
in the virtual frame. We need a common place where we can update
the number type information of the result of a binary operation
since we should not modify the state of the virtual frame elements
directly.
Review URL: http://codereview.chromium.org/551080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3661
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 20 Jan 2010 15:51:03 +0000 (15:51 +0000)]
Rename the toplevel code generator from "Fast" to "Full". It was
always ambiguous whether it tried to generate fast code, or generate
it quickly.
Review URL: http://codereview.chromium.org/549108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3660
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 20 Jan 2010 14:43:12 +0000 (14:43 +0000)]
Fix issue 582: preserve construct stub on first allocation in case we can't optimize it.
BUG=582
TEST=cctest/test-api/NativeFunctionConstructCall
Review URL: http://codereview.chromium.org/546088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3659
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 20 Jan 2010 09:55:32 +0000 (09:55 +0000)]
Add the unary operators ADD and SUB to the code generator selector.
Review URL: http://codereview.chromium.org/548069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3658
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 19 Jan 2010 23:03:37 +0000 (23:03 +0000)]
Temporary disable map compact functionality.
TBD=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/543120
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3657
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Tue, 19 Jan 2010 18:36:51 +0000 (18:36 +0000)]
Fix lineprocessor: compilation
Review URL: http://codereview.chromium.org/549086
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3656
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 19 Jan 2010 16:34:37 +0000 (16:34 +0000)]
A simple test for map compact.
Review URL: http://codereview.chromium.org/543113
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3655
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Tue, 19 Jan 2010 15:40:42 +0000 (15:40 +0000)]
Re-Fix DebugEvaluateWithoutStack test on Windows
Review URL: http://codereview.chromium.org/545118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3654
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Tue, 19 Jan 2010 15:12:43 +0000 (15:12 +0000)]
Fix DebugEvaluateWithoutStack test on Windows
Review URL: http://codereview.chromium.org/543115
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3653
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 19 Jan 2010 14:17:34 +0000 (14:17 +0000)]
Add conditional counter update to IA-32
Review URL: http://codereview.chromium.org/554001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3652
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 19 Jan 2010 14:15:47 +0000 (14:15 +0000)]
Fix some usage of "this" in builtins
The implementation of Object.prototype.valueOf and Object.prototype.toString now calls ToObject on "this" as mandated by the spec.
Review URL: http://codereview.chromium.org/542112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3651
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 19 Jan 2010 13:26:40 +0000 (13:26 +0000)]
Make tests pass.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/543114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3648
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 19 Jan 2010 13:15:52 +0000 (13:15 +0000)]
Fix a build.
Some tests still fail.
TBR=ager@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3647
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 19 Jan 2010 12:56:36 +0000 (12:56 +0000)]
Added Extensible property to objects and made methods for extracting and setting it.
Also added one method to runtime to get the extensible value
Additionally, added a check on the number of arguments in the start of GetOwnProperty.
Review URL: http://codereview.chromium.org/545116
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3646
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 19 Jan 2010 12:41:02 +0000 (12:41 +0000)]
First step of refactoring expression contexts in the toplevel code
generator.
Contexts are no longer stored in the AST but in the code generator's
state. This means that the running the code generator selector is not
required to use the toplevel code generator (for instance, if we
already know that we can and should use it).
Review URL: http://codereview.chromium.org/546075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3645
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 19 Jan 2010 12:27:04 +0000 (12:27 +0000)]
X64: Fix bug that reads from rax instead of correct register.
Crashes if rax doesn't point to readable memory.
Recent change made rax contain garbage due to write-barrier computation.
(The fact that it hasn't crashed before highly suggests that the line does nothing.)
Review URL: http://codereview.chromium.org/545117
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3644
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 19 Jan 2010 10:32:20 +0000 (10:32 +0000)]
Fixed issue 582: set the right construct stub for native functions.
TEST=cctest/test-api/NativeFunctionConstructCall
BUG=582
Review URL: http://codereview.chromium.org/551063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3643
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 19 Jan 2010 08:23:29 +0000 (08:23 +0000)]
Added ES5 conform tests for getOwnPropertyNames.
Most of the test cases fail as the different objects according to the tests
can not have additional properties attached to them. I will file a bug report
on the es5 conform site as they should allow this. Some of the test fails
because we still miss some of the es5 features used.
Review URL: http://codereview.chromium.org/545109
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3642
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 19 Jan 2010 08:03:26 +0000 (08:03 +0000)]
Fix Windows build by using OS::StrNCpy.
Fix lint issue in lineprocessor.cc.
TBR=peter.rybin
Review URL: http://codereview.chromium.org/549081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3641
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 18 Jan 2010 23:18:09 +0000 (23:18 +0000)]
Add missing break in continue.
TBR=fschneider@chromium.org
Review URL: http://codereview.chromium.org/542107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3640
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Mon, 18 Jan 2010 19:14:27 +0000 (19:14 +0000)]
Add another test on debug global evaluate
Review URL: http://codereview.chromium.org/553009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3639
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 18 Jan 2010 16:56:17 +0000 (16:56 +0000)]
Fix test-serialize.
Sorry for a breakage...
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/536090
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3638
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Mon, 18 Jan 2010 16:45:13 +0000 (16:45 +0000)]
Add "lineprocessor" sample program
Review URL: http://codereview.chromium.org/491006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3637
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 18 Jan 2010 16:23:24 +0000 (16:23 +0000)]
Fix a bug in the short-circuit logical operations in the toplevel
code generator.
Review URL: http://codereview.chromium.org/542105
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3636
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 18 Jan 2010 16:04:25 +0000 (16:04 +0000)]
Fix issue 571: display descriptive names for code objects from snapshot.
As this is only needed for internal profiling (not for DevTools),
the following approach had been chosen:
- during snapshot creation, positions of serialized objects inside
a snapshot are logged;
- then during V8 initialization, positions of deserealized objects
are logged;
- those positions are used for retrieving code objects names from
snapshot creation log, which needs to be supplied to tick processor
script.
Positions logging is controlled with the new flag: --log_snapshot_positions.
This flag is turned off by default, and this adds no startup penalty.
To plug this fix to Golem, the following actions are needed:
- logs created using 'mksnapshot' need to be stored along with VM images;
- tick processor script needs to be run with '--snapshot-log=...' cmdline
argument.
BUG=571
Review URL: http://codereview.chromium.org/551062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3635
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Mon, 18 Jan 2010 15:48:41 +0000 (15:48 +0000)]
Implement issue 549 Make V8 call DebugMessageDispatchHandler with Locker locked
Review URL: http://codereview.chromium.org/505025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3634
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 18 Jan 2010 14:13:58 +0000 (14:13 +0000)]
Fix GC bug
The patching of the receiver added in r3616 was not GC-safe and could leave a failure object in place of the receiver if allocation of the wrapper JS object failed.
Review URL: http://codereview.chromium.org/546068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3633
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 18 Jan 2010 14:11:37 +0000 (14:11 +0000)]
Trace command in ARM simulator debugger
The ARM simulator debugger now has a 'trace' command which is used to toggle the trace of executed instructions.
Review URL: http://codereview.chromium.org/548068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3632
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 18 Jan 2010 14:09:36 +0000 (14:09 +0000)]
Fix some of my earlier typos.
TBR=fschneider@chromium.org
Review URL: http://codereview.chromium.org/543106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3631
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 18 Jan 2010 14:04:55 +0000 (14:04 +0000)]
Introduce 'top-of-stack caching' to the toplevel code generator by
allowing the value of the rightmost subexpressions to be evaluated
into an accumulator register (eg, eax, rax, or r0) rather than onto
the stack.
Review URL: http://codereview.chromium.org/541047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3630
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 18 Jan 2010 13:17:38 +0000 (13:17 +0000)]
Lift filtering of the test higher as otherwise we can get
empty list of tests to run after the filtering and
would actually die with division by 0.
And there was a type (|c| instead of |case|) which is fixed too.
Review URL: http://codereview.chromium.org/545080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3629
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 18 Jan 2010 12:02:53 +0000 (12:02 +0000)]
Fix windows tests. In the context of fopen the opposite of 'b' for binary
is '' for ascii, not 'a' for ascii.
Review URL: http://codereview.chromium.org/542104
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3628
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 18 Jan 2010 11:22:03 +0000 (11:22 +0000)]
X64 implementation of native ascii string compare.
Review URL: http://codereview.chromium.org/545108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3627
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 18 Jan 2010 09:49:50 +0000 (09:49 +0000)]
RegExp bitmap test for word character.
Review URL: http://codereview.chromium.org/547024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3626
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 18 Jan 2010 08:36:06 +0000 (08:36 +0000)]
Small optimization of ARM compare stub. Reverse all references to
left and right sides of the comparison to reflect reality. Don't
check explicitly for NaNs when using VFP3 since the compare
operation can signal this case with the v flag. Use cmp instead
of tst in the fast compilers since tst leaves the v flag unchanged
and thus can only work by accident on non-equality comparisons.
Review URL: http://codereview.chromium.org/551048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3625
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Fri, 15 Jan 2010 22:40:57 +0000 (22:40 +0000)]
Make debugger unloading deferred operation
This CL should make debugger handler setting an asynchronous operation for real.
Review URL: http://codereview.chromium.org/548045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3624
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Fri, 15 Jan 2010 21:14:56 +0000 (21:14 +0000)]
Implement issue 554 Add "ProcessDebuggerRequests" call to Debug Agent API
Review URL: http://codereview.chromium.org/549057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3623
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00