platform/upstream/v8.git
14 years agoInclude check for execution termination into bailout check.
dimich@chromium.org [Fri, 21 May 2010 20:52:19 +0000 (20:52 +0000)]
Include check for execution termination into bailout check.

This prevents re-entry into JS during stack unwinding caused by TerminateExecution().

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

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

14 years agoReverting r4703.
vegorov@chromium.org [Fri, 21 May 2010 17:37:47 +0000 (17:37 +0000)]
Reverting r4703.

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

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

14 years agoCardmarking writebarrier.
vegorov@chromium.org [Fri, 21 May 2010 15:52:38 +0000 (15:52 +0000)]
Cardmarking writebarrier.

Reapplication of r4685 (reviewed http://codereview.chromium.org/2101002) with minor modifications:

- Fix compilation problems on Win64.
- Improve heap verification pass: search for garbage pointers to new space not only in dirty regions but in all regions.

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

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

14 years agoFix teardown order.
mikhail.naganov@gmail.com [Fri, 21 May 2010 13:46:35 +0000 (13:46 +0000)]
Fix teardown order.

As TokenEnumerator cleans up global handles posessed, it's owner --
CpuProfiler must be shut down prior to global handles.

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

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

14 years agoRevert change 3849. On ia32, LoadFromSlot again returns its result on the top of...
whesse@chromium.org [Fri, 21 May 2010 12:58:02 +0000 (12:58 +0000)]
Revert change 3849.  On ia32, LoadFromSlot again returns its result on the top of the expression stack, not as a Result return value.
Review URL: http://codereview.chromium.org/2121014

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

14 years agoPrepare push to trunk. Now working on version 2.2.12.
erik.corry@gmail.com [Fri, 21 May 2010 11:22:03 +0000 (11:22 +0000)]
Prepare push to trunk. Now working on version 2.2.12.
Review URL: http://codereview.chromium.org/2080018

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

14 years agoRemove the fledgling Thumb2 support since we are concentrating
erik.corry@gmail.com [Fri, 21 May 2010 09:23:33 +0000 (09:23 +0000)]
Remove the fledgling Thumb2 support since we are concentrating
on other ways to make ARM code more compact.
Review URL: http://codereview.chromium.org/2080017

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

14 years agoX64: Added inline conversion of double to smi for LikelySmiBinaryOp shifts.
lrn@chromium.org [Fri, 21 May 2010 09:08:14 +0000 (09:08 +0000)]
X64: Added inline conversion of double to smi for LikelySmiBinaryOp shifts.

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

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

14 years agoGuard VMState trakcing with ENABLE_VMSTATE_TRACKING instead of
ager@chromium.org [Fri, 21 May 2010 09:01:19 +0000 (09:01 +0000)]
Guard VMState trakcing with ENABLE_VMSTATE_TRACKING instead of
ENABLE_HEAP_PROTECTION.

TBR=mnaganov@chromium.org
Review URL: http://codereview.chromium.org/2098017

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

14 years agoCosmetic fix to avoid operator precedence warning on newer gcc.
erik.corry@gmail.com [Thu, 20 May 2010 19:58:05 +0000 (19:58 +0000)]
Cosmetic fix to avoid operator precedence warning on newer gcc.
Review URL: http://codereview.chromium.org/2088011

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

14 years agoARM cleanup: Remove lea, swap, swapb instrutions. This is a commit
erik.corry@gmail.com [Thu, 20 May 2010 19:30:35 +0000 (19:30 +0000)]
ARM cleanup: Remove lea, swap, swapb instrutions.  This is a commit
of http://codereview.chromium.org/2064012/show for Rodolph Perfetta.

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

14 years agoProvide debug event listener with access to the debuggee context. Also introduce...
yurys@chromium.org [Thu, 20 May 2010 17:15:46 +0000 (17:15 +0000)]
Provide debug event listener with access to the debuggee context. Also introduce new event listener setter that allows to set a callback that accepts single parameter encapsulating all debug event details so that additional information can later be passed to the listener without breaking compatibility with existing clients.

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

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

14 years agoChange keyed store IC interface on x64 to take value, key, and receiver in registers...
whesse@chromium.org [Thu, 20 May 2010 15:09:21 +0000 (15:09 +0000)]
Change keyed store IC interface on x64 to take value, key, and receiver in registers rather than on the stack.
Review URL: http://codereview.chromium.org/2111011

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

14 years agoFix formatting in last change, file x64/full-codegen-x64.cc.
whesse@chromium.org [Thu, 20 May 2010 14:56:49 +0000 (14:56 +0000)]
Fix formatting in last change, file x64/full-codegen-x64.cc.
Review URL: http://codereview.chromium.org/2081014

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

14 years agoAdd parentheses to clarify operator precedence.
erik.corry@gmail.com [Thu, 20 May 2010 14:37:42 +0000 (14:37 +0000)]
Add parentheses to clarify operator precedence.
Review URL: http://codereview.chromium.org/2095019

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

14 years agoReapply r4686: Complete version of full codegen for x64.
ager@chromium.org [Thu, 20 May 2010 14:33:02 +0000 (14:33 +0000)]
Reapply r4686: Complete version of full codegen for x64.

Already reviewed at: http://codereview.chromium.org/2078022/show

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

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

14 years agoReverting r4685, r4686, r4687
vegorov@chromium.org [Thu, 20 May 2010 14:02:51 +0000 (14:02 +0000)]
Reverting r4685, r4686, r4687

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

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

14 years agoOrthogonalize the byte codes used for the snapshot so that
erik.corry@gmail.com [Thu, 20 May 2010 13:54:31 +0000 (13:54 +0000)]
Orthogonalize the byte codes used for the snapshot so that
the issue of how the pointee is found and how the pointer
is encoded are separated out.  This will make it simpler to
support various pointers from and to code in the future.
Review URL: http://codereview.chromium.org/2069013

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

14 years agoComplete the full codegenerator on x64.
ager@chromium.org [Thu, 20 May 2010 13:50:09 +0000 (13:50 +0000)]
Complete the full codegenerator on x64.

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

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

14 years ago- Changes to enable oldspaces iteration without maps decoding:
vegorov@chromium.org [Thu, 20 May 2010 13:10:38 +0000 (13:10 +0000)]
- Changes to enable oldspaces iteration without maps decoding:
-- layout change for FixedArrays: length is stored as a smis (initial patch by Kevin Millikin)
-- layout change for SharedFunctionInfo: integer fields are stored as smi on arm, ia32 and rearranged on x64.
-- layout change for String: meaning of LSB bit is fliped (1 now means hash not computed); on x64 padding is added.
-- layout of maps is _not_ changed. Map space is currently iterated in a special way.
- Cardmarking write barrier. New barrier handles large objects and normal objects in a similar fashion (no more additional space for pointer tracking is required, no conditional branches in WB code).

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

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

14 years agoTry flattening strings before comparing for equality.
vitalyr@chromium.org [Thu, 20 May 2010 09:01:39 +0000 (09:01 +0000)]
Try flattening strings before comparing for equality.

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

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

14 years agoFix buffer overflow in liveedit.
ager@chromium.org [Thu, 20 May 2010 08:59:36 +0000 (08:59 +0000)]
Fix buffer overflow in liveedit.

Make sure that there is always room for RelocInfoWriter::kMaxSize
bytes in the buffer before writing to it. We only ensured space for 8
bytes, but relocation information can be up to 16 bytes in x64.

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

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

14 years agoMark Mozilla test as possible timeout
sgjesse@chromium.org [Thu, 20 May 2010 08:03:01 +0000 (08:03 +0000)]
Mark Mozilla test as possible timeout

The Mozilla test ecma/Date/15.9.5.10-2 have been timing out a couple of times on the ARM simulator in debug mode.
Review URL: http://codereview.chromium.org/2070018

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

14 years agoARM: Don't require the receiver on the stack for load IC
sgjesse@chromium.org [Wed, 19 May 2010 10:29:19 +0000 (10:29 +0000)]
ARM: Don't require the receiver on the stack for load IC

Previously the receier was passed in both r0 and on the stack for a load IC. With this change the receiver is in r0 only.
Review URL: http://codereview.chromium.org/2119007

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

14 years agoIA32: Use the full compiler when debugging
sgjesse@chromium.org [Wed, 19 May 2010 09:07:33 +0000 (09:07 +0000)]
IA32: Use the full compiler when debugging

The full compiler will now be used for all code compiler when debugging is active. As the code generated by the full compiler is much simpler it will be easier to make debugging work better when using that code.

To ensure that all code debugged is from the full compiler all functions will have to be recompiled when starting debugging. Initialing debugging already turns off the code cache.
Review URL: http://codereview.chromium.org/2120009

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

14 years agoARM: Fix porting bug
sgjesse@chromium.org [Wed, 19 May 2010 08:36:14 +0000 (08:36 +0000)]
ARM: Fix porting bug

The port to ARM of a tail call wrongly kept the scheme of pushing below the return address.

TBR=antonm@chromium.org
Review URL: http://codereview.chromium.org/2091013

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

14 years agoX64: Make all arithmetic ops, and a few other, try to avoid rsp and r12 as base register.
lrn@chromium.org [Wed, 19 May 2010 08:16:52 +0000 (08:16 +0000)]
X64: Make all arithmetic ops, and a few other, try to avoid rsp and r12 as base register.
Using rsp or r12 as the "base" register of the ModR/M byte forces a SIB byte,
even with no index register. Some operations can avoid this by using another,
equivalent, encoding that swaps the meaning of the base and register parts.

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

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

14 years agoFixes to Solaris build. signbit and StackWalker. This is a commit for
erik.corry@gmail.com [Wed, 19 May 2010 07:36:25 +0000 (07:36 +0000)]
Fixes to Solaris build.  signbit and StackWalker.  This is a commit for
ry (coldredlemur@gmail.com).  See http://codereview.chromium.org/2092007

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

14 years agoAdd complete implementation of full compiler for the ia32 architecture
sgjesse@chromium.org [Wed, 19 May 2010 07:32:32 +0000 (07:32 +0000)]
Add complete implementation of full compiler for the ia32 architecture

This makes the full compiler handle all constructs on ia32. However the syntax checker for the full compiler is still the same so for both normal operation and with the flag --always-full-compiler the coverage of the full compiler will be the same.

This is on preparation for improving the debugger break point experience where the plan is to only use code from full code generator when debugging JavaScript.

Runs all tests on all three platforms in release and debug mode. The tests also run with both the following flags to the test runner

  --special-command="@ --nofull-compiler"
  --special-command="@ --always-full-compiler"

The changes to the x64 and ARM architectures are mainly structural due to the change to EmitVariableAssignment to handle initialization of const variables.
Review URL: http://codereview.chromium.org/1989012

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

14 years agoImproved GC statistics.
vegorov@chromium.org [Tue, 18 May 2010 16:50:17 +0000 (16:50 +0000)]
Improved GC statistics.

Collect cumulative (--print-cumulative-gc-stat) and per collection (--trace-gc-nvp) GC statistics and output it in a machine-readable name=value format.

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

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

14 years agoFix x64 compilation error in r4673.
whesse@chromium.org [Tue, 18 May 2010 15:18:23 +0000 (15:18 +0000)]
Fix x64 compilation error in r4673.
Review URL: http://codereview.chromium.org/2129010

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

14 years agoCPU profiler: add secure profiles by filtering out functions using security tokens.
mikhail.naganov@gmail.com [Tue, 18 May 2010 14:19:33 +0000 (14:19 +0000)]
CPU profiler: add secure profiles by filtering out functions using security tokens.

As several pages can run in a single V8 instance, it is possible to
have functions from different security contexts intermixed in a single
CPU profile.  To avoid exposing function names from one page to
another, filtering is introduced.

The basic idea is that instead of capturing return addresses from
stack, we're now capturing JSFunction addresses (as we anyway work
only with JS stack frames.)  Each JSFunction can reach out for
context's security token. When providing a profile to a page, the
profile is filtered using the security token of caller page. Any
functions with different security tokens are filtered out (yes, we
only do fast path check for now) and their ticks are attributed to
their parents.

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

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

14 years agoRemove unused relocation mode.
erik.corry@gmail.com [Tue, 18 May 2010 13:39:16 +0000 (13:39 +0000)]
Remove unused relocation mode.
Review URL: http://codereview.chromium.org/2136012

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

14 years agoSpill arguments for a function call from the virtual frame as they are produced.
whesse@chromium.org [Tue, 18 May 2010 11:19:34 +0000 (11:19 +0000)]
Spill arguments for a function call from the virtual frame as they are produced.
Review URL: http://codereview.chromium.org/2103007

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

14 years agoEliminate smi check using type information in x64 count operation.
fschneider@chromium.org [Tue, 18 May 2010 08:43:08 +0000 (08:43 +0000)]
Eliminate smi check using type information in x64 count operation.

Also simplify the assertion code for type information in the macro assembler.

Review URL: http://codereview.chromium.org/2130003/show

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

14 years agoFix presubmit error.
sgjesse@chromium.org [Tue, 18 May 2010 06:59:23 +0000 (06:59 +0000)]
Fix presubmit error.

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

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

14 years agoARM: Pass arguments to keyed store IC in registers
sgjesse@chromium.org [Tue, 18 May 2010 06:57:12 +0000 (06:57 +0000)]
ARM: Pass arguments to keyed store IC in registers

The calling convention for keyed store IC on ARM is changed to receive the arguments value, key and receiver in registers r0, r1 and r2 instead of on the stack. When calling keyed store IC with a virtual frame the arguments are passed through the virtual frame and consumed by the call.

Changed the register usage in the IC code to postpone spilling the registers holding value, key and receiver to the stack until making  a call into the runtime system.

Runs all the tests with:

  --special-command="@ --nofull-compiler"
  --special-command="@ --always-full-compiler"
  --special-command="@ --noenable-vfp3"
Review URL: http://codereview.chromium.org/2116003

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

14 years agoARM: Fix generating two ldr instructions in place of ldrd.
sgjesse@chromium.org [Tue, 18 May 2010 06:38:42 +0000 (06:38 +0000)]
ARM: Fix generating two ldr instructions in place of ldrd.

When ldrd is not available two ldr instructions are generated. This fixes these in the case where the register used in the memory operand is the same as the first register in the register pair receiving the values.

All tests now run on ARM with the flag --special-command="@ --noenable-vfp3". Running without VFP3 support in the simulator causes more ldrd instructions to be used, and the default build configuration does not utilize ldrd, but generated tow ldr instructions.
Review URL: http://codereview.chromium.org/2078013

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

14 years agoAllow build-time selection between ia32 and x86_64 in the GYP/Xcode Mac
mark@chromium.org [Mon, 17 May 2010 15:41:35 +0000 (15:41 +0000)]
Allow build-time selection between ia32 and x86_64 in the GYP/Xcode Mac
Chromium build.

v8.gyp no longer sets any V8_TARGET_ARCH_* macro on the Mac. Instead, the
proper V8_TARGET_ARCH_* macro will be set by src/globals.h in the same way as
the V8_HOST_ARCH_* macro when it detects that no target macro is currently
defined. The Mac build will attempt to compile all ia32 and x86_64 .cc files.
#ifdef guards in each of these target-specific source files prevent their
compilation when the associated target is not selected. For completeness,
these #ifdef guards are also provided for the arm and mips .cc files.

BUG=706
TEST=x86_64 Mac GYP/Xcode-based Chromium build (still depends on other changes)
Review URL: http://codereview.chromium.org/2133003

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

14 years agoFix dtoa for the LP64 model on 64-bit systems, where long is 64 bits.
mark@chromium.org [Mon, 17 May 2010 15:41:16 +0000 (15:41 +0000)]
Fix dtoa for the LP64 model on 64-bit systems, where long is 64 bits.

dtoa.c:69 states: #define Long int on machines with 32-bit ints and 64-bit
longs. This change was made in Chromium's version of dtoa in r21901. I don't
know why this apparently hasn't caused a problem in v8 until now. I was
unable to build a snapshot on x86_64 Mac without this change.

BUG=706
TEST=x86_64 Mac GYP/Xcode-based Chromium build (still depends on other changes)

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

14 years agoUse direct loop when filling small arrays.
antonm@chromium.org [Mon, 17 May 2010 14:14:34 +0000 (14:14 +0000)]
Use direct loop when filling small arrays.

r3995 (http://code.google.com/p/v8/source/detail?r=3995) introduce performance
regression for the case when arrat size is small (think new Array(4)).

It turns out that in those cases rep stos is slower than plain loop (apprently
due to ecx increment, but I didn't check this hypothesis.)  The next thing
to try could be direct jump into right place of long sequence of stos'es.

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

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

14 years agoPush/pop is just one peephole optimization. Puth them all
erik.corry@gmail.com [Mon, 17 May 2010 11:19:10 +0000 (11:19 +0000)]
Push/pop is just one peephole optimization.  Puth them all
under one flag.  Also other cosmetic changes to peephole
optimization.
Review URL: http://codereview.chromium.org/2104006

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

14 years agoBetter peephole optimization for ARM. This is a commit of
erik.corry@gmail.com [Mon, 17 May 2010 10:51:41 +0000 (10:51 +0000)]
Better peephole optimization for ARM.  This is a commit of
http://codereview.chromium.org/2004006 for Subrato De.

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

14 years agoPrepare push to trunk. We are now vorking on version 2.2.11.
vegorov@chromium.org [Mon, 17 May 2010 09:01:39 +0000 (09:01 +0000)]
Prepare push to trunk. We are now vorking on version 2.2.11.

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

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

14 years agoIncorporate feedback from issue 679 and issue 690 into the
kasperl@chromium.org [Mon, 17 May 2010 05:59:20 +0000 (05:59 +0000)]
Incorporate feedback from issue 679 and issue 690 into the
benchmark suite thus forming a new candidate benchmark revision:

  * Remove dead code from RayTrace benchmark.
  * Avoid repeated number-to-string conversion in Splay.

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

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

14 years agoRemove tabs
peter.rybin@gmail.com [Fri, 14 May 2010 19:20:07 +0000 (19:20 +0000)]
Remove tabs

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

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

14 years agoAdd listbreakpoints command to protocol
peter.rybin@gmail.com [Fri, 14 May 2010 15:24:25 +0000 (15:24 +0000)]
Add listbreakpoints command to protocol

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

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

14 years agoModified codegen-arm.cc to no longer use V8_NATIVE_REGEXP, but to use
sgjesse@chromium.org [Fri, 14 May 2010 13:53:26 +0000 (13:53 +0000)]
Modified codegen-arm.cc to no longer use V8_NATIVE_REGEXP, but to use
V8_INTERPRETED_REGEXP (as per Issue 1635001).

BUG=none
TEST=Ran v8 tests, as well as against current Chromium browser.

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

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

14 years agoAdd stack traces to mjsunit tests.
vitalyr@chromium.org [Fri, 14 May 2010 10:00:24 +0000 (10:00 +0000)]
Add stack traces to mjsunit tests.

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

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

14 years agoSimplified replace JS.
lrn@chromium.org [Thu, 13 May 2010 12:13:27 +0000 (12:13 +0000)]
Simplified replace JS.
Refactored code so global/non-global regexps are handled in separate functions.
Inlined ApplyReplaceFunction at its only call point.

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

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

14 years agoRemove unused labels.
antonm@chromium.org [Wed, 12 May 2010 16:42:51 +0000 (16:42 +0000)]
Remove unused labels.

TBR=sgjesse@chromium.org

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

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

14 years agoApply "Update mjsunit.status rules for LiveEdit test" again
peter.rybin@gmail.com [Wed, 12 May 2010 14:46:09 +0000 (14:46 +0000)]
Apply "Update mjsunit.status rules for LiveEdit test" again

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

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

14 years agoInitialize jsfunction caches earlier.
antonm@chromium.org [Wed, 12 May 2010 12:44:00 +0000 (12:44 +0000)]
Initialize jsfunction caches earlier.

If --nolazy is on, we compile ArraySort which requires these caches
to be set up.

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

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

14 years agoProperly process arrays with overridden prototype in various Array's functions.
antonm@chromium.org [Wed, 12 May 2010 12:22:09 +0000 (12:22 +0000)]
Properly process arrays with overridden prototype in various Array's functions.

Bailout to JS Array builtins if array's prototype is different from
Array.prototype.  Otherwise there might be inherited elements coming
from this prototype.

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

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

14 years agoX64: Made bit-fiddling fallback for double-to-int32 conversion.
lrn@chromium.org [Wed, 12 May 2010 11:16:35 +0000 (11:16 +0000)]
X64: Made bit-fiddling fallback for double-to-int32 conversion.

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

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

14 years agoFix arm debug build.
ricow@chromium.org [Wed, 12 May 2010 11:15:55 +0000 (11:15 +0000)]
Fix arm debug build.
Review URL: http://codereview.chromium.org/2054010

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

14 years agoBuild fix. Remove unused variable.
ager@chromium.org [Wed, 12 May 2010 09:20:58 +0000 (09:20 +0000)]
Build fix. Remove unused variable.

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

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

14 years agoRefactor the fast-case code for loading local/global variables and
ager@chromium.org [Wed, 12 May 2010 09:12:23 +0000 (09:12 +0000)]
Refactor the fast-case code for loading local/global variables and
arguments in the presence of eval to avoid code duplication. Almost
the same code was duplicated for loading properties and calling
properties.

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

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

14 years agoARM: Fix jumptargets to actually merge virtual frames.
erik.corry@gmail.com [Wed, 12 May 2010 09:00:29 +0000 (09:00 +0000)]
ARM: Fix jumptargets to actually merge virtual frames.
Make use of the new functionality to make ++ and --
non-spilled operations.
Review URL: http://codereview.chromium.org/2041010

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

14 years agoia32: Helper function for getting an element of a fixed array from object pointer...
sgjesse@chromium.org [Tue, 11 May 2010 12:38:30 +0000 (12:38 +0000)]
ia32: Helper function for getting an element of a fixed array from object pointer and smi index.
Review URL: http://codereview.chromium.org/1990012

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

14 years agoOptimize loading the global object for a named load on x64.
whesse@chromium.org [Tue, 11 May 2010 08:32:13 +0000 (08:32 +0000)]
Optimize loading the global object for a named load on x64.
This is a port of r3911 to x64.
Review URL: http://codereview.chromium.org/1983005

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

14 years agoARM: Optimize shifts by constant integers, especially
erik.corry@gmail.com [Tue, 11 May 2010 08:27:56 +0000 (08:27 +0000)]
ARM: Optimize shifts by constant integers, especially
shifts by zero or arithmetic shifts.  Updated to also
eliminate ASR followed by LSL as per part two of
http://codereview.chromium.org/1987008/show
Review URL: http://codereview.chromium.org/2054007

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

14 years agoMade format string match arguments for GenericBinaryOpStub::GetName.
lrn@chromium.org [Tue, 11 May 2010 08:07:42 +0000 (08:07 +0000)]
Made format string match arguments for GenericBinaryOpStub::GetName.

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

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

14 years agoRegExp: Remove use of 16-bit immediates on ia32/x64.
lrn@chromium.org [Tue, 11 May 2010 07:29:10 +0000 (07:29 +0000)]
RegExp: Remove use of 16-bit immediates on ia32/x64.
Also check more than one character at a time.
16-bit immediates requires a prefix that changes the length of the instruction.
This causes predecoder mispredictions and subsequent pipeline stalls.
Also removed redundant "atStart" local variable which is equivalent to startIndex == 0.

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

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

14 years agoMove __C99FEATURES__ define to compile for Solaris
erik.corry@gmail.com [Tue, 11 May 2010 07:04:42 +0000 (07:04 +0000)]
Move __C99FEATURES__ define to compile for Solaris
Patch from ry.
http://codereview.chromium.org/1990010/show

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

14 years agoRevert "Update mjsunit.status rules for LiveEdit test"
peter.rybin@gmail.com [Mon, 10 May 2010 17:57:42 +0000 (17:57 +0000)]
Revert "Update mjsunit.status rules for LiveEdit test"

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

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

14 years agoAdded Heap:: prefix to kFixedArrayMapRootIndex in ARM
ager@chromium.org [Mon, 10 May 2010 17:19:48 +0000 (17:19 +0000)]
Added Heap:: prefix to kFixedArrayMapRootIndex in ARM
codegenerator. The missing scoping breaks the build with some
compilers.

TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/2036007

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

14 years agoUpdate mjsunit.status rules for LiveEdit test
peter.rybin@gmail.com [Mon, 10 May 2010 17:09:38 +0000 (17:09 +0000)]
Update mjsunit.status rules for LiveEdit test

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

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

14 years agoSupport both TOS register combinations in inlined keyed load
sgjesse@chromium.org [Mon, 10 May 2010 13:23:42 +0000 (13:23 +0000)]
Support both TOS register combinations in inlined keyed load

When popping key and receiver for an inlined keyed load support either order of r0/r1. The possible swap to have key in r0 and receiver in r1 is postponed to the deferred code calling the keyed load IC.
Review URL: http://codereview.chromium.org/1992012

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

14 years agoImplement fast load and call of arguments in the presence of eval.
ager@chromium.org [Mon, 10 May 2010 12:20:06 +0000 (12:20 +0000)]
Implement fast load and call of arguments in the presence of eval.

Load the arguments object from the context if there are no extensions
objects on the way. Then load the argument with a keyed load ic.

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

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

14 years agoMake X64 double-to-int32 conversion use the 64-bit version of cvttsd2si.
lrn@chromium.org [Mon, 10 May 2010 11:38:58 +0000 (11:38 +0000)]
Make X64 double-to-int32 conversion use the 64-bit version of cvttsd2si.
Use type info to allow ia32 to use the 32-bit versions in some cases.
Remove sse3-specific code from X64 GenericBinaryOpStub.

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

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

14 years agoFirst step towards making JumpTarget work on ARM. Instead
erik.corry@gmail.com [Mon, 10 May 2010 11:32:25 +0000 (11:32 +0000)]
First step towards making JumpTarget work on ARM.  Instead
of having a list of virtual frame pointers in the jump
target we have one virtual frame, which is the frame that
all have to merge to to branch to that frame.  The virtual
frame in the JumpTarget is inside the JumpTarget, rather than
being an allocated object that is pointed to.  Unfortunately
this means that the JumpTarget class has to be able to see
the size of a VirtualFrame object to compile, which in turn
lead to a major reorganization of related .h files.  The
actual change of functionality in this change is intended
to be minimal (we now assert that the virtual frames match
when using JumpTarget instead of just assuming that they do).
Review URL: http://codereview.chromium.org/1961004

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

14 years agoAdd missing constant
sgjesse@chromium.org [Mon, 10 May 2010 11:29:07 +0000 (11:29 +0000)]
Add missing constant

Missed this file in last commit (r4629)

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

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

14 years agoFix inlined keyed property load on ARM
sgjesse@chromium.org [Mon, 10 May 2010 10:45:18 +0000 (10:45 +0000)]
Fix inlined keyed property load on ARM

The change r4608 accidently disabled the inlined keyed load as the key/receiver registers was mixed up. Also make sure that the registers for the keyed load IC is not clobbered before bailout to deferred code. This adds one instriction to the inlined code path.
Review URL: http://codereview.chromium.org/2018005

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

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