Commit Graph

3461 Commits

Author SHA1 Message Date
whesse@chromium.org
20d4c6d52d Fix compilation error on 64-bit MacOS V8 compilation. ASSERT_EQ macro needs unambiguous similar integer types as arguments.
Review URL: http://codereview.chromium.org/2982005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 08:55:06 +00:00
vegorov@chromium.org
7780bea2f0 Virtually dispatched scavengers
Use virtually dispatched specialized scavengers instead of single generic ScavengeObjectSlow implementation.

Rollback of r5041 with assertion checking callback alignment removed. Map space is iterated in a special fashion during scavenges so special callback alignment is not required.

Review URL: http://codereview.chromium.org/2950003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 08:05:10 +00:00
ager@chromium.org
ef8baf25fc Revert revisions 5041 and 5042 introducing virtual scavenge
behavior. It breaks debug builds with snapshots on my machine.

TBR=vegorov@chromium.org
Review URL: http://codereview.chromium.org/2983001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 16:57:07 +00:00
ager@chromium.org
f6e049b0ce Remove the special error message for overflows when using
Function.prototype.apply.  This avoids having more than one error
message for stack overflow situations which makes testing a pain.

Review URL: http://codereview.chromium.org/2967003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 15:29:25 +00:00
serya@chromium.org
43e28a6fea Port prototype-call-stubs for normal objects (http://codereview.chromium.org/2801018).
Review URL: http://codereview.chromium.org/2860049

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 13:23:42 +00:00
yurys@chromium.org
abaf8347a5 Allow to capture stack trace for uncaught exceptions
Review URL: http://codereview.chromium.org/2961003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 13:17:27 +00:00
vegorov@chromium.org
4dd71ce221 Fix Win64 build problem introduced by r5041.
Review URL: http://codereview.chromium.org/2893009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 13:11:42 +00:00
vegorov@chromium.org
ef6cb2dd0b Use virtually dispatched specialized scavengers instead of single generic ScavengeObjectSlow implementation.
Review URL: http://codereview.chromium.org/2895008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 12:47:09 +00:00
whesse@chromium.org
4329a58b1c Code cleanup: reorder functions in codegen-x64.cc to agree with the order in codegen-ia32.cc. If svn blame shows this change, run svn blame on the previous version of the file to find the actual author of the lines.
Review URL: http://codereview.chromium.org/2955004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-09 13:20:12 +00:00
erik.corry@gmail.com
5bc0522ad4 Second half of number alloc change accidentally omitted from
last change.
Review URL: http://codereview.chromium.org/2919001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-08 13:50:13 +00:00
erik.corry@gmail.com
c205ffe05c Add number allocation call to runtime.cc instead of misusing
UnaryMinus.
Review URL: http://codereview.chromium.org/2899004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-08 13:16:51 +00:00
erik.corry@gmail.com
8c767e02f9 ARM: Add support for the VFP mov literal instruction and mov
between single VFP registers.  Math.pow implementation has
been updated with the new instructions.  This is a commit
of http://codereview.chromium.org/2813046/show for Rodolph
Perfetta.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-08 12:38:02 +00:00
erik.corry@gmail.com
068e0bc032 Add ReleaseStore function on OpenBSD.
Review URL: http://codereview.chromium.org/2916001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-08 08:12:17 +00:00
mikhail.naganov@gmail.com
03b566be92 Fix concurrent access to VMState::current_state_.
The main fix is for current_state() and external_callback() accessors.
I also applied memory access ordering on current_state_ modification,
mainly to reflect the fact that it is being shared among VM and profiler
sampler threads.

BUG=361

Review URL: http://codereview.chromium.org/2852047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-08 08:00:38 +00:00
erik.corry@gmail.com
149dea4ab0 Prepare push to trunk. We are now working on version 2.2.24.
Review URL: http://codereview.chromium.org/2887011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-07 12:09:22 +00:00
whesse@chromium.org
f7c85755ba Prevent invalid pre-parsing data passed in through the API from crashing V8.
Review URL: http://codereview.chromium.org/2876046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-07 10:28:22 +00:00
kaznacheev@chromium.org
4798d2c4f3 Fix crash introduced in r5019.
Note to self: never leave uninitialized objects in the code space.

Review URL: http://codereview.chromium.org/2800044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 13:48:51 +00:00
vitalyr@chromium.org
12e62f316d Make lint happy.
Review URL: http://codereview.chromium.org/2832051

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 13:43:21 +00:00
vitalyr@chromium.org
97234b4a25 Remove some extra calls in date.js.
A few hot Date.prototype functions used to be implemented as
DateGetFoo calling GetFooFrom(this), and other callers of GetFooFrom
did repeated date value extraction.  In this change GetFooFrom
functions were inlined into the functions on the prototype and the
other callers switched to using date values directly.

Review URL: http://codereview.chromium.org/2841041

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 12:57:46 +00:00
erik.corry@gmail.com
118a421067 Simplify the transitions in the Binary Op ICs. Now a single call
to the runtime will both patch in the more specialized binary op
stub and calculate the answer.  This eliminates the need to call
both the rest of the binary op and the patching runtime call.  The
runtime routines are altered to be more agressive in returning
Smis so we don't get spurious heap numbers as inputs to binary ops
while we are patching the binary op ICs.
Review URL: http://codereview.chromium.org/2843049

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 12:56:55 +00:00
vitalyr@chromium.org
7b521af105 Fix crash: handle all flat string types in regexp replace.
Review URL: http://codereview.chromium.org/2868046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 12:22:19 +00:00
podivilov@chromium.org
ae81e558fe Do not create handle in BreakLocationIterator::ClearDebugBreakAtIC
Debug::HandleWeakDebugInfo weak callback is crashed when there is no handle scopes on the stack.

Review URL: http://codereview.chromium.org/2835035

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 12:10:49 +00:00
lrn@chromium.org
b941a40a82 Convert Unicode code points outside the basic multilingual plane to the replacement character.
Previous behavior was to silently truncate the value to 16 bits.

Review URL: http://codereview.chromium.org/2832050

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 07:31:35 +00:00
lrn@chromium.org
90e9e99b3c RegExp replace with empty string optimization by Sandholm.
Review URL: http://codereview.chromium.org/2809048

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-05 12:49:00 +00:00
kaznacheev@chromium.org
8a4463306d Extracting relocation info from the code object.
It is now stored in a ByteArray referenced from the code object header.

Review URL: http://codereview.chromium.org/2812041

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-05 11:45:11 +00:00
erik.corry@gmail.com
8da222b010 Specialize GenericUnaryStub so that it knows whether it needs to
take negative zero into account.
Review URL: http://codereview.chromium.org/2850043

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-05 11:03:16 +00:00
kmillikin@chromium.org
b34151979b Prepare push to trunk. Now working on version 2.2.23.
Review URL: http://codereview.chromium.org/2827046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-05 10:33:20 +00:00
peter.rybin@gmail.com
6563b3a2fc Describe LiveEdit changes and support preview mode
Review URL: http://codereview.chromium.org/2883020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 20:46:04 +00:00
erik.corry@gmail.com
8b8185721d Make ignore-negative-zeros analysis a little sharper.
Review URL: http://codereview.chromium.org/2799048

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 20:24:40 +00:00
ager@chromium.org
06a28cbe57 Fix bug in date code (issue 736) where -0 was not mapped to 0. This caused the
runtime system to throw an exception because it expected smi arguments.


Review URL: http://codereview.chromium.org/2848038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 20:09:33 +00:00
erik.corry@gmail.com
92f2c471d5 ARM: Use VFP for non-Smi bitops results. This is basically Rodolph
Perfettas change from http://codereview.chromium.org/2829032 with
a tiny tweak to the unsigned shift right case.
Review URL: http://codereview.chromium.org/2861043

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 20:03:07 +00:00
ricow@chromium.org
eed4ed99c8 Add ES5 Object.isExtensible and Object.preventExtensions.
Review URL: http://codereview.chromium.org/2819034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 14:36:34 +00:00
serya@chromium.org
c56b92d65d This change allows generating call-stubs for objects with normal (non-fast) objects in the prototype chain. StubCompiler::CheckPrototypes does ne
If the top level object is a normal object the stub is stored in its prototype map.

Lookup result of type NORMAL is not covered (since the normal stub currently doesn't check the prototype chain).
Review URL: http://codereview.chromium.org/2801018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 14:15:04 +00:00
lrn@chromium.org
04da7b90c9 X64: Added register holding Smi::FromInt(1).
Don't use r15 for anything any more.

Review URL: http://codereview.chromium.org/2885018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 14:09:35 +00:00
ager@chromium.org
47b5b3f951 Use the number of in-object properties when deciding how many fast
properties to allow on an object. If there are many in-object
properties it is unlikely that the object is used as a dictionary and
we allow more map transitions to keep such objects in fast case.

Review URL: http://codereview.chromium.org/2818041

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 11:27:57 +00:00
erik.corry@gmail.com
f9eb21f950 Simplify ToBoolean if we know we have a Smi.
Review URL: http://codereview.chromium.org/2808039

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 08:42:22 +00:00
ager@chromium.org
a835641dee Landing for victorw@chromium.org.
Fix issues so v8 could be built as a DLL.

-. get rid of all the compiler warning by moving dllexport/dllimport
to the individual members for classes which have inline members.

-. update v8 gyp to build v8.dll for chromium multi-dll version (win
and component==shared_library)

Note: most of the code are contributed by sjesse.

Code review URL: http://codereview.chromium.org/2882009/show

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 07:39:42 +00:00
whesse@chromium.org
8afef876dd Fix problem in r4998. Initialize target of break and continue in fast smi loop on X64.
Review URL: http://codereview.chromium.org/2830033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-01 16:00:51 +00:00
whesse@chromium.org
94ae008739 Let relational comparison operators quickly compare a string with itself.
Review URL: http://codereview.chromium.org/2802028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-01 15:18:07 +00:00
erik.corry@gmail.com
5a54b7030d ARM: Don't emit a write barrier for an inlined keyed load
if the right hand side is a literal like true, false, etc.
Also if the value is not a likely Smi we inline the newspace
check.
Review URL: http://codereview.chromium.org/2833048

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-01 15:06:24 +00:00
lrn@chromium.org
59f2b6c825 X64: Made simpler version of fast-smi-loop code.
It avoids the overflow check on the increment.

Review URL: http://codereview.chromium.org/2835030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-01 13:19:32 +00:00
podivilov@chromium.org
9added5953 Clear function breakpoints in Debug::HandleWeakDebugInfo callback.
When removing debug_info from SharedFunctionInfo, clear all breakpoints associated with that debug_info.
This is needed because function will live in heap until next gc, and therefore can be found
by Runtime::FindSharedFunctionInfoInScript.

Review URL: http://codereview.chromium.org/2848032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-01 11:48:45 +00:00
peter.rybin@gmail.com
9b4369c7d8 LiveEdit: Support debug break slots in frame dropping implementation
Review URL: http://codereview.chromium.org/2844030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 17:29:00 +00:00
sgjesse@chromium.org
97ecc50377 ARM: Correctness fix to Math.pow optimization
The change in r4990 contained a bug in Math.pow when then exponent was a large negative smi. In that case calculating 1/Math.pow(x,-y) did not provide the correct result as Math.pow(x,-y) would overflow ti infinity. This was caught by Sputnik test S8.5_A13_T1.
Review URL: http://codereview.chromium.org/2815039

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 15:19:06 +00:00
sgjesse@chromium.org
bbb2648464 ARM: Fix GC bug with previous change
The change in r4990 contained a bug in Math.pow. One of the arguments for the call to runtime where clobbered if allocation of the heap number for the result failed.

Caught by a couple of Mozilla tests which does a lot of calls to Math.pow.

Fix presubmit error in x64.
Review URL: http://codereview.chromium.org/2847037

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 13:39:03 +00:00
whesse@chromium.org
b122fbd363 Decide that different detectable objects are not equal without calling runtime, on all platforms.
Review URL: http://codereview.chromium.org/2805046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 13:24:47 +00:00
ager@chromium.org
6044b33766 Implement IC for storing to dictionary case objects.
The IC stub is completely generic, so there will only be one such stub
in the system.

Added a new overloaded version of the macro assembler RecordWrite
method for cases where we have the address we store to computed up
front.

Review URL: http://codereview.chromium.org/2804029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 12:27:49 +00:00
sgjesse@chromium.org
ff6c4fe680 ARM: Special code for raising to the power of an integer
When calculating Math.pow where the exponent is a smi use a simple loop to calculate the result.

Added support for the vmov instruction moving from one doubleword extension register to another.

Added some Math.pow tests which partially covers what is in the Sputnik tests.
Review URL: http://codereview.chromium.org/2804033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 12:22:15 +00:00
lrn@chromium.org
75021a03d3 Prepare push to trunk. We are now working on version 2.2.22.
Review URL: http://codereview.chromium.org/2886005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 08:57:23 +00:00
sgjesse@chromium.org
fd5a7b37a2 ARM: Fix disassembly of double registers
Added a few disassembler tests for vadd, vsub, vmul and vdiv.
Review URL: http://codereview.chromium.org/2823036

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 08:46:19 +00:00
lrn@chromium.org
0653689450 Fix Chromium issue 47824.
In rare cases a two-byte string was mistaken for an ascii-string.

Review URL: http://codereview.chromium.org/2858033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 07:40:40 +00:00
lrn@chromium.org
ade53c4282 X64: Make the ToBoolean inline code do even less if the value is known to be a smi.
Review URL: http://codereview.chromium.org/2834028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 14:15:34 +00:00
lrn@chromium.org
d539095bcb X64: A number of small tweaks.
Fix bug in disassembler output (using non-generic registers for memory operands in some cases).
Fix bug in movsxbq and make REX optional in movzx?q.

Review URL: http://codereview.chromium.org/2834027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 14:03:11 +00:00
vitalyr@chromium.org
6328df4fa2 Type info: fix three bit representation of smi type.
Review URL: http://codereview.chromium.org/2802022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 13:48:20 +00:00
sgjesse@chromium.org
65018d9123 ARM: Use the vsqrt instruction when available
vsqrt is used to calculate Math.sqrt(x), Math.pow(x, 0.5) and Math.pow(x, -0.5). Code size doesn't matter, as %_MathSqrt and %_MathPow are only called in one place each.
Review URL: http://codereview.chromium.org/2885002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 09:40:36 +00:00
ricow@chromium.org
eff34b9952 Update JSON.stringify to floor the space parameter (fixes issue 753).
Review URL: http://codereview.chromium.org/2877004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 07:22:40 +00:00
whesse@chromium.org
363060ca23 Ensure that ToPrimitive is called on all objects involved in comparisons <, <=, >, >=. Ensures that ToPrimitive is called when comparing an object to undefined. Fixes bugs on all platforms.
Review URL: http://codereview.chromium.org/2834022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 06:47:19 +00:00
podivilov@chromium.org
b2b140a525 Provide actual breakpoints locations in response to setBreakpoint and listBreakpoints requests.
Review URL: http://codereview.chromium.org/2799037

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 12:09:29 +00:00
erik.corry@gmail.com
bcfaba24c1 Do integer mod via sum-of-digits technique. This benefits the date
code.
Review URL: http://codereview.chromium.org/2876011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 11:47:23 +00:00
fschneider@chromium.org
eaaa2d8559 Prepare push to trunk. We are now working on version 2.2.21.
Review URL: http://codereview.chromium.org/2882002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 11:17:55 +00:00
whesse@chromium.org
8fda0670ef Remove not-both-smis optimization on FloatingPointHelper::LoadNumbersAsIntegers on X64 platform.
Review URL: http://codereview.chromium.org/2861031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 10:54:07 +00:00
yurys@chromium.org
7832dd1b97 Fix 15.2.3.4 es5conform test
TBR=mnaganov,sgjesse
Review URL: http://codereview.chromium.org/2832029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 09:25:09 +00:00
yurys@chromium.org
8896e45dec Object.getOwnPropertyNames should be free of duplicates
BUG=41243
Review URL: http://codereview.chromium.org/2825026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 08:31:31 +00:00
lukezarko
5751d8f50c Avoid a potential null dereference wrt the CPU profiler.
GetActiveProfilerModules()/PauseProfiler()/ResumeProfiler() can be reached
from the API when the --prof runtime flag is not set, leading to null
dereferences. Verify that Logger::profiler_ is non-NULL before using it.

Review URL: http://codereview.chromium.org/2843023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 15:57:30 +00:00
lrn@chromium.org
49c4718443 Fix bug in CheckBothPositiveSmi macro.
Fix lint.

Review URL: http://codereview.chromium.org/2826021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4952 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 12:31:49 +00:00
lrn@chromium.org
f0529878d1 Add special case of taking a substring that is the entire string to stub.
Review URL: http://codereview.chromium.org/2800027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4951 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 11:24:41 +00:00
ricow@chromium.org
faaf524445 Fixes bug in Array.prototype.lastIndexOf when called with null or undefined as fromIndex argument. (fixes issue 754).
Review URL: http://codereview.chromium.org/2840021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 09:28:38 +00:00
vegorov@chromium.org
8036035777 Don't make any decisions on old space limits after scavenges.
We just do not possess enough information at that point.

Review URL: http://codereview.chromium.org/2836026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 08:59:52 +00:00
lrn@chromium.org
991af26519 Less intrusive patch for regexp bug.
Review URL: http://codereview.chromium.org/2843024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 07:51:46 +00:00
ager@chromium.org
b71fe5b61e Fix bug in JSON.stringify where Boolean objects are incorrectly
unwrapped.

This fixes issue 752.
Review URL: http://codereview.chromium.org/2845023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 07:45:52 +00:00
lrn@chromium.org
7b46a1f49d Fix bug in regexp exec with global regexps.
Review URL: http://codereview.chromium.org/2826020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 07:00:29 +00:00
whesse@chromium.org
667c5e84a1 Port optimization of comparison with a trivial LHS from ia32 to x64.
Review URL: http://codereview.chromium.org/2868028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 14:22:25 +00:00
whesse@chromium.org
d0a9f76261 Fix error in for-in on x64 platform using full compiler with keyed store IC.
BUG=v8:748

http://code.google.com/p/v8/issues/detail?id=748

Review URL: http://codereview.chromium.org/2810027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 14:02:36 +00:00
vitalyr@chromium.org
8ab6832203 Add "has fast elements" bit to maps and use it in inlined keyed loads.
A potential issue with this change is creating lots of maps when
objects flip between fast/slow elements modes.  We could add special
transitions to avoid this.  Yet testing this on our benchmarks, gmail,
and wave seems to indicate that this is not a real problem.

Review URL: http://codereview.chromium.org/2870018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 13:56:35 +00:00
kaznacheev@chromium.org
1e3743a4dd Fixing the regression introduced in r4716.
The regression made 2 tests fail on ia32 with --always-full-compiler.

Review URL: http://codereview.chromium.org/2862028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 12:31:49 +00:00
vegorov@chromium.org
1bb0ef0af4 Fix compilation failure on Win.
Review URL: http://codereview.chromium.org/2821016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 12:11:24 +00:00
vegorov@chromium.org
ae39e059c2 Take survival rates of young objects into account when choosing old generation limits.
Stable high survival rates of young objects both during partial and
full collection indicate that mutator is either building or modifying
a structure with a long lifetime.

In this case we aggressively raise old generation memory limits to
postpone subsequent mark-sweep collection and trade memory space
for the mutation speed.

Review URL: http://codereview.chromium.org/2809032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 11:44:23 +00:00
sandholm@chromium.org
4695ef1a09 Change kMinComplexMemCopy to 64 for IA32. It's just better.
Review URL: http://codereview.chromium.org/2818028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 11:21:58 +00:00
erik.corry@gmail.com
a4a757d74f ARM: Remove spilled scopes.
Review URL: http://codereview.chromium.org/2848023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 11:05:38 +00:00
lrn@chromium.org
40d86c616c X64: Remove more fpu code. Unroll more local initialization loops.
Review URL: http://codereview.chromium.org/2815028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 09:03:49 +00:00
erik.corry@gmail.com
251b1c5f93 ARM: Remove a bunch of spilled scopes. Still a lot to go.
Review URL: http://codereview.chromium.org/2828004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 07:54:48 +00:00
lrn@chromium.org
0dee9a7942 X64: Change some fpu operations to use XMM registers.
Review URL: http://codereview.chromium.org/2827022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 14:05:18 +00:00
erik.corry@gmail.com
ca8298273a ARM: Fix bug introduced in 4783 (2.2.15) that caused the
result of 1 << x to be miscalculated for some inputs.
Review URL: http://codereview.chromium.org/2848021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 13:44:11 +00:00
lrn@chromium.org
a2fc244de2 X64: A bunch of small fixes.
Make push/pop use emit_optional_rex32.
Fix bug in disassembler (swapped name of comisd/ucomisd).
Use fstp in FCmp macro.

Review URL: http://codereview.chromium.org/2818026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 11:48:30 +00:00
whesse@chromium.org
132fea7980 Use SSE2 registers when comparing identical heap numbers on X64.
Review URL: http://codereview.chromium.org/2850018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 09:21:32 +00:00
kaznacheev@chromium.org
927750571c Remove redundant checks in and around GenerateDictionaryLoad.
Similar or duplicate checks are scattered around the code before doing the dictionary load. 
Also the entire branch in GenerateCallNormal that handles global/builtin receiver is 
guaranteed to bail out from GenerateDictionaryLoad, so there is no point in generating it at all.

The purpose of the patch is:
- making C++ code more compact and transparent,
- not generating dead code. 

There is a tiny performance gain. The patch is ia32 only for now.

Please tell me if I am missing anything.


Review URL: http://codereview.chromium.org/2801007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 09:10:21 +00:00
ricow@chromium.org
0b11e5ba22 Prepare push to trunk. Now working on version 2.2.20.
Review URL: http://codereview.chromium.org/2815025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 08:51:53 +00:00
ricow@chromium.org
be531accc0 Add regression test for the code flushing in issue 474 (which was
fixed in revision 4921).

This also enables codeflushing by default.

Review URL: http://codereview.chromium.org/2829020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 08:02:06 +00:00
ricow@chromium.org
a330683b00 Only flush code when there are no heap allocated locals in the scopeinfo.
When flushing code we can potentially flush code with a scopeinfo that
we later need to resolve variables. This makes an explicit check that
there are heap allocated locals in the scopeinfo.


Review URL: http://codereview.chromium.org/2836021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 07:16:09 +00:00
lrn@chromium.org
41d9d375e3 Lower waste from alignment of deferred code blocks.
Some ARM chips load instructions 8 byte at a time.

Review URL: http://codereview.chromium.org/2809029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 07:03:34 +00:00
mikhail.naganov@gmail.com
b6e6ab6972 Heap profiler: perform a GC round before taking a snapshot
to get rid of global object loaded from a snapshot. This
eliminates the "double global object" issue. Thanks to Mads
for suggesting this!

Review URL: http://codereview.chromium.org/2865013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-22 14:58:08 +00:00
lrn@chromium.org
05fa888927 Made scanner follow coding style.
Review URL: http://codereview.chromium.org/2832018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-22 12:31:24 +00:00
erik.corry@gmail.com
7287aff403 Augment trace-ic to provide information on patching inlined loads.
Review URL: http://codereview.chromium.org/2818023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-22 12:12:32 +00:00
lrn@chromium.org
2bd8d3323b X64: Change strategy for spilling to match ia32. It's just better.
Align deferred code blocks to 16-byte address boundaries.

Review URL: http://codereview.chromium.org/2855018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-22 10:07:57 +00:00
erik.corry@gmail.com
53340b2624 Add movw and movt support for ARMv7. This includes some code from
Zhang Kun.  For now we only emit movw and movt in places where no
relocation is needed.  Small performance boost (around 0.5%).
Also adds support for turning ALU operations (eor etc.) with
large immediates into mvn or movw followed by a register-based
ALU operation.
Review URL: http://codereview.chromium.org/2821014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-22 08:38:32 +00:00
evan@chromium.org
6b1d21c662 Use this->Foo() in some places due to two-phase lookup.
This is required by more strict compilers (Clang).
Review URL: http://codereview.chromium.org/2037004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-21 20:52:43 +00:00
lrn@chromium.org
324a6df321 X64: Fix bug in LoadSSE2NumberOperands. It can be called with two smis!
Remove some unused labels.

Review URL: http://codereview.chromium.org/2861011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-21 12:39:37 +00:00
lrn@chromium.org
ed55948864 X64: Reapply fix for allocating HeapNumber results for >>>.
Also skip case where both number arguments are smis.

Review URL: http://codereview.chromium.org/2814021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-21 11:21:36 +00:00
sgjesse@chromium.org
bdbda3b6d0 ARM: Update the generation of the name for GenericBinaryOpStub
Review URL: http://codereview.chromium.org/2840011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-21 10:34:25 +00:00
whesse@chromium.org
48f2458bd9 Avoid redundant smi check in x64 loading of floats into SSE2 registers.
Review URL: http://codereview.chromium.org/2862004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-21 09:04:44 +00:00