antonm@chromium.org
8bc68937a7
Port keyed interceptor stubs to ARM and x64.
...
Review URL: http://codereview.chromium.org/600123
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 14:13:21 +00:00
fschneider@chromium.org
fc67ad346a
Pass the complete number type information into the GenericBinaryOpStub.
...
Currently we only pass a boolean parameter indicating whether
the input operands to the GenericBinaryOpStub are guaranteed
to be numbers or not.
Instead we pass the complete number type as a parameters. This
allows to use more precise type information for code generation
in the stub.
Also make the computation of the result type more precise and correct on both ia32 and x64.
Review URL: http://codereview.chromium.org/593110
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 13:03:16 +00:00
mikhail.naganov@gmail.com
8f3ae5b60a
Fix regression in cctest/test-log/EquivalenceOfLoggingAndTraversal
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/600136
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 13:01:05 +00:00
antonm@chromium.org
ea1b4f0eb1
Introduce builtin for Array.slice function.
...
Review URL: http://codereview.chromium.org/604059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 12:14:23 +00:00
mikhail.naganov@gmail.com
899bef8226
Use binary search in GetScriptLineNumber.
...
Patch by Ilya Tikhonovsky <loislo@chromium.org>
Original issue http://codereview.chromium.org/593108
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/608012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 12:08:10 +00:00
ager@chromium.org
69b96e608a
Land thumb2 assembler update.
...
Review URL: http://codereview.chromium.org/596065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 11:40:56 +00:00
sgjesse@chromium.org
58207806fe
Fix inline NumberToString
...
Glitch in pre-commit cleanup.
TBR=ager@chromium.orgZ
Review URL: http://codereview.chromium.org/600134
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 11:16:10 +00:00
ager@chromium.org
51b5df388c
Port arguments object allocation in generated code to ARM and x64.
...
BUG=v8:611
Review URL: http://codereview.chromium.org/605024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 10:50:56 +00:00
yurys@chromium.org
0630b1fd9f
Object.getOwnPropertyNames should return string names for indexed properties
...
Land original change by pfeldman: http://codereview.chromium.org/596117
Review URL: http://codereview.chromium.org/596124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 10:08:39 +00:00
sgjesse@chromium.org
6093d0dbf5
Inline NumberToString
...
NumberToString in runtime JavaScript is inlined through a call to a stub. Currently the stub only checks the number string cache and only if the number is a smi. Code is shared with the inlining of number string cache lookup when adding a smi to a string.
Review URL: http://codereview.chromium.org/604062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 09:41:11 +00:00
ager@chromium.org
7f422b2a35
Remove caching of ToBoolean on the global context. This was used for
...
API operations but the API C++ code no longer performs a call to the
JavaScript code for ToBoolean.
Review URL: http://codereview.chromium.org/607009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 09:24:14 +00:00
kmillikin@chromium.org
edfc3c31b3
Remove printf committed by mistake
...
Review URL: http://codereview.chromium.org/600126
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 07:54:28 +00:00
fschneider@chromium.org
82341d28b3
Fix arm build.
...
Change the function declarations in the arm virtual frame header
file to match the other platform.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/608007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-15 14:47:03 +00:00
fschneider@chromium.org
dbe99e405a
Introduce number type information in the virtual frame.
...
Each frame element gets a new attribute with number type information. A frame element can be:
- smi
- heap number
- number (i.e. either of the above)
- or something else.
The type information is propagated along with all virtual frame operations.
Results popped from the frame carry the number information with them.
Two optimizations in the code generator make use of the new
information:
- GenericBinaryOpSyub omits map checks if input operands are numbers.
- Boolean conversion for numbers: Emit inline code for converting a number (smi or heap number) to boolean. Do not emit call to ToBoolean stub in this case.
Review URL: http://codereview.chromium.org/545007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-15 14:24:38 +00:00
mikhail.naganov@gmail.com
d3ce4347d9
Add GetScriptOrigin and GetScriptLineNumber functions for Timeline panel.
...
Patch by Ilya Tikhonovsky <loislo@chromium.org>.
Original issue: http://codereview.chromium.org/565007
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/594058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-15 14:19:15 +00:00
antonm@chromium.org
e02a5aa602
Introduce builtin for Array.unshift function.
...
Review URL: http://codereview.chromium.org/600124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-15 13:25:06 +00:00
kmillikin@chromium.org
a2bb215611
Change the interface of CallStubCompiler::CompileCallInterceptor.
...
Move responsibility for a typecast into the caller so that it can be
locally verified to succeed.
Review URL: http://codereview.chromium.org/594055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-15 13:20:49 +00:00
antonm@chromium.org
3d4d5e9e34
Refactoring various pieces of post interceptor caching.
...
Review URL: http://codereview.chromium.org/596096
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-15 12:32:27 +00:00
whesse@chromium.org
58b04396bf
Change CallIC interface on ARM. Remove name from the stack, and pass it in register r2.
...
Review URL: http://codereview.chromium.org/598065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-15 12:26:07 +00:00
whesse@chromium.org
4507ca1523
Simplify compilation of CallIC interceptor stub.
...
Review URL: http://codereview.chromium.org/604054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-15 11:52:18 +00:00
antonm@chromium.org
01b1176e08
Introduce builtin for Array.shift function.
...
Review URL: http://codereview.chromium.org/606017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-15 09:17:38 +00:00
yurys@chromium.org
f5eb70e411
Land 598061(Process //@ scriptURL=url comment for scripts that don't have name set)
...
Review URL: http://codereview.chromium.org/596088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-12 17:17:13 +00:00
kmillikin@chromium.org
61ce433d82
Change interface to CodeGenerator::LoadFromSlot.
...
Change the interface to LoadFromSlot, LoadFromSlotCheckForArguments,
and LoadFromGlobalSlotCheckExtensions in the ia32 classic code
generator.
Review URL: http://codereview.chromium.org/606015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-12 16:39:07 +00:00
whesse@chromium.org
077d785842
Fix CallIC stub for CallInterceptor on ARM
...
Review URL: http://codereview.chromium.org/593080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-12 16:01:38 +00:00
antonm@chromium.org
62a9497787
Compile very thin code to access objects on which indexed interceptor is set.
...
Review URL: http://codereview.chromium.org/603028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-12 14:21:18 +00:00
sgjesse@chromium.org
f937e7daa5
Fix array allocation in generated code on x64
...
The porting of array allocation in generated code from ia32 to x64 wrongly assumed that a smi contained the actual number times 2. Removed the constant times_half_pointer_size, as it will probably not be needed.
Review URL: http://codereview.chromium.org/596084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-12 13:49:57 +00:00
lrn@chromium.org
2e6ab729ef
Added optimization for div/mod by constant power of 2.
...
Review URL: http://codereview.chromium.org/597059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-12 13:37:10 +00:00
sgjesse@chromium.org
e60efbff28
Optimize string plus smi
...
When adding a string with a smi value the number string cache is checked in generated code. If the there is a string value in the number string cache the resulting string is produced in generated code.
Review URL: http://codereview.chromium.org/596082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-12 11:55:04 +00:00
sgjesse@chromium.org
46020b3169
Probe the symbol table for two character strings in native code
...
All two character string results from adding two strings and from sub string used to be handled in the runtime system as a lookup in the symbol table was done before allocating a new string. The native code for string add and sub string now probes the symbol cache for two character strings to avoid the runtime call. If the result string is not found in the symbol table within a fixed number of probes a new string is just allocated. Newly allocated two character strings are not added to the symbol table immediately.
Review URL: http://codereview.chromium.org/598062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-12 11:43:00 +00:00
whesse@chromium.org
c7fe99d3ff
Change LoadIC interface on ia32 to take arguments in registers.
...
Review URL: http://codereview.chromium.org/573009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-12 10:32:24 +00:00
kmillikin@chromium.org
85c24cee57
Change the interface of CodeGenerator::InstantiateBoilerplate.
...
Begin changing the interface of the virtual-frame-based code generator
to avoid pushing short-lived temporaries on the frame.
Review URL: http://codereview.chromium.org/600097
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-12 10:28:40 +00:00
fschneider@chromium.org
4a2c81d3b0
Add last use data flow information to the fast code generator.
...
This change add simple local live variable information to
the fast code generator. It supports only AST nodes that
are accepted by the syntax checker.
Each variable use points to a variable definition structure
which contains the last use of the definition.
To determine whether a variable is live after a certain point
we can check whether its last use occurs later in the evaluation
order defined by the AST labeling number.
The new information is currently only printed out together with
the IR and not yet used for code generation.
Review URL: http://codereview.chromium.org/603004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-12 10:16:30 +00:00
whesse@chromium.org
4831b79421
Port change in CallIC interface to x64 platform. Name of called function is now passed in rcx.
...
Review URL: http://codereview.chromium.org/596036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-12 08:53:13 +00:00
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
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
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
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
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
serya@chromium.org
0045327b7d
Review URL: http://codereview.chromium.org/555164
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-02 18:35:53 +00:00
ager@chromium.org
c4bd2aa054
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
2010-02-02 13:48:54 +00:00
whesse@chromium.org
c9c504770a
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
2010-02-02 13:40:53 +00:00
sgjesse@chromium.org
10910394e6
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
2010-02-02 13:33:29 +00:00
sgjesse@chromium.org
8b5387506c
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
2010-02-02 11:36:37 +00:00
antonm@chromium.org
3ec70cab81
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
2010-02-02 11:32:17 +00:00
whesse@chromium.org
7556a16cd2
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
2010-02-02 09:20:19 +00:00
lrn@chromium.org
29229e9b8c
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
2010-02-02 09:14:22 +00:00
kasperl@chromium.org
325d3ef224
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
2010-02-02 07:58:09 +00:00
kmillikin@chromium.org
41865cd677
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
2010-02-01 17:01:58 +00:00
kasperl@chromium.org
6c605d1fe0
Revert r3758.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-01 15:27:51 +00:00
kasperl@chromium.org
5e96a8ca4b
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
2010-02-01 15:16:26 +00:00
kasperl@chromium.org
ae4fd1e54f
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
2010-02-01 13:20:43 +00:00
ager@chromium.org
05e8784136
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
2010-02-01 13:07:53 +00:00
yurys@chromium.org
2a8034c8f6
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
2010-02-01 12:56:56 +00:00
whesse@chromium.org
d450fe1ed3
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
2010-02-01 11:07:41 +00:00
yurys@chromium.org
4963f13f22
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: http://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
2010-02-01 10:34:57 +00:00
lrn@chromium.org
f03e42b133
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
2010-02-01 10:31:55 +00:00
whesse@chromium.org
866eac3057
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
2010-02-01 08:35:38 +00:00
kmillikin@chromium.org
5536273594
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
2010-01-29 15:29:33 +00:00
serya@chromium.org
9239bbdd91
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
2010-01-29 12:41:11 +00:00
kmillikin@chromium.org
8588518851
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
2010-01-29 11:55:40 +00:00
kasperl@chromium.org
048fe9b980
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
2010-01-29 11:46:55 +00:00
sgjesse@chromium.org
2498d5cb7b
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
2010-01-29 11:34:37 +00:00
sgjesse@chromium.org
0528427a1b
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
2010-01-29 10:56:26 +00:00
sgjesse@chromium.org
8ced9b99be
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
2010-01-29 10:33:27 +00:00
kmillikin@chromium.org
e7528c4ac6
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
2010-01-29 09:52:51 +00:00
fschneider@chromium.org
88f6734ddb
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
2010-01-29 09:42:13 +00:00
whesse@chromium.org
e9263697cb
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
2010-01-28 14:01:14 +00:00
ager@chromium.org
fa4954a42b
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
2010-01-28 13:05:29 +00:00
kaznacheev@chromium.org
432caaf14e
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
2010-01-28 12:45:14 +00:00
whesse@chromium.org
8999064435
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
2010-01-28 12:41:27 +00:00
sgjesse@chromium.org
ef4b110620
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
2010-01-28 10:46:58 +00:00
kasperl@chromium.org
7db4279d22
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
2010-01-28 09:08:01 +00:00
kasperl@chromium.org
0b13c6be28
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
2010-01-28 08:46:56 +00:00
ager@chromium.org
9879490308
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
2010-01-28 08:15:00 +00:00
ager@chromium.org
ed224fc1dc
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
2010-01-28 08:14:19 +00:00
kasperl@chromium.org
25c6b59b1e
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
2010-01-27 20:14:46 +00:00
leonclarke@gmail.com
eaa845804e
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
2010-01-27 17:10:28 +00:00
sgjesse@chromium.org
5fe8bd9919
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
2010-01-27 16:18:58 +00:00
kmillikin@chromium.org
2b62886dab
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
2010-01-27 15:23:48 +00:00
whesse@chromium.org
62f3e48d2d
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
2010-01-27 14:07:12 +00:00
ricow@chromium.org
80d71c6406
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
2010-01-27 13:53:19 +00:00
ricow@chromium.org
7985bf73c8
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
2010-01-27 13:51:04 +00:00
ager@chromium.org
68f537d2b1
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
2010-01-27 13:34:29 +00:00
kmillikin@chromium.org
f866a574ae
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
2010-01-27 12:14:26 +00:00
whesse@chromium.org
93f5cb2cd4
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
2010-01-27 12:13:32 +00:00
erik.corry@gmail.com
10fdd6509b
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
2010-01-27 11:08:32 +00:00
erik.corry@gmail.com
90045ddd5e
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
2010-01-27 08:25:48 +00:00
kmillikin@chromium.org
97e3aae5ef
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
2010-01-26 14:43:40 +00:00
ager@chromium.org
400b62a1f7
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
2010-01-26 13:57:11 +00:00
sgjesse@chromium.org
cf78ed05ee
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
2010-01-26 11:08:42 +00:00
kaznacheev@chromium.org
c33dfa5a1d
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
2010-01-26 10:27:27 +00:00
erik.corry@gmail.com
2f0ad64db9
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
2010-01-26 10:03:44 +00:00
whesse@chromium.org
439ab839ba
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
2010-01-26 09:31:40 +00:00
antonm@chromium.org
29af9c54a4
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
2010-01-25 22:53:18 +00:00
kaznacheev@chromium.org
921540510c
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
2010-01-25 17:47:53 +00:00
kaznacheev@chromium.org
e138669a1f
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
2010-01-25 17:03:34 +00:00
ager@chromium.org
dc08ccebaa
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
2010-01-25 16:48:53 +00:00
kaznacheev@chromium.org
36477ee160
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
2010-01-25 16:00:03 +00:00
lrn@chromium.org
bfcbc10c7d
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
2010-01-25 12:56:49 +00:00
ager@chromium.org
cd51fcd35f
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
2010-01-25 12:37:31 +00:00
whesse@chromium.org
f88e7e82b7
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
2010-01-25 11:54:10 +00:00
lrn@chromium.org
76774115c0
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
2010-01-25 08:55:08 +00:00
kasperl@chromium.org
4f087f279d
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
2010-01-25 08:28:39 +00:00
fschneider@chromium.org
4d3a5968a5
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
2010-01-22 14:07:25 +00:00
antonm@chromium.org
c7445d9284
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
2010-01-22 13:56:12 +00:00
mikhail.naganov@gmail.com
40fd97c87d
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
2010-01-22 09:42:24 +00:00
sgjesse@chromium.org
69915136fa
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
2010-01-22 08:31:33 +00:00
peter.rybin@gmail.com
b400427e10
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
2010-01-21 17:41:17 +00:00
mikhail.naganov@gmail.com
999e3fca90
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
2010-01-21 16:42:41 +00:00
antonm@chromium.org
d587851d7f
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
2010-01-21 14:22:28 +00:00
erik.corry@gmail.com
3feb7e801f
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
2010-01-21 13:59:15 +00:00
lrn@chromium.org
9c6335929b
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
2010-01-21 12:10:56 +00:00
erik.corry@gmail.com
399be5ee13
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
2010-01-21 11:28:11 +00:00
erik.corry@gmail.com
c8b3127fcc
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
2010-01-21 11:15:02 +00:00
erik.corry@gmail.com
c80cba3bcc
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
2010-01-21 08:31:16 +00:00
whesse@chromium.org
04e9399694
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
2010-01-20 17:01:34 +00:00
kmillikin@chromium.org
1405258621
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
2010-01-20 16:28:21 +00:00
fschneider@chromium.org
c757fa4604
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
2010-01-20 16:13:53 +00:00
kmillikin@chromium.org
6ad58b53f4
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
2010-01-20 15:51:03 +00:00
vitalyr@chromium.org
80c81d96d4
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
2010-01-20 14:43:12 +00:00
kmillikin@chromium.org
453d0a136b
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
2010-01-20 09:55:32 +00:00
antonm@chromium.org
7baf8bdee6
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
2010-01-19 23:03:37 +00:00
antonm@chromium.org
6619154580
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
2010-01-19 16:34:37 +00:00
sgjesse@chromium.org
f9b80f139c
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
2010-01-19 14:17:34 +00:00
sgjesse@chromium.org
67f9e191f9
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
2010-01-19 14:15:47 +00:00
antonm@chromium.org
73390e61ca
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
2010-01-19 13:26:40 +00:00
antonm@chromium.org
d89bc5322a
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
2010-01-19 13:15:52 +00:00
ricow@chromium.org
4667efc0df
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
2010-01-19 12:56:36 +00:00
kmillikin@chromium.org
3e8539d873
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
2010-01-19 12:41:02 +00:00
lrn@chromium.org
712d108ebf
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
2010-01-19 12:27:04 +00:00
vitalyr@chromium.org
ca564dcd54
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
2010-01-19 10:32:20 +00:00
kmillikin@chromium.org
6f91d1bfd6
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
2010-01-18 23:18:09 +00:00
kmillikin@chromium.org
35c85237f0
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
2010-01-18 16:23:24 +00:00
mikhail.naganov@gmail.com
37d3972429
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
2010-01-18 16:04:25 +00:00
peter.rybin@gmail.com
5d60fa7ac8
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
2010-01-18 15:48:41 +00:00
sgjesse@chromium.org
8707b36233
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
2010-01-18 14:13:58 +00:00
sgjesse@chromium.org
ef0743abd7
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
2010-01-18 14:11:37 +00:00
kmillikin@chromium.org
5e2122c0b1
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
2010-01-18 14:09:36 +00:00
kmillikin@chromium.org
9095abb776
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
2010-01-18 14:04:55 +00:00
lrn@chromium.org
55177a2644
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
2010-01-18 11:22:03 +00:00
lrn@chromium.org
eee6c6405e
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
2010-01-18 09:49:50 +00:00
erik.corry@gmail.com
a5ac66628d
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
2010-01-18 08:36:06 +00:00
peter.rybin@gmail.com
6d7ce68102
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
2010-01-15 22:40:57 +00:00
peter.rybin@gmail.com
ec86bea132
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
2010-01-15 21:14:56 +00:00
peter.rybin@gmail.com
ccd760ae5d
Add diagnostic print to debug agent if it fails to open port
...
Review URL: http://codereview.chromium.org/549061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-15 18:11:12 +00:00
mikhail.naganov@gmail.com
a3c0f20035
Submit Object.getOwnPropertyNames patch by Pavel Feldman. See http://codereview.chromium.org/549050 .
...
Add copyright to regression test to fix build broken by r3619.
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/542092
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-15 15:34:32 +00:00
erik.corry@gmail.com
4a90166dde
Implement enough of the partial snapshots that we can deserialize
...
a single string.
Review URL: http://codereview.chromium.org/536077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-15 14:20:31 +00:00
vitalyr@chromium.org
8207788047
Fix ARM build.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/551047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-15 13:43:28 +00:00
sgjesse@chromium.org
562f90d375
Ensure correct boxing of values when calling functions on them
...
When a function is called with a value type as the receiver this is now boxed as an object.
This is a low-impact solution where the receiver is only boxed when required. For IC calls to the V8 builtins values are not boxed and as most of the functions on String.prototype, Number.prototype and Boolean.prototype are sitting there most IC calls on values will not need any boxing of the receiver.
For calls which are not IC calls but calls through the CallFunctionStub a flag is used to determine whether the receiver might be a value and only when that is the case will the receiver be boxed.
No changtes to Function.call and Function.apply - they already boxed values. According to the ES5 spec the receiver should not be boxed for these functions, but current browsers have not adopted that change yet.
BUG=223
TEST=test/mjsunit/value-wrapper.js
TEST=test/mjsunit/regress/regress-crbug-3184.js
Review URL: http://codereview.chromium.org/542087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-15 13:42:32 +00:00
vitalyr@chromium.org
bd06358b93
Optimized calling of C++ builtins (and HandleApiCall
...
in particular).
* Called function is passed on the stack instead of
using a static variable.
* Builtins that don't need the called function don't
get it.
* Made is_construct statically known to HandleApiCall
by setting custom construct stub for API functions.
Review URL: http://codereview.chromium.org/536065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-15 12:25:24 +00:00
fschneider@chromium.org
1cc579ff4e
Fix issue 541 and some refactoring of the top-level compiler.
...
* Refactor VisitProperty to use the platform-specific methods for emitting the IC calls.
* Refactor recording of source positions in the top-level compiler.
* Correct the recorded source positions for assignments and property loads.
* Fix bug on x64 where source positions were not recorded before a calling a call-IC.
* Correct some inconsistencies between IA-32 and X64 top-level code generator.
We now pass all regression tests with
--always-fast-compiler.
Review URL: http://codereview.chromium.org/550043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-15 12:00:59 +00:00
fschneider@chromium.org
d234b0e2ad
Fix bug in keyed load stub for strings.
...
Instead of returning the empty string when indexing
a string out of bounds we now correctly return undefined.
Review URL: http://codereview.chromium.org/542089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-15 12:00:21 +00:00
fschneider@chromium.org
acf74b04a7
Fix a problem when compiling built-ins with the top-level compiler.
...
Replace runtime call to NumberAdd with call to binary op stub.
Until now the top-level compiler always called a runtime function
for count operations.
In some places we expected in the JS builtins smis as arguments.
If we perform a count operation before all smis would get converted into
heap numbers by the runtime number add function and result in a runtime
assert.
Also: Add missing debugger information in the top-level compiler for
do-while loops.
Review URL: http://codereview.chromium.org/548029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-14 17:22:59 +00:00
fschneider@chromium.org
102950693b
Push to trunk. Now working on 2.0.7.
...
Review URL: http://codereview.chromium.org/548041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-14 15:09:43 +00:00
erik.corry@gmail.com
bc334df1a8
* Improve the interface to the memory-reservation functionality.
...
* Add a test case that generates a serialization of a single flat string.
Review URL: http://codereview.chromium.org/542073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-14 14:46:31 +00:00
ager@chromium.org
41475c17ff
Fix crash when using Object.getOwnPropertyDescriptor on an API defined
...
callback property.
Return undefined for Object.getOwnPropertyDescriptor on an API defined
callback properties for now.
Review URL: http://codereview.chromium.org/542074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-14 14:32:19 +00:00
ager@chromium.org
bdf58eda27
Change return type of MapSpace::NeedsCompaction from int to bool.
...
Fixes compiler warnings on Windows.
TBR=antonm@chromium.org
Review URL: http://codereview.chromium.org/549049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-14 12:51:38 +00:00
ricow@chromium.org
8cf3521acb
Removed check on element in case it is undefined in ArrayIndexOf - according to spec this is OK.
...
Review URL: http://codereview.chromium.org/545056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-14 12:05:48 +00:00
ager@chromium.org
bfb111b9ed
Fix Date.prototype.toISOString for NaN dates and add milliseconds for
...
compatibility with Safari.
Review URL: http://codereview.chromium.org/543056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-14 08:55:15 +00:00
antonm@chromium.org
51a0cf8a71
Compact map space when doing mark-sweep if after collection size of map space would
...
drop below threshold.
Review URL: http://codereview.chromium.org/509035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-13 19:16:07 +00:00
kmillikin@chromium.org
9dec8f3c74
Remove an inlined ASSERT made obsolete by r3598.
...
Review URL: http://codereview.chromium.org/549035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-13 16:21:06 +00:00
kmillikin@chromium.org
ede65c19a1
Remove a pair of problematic uses of the Reference utility class from
...
the code generators.
These uses broke the rules of the class because it was safe to do so,
but there was no real reason to do it that way.
Review URL: http://codereview.chromium.org/543041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-13 16:01:15 +00:00
ager@chromium.org
9f60238c35
Revert r3583 which seems to degrade performance.
...
Review URL: http://codereview.chromium.org/536042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-13 13:26:31 +00:00
fschneider@chromium.org
3dd2420511
Fix bug in top-level code generator with global receiver.
...
We did not correcty pass the global receiver object in some cases.
This change fixes this bug on all three platforms.
Review URL: http://codereview.chromium.org/542053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-13 12:13:37 +00:00
ricow@chromium.org
19e49e1740
Enabled es5conform tests for new array methods and corrected errors that was discovered by enabling these.
...
Added new es5 methods:
GetOwnPropertyDescriptor
GetOwnProperty
FromPropertyDescriptor
Review URL: http://codereview.chromium.org/546032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-13 12:10:57 +00:00
kmillikin@chromium.org
39b9f57f19
Cleanup the handling of control flow in the toplevel code generator.
...
Do abstract the setting and restoring of 'argument' state into a
function that takes arguments.
Do not set the argument state in the code generator unless it
represents arguments to a recursive call to Visit.
Review URL: http://codereview.chromium.org/550010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-13 11:29:08 +00:00
ager@chromium.org
4ed9eb18ea
Fix bug in the ARM port of FastNewContextStub. Load the function from
...
the stack instead of popping it - it is needed by the slow case.
Review URL: http://codereview.chromium.org/546031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-13 10:27:54 +00:00
ager@chromium.org
bac8b21ff0
Port FastNewContextStub to x64 and arm.
...
BUG=551
Review URL: http://codereview.chromium.org/541027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-13 08:16:02 +00:00
sgjesse@chromium.org
0d01d17b98
Fix ARM thumb/debug build
...
Landing http://codereview.chromium.org/548007
TBR=piman@chromium.org
Review URL: http://codereview.chromium.org/549033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-13 07:45:53 +00:00
antonm@chromium.org
4377037336
Reverting temporary reverts 3586 and 3588 back.
...
TBR=kasperl@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-12 23:42:36 +00:00
antonm@chromium.org
fada07aecc
Temporary backing out r3536 to see impact on DOM benchmarks.
...
TBR=kasperl@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-12 19:36:09 +00:00
fschneider@chromium.org
fdba189730
Fix a problem with const initialization in the top-level code generator.
...
When initializing the special local variable containing the reference to the enclosing
function in named functions we now (correctly) emit an INIT_CONST instead of INIT_VAR,
and we correctly bail out in the top-level code generator.
Also part of this change is adding missing statement position information
for some statements in the top-level code generator.
Review URL: http://codereview.chromium.org/536029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-12 17:22:57 +00:00
antonm@chromium.org
6cabd63572
Temporary backing out r3538 to see impact on DOM benchmarks.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-12 16:57:18 +00:00
erik.corry@gmail.com
612d9b82f0
Add some interfaces to the GC that allow us to reserve space. This is needed
...
for partial snapshots. After reserving space we can be sure that allocations
will happen linearly (no GCs and no free-list allocation). This change also
contains the start of the partial snapshot support, which, however is not yet
completed or tested.
Review URL: http://codereview.chromium.org/545026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-12 15:16:23 +00:00
ager@chromium.org
b63f5cf4d9
Reapply the parts of revision 3545 that did not work because of broken
...
fixups code on ARM.
Review URL: http://codereview.chromium.org/545025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-12 11:56:19 +00:00
ager@chromium.org
61a1c089e4
Change the ARM fixup code to handle the use of the following
...
instruction sequence for jumps:
mov(ip, Operand(target, rmode), LeaveCC, cond);
bx(ip, cond)
Changed a JS call in the compare stub to a tail call to avoid GC
problems where the pushed return address is not updated on GC.
Review URL: http://codereview.chromium.org/549022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3582 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-12 11:54:19 +00:00
kmillikin@chromium.org
c891a7a683
Fix lint error. I must have been following the Standard ML style
...
guide.
Review URL: http://codereview.chromium.org/541024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3581 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-12 09:58:50 +00:00
kmillikin@chromium.org
f0b8c2d97a
Some cleanup of the toplevel code generator:
...
* Rename the operation of filling a context with a value. Formerly it
was 'Move', now it's 'Apply' so as to avoid confusion with various
other Moves (eg, in the toplevel codegen, in the macro assemblers).
* Use the abstraction Drop rather than math on the stack pointer.
* Add a predicate on AST expression nodes to abstract a repeated test
whether we should us a regular (named) IC or a keyed IC.
Review URL: http://codereview.chromium.org/546006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-12 08:48:26 +00:00
ager@chromium.org
55b73d9415
Fix variable name when build with oprofile agent.
...
BUG=572
Review URL: http://codereview.chromium.org/549020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-12 08:31:00 +00:00
ager@chromium.org
c1cafb7cf1
Port FastNewClosureStub introduced for ia32 in r3477 to x64 and arm.
...
BUG=552
Review URL: http://codereview.chromium.org/543010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-12 07:16:49 +00:00
sgjesse@chromium.org
658ca2f174
Add missing instructions to the IA-32 disasembler
...
Added newly added instructions to test-disasem-ia32.cc and implemented the missi
ng ones in the disasembler.
Added some asserts to 8-bit instructions which only work with eax, ebx, ecx and
edx (al, bl, cl and dl).
Removed the loope instruction.
Review URL: http://codereview.chromium.org/548002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-11 15:19:53 +00:00
fschneider@chromium.org
c860533020
Added two missing instructions to disassembler.
...
The subb and the loop instructions are also added to the IA-32 disassembler.
Review URL: http://codereview.chromium.org/541008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-11 12:59:17 +00:00
christian.plesner.hansen@gmail.com
41e1d6a6a5
Added ScriptData::HasError.
...
Review URL: http://codereview.chromium.org/542010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-11 12:13:24 +00:00
ager@chromium.org
35fae75f01
Fix wrong assert in compare stub minor key computation.
...
TBR=erik.corry
Review URL: http://codereview.chromium.org/536010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-11 07:35:32 +00:00
sgjesse@chromium.org
8c2620112c
Fixed wrong cmov operand order
...
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/518082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-08 14:17:26 +00:00
erik.corry@gmail.com
1670dce1bf
Fix same Windows compiler error in another place.
...
Review URL: http://codereview.chromium.org/518081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-08 13:48:27 +00:00
erik.corry@gmail.com
a5247c039c
Fix Windows build.
...
Review URL: http://codereview.chromium.org/527031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-08 12:42:58 +00:00
sgjesse@chromium.org
91cfb3730a
Add generated code for ascii string comparison
...
Careted a stub for string comparison and used part of the code from that to inline string comparison in the compare stub.
Review URL: http://codereview.chromium.org/525115
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-08 11:58:15 +00:00
lrn@chromium.org
2cb1f8271f
Fix potential length-miscalculation in %StringBuilderConcat.
...
Review URL: http://codereview.chromium.org/521074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-08 11:27:37 +00:00
erik.corry@gmail.com
dcd89af437
Lint, schmlint!
...
Review URL: http://codereview.chromium.org/525114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-08 10:41:25 +00:00
erik.corry@gmail.com
eb6b3f601a
Speed up compares with characters ie single-character strings.
...
Make use of it when we know that something can't be a NaN.
Review URL: http://codereview.chromium.org/524059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-08 09:54:11 +00:00
ager@chromium.org
d73f2efcf3
Inline a number of simple date computations.
...
The minifier has been updated to have better recognition of regular
expressions.
Review URL: http://codereview.chromium.org/521057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-08 07:49:07 +00:00
lrn@chromium.org
46504c1557
Attempt to make \b\w+ faster. Slight performance increase on, e.g., string unpacking.
...
Review URL: http://codereview.chromium.org/507051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-07 19:01:23 +00:00
lrn@chromium.org
40d6cbca89
Forgot patch to make it compiler on Linux.
...
Review URL: http://codereview.chromium.org/525087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-07 14:04:56 +00:00
sgjesse@chromium.org
db64cd9a75
Fix wrong asserts from r3554
...
Review URL: http://codereview.chromium.org/523128
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-07 13:17:37 +00:00
lrn@chromium.org
dddadf9f7e
Fixed potential length miscalculations by limiting max size of arrays and strings.
...
Review URL: http://codereview.chromium.org/525064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-07 13:17:18 +00:00
fschneider@chromium.org
c4416d628d
Fix runtime function StringCharAt where an argument was not checked.
...
Review URL: http://codereview.chromium.org/523126
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-07 12:31:45 +00:00
kasperl@chromium.org
3321d06ccd
Make String.prototype.replace a tiny bit faster by avoiding
...
ToString conversions for strings.
Review URL: http://codereview.chromium.org/518059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-07 12:18:56 +00:00
fschneider@chromium.org
714dfeaece
Fix x64 and arm build.
...
Review URL: http://codereview.chromium.org/524058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-07 11:38:43 +00:00
fschneider@chromium.org
903301248e
Improve keyed loads on strings by using a new stub.
...
Instead of going through a runtime function for keyed loads
on strings we invoke a separate specialized stub that
assumes string as receiver type and the key to be a number.
The stub calls a JS builtin function to return the corresponding one-character string.
Review URL: http://codereview.chromium.org/521041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3556 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-07 10:25:20 +00:00
ricow@chromium.org
33079fb851
Added ES5 15.2.3.2 Object.getPrototypeOf.
...
Review URL: http://codereview.chromium.org/523124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-07 10:01:24 +00:00
sgjesse@chromium.org
3d36c712aa
Use generated code to create sub strings.
...
Added a stub to allocate and fill a string object with a substring from another string.
Use the rep movs instruction to copy the string data as it turned out to be the fastest way.
While preparing this I experimented with some SSE2 instructions, so the instructions movdqa and movdqu are still in the IA-32 assembler even though they are not used.
Review URL: http://codereview.chromium.org/525085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-07 09:59:37 +00:00
kasperl@chromium.org
060711ab37
Improve the performance of String.prototype.concat and the slow-case
...
for compare operations.
Review URL: http://codereview.chromium.org/521054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-07 09:40:50 +00:00
kasperl@chromium.org
ba9b59d51f
Quick fix to ARM fixup issue introduced in r3545. The fixup code
...
seems somewhat broken on ARM, but this solves the issue for now.
I'll look into the code patching tomorrow.
Review URL: http://codereview.chromium.org/525068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-06 15:50:34 +00:00
kasperl@chromium.org
1fdbaa1d10
Improve performance of Array.prototype.join and String.prototype.substring
...
by tweaking the JavaScript implementation of these functions.
Review URL: http://codereview.chromium.org/519061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-06 14:40:21 +00:00
sgjesse@chromium.org
99fbea324b
Make the direct call to native RegExp work
...
Single glitch in r3542 which caused the direct call to native regexp code to always bail out to the runtime system.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/523091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-06 12:21:28 +00:00
bak@chromium.org
1f3eba4470
- Adjust the number to string cache based on the max semispace size.
...
Flushed at compacting mark sweep.
- Simplified FindEntry by eliminating the counter.
Review URL: http://codereview.chromium.org/527006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-06 11:19:28 +00:00
sgjesse@chromium.org
429f3cf9f2
Direct call to native RegExp code from JavaScript.
...
Calls to RegExp no longer have to be via a call to the runtime system. A new stub have been added which can handle this call in generated code. The stub checks all the parameters and creates RegExp entry frame in the same way as it is created by the runtime system. Bailout to the runtime system is done whenever an uncommon situation is encountered or when the static data used is not initialized. After running the native RegExp code the last match info is updated like in the runtime system.
Currently only ASCII strings are handled.
Added another argument to the RegExp entry frame. It indicated whether the call is direct from JavaScript code or through the runtime system. This information is used when RegExp execution is interrupted. If an interruption happens when RegExp code is called directly a retry is issued causing the interruption to be handled via the runtime system. The reason for this is that the direct call to RegExp code does not support garbage collection.
Review URL: http://codereview.chromium.org/521028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-06 11:09:30 +00:00
kasperl@chromium.org
8618b9846b
Update the result size for ResolvePossiblyDirectEval from 1 to 2
...
following the change submitted in r3533.
Review URL: http://codereview.chromium.org/525063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-06 09:22:36 +00:00