mikhail.naganov@gmail.com [Tue, 22 Jun 2010 14:58:08 +0000 (14:58 +0000)]
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
lrn@chromium.org [Tue, 22 Jun 2010 12:31:24 +0000 (12:31 +0000)]
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
erik.corry@gmail.com [Tue, 22 Jun 2010 12:12:32 +0000 (12:12 +0000)]
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
lrn@chromium.org [Tue, 22 Jun 2010 10:07:57 +0000 (10:07 +0000)]
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
erik.corry@gmail.com [Tue, 22 Jun 2010 08:38:32 +0000 (08:38 +0000)]
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
evan@chromium.org [Mon, 21 Jun 2010 20:52:43 +0000 (20:52 +0000)]
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
lrn@chromium.org [Mon, 21 Jun 2010 12:39:37 +0000 (12:39 +0000)]
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
lrn@chromium.org [Mon, 21 Jun 2010 11:21:36 +0000 (11:21 +0000)]
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
sgjesse@chromium.org [Mon, 21 Jun 2010 10:34:25 +0000 (10:34 +0000)]
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
whesse@chromium.org [Mon, 21 Jun 2010 09:04:44 +0000 (09:04 +0000)]
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
lrn@chromium.org [Mon, 21 Jun 2010 08:51:44 +0000 (08:51 +0000)]
X64: Load HeapNumberMap once in BinaryOpStub, and reuse it.
Review URL: http://codereview.chromium.org/2819012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4902
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 18 Jun 2010 12:55:04 +0000 (12:55 +0000)]
X64: Make more computations happen on 32-bit values instead of on smis.
Review URL: http://codereview.chromium.org/2816014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4899
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 18 Jun 2010 10:52:59 +0000 (10:52 +0000)]
API: Resolve linker issues with using V8 as a DLL
This changes the way the constants kJSObjectType, kFirstNonstringType and kProxyType are made available to the inlined part of the V8 API. This change to fixed constants resolves linker this linker error Windows
error LNK2001: unresolved external symbol "public: static int v8::internal::Internals::kJSObjectType" (?kJSObjectType@Internals@internal@v8@@2HA)
when linking against a V8 DLL.
This change also makes it possible to build all the C++ tests with ENABLE_DEBUGGER_SUPPORT not defined. Now C++ tests run ENABLE_DEBUGGER_SUPPORT not defined, and only the JavaScript tests which tests the debugger fails when ENABLE_DEBUGGER_SUPPORT is not defined.
Review URL: http://codereview.chromium.org/2820016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4898
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 17 Jun 2010 21:51:51 +0000 (21:51 +0000)]
ARM: Load the heap number map into a register and keep it
there throughout the binary op stub (used for checking and
creating heap numbers).
Review URL: http://codereview.chromium.org/2843010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4897
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 17 Jun 2010 17:13:40 +0000 (17:13 +0000)]
Push AccessorInfo data directly if they reside in old space.
Review URL: http://codereview.chromium.org/2840004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4896
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 17 Jun 2010 16:19:28 +0000 (16:19 +0000)]
Track ascii-ness of data in externalized strings.
If a two-byte string only contains ascii characters, then we can save
memory when flattening a cons string containing it. Similarly we can
use this in Array.prototype.join implementation. To track this a new
bit is added to instance type. This bit is used as a hint in generated
code and in runtime functions.
To enable testing a new V8 extension is added controlled by
--expose-externalize-string flag.
Review URL: http://codereview.chromium.org/2762008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4894
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 17 Jun 2010 15:48:43 +0000 (15:48 +0000)]
X64: Change some smi operations to work on untagged integers instead.
Use direct reading and writing of integers from Smi fields.
Change RecordWrite with 0 offset to take untagged index instead of
smi tagged index.
Review URL: http://codereview.chromium.org/2872005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4893
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 17 Jun 2010 12:56:55 +0000 (12:56 +0000)]
Heap profiler: add a missing link between a function closure and shared function info.
Review URL: http://codereview.chromium.org/2846012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4891
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Thu, 17 Jun 2010 12:47:08 +0000 (12:47 +0000)]
Fix a bug when top level break points fall into the last function in script.
Review URL: http://codereview.chromium.org/2824007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4890
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 17 Jun 2010 10:45:37 +0000 (10:45 +0000)]
ARM: Minor refactoring of RecordWrite, does not require the offset to
be in a register anymore. Code also updated to use the bitfield
instructions when available. This is a commit of
http://codereview.chromium.org/2845003/show for Rodolph Perfetta.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4889
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 17 Jun 2010 08:41:48 +0000 (08:41 +0000)]
Move definition of NegateConditon from assembler*-inl.h files to
assembler*.h files to make clang happy. There was no reason for having
the definition in the -inl.h files in the first place.
Review URL: http://codereview.chromium.org/2825008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4888
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 16 Jun 2010 20:03:32 +0000 (20:03 +0000)]
ARM: Special case for modulus of two smis in the generic binary opration stub
When lhs and rhs are positive smis and rhs is a power of two perform modulus by masking.
Review URL: http://codereview.chromium.org/2873001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4884
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 16 Jun 2010 19:53:24 +0000 (19:53 +0000)]
Fix issue 738: make compilable with profilingsupport=off
BUG=738
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/2800009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4883
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Wed, 16 Jun 2010 14:50:07 +0000 (14:50 +0000)]
Save actual break point location to script break point object.
Review URL: http://codereview.chromium.org/2864003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4879
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Jun 2010 12:32:34 +0000 (12:32 +0000)]
Remove the comisd instruction from the ia32 and x64 assemblers. We
should always use ucomisd.
Add missing pop from floating-point stack in case of allocation failure.
Review URL: http://codereview.chromium.org/2831009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4878
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 16 Jun 2010 12:11:22 +0000 (12:11 +0000)]
X64: Change overflow checks to only jump on overflow.
Costs an extra move because the result is calculated in a scratch register
and only moved to destination on non-overflow in order to preserve source
registers in case of overflow.
Review URL: http://codereview.chromium.org/2823004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4877
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 16 Jun 2010 10:36:47 +0000 (10:36 +0000)]
Prepare push to trunk. We are now working on version 2.2.19.
Review URL: http://codereview.chromium.org/2806009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4874
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Wed, 16 Jun 2010 10:03:47 +0000 (10:03 +0000)]
Port KeyedCallIC implementation to x64 and ARM.
Also edited ic-ia32.cc for clarity and better formatting.
Review URL: http://codereview.chromium.org/2853003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4873
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Jun 2010 08:29:25 +0000 (08:29 +0000)]
Change hash computation for transcendental cache to use arithmetic
shifts. Leads to fewer collisions.
Review URL: http://codereview.chromium.org/2809012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4872
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 15 Jun 2010 17:01:02 +0000 (17:01 +0000)]
Remove old named property query API.
Review URL: http://codereview.chromium.org/2742007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4867
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 15 Jun 2010 12:28:25 +0000 (12:28 +0000)]
Fix HeapSnapshot test in the case when snapshotting is enabled.
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/2843002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4865
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 15 Jun 2010 11:44:07 +0000 (11:44 +0000)]
Heap profiler: publish API and add test.
Review URL: http://codereview.chromium.org/2822009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4864
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 14 Jun 2010 21:03:59 +0000 (21:03 +0000)]
Add external references used for regexp execution to the serializer.
Review URL: http://codereview.chromium.org/2838001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4863
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 14 Jun 2010 13:55:38 +0000 (13:55 +0000)]
Add support for elements and array indices in Object.defineProperty
(fixes bug 619).
This also fixes a bug in GetOwnProperty in runtime.cc discovered by
the new test cases. That part of the code was not testable before
since we had no way of correctly defining properties on elements.
Review URL: http://codereview.chromium.org/2832001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4862
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 14 Jun 2010 13:19:16 +0000 (13:19 +0000)]
Fix Mac build of r4860
Build error:
test/cctest/test-api.cc: In function 'void ExternalArrayInfoTestHelper(v8::ExternalArrayType)':
test/cctest/test-api.cc:10069: warning: control may reach end of non-void function 'int ExternalArrayElementSize(v8::ExternalArrayType)' being inlined
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2826002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4861
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 14 Jun 2010 13:09:27 +0000 (13:09 +0000)]
API: Added functions to retreive information on indexed properties managed by the embedding layer
BUG=737
TEST=test-api/PixelArrayInfo, test-api/ExternalArrayInfo
Review URL: http://codereview.chromium.org/2818003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4860
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 14 Jun 2010 12:55:37 +0000 (12:55 +0000)]
Another x64 build fix. Actually builds now.
KExponentBits -> kExponentBits.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/2835001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4859
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 14 Jun 2010 12:43:00 +0000 (12:43 +0000)]
Fix build by fixing a typo in codegen-x64.cc.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/2824002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4858
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 14 Jun 2010 12:08:39 +0000 (12:08 +0000)]
Remove direct reference from builtins code to global object. Load the
global object through the context instead.
Review URL: http://codereview.chromium.org/2822003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4857
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 14 Jun 2010 11:37:05 +0000 (11:37 +0000)]
ARM: Change code generation for function return
Generating code for function return on ARM is now aligned with the other platforms. The first non-shadowed return statement encountered will emit code for function return and all other returns including the fall through at the bottom of a function will jump to that.
Review URL: http://codereview.chromium.org/2815003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4856
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 14 Jun 2010 11:20:36 +0000 (11:20 +0000)]
ARM: Be more smart about switching instructions when immediates
don't fit in the instruction. Use ubfx and sbfx more.
Review URL: http://codereview.chromium.org/2826001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4855
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 14 Jun 2010 10:21:24 +0000 (10:21 +0000)]
Change tests for string type in RegExpExecStub on all platforms.
Review URL: http://codereview.chromium.org/2772004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4854
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 14 Jun 2010 10:10:42 +0000 (10:10 +0000)]
Only update the stub cache tables with monomorphic stubs used by
megamorphic call sites. This removes a lot of contention in the
tables.
Review URL: http://codereview.chromium.org/2813002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4853
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 14 Jun 2010 07:27:25 +0000 (07:27 +0000)]
Prepare push to trunk. We are now working on version 2.2.18.
Review URL: http://codereview.chromium.org/2824001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4850
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 11 Jun 2010 17:03:19 +0000 (17:03 +0000)]
Faster implementation of Heap::RecordWrites.
Naive algorithm for to update RSets for a span is rather inefficient
as it performs many unnecessary operations (retrieving a mask, updating
it with the same bit as many pointers go into a single region).
Review URL: http://codereview.chromium.org/2727009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4849
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 11 Jun 2010 16:34:59 +0000 (16:34 +0000)]
The new JS Heap Profiler: the main part.
There is no test in this patch, because the test uses V8 API,
which is coming in a separate change list.
Review URL: http://codereview.chromium.org/2722005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4848
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 11 Jun 2010 12:26:41 +0000 (12:26 +0000)]
Fix thinko in arm transcendental cache probing introduced just before
committing.
Review URL: http://codereview.chromium.org/2764009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4847
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 11 Jun 2010 11:19:27 +0000 (11:19 +0000)]
Allow users to specify a scons build cache directory.
Review URL: http://codereview.chromium.org/2745014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4846
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 11 Jun 2010 10:25:34 +0000 (10:25 +0000)]
Add missing files accidentally left out on last commit.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4844
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 11 Jun 2010 10:18:44 +0000 (10:18 +0000)]
Implement transcendental cache probing in generated code on ARM.
Fixed hash code computation on ia32 and x64 to match the runtime
system (change arithmetic shift right to logical shift right).
Review URL: http://codereview.chromium.org/2731007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4843
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 11 Jun 2010 08:52:36 +0000 (08:52 +0000)]
Only perform code flusing test if we actually do code flushing.
Puts a check into the code flushing test to only perform this if the
flush_code flag is set to true.
Review URL: http://codereview.chromium.org/2734006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4842
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 11 Jun 2010 07:06:51 +0000 (07:06 +0000)]
Put code flushing behind flag - defaults to false.
Since we have an issue with code flusing on the trybots preventing us
from pushing to chromium, a new flag for enabling code flushing,
--flush_code, is introduced with this change (defaulting to false).
Review URL: http://codereview.chromium.org/2734005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4840
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 10 Jun 2010 14:37:49 +0000 (14:37 +0000)]
Use static type information in ConstantIntBinaryOperation on x64.
Review URL: http://codereview.chromium.org/2754004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4836
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 10 Jun 2010 09:02:16 +0000 (09:02 +0000)]
Better handling of stepping out of a function
With the change in r4820 all return statements are now breakable like any statement, so stepping will stop before the return statement actually returning from a function. With this change the position when breaking in the function return (after executing the return statement) will be the actual end of the function. At this point the return value is available as it saved to the stack by the debug break at return handling. Added information on the actual value returned from the function to the debugger.
Review URL: http://codereview.chromium.org/2783002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4835
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Thu, 10 Jun 2010 05:06:39 +0000 (05:06 +0000)]
Add logic from KeyedLoadIC generic stub to KeyedCallIC megamorphic stub.
This should make access faster for arrays of functions.
Review URL: http://codereview.chromium.org/2754003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4834
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 9 Jun 2010 11:15:54 +0000 (11:15 +0000)]
Use static type information on x64 in LikelySmiBinaryOperation.
Refactor check for smi operands, using type information, on ia32 and x64.
Review URL: http://codereview.chromium.org/2771001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4831
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 9 Jun 2010 09:27:54 +0000 (09:27 +0000)]
Prepare push to trunk. We are now working on version 2.2.17.
Review URL: http://codereview.chromium.org/2757004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4828
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 9 Jun 2010 07:40:35 +0000 (07:40 +0000)]
ARM: Fix bug in r4820 related to code for additional break positions.
These issues where unly revealed in debug mode
Review URL: http://codereview.chromium.org/2733006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4827
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 9 Jun 2010 07:00:33 +0000 (07:00 +0000)]
Factor out StringsStorage from CpuProfilesCollection.
Review URL: http://codereview.chromium.org/2769001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4826
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 8 Jun 2010 12:50:42 +0000 (12:50 +0000)]
x64: Fix code to return from debug break slot
On x64 the return from debug break slot did not pop off the return address.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2731002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4823
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 8 Jun 2010 12:44:24 +0000 (12:44 +0000)]
Add test_b(Operand, imm8) to ia32 disassembler.
Review URL: http://codereview.chromium.org/2765001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4822
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 8 Jun 2010 12:20:24 +0000 (12:20 +0000)]
Add parenthesis around '&&' within '||'
Warning by some gcc versions. Adding the parenthesis made the condition correct.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2725003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4821
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 8 Jun 2010 12:04:49 +0000 (12:04 +0000)]
More precise break points and stepping when debugging
Added support for more precise break points when debugging and stepping. To achieve that additional nop instructions are inserted where breaking would otherwise be impossible. The number of nop instructions inserted are sufficient to make place for patching with a call to a debug break code stub. On Intel that is 5 nop's for 32-bit and 13 for 64-bit. Om ARM 3 nop instructions (12 bytes) are required.
In order to avoid inserting nop's in to many places a simple ast checker have been added to check whether there are breakable code in a statement or expression. If it is possible to break in an expression no additional break enabeling code is inserted.
Added break locations to the true and false part of a conditional expression.
Added stepping tests to cover more constructs.
These changes are only in the full compiler.
Changed the default value for the option --debugger in teh d8 shell from true to false. The reason for this is that with --debugger turned on the full compiler will be used for all code in when running d8, which can be unexpeceted.
Review URL: http://codereview.chromium.org/2693002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4820
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 8 Jun 2010 11:27:00 +0000 (11:27 +0000)]
Move token-related constants from CodeEntry to TokenEnumerator.
Review URL: http://codereview.chromium.org/2745002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4819
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 8 Jun 2010 11:23:48 +0000 (11:23 +0000)]
Fix building without debugger suport.
Review URL: http://codereview.chromium.org/2733003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4818
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 8 Jun 2010 11:20:36 +0000 (11:20 +0000)]
Fix bug in mjsunit/const-eval-init causing objects to be initialized to undefined.
In mjsunit/const-eval-init - testInitSlowCaseExtension a range of objects are initialized to undefined instead of a value because the variable i is within quotes (i.e., the source becommes "a1 = i" instead of "a1 = 1".
This should have no impact on the test, I just stumbled over this on
an unrelated matter.
Review URL: http://codereview.chromium.org/2758002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4817
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 8 Jun 2010 09:35:47 +0000 (09:35 +0000)]
Remove the SetExternalStringDiposeCallback API
Changed the disposal of external string resources to call a virtual Dispose method on the resource. The default inplementation of Dispose deletes the object and will capture the delete operator matching the new operator used to allocate the object.
Review URL: http://codereview.chromium.org/2658008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4816
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 8 Jun 2010 06:20:49 +0000 (06:20 +0000)]
Add an overloaded PreCompile method that takes a Handle<String>.
Code review URL: http://codereview.chromium.org/2633004/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4815
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 7 Jun 2010 15:39:10 +0000 (15:39 +0000)]
Flushing of code from functions that we expect not to use again.
This adds an additional step to full gc, removing code from functions
that are no longer in the compilation cache. The code is replaced with
a lazy compile version enabling us to recompile the function in case
we do actually need it again.
Review URL: http://codereview.chromium.org/2632003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4814
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 7 Jun 2010 13:16:05 +0000 (13:16 +0000)]
Revert change 4812 due to performance problems. This was a change in string addition on ia32.
Review URL: http://codereview.chromium.org/2706001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4813
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 7 Jun 2010 12:15:10 +0000 (12:15 +0000)]
Improve generated code for string encoding tests on ia32.
Review URL: http://codereview.chromium.org/2673001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4812
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 7 Jun 2010 11:31:44 +0000 (11:31 +0000)]
Count Mark-Compact/Mark-Sweep collections only after compaction decision was made
Review URL: http://codereview.chromium.org/2665001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4811
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 7 Jun 2010 11:02:43 +0000 (11:02 +0000)]
Prepare push to trunk. We are now working on version 2.2.16.
Review URL: http://codereview.chromium.org/2640007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4808
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 7 Jun 2010 10:54:42 +0000 (10:54 +0000)]
Add regression tests for issues 728, 732
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/2698004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4807
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 7 Jun 2010 09:36:30 +0000 (09:36 +0000)]
Revert r4782. Fix issues 728, 732.
Review URL: http://codereview.chromium.org/2701003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4806
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 7 Jun 2010 08:49:07 +0000 (08:49 +0000)]
Add an API to control the disposal of external string resources
A new callback have been added which - if set - will be called to dispose of external string resources passed from the embedder to the V8 engine.
Review URL: http://codereview.chromium.org/2645004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4805
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Mon, 7 Jun 2010 08:27:32 +0000 (08:27 +0000)]
Extend CallIC to support non-constant names.
This speeds up constructs like this:
var zz='replace'; '123'[zz]('3','4');
Review URL: http://codereview.chromium.org/2280007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4804
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 7 Jun 2010 07:12:00 +0000 (07:12 +0000)]
Port fast eval calls to x64 and ARM. For global variables that can
only be shadowed by eval-introduced variables we usually do not need
to do a context lookup in the runtime system.
Review URL: http://codereview.chromium.org/2672001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4803
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 4 Jun 2010 16:20:34 +0000 (16:20 +0000)]
Direct load of global function prototype.
As most of call IC code is tied to a context anyway we can save a few dependent loads by having a direct reference to an initial map of a global function.
Review URL: http://codereview.chromium.org/2239009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4802
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Fri, 4 Jun 2010 13:43:41 +0000 (13:43 +0000)]
Fix issue in previous test optimization
Review URL: http://codereview.chromium.org/2653002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4801
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Fri, 4 Jun 2010 13:37:28 +0000 (13:37 +0000)]
Simplify criteria for doing an optimized test call
Review URL: http://codereview.chromium.org/2662002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4800
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Fri, 4 Jun 2010 11:58:40 +0000 (11:58 +0000)]
Simplify regexp test call when the regexp starts and ends with '.*'.
Review URL: http://codereview.chromium.org/2645002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4799
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 4 Jun 2010 11:57:01 +0000 (11:57 +0000)]
Rename ThreadManager::IterateThreads to ThreadManager::IterateArchivedThreads
The IterateThreads method only iterates archived threads. If all
threads are to be iterated an additional iteration of the current active
stack is also needed.
Review URL: http://codereview.chromium.org/2655002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4798
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 4 Jun 2010 11:49:44 +0000 (11:49 +0000)]
First phase of migration to new named property query callbacks.
Eventually named property query callbacks will return attributes
(as an integer) or an empty handle if property is not intercepted.
To gradually migrate to this new API, USE_NEW_QUERY_CALLBACK
macro would control if old or new style API is used.
So the migration plan is:
1) introduce new API which should be explictily enabled;
2) switch to new API defining USE_NEW_QUERY_CALLBACK before
include of <v8.h> (that would require changes to client code as well)
3) remove old API from v8
4) remove #define USE_NEW_QUERY_CALLBACK from clients.
Review URL: http://codereview.chromium.org/2576003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4797
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 4 Jun 2010 11:30:55 +0000 (11:30 +0000)]
Add optimized version of memcpy on ia32.
Only used in one place right now.
Still room for tweaking.
Review URL: http://codereview.chromium.org/2582001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4796
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 4 Jun 2010 10:46:04 +0000 (10:46 +0000)]
Add test_b(Operand, immediate) to ia32 assembler, and use it where possible. Improve comparison to a constant one-character string. Use CmpInstanceType in more places on ia32. Add IsObjectJSObjectType and IsInstanceJSObjectType to ia32 macro assembler, using a single branch for a range test.
Review URL: http://codereview.chromium.org/2586001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4795
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 4 Jun 2010 10:19:19 +0000 (10:19 +0000)]
Optimize calls to evals. Most of the time there is no reason to
perform a context lookup in the runtime system for the 'eval'
function. Instead load the 'eval' function from the global context in
generated code if it is not shadowed.
Will port to other platforms as a separate change.
Review URL: http://codereview.chromium.org/2666001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4794
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dimich@chromium.org [Fri, 4 Jun 2010 07:53:40 +0000 (07:53 +0000)]
Remove unused tpedef.
Review URL: http://codereview.chromium.org/2560002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4793
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 3 Jun 2010 11:31:19 +0000 (11:31 +0000)]
Fix double to integer conversions in runtime string indexing.
Review URL: http://codereview.chromium.org/2577001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4791
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 3 Jun 2010 09:32:07 +0000 (09:32 +0000)]
Make StringCharCodeAt runtime function do what it name implies and not
just indexed string access.
The difference is that String.prototype.charCodeAt accepts any number
as an index, whereas string[] only accepts array indices.
Review URL: http://codereview.chromium.org/2467006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4790
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 2 Jun 2010 14:37:47 +0000 (14:37 +0000)]
Change keyed load IC interface on x64 to pass arguments in registers.
Review URL: http://codereview.chromium.org/2470001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4787
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 2 Jun 2010 11:05:06 +0000 (11:05 +0000)]
Fix bug in test case that made it fail to compile in non-debug mode.
Using ASSERT_EQ instead of CHECK_EQ means that a variable becomes unused.
Review URL: http://codereview.chromium.org/2475003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4785
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 2 Jun 2010 10:47:50 +0000 (10:47 +0000)]
Fix last-minute thinko that I snuck into the last change.
It busted crypto-decrypt.
Review URL: http://codereview.chromium.org/2434005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4784
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 2 Jun 2010 09:37:02 +0000 (09:37 +0000)]
ARM: Track Smis on top 4 stack positions and Smi loop variables.
Improve code generation for known smis and suspected Smis.
Review URL: http://codereview.chromium.org/2452002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4783
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 2 Jun 2010 09:31:01 +0000 (09:31 +0000)]
Fix bug that could cause a string to be incorrectly tagged as an array index.
We should only mark a string as an array index if we can store the entire value
of the number in the hash field. We sometimes failed to reject larger numbers.
Fixes http://code.google.com/p/v8/issues/detail?id=728
Review URL: http://codereview.chromium.org/2452007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4782
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 2 Jun 2010 08:58:44 +0000 (08:58 +0000)]
Add missing initialization of a couple of variables which makes
some compilers complaint when compiling with -Werror.
Review URL: http://codereview.chromium.org/2492001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4780
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 2 Jun 2010 08:48:51 +0000 (08:48 +0000)]
Prepare push to trunk. We are now working on version 2.2.15.
Review URL: http://codereview.chromium.org/2467004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4778
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 2 Jun 2010 08:17:19 +0000 (08:17 +0000)]
Initialize variable to make gcc happy.
http://code.google.com/p/v8/issues/detail?id=727
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4777
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 1 Jun 2010 21:11:38 +0000 (21:11 +0000)]
ARM: Add more logic to the generic keyed load stub
The generic keyed load stub was missing converting string keys to numberign keys and lookup in the keyed lookup cache. This is now added together with an additional counter on all platforms.
Review URL: http://codereview.chromium.org/2441002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4773
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 1 Jun 2010 14:08:19 +0000 (14:08 +0000)]
Fix generated code for String.charCodeAt.
Review URL: http://codereview.chromium.org/2468001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4770
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00