ager@chromium.org [Thu, 11 Feb 2010 08:05:33 +0000 (08:05 +0000)]
Always load the JavaScript builtins code entry from the JavaScript
function instead of baking in the address of the first one that we see
in code.
This removes the need for fixups processing and makes the stubs safe
when there is no natives cache and therefore multiple versions of the
builtin functions.
Review URL: http://codereview.chromium.org/594009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3832
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 10 Feb 2010 17:50:16 +0000 (17:50 +0000)]
Report code stubs to OProfile.
Patch from Dineel D Sule <dsule@codeaurora.org>.
Original issue: http://codereview.chromium.org/600019
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/593038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3831
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 10 Feb 2010 15:06:08 +0000 (15:06 +0000)]
Change StoreIC interface on ARM platform
Review URL: http://codereview.chromium.org/554152
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3830
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 10 Feb 2010 14:44:15 +0000 (14:44 +0000)]
Refactor prototype setting code and expose SetPrototype to public V8 API.
Review URL: http://codereview.chromium.org/598020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3829
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 10 Feb 2010 13:46:15 +0000 (13:46 +0000)]
Harden global variable accesses in the fast code generator.
Explicitly check that global variables do not have accessors or
interceptors in the fast code generator syntax checker.
Review URL: http://codereview.chromium.org/595022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3828
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 10 Feb 2010 11:48:53 +0000 (11:48 +0000)]
Making lint happy.
Review URL: http://codereview.chromium.org/593014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3827
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 10 Feb 2010 09:18:55 +0000 (09:18 +0000)]
Restrict the syntax that we aggressively optimize.
Do not use the speculative compiler for functions with other than one
statement in the body, and do not use it if subexpressions can have
side effects. Bailing out to the beginning of the full code is not
sound if side effects have already occurred.
Add tests that would fail without the restrictions.
Review URL: http://codereview.chromium.org/598016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3826
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 9 Feb 2010 16:14:14 +0000 (16:14 +0000)]
ia32: Fuse map and type checks in call ICs for API functions.
This uses the fact that if a map stayed the same then the object
still passes the type check. A new builtin is added to handle the
API call in this case.
Review URL: http://codereview.chromium.org/573003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3825
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 9 Feb 2010 15:18:37 +0000 (15:18 +0000)]
Eliminate unused function KeyedStoreIC::GenerateExtendStorage, and unused parameter from StubCompiler::GenerateStoreField.
Review URL: http://codereview.chromium.org/575022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3824
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 9 Feb 2010 14:19:23 +0000 (14:19 +0000)]
Fix error introduced in version 3820. Add optimization suggested by the error.
Review URL: http://codereview.chromium.org/597006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3823
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 9 Feb 2010 13:44:43 +0000 (13:44 +0000)]
Initial implementation of fast path operation for bitwise OR.
Support a binary operation (bitwise OR) so long as it's not nested in
the left subexpression. This ensures that the expression stack never
has height greater than two and so can be kept fully in registers.
The bounded expression stack height and the absence of any side
effects on the fast path allows us to still bailout out to the very
beginning of the function if any of our fast-path checks fail.
Review URL: http://codereview.chromium.org/594008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3822
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 9 Feb 2010 13:10:32 +0000 (13:10 +0000)]
Ported ia32 optimization of revision 3487 to x64.
Review URL: http://codereview.chromium.org/597005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3821
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 9 Feb 2010 13:06:37 +0000 (13:06 +0000)]
Change GenerateLoadStringLength to have two scratch registers on all platforms. This is needed so that the LoadIC can pass the receiver in a register, and not have it overwritten, and also simplifies the code.
Review URL: http://codereview.chromium.org/596011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3820
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 9 Feb 2010 12:15:34 +0000 (12:15 +0000)]
Changed fuzzer to randomly remove half of the arguments when running
on functions that takes five or more arguments. Original version runs
for a long time when there is 5 arguments in a runtime function (45+
seconds). The fuzzer can be run with all arguments on all functions
regardless of the number of arguments by setting
RUN_WITH_ALL_ARGUMENT_ENTRIES to true in fuzz-natives.js
Review URL: http://codereview.chromium.org/598011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3819
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 9 Feb 2010 10:18:51 +0000 (10:18 +0000)]
Added helper functions for fixed register allocation.
Added helper functions to the fast code generator for temporary, ad hoc
fixed register allocation. Also inlined some helper functions that had only
one call site to simplify the code generator API for now.
Review URL: http://codereview.chromium.org/586002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3818
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 8 Feb 2010 16:08:26 +0000 (16:08 +0000)]
Eliminate *IC::Generate() function on all platforms.
Review URL: http://codereview.chromium.org/583008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3817
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 8 Feb 2010 14:33:34 +0000 (14:33 +0000)]
Eliminate unnecessary depencencies in some header files.
1. Eliminate unnecessary include of register-allocator-inl.h in frame-element.h.
2. Move functions register-allocator.h to the -inl.h file if they use other inline functions.
3. Add missing includes that resulted from the above changes.
Review URL: http://codereview.chromium.org/585009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3816
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 8 Feb 2010 14:00:50 +0000 (14:00 +0000)]
Optimize concat for one argument (two if you count 'this').
Review URL: http://codereview.chromium.org/584006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3815
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Mon, 8 Feb 2010 13:44:49 +0000 (13:44 +0000)]
Review URL: http://codereview.chromium.org/561049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3814
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 8 Feb 2010 08:55:01 +0000 (08:55 +0000)]
Fix tests after r3811.
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/574027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3813
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 8 Feb 2010 08:54:27 +0000 (08:54 +0000)]
Move class declaration of Comment from codegen-inl.h to codegen.h
-inl.h files should only contains small inline functions and
no class declarations. Implementation moved to codegen.cc since
it's not a performance critical class (only used in DEBUG mode).
Review URL: http://codereview.chromium.org/585004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3812
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 8 Feb 2010 08:15:18 +0000 (08:15 +0000)]
Profiler tick processor: exploit d8's readline to avoid reading
entire file prior to parsing it. This allows processing of huge
log files (over 200 MB.)
Review URL: http://codereview.chromium.org/574015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3811
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 5 Feb 2010 13:57:18 +0000 (13:57 +0000)]
Fast compiler: Load globals variables directly from property cells.
This is a first step towards loading globals directly from property cells instead
of going through a load IC.
This change supports only properties with the DontDelete attribute since
we are only able to bailout into the generic code generated by the secondary
code generator the beginning of a function. The resulting fast-case code is
specialized for a specific context. When invoked with a different global object,
it will always bailout to the secondary code.
When loading a property that does not exist at compile-time or a property
that is deleteable we still generate the generic load IC.
Review URL: http://codereview.chromium.org/565034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3808
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 5 Feb 2010 13:07:00 +0000 (13:07 +0000)]
Fix test failures in debug mode w/snapshots. It turns out that not
all stubs have valid major_keys, and this is OK. So I've added
a check to avoid termination in debug mode.
Review URL: http://codereview.chromium.org/572034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3807
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 5 Feb 2010 12:00:42 +0000 (12:00 +0000)]
ARM native string addition.
Review URL: http://codereview.chromium.org/571005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3806
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 5 Feb 2010 08:46:41 +0000 (08:46 +0000)]
ARMv7 ubfx support
Patch from Kun Zhang <zhangk@codeaurora.org>, see http://codereview.chromium.org/569015.
Review URL: http://codereview.chromium.org/573027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3804
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 5 Feb 2010 07:19:09 +0000 (07:19 +0000)]
Added checked convert of object to DefineOrRedefineAccessorProperty.
Review URL: http://codereview.chromium.org/570040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3803
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 4 Feb 2010 21:34:03 +0000 (21:34 +0000)]
Fix issue 597: builtins and stubs are missing in profiler log when using snapshots.
After this fix, profiles of non-snapshotted VMs are now equivalent to
profiles of snapshotted VMs (having that --log-snapshot-positions is used,
and mksnapshot's log is given to the tick processor script.)
BUG=597
Review URL: http://codereview.chromium.org/574005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3802
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 4 Feb 2010 21:32:02 +0000 (21:32 +0000)]
Fixed random style violations.
Review URL: http://codereview.chromium.org/574009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3801
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 4 Feb 2010 20:43:59 +0000 (20:43 +0000)]
Fixed another presubmit error
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/572011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3800
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 4 Feb 2010 20:36:58 +0000 (20:36 +0000)]
MIPS port initial commit
This is the first step in the MIPS port of V8. It adds assembler, disassembler and simulator for the MIPS32 architecture.
Contains stubbed out implementation of all the compiler/code generator infrastructure to make it all build.
Patch by Alexandre Rames from Sigma Designs Inc.
This is the landing of http://codereview.chromium.org/543161.
Review URL: http://codereview.chromium.org/561072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3799
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 4 Feb 2010 19:43:56 +0000 (19:43 +0000)]
Added extra tests to the DefineOrRedefineAccessorProperty and
DefineOrRedefineDataProperty to avoid invalid input.
Added tests to object-define-property.js to test that it does not crash
on invalid input.
Review URL: http://codereview.chromium.org/572005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3798
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 4 Feb 2010 15:35:42 +0000 (15:35 +0000)]
Apply r3795 to bleeding_edge.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/575004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3797
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 4 Feb 2010 15:21:05 +0000 (15:21 +0000)]
Fix presubmit errors.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/570024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3796
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 4 Feb 2010 11:28:03 +0000 (11:28 +0000)]
Added IsProperty() check to result in DefineOrRedefineAccessor - if no check
this causes the debug check to fails since type() asserts that the
lookup_type != NOT_FOUND. This does not change any functionality since we
explicitly checked if it was one of the three types that we need to delete.
Also changed defineProperties in v8natives to actually return the object
being defined (as specified by spec)
Review URL: http://codereview.chromium.org/572003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3794
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 4 Feb 2010 09:11:43 +0000 (09:11 +0000)]
ARM: Implement native substring copying.
Review URL: http://codereview.chromium.org/552186
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3793
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 3 Feb 2010 20:39:34 +0000 (20:39 +0000)]
Revert last change (temporarily using only the full compiler).
TBR=ager
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3791
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 3 Feb 2010 20:31:49 +0000 (20:31 +0000)]
Activate full compiler. This is a test which will be reverted.
TBR=ager
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3790
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 3 Feb 2010 16:12:55 +0000 (16:12 +0000)]
Incorporate the arguments to the code generator constructors and their
MakeCode functions in the CompilationInfo structure. This makes it
easier to add new arguments and makes all arguments uniformly
available to the various backends.
Review URL: http://codereview.chromium.org/566008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3789
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 3 Feb 2010 13:29:42 +0000 (13:29 +0000)]
Bad newline snuck in before commit.
Review URL: http://codereview.chromium.org/560032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3788
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 3 Feb 2010 13:17:39 +0000 (13:17 +0000)]
Updated JSON.stringify to newest version of ES5.
Review URL: http://codereview.chromium.org/562034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3787
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 3 Feb 2010 13:10:03 +0000 (13:10 +0000)]
Added Object.defineProperty + needed internal functionality:
DefineOwnProperty (changed to allow for redefinition of existing property)
SameValue
Extra info on propertydescriptor
GetProperty
HasProperty
Currently the DefineOrRedefineAccessorProperty deletes the existing
property on the object if it is a dataproperty (FIELD or NORMAL) and
adds a new one. This can potentially be optimized.
Review URL: http://codereview.chromium.org/555149
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3786
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
leonclarke@gmail.com [Wed, 3 Feb 2010 11:54:57 +0000 (11:54 +0000)]
DebugBreak shouldn't be used when ENABLE_DEBUGGER_SUPPORT isn't defined.
Review URL: http://codereview.chromium.org/568017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3784
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 3 Feb 2010 11:43:54 +0000 (11:43 +0000)]
Use MemOperand directly to load argv on arm.
Review URL: http://codereview.chromium.org/570003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3783
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 3 Feb 2010 09:15:58 +0000 (09:15 +0000)]
Prepare to push to trunk. We are now vorking on version 2.1.1.
Review URL: http://codereview.chromium.org/564033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3779
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 3 Feb 2010 08:33:19 +0000 (08:33 +0000)]
Fix build error on Win32, fix spelling of DebugerStatementStub.
Review URL: http://codereview.chromium.org/570001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3778
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 3 Feb 2010 07:58:47 +0000 (07:58 +0000)]
Use the virtual-frame based optimizing compiler for split-compilation
bailouts. For now the virtual-frame state at entry of a function is
hard-coded when using the virtual-frame based compiler as the
secondary compiler.
Setup frame pointer correctly on function entry on ARM in
fast-codegen-arm.
Review URL: http://codereview.chromium.org/569010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3776
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Tue, 2 Feb 2010 18:35:53 +0000 (18:35 +0000)]
Review URL: http://codereview.chromium.org/555164
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3775
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 2 Feb 2010 13:48:54 +0000 (13:48 +0000)]
Add missing access checks to Object.getOwnPropertyNames.
Makes webkit layout test: http/tests/security/cross-frame-access-enumeration.html fail.
Review URL: http://codereview.chromium.org/561019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3771
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 2 Feb 2010 13:40:53 +0000 (13:40 +0000)]
Remove explicit Result arguments to IC calls on ARM.
Review URL: http://codereview.chromium.org/568016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3769
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 2 Feb 2010 13:33:29 +0000 (13:33 +0000)]
Handle insertion order for simple constructors
When functions only have simple assignments of the form this.x = ... the object is created in generated code without actually calling the constructor. In this case the initial map for the function already contains the properties assigned in the constructor. The field descriptors in this initial map now has an enumeration index assigned to make property enumeration order the insertion order. The insertion order here is the order of the this.x assignments in the code.
BUG=http://crbug.com/3867
TEST=test/mjsunit/regress/regress-crbug-3867.js
Review URL: http://codereview.chromium.org/566016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3768
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 2 Feb 2010 11:36:37 +0000 (11:36 +0000)]
Remove some unused code on ARM
Review URL: http://codereview.chromium.org/563008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3767
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 2 Feb 2010 11:32:17 +0000 (11:32 +0000)]
Port caching of lookup followups for interceptors to ARM
Review URL: http://codereview.chromium.org/551191
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3766
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 2 Feb 2010 09:20:19 +0000 (09:20 +0000)]
Change StoreIC interface on x64 to pass receiver in rdx, not on stack.
Review URL: http://codereview.chromium.org/558069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3765
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 2 Feb 2010 09:14:22 +0000 (09:14 +0000)]
Fix a bug that Math.round() returns incorrect results for huge integers.
Review URL: http://codereview.chromium.org/567011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3764
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 2 Feb 2010 07:58:09 +0000 (07:58 +0000)]
Remember to update the write barrier when storing into
the context in the full compiler.
Clobber all input registers in the RecordWrite code
when the debug-code flag is set.
Review URL: http://codereview.chromium.org/569008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3761
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 1 Feb 2010 17:01:58 +0000 (17:01 +0000)]
Implement simple fast-path code for functions containing this property stores and global variables.
Code is specialized to the initial receiver.
Review URL: http://codereview.chromium.org/553149
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3760
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 1 Feb 2010 15:27:51 +0000 (15:27 +0000)]
Revert r3758.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3759
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 1 Feb 2010 15:16:26 +0000 (15:16 +0000)]
Temporarily allocate all function contexts in old space and
force the system to use the full compiler to momentarily get
better test coverage.
This change will be reverted once the unit tests have finished
running.
Review URL: http://codereview.chromium.org/552257
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3758
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 1 Feb 2010 13:20:43 +0000 (13:20 +0000)]
Avoid using RecordWrite with the context (esi, rsi, cp) as
one of the arguments since this may clobber the register.
Review URL: http://codereview.chromium.org/556101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3757
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 1 Feb 2010 13:07:53 +0000 (13:07 +0000)]
Allow the optimizing compiler to use an existing macro assembler.
This is the first towards using the optimizing compiler for split
compilation bailouts.
Review URL: http://codereview.chromium.org/557079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3756
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Mon, 1 Feb 2010 12:56:56 +0000 (12:56 +0000)]
Correctly set eval_from_shared value when new function is created by "new Function(...)". At the moment it's set to the native script where the Function is defined(v8natives.js) which doesn't make much sense for the user when he tries to debug his code. Moreover, it causes an exception in JSONProtocolSerializer.prototype.serialize_.
Related Chromium bug: http://crbug.com/29062
Review URL: http://codereview.chromium.org/551227
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3755
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 1 Feb 2010 11:07:41 +0000 (11:07 +0000)]
Remove StoreIC::Generate, and inline StoreIC::GenerateInitialize.
Review URL: http://codereview.chromium.org/558067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3754
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Mon, 1 Feb 2010 10:34:57 +0000 (10:34 +0000)]
Show user script source line that caused exception intead of a line in a native script. When an error is reported as one happened in a native script it's hard to track the original cause. See chromium issue: crbug.com/25305
Review URL: http://codereview.chromium.org/555170
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3753
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 1 Feb 2010 10:31:55 +0000 (10:31 +0000)]
Added validating JSON parser mode to parser.
Review URL: http://codereview.chromium.org/549207
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3752
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 1 Feb 2010 08:35:38 +0000 (08:35 +0000)]
StoreIC interface changed on ia32 to take receiver in edx, not on stack.
Review URL: http://codereview.chromium.org/555162
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3750
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 29 Jan 2010 18:01:46 +0000 (18:01 +0000)]
Fix stack overflow in cctest/test-api/Threadin2 after r3613.
r3613 started wrapping all builtins in extra call in debug mode so it
became easier to cause stack overflow especially in 64-bit build.
Review URL: http://codereview.chromium.org/546129
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3749
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 29 Jan 2010 15:29:33 +0000 (15:29 +0000)]
Add fast code generator visitor.
It does not yet emit code so there is a flag --print-ir to print the
AST as seen by the code generator.
Review URL: http://codereview.chromium.org/558042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3748
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 29 Jan 2010 13:32:32 +0000 (13:32 +0000)]
Rewrite CsvParser.parseLine to make it simpler and gain some performance improvement.
Review URL: http://codereview.chromium.org/548198
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3746
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Fri, 29 Jan 2010 12:41:11 +0000 (12:41 +0000)]
Removing redundant stub for runtime native calls.
Review URL: http://codereview.chromium.org/543207
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3745
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 29 Jan 2010 11:55:40 +0000 (11:55 +0000)]
Introduce a stack-allocated structure to encapsulate compile-time information.
Use it to hold the possible shared function info, the possible
receiver, and the compilation loop nesting depth. Remove loop nesting
from FunctionLiteral AST nodes.
Review URL: http://codereview.chromium.org/552232
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3744
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 29 Jan 2010 11:46:55 +0000 (11:46 +0000)]
RFC: Try to be much more careful with where we skip the write barrier by:
1. Avoid using SKIP_WRITE_BARRIER when we don't have to (smis).
2. Check and document the remaining uses of SKIP_WRITE_BARRIER.
3. Only allow GetWriteBarrierMode when in an AssertNoAllocation scope.
The only functional change should be in DeepCopyBoilerplate where we
no longer use the write barrier mode (because of allocations). I'm
running benchmarks to see if this has a measurable impact on performance.
Review URL: http://codereview.chromium.org/558041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3743
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 29 Jan 2010 11:34:37 +0000 (11:34 +0000)]
Fix debug build breakage from r3740
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/555161
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3742
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 29 Jan 2010 10:56:26 +0000 (10:56 +0000)]
Change to src/x64/assembler-x64.h missing from r3740
TBR=lrn@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3741
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 29 Jan 2010 10:33:27 +0000 (10:33 +0000)]
Port direct call from JavaScript to native RegExp to x64
Code tested on both Linux and Windows.
Added a bit more abstraction to calling a C function from generated code.
Minor tweaks to the ia32 version.
Review URL: http://codereview.chromium.org/548179
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3740
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
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