platform/upstream/v8.git
14 years agoOne element cache for localtime.
sandholm@chromium.org [Mon, 10 May 2010 09:27:37 +0000 (09:27 +0000)]
One element cache for localtime.
Review URL: http://codereview.chromium.org/2023005

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

14 years agoCreate IS_SPEC_OBJECT macro to simplify javescript code.
ricow@chromium.org [Mon, 10 May 2010 08:58:41 +0000 (08:58 +0000)]
Create IS_SPEC_OBJECT macro to simplify javescript code.

v8natives and runtime.js updated to use new macro and simplified when possible.

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

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

14 years agoPrepare push to trunk. We are now vorking on version 2.2.10.
sgjesse@chromium.org [Mon, 10 May 2010 07:04:43 +0000 (07:04 +0000)]
Prepare push to trunk. We are now vorking on version 2.2.10.
Review URL: http://codereview.chromium.org/1996011

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

14 years agoExport SetResourceConstraints so it can be used with
ager@chromium.org [Mon, 10 May 2010 06:24:18 +0000 (06:24 +0000)]
Export SetResourceConstraints so it can be used with
visibility=hidden.

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

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

14 years agoFixes bug with v8::StackTrace for non-zero script line offsets
sgjesse@chromium.org [Mon, 10 May 2010 06:24:01 +0000 (06:24 +0000)]
Fixes bug with v8::StackTrace for non-zero script line offsets

Change by jaimeyap see http://codereview.chromium.org/1985004 for details.
Review URL: http://codereview.chromium.org/2049004

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

14 years agoFixed issue 619 allowing Object.create to be called with a function.
ricow@chromium.org [Sun, 9 May 2010 08:43:59 +0000 (08:43 +0000)]
Fixed issue 619 allowing Object.create to be called with a function.

This change allows Object.create to take a function as input in the
proto argument. The spec says that Type(O) for the proto argument
should be true but our IS_OBJECT does not check for this. I will make a
IS_SPEC_OBJECT in macros.py and refactor v8natives in another CL.

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

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

14 years agoFix typo in process sample. The initialization of the map template is
ager@chromium.org [Sat, 8 May 2010 14:45:32 +0000 (14:45 +0000)]
Fix typo in process sample. The initialization of the map template is
guarded by an IsEmpty check on the request template instead of the map
template.

TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/2036006

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

14 years agoAdd friend declaration.
erik.corry@gmail.com [Sat, 8 May 2010 06:54:36 +0000 (06:54 +0000)]
Add friend declaration.
http://codereview.chromium.org/2024008/show
Committed for evan@chromium.org with apologies for getting
his email address wrong last time.

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

14 years agoMark a function in assembler-x64-inl.h inline.
erik.corry@gmail.com [Fri, 7 May 2010 20:31:24 +0000 (20:31 +0000)]
Mark a function in assembler-x64-inl.h inline.

Without this annotation, it can be multiply-defined when it is
included in multiple source files.  This is a commit for
evanm@chromium.org.  See http://codereview.chromium.org/2044004

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

14 years agoAdd ldrd and strd instructions to the ARM port. This is a
erik.corry@gmail.com [Fri, 7 May 2010 20:02:57 +0000 (20:02 +0000)]
Add ldrd and strd instructions to the ARM port.  This is a
commit for zhangk@codeaurora.org.  See
http://codereview.chromium.org/568029 and
http://codereview.chromium.org/2019003

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

14 years agoAdd a flag to the ARM version of new space allocation in generated code
sgjesse@chromium.org [Fri, 7 May 2010 14:06:55 +0000 (14:06 +0000)]
Add a flag to the ARM version of new space allocation in generated code

The flag SIZE_IN_WORDS indicate that the requested size is in words and not in bytes, The default is to specify the size in bytes.
Review URL: http://codereview.chromium.org/2047002

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

14 years agoMoving more code to lookup an item from the native cache into code generator.
antonm@chromium.org [Fri, 7 May 2010 12:48:18 +0000 (12:48 +0000)]
Moving more code to lookup an item from the native cache into code generator.

To bypass expensive invocation of JS functions from C++ and omit runtime
call overhead for searching the cache, more elaborate deferred code is generated.

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

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

14 years agoFix presubmit error.
ricow@chromium.org [Fri, 7 May 2010 12:00:12 +0000 (12:00 +0000)]
Fix presubmit error.
Review URL: http://codereview.chromium.org/1998010

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

14 years agoRemove unused function in ia32 code generator
sgjesse@chromium.org [Fri, 7 May 2010 11:55:24 +0000 (11:55 +0000)]
Remove unused function in ia32 code generator
Review URL: http://codereview.chromium.org/1996006

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

14 years agoCorrect issue 696 with Date.parse returning a value when called on a non date string.
ricow@chromium.org [Fri, 7 May 2010 11:53:20 +0000 (11:53 +0000)]
Correct issue 696 with Date.parse returning a value when called on a non date string.

The error was introduced in revision 4557 where support was added for
ES5 date time format strings. Because there was no check for a valid
year a random string starting with a non-digit character would be
parsed.

This change disallows ES5 formatted dates where there is no date
fraction (i.e., with only a timestamp). Since none of the other
browsers support Date.parse on only timestamps I have disabled this
totally instead of just correcting the parser.

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

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

14 years agoSynchronizing Comparison codegen between X64 and ia32.
lrn@chromium.org [Fri, 7 May 2010 11:25:29 +0000 (11:25 +0000)]
Synchronizing Comparison codegen between X64 and ia32.

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

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

14 years agoFix virtual frame height on ARM
sgjesse@chromium.org [Fri, 7 May 2010 11:24:04 +0000 (11:24 +0000)]
Fix virtual frame height on ARM

Bug introduced in r4608 where Dup2 increses the frame height with 4 instead of 2 when in a spilled scope.

Also removed a bogus ASSERT and used Push from macro assemler for double pushes.

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

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

14 years agoTurn {mov,add}q into {mov,add}l.
antonm@chromium.org [Fri, 7 May 2010 10:56:22 +0000 (10:56 +0000)]
Turn {mov,add}q into {mov,add}l.

All the cases fixed are safe as registers hold 32-bit value, but that looks
safer to operate on proper sizes.

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

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

14 years agoImplement fast calls of functions in the presence of eval (if the eval
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

14 years agoPass key and receiver in registers for keyed load IC on ARM
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

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

14 years agoRefactored custom call IC generators:
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

14 years agoFixing a performance bug introduced in r4581.
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

14 years agoAllow unaligned memory accesses on ARM targets that support it.
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

14 years agoAllocate the right number of fast context slots on X64 and ARM. Port from ia32.
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

14 years agoUse Int32Value() instead of ToNumber()->Value() in test-api.cc.
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

14 years agoInlined load of string.length and array.length.
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

14 years agoX64: Skip smi-test on GenericBinaryOpStub if static type test says we have smis.
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

14 years agoAdd a single-element global positive and negative cache to
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

14 years agoCorrect bug with left shift on X64 platform from change 4571 (http://code.google...
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

14 years agoAdds C++ API for retrieving a stack trace without running JavaScript
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

14 years agoDtoa for fixed notation.
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

14 years agoFix Mac OS build.
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

14 years agoFix windows build.
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

14 years agoTurn some usages of NewArray with DeleteArray in the same scope into ScopedVector...
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

14 years agoRevert r4591
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

14 years agoProvide (non Gay) dtoa for fixed notation.
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

14 years agoPrefer r0 as TOS when performing virtual frame dup on ARM
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

14 years agoMake sure that type info of results is correctly recorded when results are moved...
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

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

14 years agoAdd some comments to the ia32 code generator
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

14 years agoHandle loading the property name for load IC in the virtual frame
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

14 years agoPass key in register for keyed load IC
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

14 years agoThrow an exception when wrong arguments are passed into SwapElements.
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

14 years agoClean JS function results cache on each major GC.
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

14 years agoChanging string length field type from int to SMI. It will make it be a regular...
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

14 years agoDo a GC pass prior to collecting a heap profile.
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

14 years agoX64: Faster push/pop implementation.
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

14 years agoMake LiveEdit natives fuzzy
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

14 years agoX64: Minor change of control flow in inline transcendental cache.
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

14 years agoImprove static type information in (constant SHL smi) computation.
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

14 years agoPort inline swapping of elements for the sort function in array.js
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

14 years agoRefactor assignment in the ARM code generator
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

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

14 years agoReverting 2635
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

14 years agoAdd inlined code for (constant SHL smi), ported from ia32 to x64. Improve type infor...
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

14 years agoMake bleeding edge compile (since r4561 made Handle ctor explicit). http://coderevie...
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

14 years agoPort inlined version of swap primitive for sorting from ia32 to x64.
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

14 years agoChange calling convention of BinaryOperation code generation functions on x64 platfor...
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

14 years agoX64: Port inline transcendental cache to X64.
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

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