ager@chromium.org
4c929953b4
Port FastCloneShallowArrayStub to ARM and x64.
...
Review URL: http://codereview.chromium.org/597022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-11 12:28:49 +00:00
ager@chromium.org
51a7ecc1f7
Fix problem with GenericBinaryOperationStub::GenerateCall for a Smi
...
left operand. For non-commutative operations the right operand could
be overwritten with the Smi left operand.
We need better testing of all of these cases. We will add more test
cases as a separate commit.
Review URL: http://codereview.chromium.org/598059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-11 12:26:08 +00:00
kmillikin@chromium.org
9b47ae91d1
Simple type tracking in the fast code generator.
...
Initial implementation of ad hoc must-be-smi tracking in the fast code
generator. Type information is used to avoid the write barrier for
smi property stores and to avoid the smi check for the inputs/output
of bitwise OR.
Review URL: http://codereview.chromium.org/597021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-11 08:41:19 +00:00
ager@chromium.org
638cb4f91d
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
2010-02-11 08:05:33 +00:00
mikhail.naganov@gmail.com
4f7b9e4da3
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
2010-02-10 17:50:16 +00:00
whesse@chromium.org
9344612bef
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
2010-02-10 15:06:08 +00:00
antonm@chromium.org
5ecfd4bfe9
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
2010-02-10 14:44:15 +00:00
kmillikin@chromium.org
b04a26dc31
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
2010-02-10 13:46:15 +00:00
antonm@chromium.org
a9664cbd0d
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
2010-02-10 11:48:53 +00:00
kmillikin@chromium.org
30cf88af6b
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
2010-02-10 09:18:55 +00:00
vitalyr@chromium.org
d1d56d9891
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
2010-02-09 16:14:14 +00:00
whesse@chromium.org
ad83e411e1
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
2010-02-09 15:18:37 +00:00
whesse@chromium.org
c00dcbe5f2
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
2010-02-09 14:19:23 +00:00
kmillikin@chromium.org
9b5c312bfc
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
2010-02-09 13:44:43 +00:00
lrn@chromium.org
96127b68e5
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
2010-02-09 13:10:32 +00:00
whesse@chromium.org
503bbeb8c4
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
2010-02-09 13:06:37 +00:00
ricow@chromium.org
df1df78c48
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
2010-02-09 12:15:34 +00:00
kmillikin@chromium.org
0d6b85b812
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
2010-02-09 10:18:51 +00:00
whesse@chromium.org
f449fded97
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
2010-02-08 16:08:26 +00:00
fschneider@chromium.org
4acaded36c
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
2010-02-08 14:33:34 +00:00
erik.corry@gmail.com
e7fbf99b17
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
2010-02-08 14:00:50 +00:00
serya@chromium.org
862909e762
Review URL: http://codereview.chromium.org/561049
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-08 13:44:49 +00:00
mikhail.naganov@gmail.com
5ebc1a68ef
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
2010-02-08 08:55:01 +00:00
fschneider@chromium.org
8c29d246af
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
2010-02-08 08:54:27 +00:00
mikhail.naganov@gmail.com
f332ab9615
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
2010-02-08 08:15:18 +00:00
fschneider@chromium.org
2f0f6face1
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
2010-02-05 13:57:18 +00:00
mikhail.naganov@gmail.com
19c1675b94
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
2010-02-05 13:07:00 +00:00
lrn@chromium.org
dd85270967
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
2010-02-05 12:00:42 +00:00
sgjesse@chromium.org
2618422ed5
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
2010-02-05 08:46:41 +00:00
ricow@chromium.org
f119ecbc7a
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
2010-02-05 07:19:09 +00:00
mikhail.naganov@gmail.com
e51a05f338
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
2010-02-04 21:34:03 +00:00
sgjesse@chromium.org
9b4312fd76
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
2010-02-04 21:32:02 +00:00
sgjesse@chromium.org
4bf7a6c037
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
2010-02-04 20:43:59 +00:00
sgjesse@chromium.org
a6a7c75ae0
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
2010-02-04 20:36:58 +00:00
ricow@chromium.org
a28143c77c
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
2010-02-04 19:43:56 +00:00
mikhail.naganov@gmail.com
8150a16b62
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
2010-02-04 15:35:42 +00:00
sgjesse@chromium.org
3fdc489658
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
2010-02-04 15:21:05 +00:00
ricow@chromium.org
4f179b09ba
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
2010-02-04 11:28:03 +00:00
lrn@chromium.org
f0ef4d7bac
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
2010-02-04 09:11:43 +00:00
erik.corry@gmail.com
14a640274c
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
2010-02-03 20:39:34 +00:00
erik.corry@gmail.com
bb717f7d9d
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
2010-02-03 20:31:49 +00:00
kmillikin@chromium.org
c174657e9e
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
2010-02-03 16:12:55 +00:00
lrn@chromium.org
62054f8b9e
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
2010-02-03 13:29:42 +00:00
lrn@chromium.org
18c6134e1a
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
2010-02-03 13:17:39 +00:00
ricow@chromium.org
f74a08d8ee
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
2010-02-03 13:10:03 +00:00
leonclarke@gmail.com
04c4d90868
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
2010-02-03 11:54:57 +00:00
ager@chromium.org
76e7d7522a
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
2010-02-03 11:43:54 +00:00
sgjesse@chromium.org
f239b9b7d4
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
2010-02-03 09:15:58 +00:00
whesse@chromium.org
b57ca72b90
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
2010-02-03 08:33:19 +00:00
ager@chromium.org
dc49c566a4
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
2010-02-03 07:58:47 +00:00