platform/upstream/v8.git
14 years agoPartial and small update to the codegen to use the new register allocator framework...
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

14 years agoX64: Use allocation with no scratch registers to avoid push/pop.
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

14 years agoNo implicit conversion between a Foo** and a Handle<Foo>.
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

14 years agoPort handling of heap numbers in deferred code for binary ops from
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

14 years agoX64: Update allocation to work with no scratch registers at all.
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

14 years agoPrepare push to trunk. Now working on version 2.2.8.
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

14 years agoAdded support for ES5 date time string format to Date.parse.
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

14 years agoUse ScopedVector instead of dynamically allocated array.
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

14 years agoCut-and-paste port from ia32 to x64: Delay load of trivial left operand of binary...
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

14 years agoIntroduce faster swapping primitives.
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

14 years agoSimplify double to number convertion.
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

14 years agoAdd ability to bail out from custom call generators to x64 and ARM platforms.
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

14 years agoRemove unused code
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

14 years agoImprove the success rate for inline keyed store on x64
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

14 years agoSwitch to vectors instead of bare char* arrays.
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

14 years agoAdd inline floating point comparisons for comparison operators to x64 platform.
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

14 years agoMake Empty function to have no prototype and use it as __proto__ for all functions...
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

14 years agoImprove the success rate for inline keyed store
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

14 years agoPort string keyed load IC improvements (r4444) to x64.
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

14 years agoPort inline version of Math.sqrt and Math.pow from ia32 to x64.
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

14 years agoPort inlining of type checks in call ICs for API functions to x64 and arm (issue...
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

14 years agoLiveEdit: clean JS sources a bit
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

14 years agoAdded ability to remove prototype from function. In this case, [[Construct]] from...
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

14 years agoPrepare push to trunk. Now working on 2.2.7.
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

14 years agoEnsure v8 is initialized before initializing debug context
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

14 years agoLiveEdit: breakpoints updates and fixes for related problems
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

14 years agoMinor tweaks to the ia32 inlined keyed store.
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

14 years agoAdd inlining of keyed store on ARM
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

14 years agoFix api tests based on incorrect assumptions about GC behavior.
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

14 years agoTemporarily disable DebugContextIsPreservedBetweenAccesses which fails when snapshot=on
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

14 years agoFix test-debug: make sure debugger is unloaded before running next test
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

14 years agoFix keyed load inlining after my last commit accidentally
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

14 years agoSwitch to aggresive promotion in mark-sweep collections.
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

14 years agoDon't unload debug context after it was requested through public API
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

14 years agoAdd amd64 to GuessArchitecture
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

14 years agoEnable Object.create tests since we implement this correctly (since 3786 i guess...
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

14 years agoPut the icache checks in the ARM simulator behind a flag,
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

14 years agoRename Compare -> Comparator to resolve name conflict in v8::internal
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

14 years agoChange the LoadIC calling convention so that the receiver
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

14 years agoFix logical error in change 4515.
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

14 years agoPort number string cache lookup for heap numbers in generatred code to x64 and ARM.
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

14 years agoPort improved ia32 CompareStub to x64. Add framework for inlined floating point...
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

14 years agoFix copy paste: IsUint32() checks if value is unsigned, not signed.
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

14 years agoFix search-for-string and replace global to avoid hangs
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

14 years agoInline keyed load on ARM
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

14 years agoFix presubmit errors
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

14 years agoFix use of live register as temporary
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

14 years agoAvoid constant pool blocking for too long
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

14 years agoFix a build---increase array's size.
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

14 years agoFix bug in word-boundary-lookahead followed by end-of-input assertion.
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

14 years agoCurrent custom call generators cannot cope with the case when receiver is not a JSArray.
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

14 years agoUnify treatment of sorting with and without custom comparator.
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

14 years agoSimplify the use of the stm instruction on ARM.
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

14 years agoRemove duplicate LeftTrimFixedArray function.
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

14 years agoAdded regression test for crbug 40931 http://crbug.com/40931
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

14 years agoDouble max-new-space-size to 2^18 in binary-op-newspace to make the test run on linux...
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

14 years agoPrepare push to trunk. Now working on version 2.2.6.
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

14 years agoChange max-new-space-size to 2^17 (from 2^16) to make binary-op-newspace test run...
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

14 years agoChange to allow d8 to compile on MacOSX.
erik.corry@gmail.com [Mon, 26 Apr 2010 11:41:56 +0000 (11:41 +0000)]
Change to allow d8 to compile on MacOSX.
Review URL: http://codereview.chromium.org/1747014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoCosmetic changes to the ARM port.
erik.corry@gmail.com [Mon, 26 Apr 2010 11:41:39 +0000 (11:41 +0000)]
Cosmetic changes to the ARM port.
Review URL: http://codereview.chromium.org/1790002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix a bug where a GC at an unlucky moment caused a wrong
erik.corry@gmail.com [Mon, 26 Apr 2010 11:06:37 +0000 (11:06 +0000)]
Fix a bug where a GC at an unlucky moment caused a wrong
calculation on ARM.
Review URL: http://codereview.chromium.org/1733016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd a V8 specific target architecture to the GYP file
sgjesse@chromium.org [Mon, 26 Apr 2010 10:59:14 +0000 (10:59 +0000)]
Add a V8 specific target architecture to the GYP file

The V8 GYP file now uses its own target architecture. It default to the standard target_arch, but can be set to a separate value. E.g. using

  export GYP_DEFINES="target_arch=ia32 v8_target_arch=arm"

makes it possible to have the V8 ARM simulator be used in a IA32 build.

Added some checking of supported host/target architecture combinations.
Review URL: http://codereview.chromium.org/1790001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix bug in the ARM full code generator for inlined count operations.
fschneider@chromium.org [Mon, 26 Apr 2010 10:31:51 +0000 (10:31 +0000)]
Fix bug in the ARM full code generator for inlined count operations.

The inlined add needs to set the condition codes to correctly detect
smi overflows.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoDon't share function result caches between contexts.
vitalyr@chromium.org [Sun, 25 Apr 2010 10:31:52 +0000 (10:31 +0000)]
Don't share function result caches between contexts.

A reference to the caches array was embedded directly into the builtin
code and this allowed sharing objects between contexts.

Unfortunately, clearing the cache on GC won't prevent sharing so we
either have to have per-context builtin code or load the cache
indirectly from the current context. This change implements the second
approach. The first approach may be interesting to consider in the
future for some perfomance critical functions, and the current
approach can still be improved by putting the caches directly into the
global context (or even global objects).

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix bug in KeyedLoadIC generic stub where signed instead of unsigned
ager@chromium.org [Fri, 23 Apr 2010 12:57:41 +0000 (12:57 +0000)]
Fix bug in KeyedLoadIC generic stub where signed instead of unsigned
comparison was used.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years ago- Fix Win64 build.
vegorov@chromium.org [Fri, 23 Apr 2010 12:45:05 +0000 (12:45 +0000)]
- Fix Win64 build.
- Style cleanup: use Page::is_valid() instead of NULL-check, use Heap::CreateFillerObjectAt() instead of dummy free list nodes
Review URL: http://codereview.chromium.org/1691009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix BinaryOpIC implementation on ARM.
kaznacheev@chromium.org [Fri, 23 Apr 2010 10:08:24 +0000 (10:08 +0000)]
Fix BinaryOpIC implementation on ARM.

On a pair of smis HEAP_NUMBERS stub is significantly slower than GENERIC. This slows
down some tests dramatically (crypto-aes from SunSpider).
With this change HEAP_NUMBERS stub switches to GENERIC stub the first time it sees 2 smis
as its operands.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix typo - remove stray character from change 4481
whesse@chromium.org [Fri, 23 Apr 2010 08:14:11 +0000 (08:14 +0000)]
Fix typo - remove stray character from change 4481
Review URL: http://codereview.chromium.org/1753008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoCompute static type information for remaining expression types on x64 platform.
whesse@chromium.org [Fri, 23 Apr 2010 08:05:13 +0000 (08:05 +0000)]
Compute static type information for remaining expression types on x64 platform.
Review URL: http://codereview.chromium.org/1751008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoChanged inlined property load detection on ARM
sgjesse@chromium.org [Fri, 23 Apr 2010 07:42:45 +0000 (07:42 +0000)]
Changed inlined property load detection on ARM

Instaed of having a nop after all non-inlined calls to load IC use a different nop (mov r1, r1 instead of mov r0, r0) to detect an inlined load IC.

Added more infrastructure to the deferred code handling to make it possbile to block constant pool emitting in a deferred code block, including the branch instruction ending the deferred code block.

Addressed a couple of comments to http://codereview.chromium.org/1715003, including adding an assert to make sure that the patching of an ldr instruction is always possible.
Review URL: http://codereview.chromium.org/1758003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoUse Heap::CreateFillerArrayAt to create a filler instead of copied code.
antonm@chromium.org [Thu, 22 Apr 2010 18:50:27 +0000 (18:50 +0000)]
Use Heap::CreateFillerArrayAt to create a filler instead of copied code.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoUpdate AUTHORS file to reflect previous commit
erik.corry@gmail.com [Thu, 22 Apr 2010 17:28:43 +0000 (17:28 +0000)]
Update AUTHORS file to reflect previous commit

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoSpeed up random on ARM. Patch committed for rodolph.perfetta@googlemail.com. See...
erik.corry@gmail.com [Thu, 22 Apr 2010 17:25:42 +0000 (17:25 +0000)]
Speed up random on ARM.  Patch committed for rodolph.perfetta@googlemail.com.  See codereview.chromium.org/1689007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix bugs introduced by r4475:
vegorov@chromium.org [Thu, 22 Apr 2010 16:43:38 +0000 (16:43 +0000)]
Fix bugs introduced by r4475:
- RelinkPageListInChunkOrder might relink unused pages into the middle of a sequence of used pages. Filler objects should be placed at the beginning of such unused pages otherwise generic iterators (e.g. HeapObjectIterator) would not handle them correctly.
- ObjectAreaEnd() should not be used as an allocation limit for pages from FixedSpace. Pages in such spaces do not use top page_extra_ bytes of object area.

TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/1700005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoPut empty pages discovered during sweeping to the end of the list of pages
vegorov@chromium.org [Thu, 22 Apr 2010 14:42:21 +0000 (14:42 +0000)]
Put empty pages discovered during sweeping to the end of the list of pages
instead of adding them to the free list.
Review URL: http://codereview.chromium.org/1683001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd checks to the ARM simulator to ensure that we flush the icache all
erik.corry@gmail.com [Thu, 22 Apr 2010 12:41:10 +0000 (12:41 +0000)]
Add checks to the ARM simulator to ensure that we flush the icache all
the places we should.
Review URL: http://codereview.chromium.org/1523030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoPort apply with arguments optimization to ARM. This avoid allocating
ager@chromium.org [Thu, 22 Apr 2010 12:20:36 +0000 (12:20 +0000)]
Port apply with arguments optimization to ARM. This avoid allocating
the arguments object when not necessary.
Review URL: http://codereview.chromium.org/1738003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix error in static type information computation for bitwise shift.
whesse@chromium.org [Thu, 22 Apr 2010 09:02:10 +0000 (09:02 +0000)]
Fix error in static type information computation for bitwise shift.
Review URL: http://codereview.chromium.org/1756007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoMinor formatting changes.
sgjesse@chromium.org [Thu, 22 Apr 2010 07:35:43 +0000 (07:35 +0000)]
Minor formatting changes.
Review URL: http://codereview.chromium.org/1766005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix ARM debug build breakage caused by r4468
sgjesse@chromium.org [Thu, 22 Apr 2010 07:26:07 +0000 (07:26 +0000)]
Fix ARM debug build breakage caused by r4468

TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/1730005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd inlining of property load on ARM
sgjesse@chromium.org [Thu, 22 Apr 2010 07:18:30 +0000 (07:18 +0000)]
Add inlining of property load on ARM

Generate inlined named property load for in-object properties. This uses the same mechanism as on the Intel platforms with the map check and load instruction of the inlined code being patched by the inline cache code. The map check is patched through the normal constant pool patching and the load instruction is patched in place.
Review URL: http://codereview.chromium.org/1715003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoSupport multi-chunk differences
peter.rybin@gmail.com [Wed, 21 Apr 2010 16:59:58 +0000 (16:59 +0000)]
Support multi-chunk differences

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix issue 683: change the order of CPU profiler setup actions.
mikhail.naganov@gmail.com [Wed, 21 Apr 2010 14:07:13 +0000 (14:07 +0000)]
Fix issue 683: change the order of CPU profiler setup actions.

BUG=683

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoPort inlined quick equality check for non-NaN to x64.
whesse@chromium.org [Wed, 21 Apr 2010 13:33:36 +0000 (13:33 +0000)]
Port inlined quick equality check for non-NaN to x64.
Review URL: http://codereview.chromium.org/1756002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years ago- Fix unitialized variable error found by compiler warning.
iposva@chromium.org [Wed, 21 Apr 2010 12:16:36 +0000 (12:16 +0000)]
- Fix unitialized variable error found by compiler warning.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix one off error.
antonm@chromium.org [Wed, 21 Apr 2010 11:13:53 +0000 (11:13 +0000)]
Fix one off error.

Proper condition to start eviction is when next possible index is equal
to cache length.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix lint errors
sgjesse@chromium.org [Wed, 21 Apr 2010 10:20:55 +0000 (10:20 +0000)]
Fix lint errors

TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/1749002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoUpdate comment to provide the correct usage of the Disassembler class.
sgjesse@chromium.org [Wed, 21 Apr 2010 09:45:06 +0000 (09:45 +0000)]
Update comment to provide the correct usage of the Disassembler class.

TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/1755001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoUse an object to control the blocking of the constant pool
sgjesse@chromium.org [Wed, 21 Apr 2010 09:43:45 +0000 (09:43 +0000)]
Use an object to control the blocking of the constant pool

Instead of indicating for how many instructions the constant pool needs to be blocked the constant pool is now blocked while at least one instance of ScopedConstPoolBlocker exists.
Review URL: http://codereview.chromium.org/1673006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix incorrect handling of global RegExp properties for nested replace-regexp-with...
lrn@chromium.org [Wed, 21 Apr 2010 08:33:04 +0000 (08:33 +0000)]
Fix incorrect handling of global RegExp properties for nested replace-regexp-with-function.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoReturn the correct statement position.
sgjesse@chromium.org [Wed, 21 Apr 2010 07:32:04 +0000 (07:32 +0000)]
Return the correct statement position.

Whether this was a typo or a deliberate decision at some point I don't know. Anyway it was wrong.

TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/1752001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoPrepare push of version 2.2.4 to trunk.
ricow@chromium.org [Wed, 21 Apr 2010 07:10:20 +0000 (07:10 +0000)]
Prepare push of version 2.2.4 to trunk.
Review URL: http://codereview.chromium.org/1687004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoReapply: Inline fast cases in string keyed load IC.
vitalyr@chromium.org [Tue, 20 Apr 2010 17:33:14 +0000 (17:33 +0000)]
Reapply: Inline fast cases in string keyed load IC.

(Fixed handling of out-of-bounds keys.)

String keyed load used to call STRING_CHAR_AT builtin that performs
two steps (get a char code, construct a one-char string from the
code), both of which have fast cases implemented as inline runtime
functions. In this chage most of the code from these functions is
extracted to a set of common generator functions in StringStubBase and
the fast cases are grouped together in the IC code.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd missing check to StringBuilderConcat runtime function.
lrn@chromium.org [Tue, 20 Apr 2010 13:10:18 +0000 (13:10 +0000)]
Add missing check to StringBuilderConcat runtime function.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoDo not preconvert to string as it apparently has minimal performance benefit.
antonm@chromium.org [Tue, 20 Apr 2010 11:29:32 +0000 (11:29 +0000)]
Do not preconvert to string as it apparently has minimal performance benefit.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoChange strlen to v8::internal::StrLength in liveedit tests (to fix compile error...
ricow@chromium.org [Tue, 20 Apr 2010 10:41:38 +0000 (10:41 +0000)]
Change strlen to v8::internal::StrLength in liveedit tests (to fix compile error on windows 64)
Review URL: http://codereview.chromium.org/1610038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd missing smi check in IC for nonexistent properties.
ager@chromium.org [Tue, 20 Apr 2010 10:20:39 +0000 (10:20 +0000)]
Add missing smi check in IC for nonexistent properties.

Add regression test.

BUG=v8:681
Review URL: http://codereview.chromium.org/1673005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoRevert r4444 "Inline fast cases in string keyed load IC."
vitalyr@chromium.org [Tue, 20 Apr 2010 09:26:32 +0000 (09:26 +0000)]
Revert r4444 "Inline fast cases in string keyed load IC."

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoInline fast cases in string keyed load IC.
vitalyr@chromium.org [Tue, 20 Apr 2010 08:27:48 +0000 (08:27 +0000)]
Inline fast cases in string keyed load IC.

String keyed load used to call STRING_CHAR_AT builtin that performs
two steps (get a char code, construct a one-char string from the
code), both of which have fast cases implemented as inline runtime
functions. In this chage most of the code from these functions is
extracted to a set of common generator functions in StringStubBase and
the fast cases are grouped together in the IC code.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoMake not sucking at regexp the default
erik.corry@gmail.com [Mon, 19 Apr 2010 19:30:11 +0000 (19:30 +0000)]
Make not sucking at regexp the default
(remove V8_NATIVE_REGEXP flag, add
V8_INTERPRETED_REGEXP flag).
Review URL: http://codereview.chromium.org/1635001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00