ager@chromium.org [Fri, 7 May 2010 10:25:11 +0000 (10:25 +0000)]
Implement fast calls of functions in the presence of eval (if the eval
calls do not introduce new bindings).
The infrastructure is already in place for fast loads from context
slots in the presence of eval. This change simply uses that
infrastructure for calls as well as loads.
Review URL: http://codereview.chromium.org/2027002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4609
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 7 May 2010 10:16:11 +0000 (10:16 +0000)]
Pass key and receiver in registers for keyed load IC on ARM
The calling convention for keyed load IC's on ARM now passes the key and receiver in registers r0 and r1.
The code path in the ARM full compiler for handling keyed property load now has the same structure as for ia32 where the keyed load IC is also called with key end receiver in registers.
This change have been tested with an exhaustive combinations of the flags
--special-command="@ --nofull-compiler"
--special-command="@ --always-full-compiler"
--special-command="@ --noenable-vfp3"
to the test runner.
Review URL: http://codereview.chromium.org/2024002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4608
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 6 May 2010 13:35:30 +0000 (13:35 +0000)]
Remove unused declarations.
Review URL: http://codereview.chromium.org/2040001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4607
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 6 May 2010 13:21:53 +0000 (13:21 +0000)]
Refactored custom call IC generators:
* All generators are listed in a single place.
* Generators are installed as a separate pass in the bootstrapper.
* Replaced pointers to generator functions with integer ids.
Review URL: http://codereview.chromium.org/1981002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4606
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Thu, 6 May 2010 12:57:11 +0000 (12:57 +0000)]
Fixing a performance bug introduced in r4581.
Review URL: http://codereview.chromium.org/1910005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4605
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 6 May 2010 12:49:12 +0000 (12:49 +0000)]
Allow unaligned memory accesses on ARM targets that support it.
The build process must add -DCAN_USE_UNALIGNED_ACCESSES=1 to the
C++ flags to activate the support. This is a commit for
Subrato of CodeAurora. See http://codereview.chromium.org/1731013
Small edits by Erik Corry to activate unaligned accesses by
default on the simulator and testing Android builds.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4604
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 6 May 2010 11:59:10 +0000 (11:59 +0000)]
Allocate the right number of fast context slots on X64 and ARM. Port from ia32.
This is ported from change 3505 on ia32.
Review URL: http://codereview.chromium.org/1992003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4603
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 6 May 2010 11:05:50 +0000 (11:05 +0000)]
Use Int32Value() instead of ToNumber()->Value() in test-api.cc.
This problem was introduced in revision 4597.
ToNumber()->Value() used as an int will throw a compile waring on
windows since it returns a double.
Review URL: http://codereview.chromium.org/2037001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4602
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Thu, 6 May 2010 10:50:22 +0000 (10:50 +0000)]
Inlined load of string.length and array.length.
http://compute1.aar:9013/golem/r4583-v8-serya-length-inlined-vs-4583-v8.html
Review URL: http://codereview.chromium.org/1917006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4601
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 6 May 2010 10:31:34 +0000 (10:31 +0000)]
X64: Skip smi-test on GenericBinaryOpStub if static type test says we have smis.
Review URL: http://codereview.chromium.org/2032001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4600
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 6 May 2010 09:35:18 +0000 (09:35 +0000)]
Add a single-element global positive and negative cache to
the implementation of instanceof.
Review URL: http://codereview.chromium.org/1765012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4599
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 6 May 2010 08:15:15 +0000 (08:15 +0000)]
Correct bug with left shift on X64 platform from change 4571 (code.google.com/p/v8/source/detail?r=4571). Speed up left shift with a constant left hand side on X64 platform. Add unit test for this bug. Remove unused failure target argument from MacroAssembler::SmiShiftLeft and MacroAssembler::SmiShiftLeftConstant.
Review URL: http://codereview.chromium.org/1934004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4598
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 6 May 2010 07:32:44 +0000 (07:32 +0000)]
Adds C++ API for retrieving a stack trace without running JavaScript
This API is extensible, and parameterized with flags so that callers can specify what subset of information they want to capture for each stack frame.
Patch by jaimeyap, see http://codereview.chromium.org/1694011 for details.
Review URL: http://codereview.chromium.org/2028001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4597
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
floitschV8@gmail.com [Wed, 5 May 2010 13:51:27 +0000 (13:51 +0000)]
Dtoa for fixed notation.
Review URL: http://codereview.chromium.org/1956005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4596
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 5 May 2010 12:44:06 +0000 (12:44 +0000)]
Fix Mac OS build.
Remove a typo.
TBR=mnaganov@chromium.org
Review URL: http://codereview.chromium.org/1944003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4595
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 5 May 2010 12:39:21 +0000 (12:39 +0000)]
Fix windows build.
SmartPointer doesn't have -> operator and conversion to bool.
This a quick fix, I'll try to add -> operator with a separate CL.
TBR=mnaganov@chromium.org
Review URL: http://codereview.chromium.org/1969005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4594
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 5 May 2010 12:25:58 +0000 (12:25 +0000)]
Turn some usages of NewArray with DeleteArray in the same scope into ScopedVector or SmartPointer.
That makes it easier to maintain the code---one should care less
about releasing the memory as smart pointers would take care of
this.
Switch to ScopedVector instead Vector for the same semantics in
src/builtins.cc
Review URL: http://codereview.chromium.org/1737023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4593
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
floitschV8@gmail.com [Wed, 5 May 2010 10:33:27 +0000 (10:33 +0000)]
Revert r4591
Review URL: http://codereview.chromium.org/1968003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4592
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
floitschV8@gmail.com [Wed, 5 May 2010 09:29:18 +0000 (09:29 +0000)]
Provide (non Gay) dtoa for fixed notation.
Review URL: http://codereview.chromium.org/1865001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4591
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 5 May 2010 09:11:21 +0000 (09:11 +0000)]
Prefer r0 as TOS when performing virtual frame dup on ARM
Review URL: http://codereview.chromium.org/1956004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4590
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 5 May 2010 08:56:16 +0000 (08:56 +0000)]
Make sure that type info of results is correctly recorded when results are moved to registers by generated code.
Review URL: http://codereview.chromium.org/1905002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4589
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 5 May 2010 07:23:26 +0000 (07:23 +0000)]
Prepare push to trunk. Now working on version 2.2.9.
Review URL: http://codereview.chromium.org/1914006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4587
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 5 May 2010 06:57:41 +0000 (06:57 +0000)]
Add some comments to the ia32 code generator
Review URL: http://codereview.chromium.org/1918002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4586
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 5 May 2010 06:50:15 +0000 (06:50 +0000)]
Handle loading the property name for load IC in the virtual frame
Review URL: http://codereview.chromium.org/1946001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4585
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 5 May 2010 06:40:14 +0000 (06:40 +0000)]
Pass key in register for keyed load IC
The calling convention for keyed load IC is changed to have the key passed both in a register (r0) and on the stack.
Next steps will be first to remove the key from the stack and then pass the receiver in a register (r1).
Review URL: http://codereview.chromium.org/1937003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4584
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 4 May 2010 17:24:41 +0000 (17:24 +0000)]
Throw an exception when wrong arguments are passed into SwapElements.
This runtime function should operate on elements and thus 'receiver'
must be JSObject and indices should be numbers.
TBR=lrm@chromium.org,ricow@chromium.org
Review URL: http://codereview.chromium.org/1960001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4583
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 4 May 2010 16:42:11 +0000 (16:42 +0000)]
Clean JS function results cache on each major GC.
We don't want to retain cached objects for too long.
Review URL: http://codereview.chromium.org/1780001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4582
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Tue, 4 May 2010 14:49:50 +0000 (14:49 +0000)]
Changing string length field type from int to SMI. It will make it be a regular field. Code generated in EmitNamedLoad could be patched for faster access to string.length.
Review URL: http://codereview.chromium.org/1706013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4581
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 4 May 2010 14:30:22 +0000 (14:30 +0000)]
Do a GC pass prior to collecting a heap profile.
It seems that doing an extra GC pass results in less cluttered heap snapshots.
Review URL: http://codereview.chromium.org/1949001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4580
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 4 May 2010 13:23:58 +0000 (13:23 +0000)]
X64: Faster push/pop implementation.
Also snuck in an intended optimization for fast api call preparation and a few indentation fixes.
Review URL: http://codereview.chromium.org/1689010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4579
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Tue, 4 May 2010 13:07:36 +0000 (13:07 +0000)]
Make LiveEdit natives fuzzy
Review URL: http://codereview.chromium.org/1687022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4578
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 4 May 2010 12:05:55 +0000 (12:05 +0000)]
X64: Minor change of control flow in inline transcendental cache.
Move NaN-handling away from main code path.
Review URL: http://codereview.chromium.org/1851002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4577
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 4 May 2010 11:17:45 +0000 (11:17 +0000)]
Improve static type information in (constant SHL smi) computation.
Review URL: http://codereview.chromium.org/1910002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4576
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 4 May 2010 11:06:59 +0000 (11:06 +0000)]
Port inline swapping of elements for the sort function in array.js
from ia32 to arm.
Original change: http://codereview.chromium.org/1709008
Review URL: http://codereview.chromium.org/1944001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4575
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 4 May 2010 09:33:12 +0000 (09:33 +0000)]
Refactor assignment in the ARM code generator
This is mainly a port of r3899. It also adds handling of initilization blocks in ARM which had no special handling before.
The "calling conventions" used for
EmitNamedLoad
EmitNamedStore
EmitKeyedLoad
EmitKeyedStore
are somewhat mixed, but will become more aligned as the use of register allication and passing of argument in registers to IC's is extended.
Review URL: http://codereview.chromium.org/1846002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4574
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Tue, 4 May 2010 09:32:07 +0000 (09:32 +0000)]
Port string keyed load IC improvements (r4444) to ARM.
Review URL: http://codereview.chromium.org/1769014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4573
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Tue, 4 May 2010 08:41:26 +0000 (08:41 +0000)]
Reverting 2635
Review URL: http://codereview.chromium.org/1940001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4572
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 4 May 2010 08:10:05 +0000 (08:10 +0000)]
Add inlined code for (constant SHL smi), ported from ia32 to x64. Improve type information on ia32 version of code.
Review URL: http://codereview.chromium.org/1869001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4571
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 4 May 2010 07:28:29 +0000 (07:28 +0000)]
Make bleeding edge compile (since r4561 made Handle ctor explicit). codereview.chromium.org/1936001. Committed for Dmitry Titov of Google
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4570
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 3 May 2010 18:18:25 +0000 (18:18 +0000)]
Port inlined version of swap primitive for sorting from ia32 to x64.
Original code review for ia32 version: http://codereview.chromium.org/1709008
Review URL: http://codereview.chromium.org/1858002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4569
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 3 May 2010 10:53:03 +0000 (10:53 +0000)]
Change calling convention of BinaryOperation code generation functions on x64 platform to match ia32 platform.
Review URL: http://codereview.chromium.org/1844002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4568
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 3 May 2010 10:43:49 +0000 (10:43 +0000)]
X64: Port inline transcendental cache to X64.
Review URL: http://codereview.chromium.org/1860001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4567
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 3 May 2010 10:22:25 +0000 (10:22 +0000)]
Partial and small update to the codegen to use the new register allocator framework. See codereview.chromium.org/1732024. Committed for Rodolph Perfetta.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4564
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 3 May 2010 09:54:48 +0000 (09:54 +0000)]
X64: Use allocation with no scratch registers to avoid push/pop.
Minor prettifications.
Review URL: http://codereview.chromium.org/1862001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4562
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 3 May 2010 09:53:47 +0000 (09:53 +0000)]
No implicit conversion between a Foo** and a Handle<Foo>.
Review URL: http://codereview.chromium.org/1861001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4561
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 3 May 2010 08:46:23 +0000 (08:46 +0000)]
Port handling of heap numbers in deferred code for binary ops from
ia32 to x64.
Review URL: http://codereview.chromium.org/1692015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4560
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 3 May 2010 07:44:55 +0000 (07:44 +0000)]
X64: Update allocation to work with no scratch registers at all.
Review URL: http://codereview.chromium.org/1856001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4559
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 3 May 2010 07:25:26 +0000 (07:25 +0000)]
Prepare push to trunk. Now working on version 2.2.8.
Review URL: http://codereview.chromium.org/1855001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4558
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 3 May 2010 06:43:25 +0000 (06:43 +0000)]
Added support for ES5 date time string format to Date.parse.
Review URL: http://codereview.chromium.org/1704016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4557
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 30 Apr 2010 10:27:25 +0000 (10:27 +0000)]
Use ScopedVector instead of dynamically allocated array.
This ensures that it'll be released on any control path leaving
the function thanks to desctuctor semantics.
BUG=42925
Review URL: http://codereview.chromium.org/1712025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4554
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 30 Apr 2010 08:40:31 +0000 (08:40 +0000)]
Cut-and-paste port from ia32 to x64: Delay load of trivial left operand of binary operation until after right operand loaded.
Review URL: http://codereview.chromium.org/1736023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4552
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 29 Apr 2010 15:14:39 +0000 (15:14 +0000)]
Introduce faster swapping primitives.
Keyed store stub sits high in sorting profiles.
Swapping allows to save us additional type checks as we could both read and
write elmenets (on fast path) without them.
Review URL: http://codereview.chromium.org/1709008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4551
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
oleg@chromium.org [Thu, 29 Apr 2010 14:01:37 +0000 (14:01 +0000)]
Simplify double to number convertion.
Review URL: http://codereview.chromium.org/1694004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4550
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 29 Apr 2010 13:58:39 +0000 (13:58 +0000)]
Add ability to bail out from custom call generators to x64 and ARM platforms.
http://code.google.com/p/v8/source/detail?r=4503 added this functionality to ia32.
Review URL: http://codereview.chromium.org/1694018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4549
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 29 Apr 2010 13:09:31 +0000 (13:09 +0000)]
Remove unused code
The SmiOperation function was not used anymore. Remove it and rename VirtualFrameSmiOperation to SmiOperation.
Review URL: http://codereview.chromium.org/1723021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4548
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 29 Apr 2010 12:52:09 +0000 (12:52 +0000)]
Improve the success rate for inline keyed store on x64
Added a simple new space check on the elements fixed array which can allow
updating with other values than smis without updating the remembered set.
Also combined the positive smi and range check so that a separate smi check can be avoided when the key is known to be a smi.
This is a port of r4543.
Review URL: http://codereview.chromium.org/1702013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4547
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
floitschV8@gmail.com [Thu, 29 Apr 2010 12:15:02 +0000 (12:15 +0000)]
Switch to vectors instead of bare char* arrays.
Review URL: http://codereview.chromium.org/1732019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4546
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 29 Apr 2010 11:44:17 +0000 (11:44 +0000)]
Add inline floating point comparisons for comparison operators to x64 platform.
Review URL: http://codereview.chromium.org/1703019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4545
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dgozman@chromium.org [Thu, 29 Apr 2010 10:39:36 +0000 (10:39 +0000)]
Make Empty function to have no prototype and use it as __proto__ for all functions without prototype.
Review URL: http://codereview.chromium.org/1769013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4544
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 29 Apr 2010 07:47:56 +0000 (07:47 +0000)]
Improve the success rate for inline keyed store
Added a simple new space check on the elements fixed array which can allow updating with other valies than smis without updating the remembered set.
Review URL: http://codereview.chromium.org/1692014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4543
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Wed, 28 Apr 2010 17:16:51 +0000 (17:16 +0000)]
Port string keyed load IC improvements (r4444) to x64.
http://compute1.aar:9013/golem/r4502-v8-podivilov-string-char-at2-x64-vs-4502-v8-x64.html
Review URL: http://codereview.chromium.org/1750017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4542
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 28 Apr 2010 14:43:51 +0000 (14:43 +0000)]
Port inline version of Math.sqrt and Math.pow from ia32 to x64.
Review URL: http://codereview.chromium.org/1774010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4541
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Wed, 28 Apr 2010 14:06:35 +0000 (14:06 +0000)]
Port inlining of type checks in call ICs for API functions to x64 and arm (issue 602, r3825).
Review URL: http://codereview.chromium.org/1650011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4540
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Wed, 28 Apr 2010 13:29:07 +0000 (13:29 +0000)]
LiveEdit: clean JS sources a bit
Review URL: http://codereview.chromium.org/1697016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4539
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dgozman@chromium.org [Wed, 28 Apr 2010 12:05:40 +0000 (12:05 +0000)]
Added ability to remove prototype from function. In this case, [[Construct]] from function will not be allowed.
Added runtime function %FunctionRemovePrototype for this.
Removed prototypes from all builtin functions.
Some sputnik tests marked as fixed.
Added test to check builtins behavior.
Review URL: http://codereview.chromium.org/1722003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4536
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 28 Apr 2010 12:03:25 +0000 (12:03 +0000)]
Prepare push to trunk. Now working on 2.2.7.
Review URL: http://codereview.chromium.org/1759011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4535
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Wed, 28 Apr 2010 11:59:43 +0000 (11:59 +0000)]
Ensure v8 is initialized before initializing debug context
Review URL: http://codereview.chromium.org/1756018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4534
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Wed, 28 Apr 2010 11:38:43 +0000 (11:38 +0000)]
LiveEdit: breakpoints updates and fixes for related problems
Review URL: http://codereview.chromium.org/1800007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4533
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 28 Apr 2010 11:14:58 +0000 (11:14 +0000)]
Minor tweaks to the ia32 inlined keyed store.
Review URL: http://codereview.chromium.org/1810001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4532
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 28 Apr 2010 11:14:31 +0000 (11:14 +0000)]
Add inlining of keyed store on ARM
This ports the inlining of keyed store to the ARM port. As the inlined code does not handle the write barrier it only supports storing of smis.
Review URL: http://codereview.chromium.org/1719021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4531
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 28 Apr 2010 11:02:26 +0000 (11:02 +0000)]
Fix api tests based on incorrect assumptions about GC behavior.
Review URL: http://codereview.chromium.org/1701018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4529
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Wed, 28 Apr 2010 10:09:20 +0000 (10:09 +0000)]
Temporarily disable DebugContextIsPreservedBetweenAccesses which fails when snapshot=on
TBR=sgjesse
Review URL: http://codereview.chromium.org/1723018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4528
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Wed, 28 Apr 2010 09:18:53 +0000 (09:18 +0000)]
Fix test-debug: make sure debugger is unloaded before running next test
Review URL: http://codereview.chromium.org/1704015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4527
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 28 Apr 2010 09:12:04 +0000 (09:12 +0000)]
Fix keyed load inlining after my last commit accidentally
broke it.
Review URL: http://codereview.chromium.org/1780010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4526
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 28 Apr 2010 08:32:46 +0000 (08:32 +0000)]
Switch to aggresive promotion in mark-sweep collections.
Review URL: http://codereview.chromium.org/1759005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4525
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Wed, 28 Apr 2010 08:23:20 +0000 (08:23 +0000)]
Don't unload debug context after it was requested through public API
Review URL: http://codereview.chromium.org/1731011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4524
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 28 Apr 2010 08:06:18 +0000 (08:06 +0000)]
Add amd64 to GuessArchitecture
Patch by Ryan Dahl <coldredlemur@gmail.com>, see http://codereview.chromium.org/1707013.
Review URL: http://codereview.chromium.org/1732016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4523
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 28 Apr 2010 08:04:39 +0000 (08:04 +0000)]
Enable Object.create tests since we implement this correctly (since 3786 i guess, it was enabled in 3438 but did not function correctly because DefineOwnProperty was not implemented fully according to spec).
Review URL: http://codereview.chromium.org/1568037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4522
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 28 Apr 2010 07:15:34 +0000 (07:15 +0000)]
Put the icache checks in the ARM simulator behind a flag,
off by default, to speed up debug mode.
Review URL: http://codereview.chromium.org/1787006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4521
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Tue, 27 Apr 2010 21:20:02 +0000 (21:20 +0000)]
Rename Compare -> Comparator to resolve name conflict in v8::internal
Review URL: http://codereview.chromium.org/1737009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4520
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 27 Apr 2010 19:24:36 +0000 (19:24 +0000)]
Change the LoadIC calling convention so that the receiver
is both on top of the stack and also in r0. This makes
sense because the receiver is usually in r0 anyway. We may
remove it from the stack later. Also removes some spilled
scopes from the code generator allowing it to keep expression
temporaries in registers more.
Review URL: http://codereview.chromium.org/1751019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4518
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 27 Apr 2010 15:02:22 +0000 (15:02 +0000)]
Fix logical error in change 4515.
Review URL: http://codereview.chromium.org/1769011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4517
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Tue, 27 Apr 2010 14:56:56 +0000 (14:56 +0000)]
Port number string cache lookup for heap numbers in generatred code to x64 and ARM.
Review URL: http://codereview.chromium.org/1575047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4516
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 27 Apr 2010 14:02:24 +0000 (14:02 +0000)]
Port improved ia32 CompareStub to x64. Add framework for inlined floating point compares, to be implemented in next change.
Review URL: http://codereview.chromium.org/1687014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4515
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 27 Apr 2010 13:02:23 +0000 (13:02 +0000)]
Fix copy paste: IsUint32() checks if value is unsigned, not signed.
Review URL: http://codereview.chromium.org/1762008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4513
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 27 Apr 2010 11:45:08 +0000 (11:45 +0000)]
Fix search-for-string and replace global to avoid hangs
and spurious exceptions.
Review URL: http://codereview.chromium.org/1687013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4511
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 27 Apr 2010 11:16:05 +0000 (11:16 +0000)]
Inline keyed load on ARM
This uses the same infrastructure as is used by the inlining of named property load. The code patching if the inlined code is simpler as the key is provided in a register os the only patching required is the map check directing the inlined code to the deferred code block or not.
Review URL: http://codereview.chromium.org/1735007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4510
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 27 Apr 2010 09:23:33 +0000 (09:23 +0000)]
Fix presubmit errors
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/1736018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4509
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 27 Apr 2010 09:11:33 +0000 (09:11 +0000)]
Fix use of live register as temporary
When flag --naive-counters was used this code trashed r1 which is actually live.
Review URL: http://codereview.chromium.org/1725009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4508
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 27 Apr 2010 09:09:51 +0000 (09:09 +0000)]
Avoid constant pool blocking for too long
The generation of the deferred code for named property load where the load was inlined did a constant pool blocking for the whole deferred code. Having large numbers of this type of deferred code generated one ofter the other effectively blocked the constant pool for all the deferred code causing
Removed the BeforeGenerate/AfterGenerate for the deferred code and made macro assembler StartBlockConstPool/EndBlockConstPool non-public. Re-introduced BlockConstPoolFor instead to use with BlockConstPoolScope to block some more instructions cross function calls.
Also handle the use of native code counters for inlined named property load.
Review URL: http://codereview.chromium.org/1787005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4507
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 26 Apr 2010 15:34:25 +0000 (15:34 +0000)]
Fix a build---increase array's size.
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/1719016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4505
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 26 Apr 2010 15:10:42 +0000 (15:10 +0000)]
Fix bug in word-boundary-lookahead followed by end-of-input assertion.
Review URL: http://codereview.chromium.org/1712013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4504
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 26 Apr 2010 15:08:07 +0000 (15:08 +0000)]
Current custom call generators cannot cope with the case when receiver is not a JSArray.
Add a support for bailout from custom call generators (just return undefined).
BUG=684
Review URL: http://codereview.chromium.org/1699005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4503
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 26 Apr 2010 14:34:48 +0000 (14:34 +0000)]
Unify treatment of sorting with and without custom comparator.
Review URL: http://codereview.chromium.org/1706010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4502
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 26 Apr 2010 14:25:29 +0000 (14:25 +0000)]
Simplify the use of the stm instruction on ARM.
Review URL: http://codereview.chromium.org/1694016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4501
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 26 Apr 2010 14:18:50 +0000 (14:18 +0000)]
Remove duplicate LeftTrimFixedArray function.
Review URL: http://codereview.chromium.org/1701008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4500
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 26 Apr 2010 13:26:11 +0000 (13:26 +0000)]
Added regression test for crbug 40931 crbug.com/40931
Review URL: http://codereview.chromium.org/1756013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4497
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 26 Apr 2010 13:25:17 +0000 (13:25 +0000)]
Double max-new-space-size to 2^18 in binary-op-newspace to make the test run on linux 64 with snapshots on.
Review URL: http://codereview.chromium.org/1735014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4496
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 26 Apr 2010 13:17:55 +0000 (13:17 +0000)]
Prepare push to trunk. Now working on version 2.2.6.
Review URL: http://codereview.chromium.org/1792001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4495
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 26 Apr 2010 12:58:20 +0000 (12:58 +0000)]
Change max-new-space-size to 2^17 (from 2^16) to make binary-op-newspace test run on linux 64.
Review URL: http://codereview.chromium.org/1780003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4494
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00