platform/upstream/v8.git
14 years agoAdd "has fast elements" bit to maps and use it in inlined keyed loads.
vitalyr@chromium.org [Thu, 24 Jun 2010 13:56:35 +0000 (13:56 +0000)]
Add "has fast elements" bit to maps and use it in inlined keyed loads.

A potential issue with this change is creating lots of maps when
objects flip between fast/slow elements modes.  We could add special
transitions to avoid this.  Yet testing this on our benchmarks, gmail,
and wave seems to indicate that this is not a real problem.

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

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

14 years agoFixing the regression introduced in r4716.
kaznacheev@chromium.org [Thu, 24 Jun 2010 12:31:49 +0000 (12:31 +0000)]
Fixing the regression introduced in r4716.

The regression made 2 tests fail on ia32 with --always-full-compiler.

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

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

14 years agoFix compilation failure on Win.
vegorov@chromium.org [Thu, 24 Jun 2010 12:11:24 +0000 (12:11 +0000)]
Fix compilation failure on Win.

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

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

14 years agoTake survival rates of young objects into account when choosing old generation limits.
vegorov@chromium.org [Thu, 24 Jun 2010 11:44:23 +0000 (11:44 +0000)]
Take survival rates of young objects into account when choosing old generation limits.

Stable high survival rates of young objects both during partial and
full collection indicate that mutator is either building or modifying
a structure with a long lifetime.

In this case we aggressively raise old generation memory limits to
postpone subsequent mark-sweep collection and trade memory space
for the mutation speed.

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

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

14 years agoChange kMinComplexMemCopy to 64 for IA32. It's just better.
sandholm@chromium.org [Thu, 24 Jun 2010 11:21:58 +0000 (11:21 +0000)]
Change kMinComplexMemCopy to 64 for IA32. It's just better.
Review URL: http://codereview.chromium.org/2818028

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

14 years agoARM: Remove spilled scopes.
erik.corry@gmail.com [Thu, 24 Jun 2010 11:05:38 +0000 (11:05 +0000)]
ARM: Remove spilled scopes.
Review URL: http://codereview.chromium.org/2848023

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

14 years agofixed
mikhail.naganov@gmail.com [Thu, 24 Jun 2010 10:05:57 +0000 (10:05 +0000)]
fixed

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

14 years agoX64: Remove more fpu code. Unroll more local initialization loops.
lrn@chromium.org [Thu, 24 Jun 2010 09:03:49 +0000 (09:03 +0000)]
X64: Remove more fpu code. Unroll more local initialization loops.

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

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

14 years agoMake SampleRateCalculator test resilient to float precision issues.
mikhail.naganov@gmail.com [Thu, 24 Jun 2010 08:57:24 +0000 (08:57 +0000)]
Make SampleRateCalculator test resilient to float precision issues.

Tested with kSamplingIntervalMs values 2 and 4.

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

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

14 years agoARM: Remove a bunch of spilled scopes. Still a lot to go.
erik.corry@gmail.com [Thu, 24 Jun 2010 07:54:48 +0000 (07:54 +0000)]
ARM: Remove a bunch of spilled scopes.  Still a lot to go.
Review URL: http://codereview.chromium.org/2828004

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

14 years agoX64: Change some fpu operations to use XMM registers.
lrn@chromium.org [Wed, 23 Jun 2010 14:05:18 +0000 (14:05 +0000)]
X64: Change some fpu operations to use XMM registers.

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

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

14 years agoARM: Fix bug introduced in 4783 (2.2.15) that caused the
erik.corry@gmail.com [Wed, 23 Jun 2010 13:44:11 +0000 (13:44 +0000)]
ARM: Fix bug introduced in 4783 (2.2.15) that caused the
result of 1 << x to be miscalculated for some inputs.
Review URL: http://codereview.chromium.org/2848021

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

14 years agoX64: A bunch of small fixes.
lrn@chromium.org [Wed, 23 Jun 2010 11:48:30 +0000 (11:48 +0000)]
X64: A bunch of small fixes.
Make push/pop use emit_optional_rex32.
Fix bug in disassembler (swapped name of comisd/ucomisd).
Use fstp in FCmp macro.

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

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

14 years agoUse SSE2 registers when comparing identical heap numbers on X64.
whesse@chromium.org [Wed, 23 Jun 2010 09:21:32 +0000 (09:21 +0000)]
Use SSE2 registers when comparing identical heap numbers on X64.
Review URL: http://codereview.chromium.org/2850018

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

14 years agoRemove redundant checks in and around GenerateDictionaryLoad.
kaznacheev@chromium.org [Wed, 23 Jun 2010 09:10:21 +0000 (09:10 +0000)]
Remove redundant checks in and around GenerateDictionaryLoad.

Similar or duplicate checks are scattered around the code before doing the dictionary load.
Also the entire branch in GenerateCallNormal that handles global/builtin receiver is
guaranteed to bail out from GenerateDictionaryLoad, so there is no point in generating it at all.

The purpose of the patch is:
- making C++ code more compact and transparent,
- not generating dead code.

There is a tiny performance gain. The patch is ia32 only for now.

Please tell me if I am missing anything.

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

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

14 years agoPrepare push to trunk. Now working on version 2.2.20.
ricow@chromium.org [Wed, 23 Jun 2010 08:51:53 +0000 (08:51 +0000)]
Prepare push to trunk. Now working on version 2.2.20.
Review URL: http://codereview.chromium.org/2815025

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

14 years agoAdd regression test for the code flushing in issue 474 (which was
ricow@chromium.org [Wed, 23 Jun 2010 08:02:06 +0000 (08:02 +0000)]
Add regression test for the code flushing in issue 474 (which was
fixed in revision 4921).

This also enables codeflushing by default.

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

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

14 years agoOnly flush code when there are no heap allocated locals in the scopeinfo.
ricow@chromium.org [Wed, 23 Jun 2010 07:16:09 +0000 (07:16 +0000)]
Only flush code when there are no heap allocated locals in the scopeinfo.

When flushing code we can potentially flush code with a scopeinfo that
we later need to resolve variables. This makes an explicit check that
there are heap allocated locals in the scopeinfo.

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

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

14 years agoLower waste from alignment of deferred code blocks.
lrn@chromium.org [Wed, 23 Jun 2010 07:03:34 +0000 (07:03 +0000)]
Lower waste from alignment of deferred code blocks.
Some ARM chips load instructions 8 byte at a time.

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

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

14 years agoMake the apply.js unit test more resilient to differing stack positions.
lukezarko [Tue, 22 Jun 2010 22:20:58 +0000 (22:20 +0000)]
Make the apply.js unit test more resilient to differing stack positions.

More information is at http://code.google.com/p/v8/issues/detail?id=742

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

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

14 years agoHeap profiler: perform a GC round before taking a snapshot
mikhail.naganov@gmail.com [Tue, 22 Jun 2010 14:58:08 +0000 (14:58 +0000)]
Heap profiler: perform a GC round before taking a snapshot
to get rid of global object loaded from a snapshot. This
eliminates the "double global object" issue. Thanks to Mads
for suggesting this!

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

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

14 years agoMade scanner follow coding style.
lrn@chromium.org [Tue, 22 Jun 2010 12:31:24 +0000 (12:31 +0000)]
Made scanner follow coding style.

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

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

14 years agoAugment trace-ic to provide information on patching inlined loads.
erik.corry@gmail.com [Tue, 22 Jun 2010 12:12:32 +0000 (12:12 +0000)]
Augment trace-ic to provide information on patching inlined loads.
Review URL: http://codereview.chromium.org/2818023

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

14 years agoX64: Change strategy for spilling to match ia32. It's just better.
lrn@chromium.org [Tue, 22 Jun 2010 10:07:57 +0000 (10:07 +0000)]
X64: Change strategy for spilling to match ia32. It's just better.
Align deferred code blocks to 16-byte address boundaries.

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

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

14 years agoAdd movw and movt support for ARMv7. This includes some code from
erik.corry@gmail.com [Tue, 22 Jun 2010 08:38:32 +0000 (08:38 +0000)]
Add movw and movt support for ARMv7.  This includes some code from
Zhang Kun.  For now we only emit movw and movt in places where no
relocation is needed.  Small performance boost (around 0.5%).
Also adds support for turning ALU operations (eor etc.) with
large immediates into mvn or movw followed by a register-based
ALU operation.
Review URL: http://codereview.chromium.org/2821014

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

14 years agoUse this->Foo() in some places due to two-phase lookup.
evan@chromium.org [Mon, 21 Jun 2010 20:52:43 +0000 (20:52 +0000)]
Use this->Foo() in some places due to two-phase lookup.

This is required by more strict compilers (Clang).
Review URL: http://codereview.chromium.org/2037004

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

14 years agoX64: Fix bug in LoadSSE2NumberOperands. It can be called with two smis!
lrn@chromium.org [Mon, 21 Jun 2010 12:39:37 +0000 (12:39 +0000)]
X64: Fix bug in LoadSSE2NumberOperands. It can be called with two smis!
Remove some unused labels.

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

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

14 years agoX64: Reapply fix for allocating HeapNumber results for >>>.
lrn@chromium.org [Mon, 21 Jun 2010 11:21:36 +0000 (11:21 +0000)]
X64: Reapply fix for allocating HeapNumber results for >>>.
Also skip case where both number arguments are smis.

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

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

14 years agoARM: Update the generation of the name for GenericBinaryOpStub
sgjesse@chromium.org [Mon, 21 Jun 2010 10:34:25 +0000 (10:34 +0000)]
ARM: Update the generation of the name for GenericBinaryOpStub
Review URL: http://codereview.chromium.org/2840011

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

14 years agoAvoid redundant smi check in x64 loading of floats into SSE2 registers.
whesse@chromium.org [Mon, 21 Jun 2010 09:04:44 +0000 (09:04 +0000)]
Avoid redundant smi check in x64 loading of floats into SSE2 registers.
Review URL: http://codereview.chromium.org/2862004

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

14 years agoX64: Load HeapNumberMap once in BinaryOpStub, and reuse it.
lrn@chromium.org [Mon, 21 Jun 2010 08:51:44 +0000 (08:51 +0000)]
X64: Load HeapNumberMap once in BinaryOpStub, and reuse it.

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

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

14 years agoX64: Make more computations happen on 32-bit values instead of on smis.
lrn@chromium.org [Fri, 18 Jun 2010 12:55:04 +0000 (12:55 +0000)]
X64: Make more computations happen on 32-bit values instead of on smis.

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

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

14 years agoAPI: Resolve linker issues with using V8 as a DLL
sgjesse@chromium.org [Fri, 18 Jun 2010 10:52:59 +0000 (10:52 +0000)]
API: Resolve linker issues with using V8 as a DLL

This changes the way the constants kJSObjectType, kFirstNonstringType and kProxyType are made available to the inlined part of the V8 API. This change to fixed constants resolves linker this linker error Windows

error LNK2001: unresolved external symbol "public: static int v8::internal::Internals::kJSObjectType" (?kJSObjectType@Internals@internal@v8@@2HA)

when linking against a V8 DLL.

This change also makes it possible to build all the C++ tests with ENABLE_DEBUGGER_SUPPORT not defined. Now C++ tests run ENABLE_DEBUGGER_SUPPORT not defined, and only the JavaScript tests which tests the debugger fails when ENABLE_DEBUGGER_SUPPORT is not defined.
Review URL: http://codereview.chromium.org/2820016

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

14 years agoARM: Load the heap number map into a register and keep it
erik.corry@gmail.com [Thu, 17 Jun 2010 21:51:51 +0000 (21:51 +0000)]
ARM: Load the heap number map into a register and keep it
there throughout the binary op stub (used for checking and
creating heap numbers).
Review URL: http://codereview.chromium.org/2843010

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

14 years agoPush AccessorInfo data directly if they reside in old space.
antonm@chromium.org [Thu, 17 Jun 2010 17:13:40 +0000 (17:13 +0000)]
Push AccessorInfo data directly if they reside in old space.

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

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

14 years agoTrack ascii-ness of data in externalized strings.
vitalyr@chromium.org [Thu, 17 Jun 2010 16:19:28 +0000 (16:19 +0000)]
Track ascii-ness of data in externalized strings.

If a two-byte string only contains ascii characters, then we can save
memory when flattening a cons string containing it. Similarly we can
use this in Array.prototype.join implementation. To track this a new
bit is added to instance type. This bit is used as a hint in generated
code and in runtime functions.

To enable testing a new V8 extension is added controlled by
--expose-externalize-string flag.

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

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

14 years agoX64: Change some smi operations to work on untagged integers instead.
lrn@chromium.org [Thu, 17 Jun 2010 15:48:43 +0000 (15:48 +0000)]
X64: Change some smi operations to work on untagged integers instead.
Use direct reading and writing of integers from Smi fields.
Change RecordWrite with 0 offset to take untagged index instead of
smi tagged index.

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

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

14 years agoHeap profiler: add a missing link between a function closure and shared function...
mikhail.naganov@gmail.com [Thu, 17 Jun 2010 12:56:55 +0000 (12:56 +0000)]
Heap profiler: add a missing link between a function closure and shared function info.

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

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

14 years agoFix a bug when top level break points fall into the last function in script.
podivilov@chromium.org [Thu, 17 Jun 2010 12:47:08 +0000 (12:47 +0000)]
Fix a bug when top level break points fall into the last function in script.

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

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

14 years agoARM: Minor refactoring of RecordWrite, does not require the offset to
erik.corry@gmail.com [Thu, 17 Jun 2010 10:45:37 +0000 (10:45 +0000)]
ARM: Minor refactoring of RecordWrite, does not require the offset to
be in a register anymore. Code also updated to use the bitfield
instructions when available.  This is a commit of
http://codereview.chromium.org/2845003/show for Rodolph Perfetta.

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

14 years agoMove definition of NegateConditon from assembler*-inl.h files to
ager@chromium.org [Thu, 17 Jun 2010 08:41:48 +0000 (08:41 +0000)]
Move definition of NegateConditon from assembler*-inl.h files to
assembler*.h files to make clang happy. There was no reason for having
the definition in the -inl.h files in the first place.

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

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

14 years agoARM: Special case for modulus of two smis in the generic binary opration stub
sgjesse@chromium.org [Wed, 16 Jun 2010 20:03:32 +0000 (20:03 +0000)]
ARM: Special case for modulus of two smis in the generic binary opration stub

When lhs and rhs are positive smis and rhs is a power of two perform modulus by masking.
Review URL: http://codereview.chromium.org/2873001

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

14 years agoFix issue 738: make compilable with profilingsupport=off
mikhail.naganov@gmail.com [Wed, 16 Jun 2010 19:53:24 +0000 (19:53 +0000)]
Fix issue 738: make compilable with profilingsupport=off

BUG=738
TBR=sgjesse@chromium.org

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

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

14 years agoSave actual break point location to script break point object.
podivilov@chromium.org [Wed, 16 Jun 2010 14:50:07 +0000 (14:50 +0000)]
Save actual break point location to script break point object.
Review URL: http://codereview.chromium.org/2864003

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

14 years agoRemove the comisd instruction from the ia32 and x64 assemblers. We
ager@chromium.org [Wed, 16 Jun 2010 12:32:34 +0000 (12:32 +0000)]
Remove the comisd instruction from the ia32 and x64 assemblers. We
should always use ucomisd.

Add missing pop from floating-point stack in case of allocation failure.
Review URL: http://codereview.chromium.org/2831009

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

14 years agoX64: Change overflow checks to only jump on overflow.
lrn@chromium.org [Wed, 16 Jun 2010 12:11:22 +0000 (12:11 +0000)]
X64: Change overflow checks to only jump on overflow.
Costs an extra move because the result is calculated in a scratch register
and only moved to destination on non-overflow in order to preserve source
registers in case of overflow.

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

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

14 years agoPrepare push to trunk. We are now working on version 2.2.19.
whesse@chromium.org [Wed, 16 Jun 2010 10:36:47 +0000 (10:36 +0000)]
Prepare push to trunk. We are now working on version 2.2.19.
Review URL: http://codereview.chromium.org/2806009

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

14 years agoPort KeyedCallIC implementation to x64 and ARM.
kaznacheev@chromium.org [Wed, 16 Jun 2010 10:03:47 +0000 (10:03 +0000)]
Port KeyedCallIC implementation to x64 and ARM.

Also edited ic-ia32.cc for clarity and better formatting.

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

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

14 years agoChange hash computation for transcendental cache to use arithmetic
ager@chromium.org [Wed, 16 Jun 2010 08:29:25 +0000 (08:29 +0000)]
Change hash computation for transcendental cache to use arithmetic
shifts. Leads to fewer collisions.

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

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

14 years agoRemove old named property query API.
antonm@chromium.org [Tue, 15 Jun 2010 17:01:02 +0000 (17:01 +0000)]
Remove old named property query API.

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

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

14 years agoFix HeapSnapshot test in the case when snapshotting is enabled.
mikhail.naganov@gmail.com [Tue, 15 Jun 2010 12:28:25 +0000 (12:28 +0000)]
Fix HeapSnapshot test in the case when snapshotting is enabled.

TBR=sgjesse@chromium.org

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

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

14 years agoHeap profiler: publish API and add test.
mikhail.naganov@gmail.com [Tue, 15 Jun 2010 11:44:07 +0000 (11:44 +0000)]
Heap profiler: publish API and add test.

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

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

14 years agoAdd external references used for regexp execution to the serializer.
ager@chromium.org [Mon, 14 Jun 2010 21:03:59 +0000 (21:03 +0000)]
Add external references used for regexp execution to the serializer.

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

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

14 years agoAdd support for elements and array indices in Object.defineProperty
ricow@chromium.org [Mon, 14 Jun 2010 13:55:38 +0000 (13:55 +0000)]
Add support for elements and array indices in Object.defineProperty
(fixes bug 619).

This also fixes a bug in GetOwnProperty in runtime.cc discovered by
the new test cases. That part of the code was not testable before
since we had no way of correctly defining properties on elements.

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

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

14 years agoFix Mac build of r4860
sgjesse@chromium.org [Mon, 14 Jun 2010 13:19:16 +0000 (13:19 +0000)]
Fix Mac build of r4860

Build error:
test/cctest/test-api.cc: In function 'void ExternalArrayInfoTestHelper(v8::ExternalArrayType)':
test/cctest/test-api.cc:10069: warning: control may reach end of non-void function 'int ExternalArrayElementSize(v8::ExternalArrayType)' being inlined

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

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

14 years agoAPI: Added functions to retreive information on indexed properties managed by the...
sgjesse@chromium.org [Mon, 14 Jun 2010 13:09:27 +0000 (13:09 +0000)]
API: Added functions to retreive information on indexed properties managed by the embedding layer

BUG=737
TEST=test-api/PixelArrayInfo, test-api/ExternalArrayInfo
Review URL: http://codereview.chromium.org/2818003

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

14 years agoAnother x64 build fix. Actually builds now.
ager@chromium.org [Mon, 14 Jun 2010 12:55:37 +0000 (12:55 +0000)]
Another x64 build fix. Actually builds now.

KExponentBits -> kExponentBits.

TBR=erik.corry@gmail.com

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

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

14 years agoFix build by fixing a typo in codegen-x64.cc.
ager@chromium.org [Mon, 14 Jun 2010 12:43:00 +0000 (12:43 +0000)]
Fix build by fixing a typo in codegen-x64.cc.

TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/2824002

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

14 years agoRemove direct reference from builtins code to global object. Load the
ager@chromium.org [Mon, 14 Jun 2010 12:08:39 +0000 (12:08 +0000)]
Remove direct reference from builtins code to global object. Load the
global object through the context instead.

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

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

14 years agoARM: Change code generation for function return
sgjesse@chromium.org [Mon, 14 Jun 2010 11:37:05 +0000 (11:37 +0000)]
ARM: Change code generation for function return

Generating code for function return on ARM is now aligned with the other platforms. The first non-shadowed return statement encountered will emit code for function return and all other returns including the fall through at the bottom of a function will jump to that.
Review URL: http://codereview.chromium.org/2815003

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

14 years agoARM: Be more smart about switching instructions when immediates
erik.corry@gmail.com [Mon, 14 Jun 2010 11:20:36 +0000 (11:20 +0000)]
ARM: Be more smart about switching instructions when immediates
don't fit in the instruction.  Use ubfx and sbfx more.
Review URL: http://codereview.chromium.org/2826001

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

14 years agoChange tests for string type in RegExpExecStub on all platforms.
whesse@chromium.org [Mon, 14 Jun 2010 10:21:24 +0000 (10:21 +0000)]
Change tests for string type in RegExpExecStub on all platforms.
Review URL: http://codereview.chromium.org/2772004

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

14 years agoOnly update the stub cache tables with monomorphic stubs used by
ager@chromium.org [Mon, 14 Jun 2010 10:10:42 +0000 (10:10 +0000)]
Only update the stub cache tables with monomorphic stubs used by
megamorphic call sites. This removes a lot of contention in the
tables.

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

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

14 years agoPrepare push to trunk. We are now working on version 2.2.18.
ager@chromium.org [Mon, 14 Jun 2010 07:27:25 +0000 (07:27 +0000)]
Prepare push to trunk. We are now working on version 2.2.18.

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

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

14 years agoFaster implementation of Heap::RecordWrites.
antonm@chromium.org [Fri, 11 Jun 2010 17:03:19 +0000 (17:03 +0000)]
Faster implementation of Heap::RecordWrites.

Naive algorithm for to update RSets for a span is rather inefficient
as it performs many unnecessary operations (retrieving a mask, updating
it with the same bit as many pointers go into a single region).

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

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

14 years agoThe new JS Heap Profiler: the main part.
mikhail.naganov@gmail.com [Fri, 11 Jun 2010 16:34:59 +0000 (16:34 +0000)]
The new JS Heap Profiler: the main part.

There is no test in this patch, because the test uses V8 API,
which is coming in a separate change list.

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

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

14 years agoFix thinko in arm transcendental cache probing introduced just before
ager@chromium.org [Fri, 11 Jun 2010 12:26:41 +0000 (12:26 +0000)]
Fix thinko in arm transcendental cache probing introduced just before
committing.

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

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

14 years agoAllow users to specify a scons build cache directory.
ager@chromium.org [Fri, 11 Jun 2010 11:19:27 +0000 (11:19 +0000)]
Allow users to specify a scons build cache directory.

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

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

14 years agoAdd missing files accidentally left out on last commit.
ager@chromium.org [Fri, 11 Jun 2010 10:25:34 +0000 (10:25 +0000)]
Add missing files accidentally left out on last commit.

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

14 years agoImplement transcendental cache probing in generated code on ARM.
ager@chromium.org [Fri, 11 Jun 2010 10:18:44 +0000 (10:18 +0000)]
Implement transcendental cache probing in generated code on ARM.

Fixed hash code computation on ia32 and x64 to match the runtime
system (change arithmetic shift right to logical shift right).

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

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

14 years agoOnly perform code flusing test if we actually do code flushing.
ricow@chromium.org [Fri, 11 Jun 2010 08:52:36 +0000 (08:52 +0000)]
Only perform code flusing test if we actually do code flushing.

Puts a check into the code flushing test to only perform this if the
flush_code flag is set to true.

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

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

14 years agoPut code flushing behind flag - defaults to false.
ricow@chromium.org [Fri, 11 Jun 2010 07:06:51 +0000 (07:06 +0000)]
Put code flushing behind flag - defaults to false.

Since we have an issue with code flusing on the trybots preventing us
from pushing to chromium, a new flag for enabling code flushing,
--flush_code, is introduced with this change (defaulting to false).

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

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

14 years agoUse static type information in ConstantIntBinaryOperation on x64.
whesse@chromium.org [Thu, 10 Jun 2010 14:37:49 +0000 (14:37 +0000)]
Use static type information in ConstantIntBinaryOperation on x64.
Review URL: http://codereview.chromium.org/2754004

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

14 years agoBetter handling of stepping out of a function
sgjesse@chromium.org [Thu, 10 Jun 2010 09:02:16 +0000 (09:02 +0000)]
Better handling of stepping out of a function

With the change in r4820 all return statements are now breakable like any statement, so stepping will stop before the return statement actually returning from a function. With this change the position when breaking in the function return (after executing the return statement) will be the actual end of the function. At this point the return value is available as it saved to the stack by the debug break at return handling. Added information on the actual value returned from the function to the debugger.
Review URL: http://codereview.chromium.org/2783002

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

14 years agoAdd logic from KeyedLoadIC generic stub to KeyedCallIC megamorphic stub.
kaznacheev@chromium.org [Thu, 10 Jun 2010 05:06:39 +0000 (05:06 +0000)]
Add logic from KeyedLoadIC generic stub to KeyedCallIC megamorphic stub.

This should make access faster for arrays of functions.

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

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

14 years agoUse static type information on x64 in LikelySmiBinaryOperation.
whesse@chromium.org [Wed, 9 Jun 2010 11:15:54 +0000 (11:15 +0000)]
Use static type information on x64 in LikelySmiBinaryOperation.
Refactor check for smi operands, using type information, on ia32 and x64.
Review URL: http://codereview.chromium.org/2771001

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

14 years agoPrepare push to trunk. We are now working on version 2.2.17.
vegorov@chromium.org [Wed, 9 Jun 2010 09:27:54 +0000 (09:27 +0000)]
Prepare push to trunk. We are now working on version 2.2.17.
Review URL: http://codereview.chromium.org/2757004

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

14 years agoARM: Fix bug in r4820 related to code for additional break positions.
sgjesse@chromium.org [Wed, 9 Jun 2010 07:40:35 +0000 (07:40 +0000)]
ARM: Fix bug in r4820 related to code for additional break positions.

These issues where unly revealed in debug mode
Review URL: http://codereview.chromium.org/2733006

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

14 years agoFactor out StringsStorage from CpuProfilesCollection.
mikhail.naganov@gmail.com [Wed, 9 Jun 2010 07:00:33 +0000 (07:00 +0000)]
Factor out StringsStorage from CpuProfilesCollection.

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

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

14 years agox64: Fix code to return from debug break slot
sgjesse@chromium.org [Tue, 8 Jun 2010 12:50:42 +0000 (12:50 +0000)]
x64: Fix code to return from debug break slot

On x64 the return from debug break slot did not pop off the return address.

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

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

14 years agoAdd test_b(Operand, imm8) to ia32 disassembler.
whesse@chromium.org [Tue, 8 Jun 2010 12:44:24 +0000 (12:44 +0000)]
Add test_b(Operand, imm8) to ia32 disassembler.
Review URL: http://codereview.chromium.org/2765001

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

14 years agoAdd parenthesis around '&&' within '||'
sgjesse@chromium.org [Tue, 8 Jun 2010 12:20:24 +0000 (12:20 +0000)]
Add parenthesis around '&&' within '||'

Warning by some gcc versions. Adding the parenthesis made the condition correct.

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

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

14 years agoMore precise break points and stepping when debugging
sgjesse@chromium.org [Tue, 8 Jun 2010 12:04:49 +0000 (12:04 +0000)]
More precise break points and stepping when debugging

Added support for more precise break points when debugging and stepping. To achieve that additional nop instructions are inserted where breaking would otherwise be impossible. The number of nop instructions inserted are sufficient to make place for patching with a call to a debug break code stub. On Intel that is 5 nop's for 32-bit and 13 for 64-bit. Om ARM 3 nop instructions (12 bytes) are required.

In order to avoid inserting nop's in to many places a simple ast checker have been added to check whether there are breakable code in a statement or expression. If it is possible to break in an expression no additional break enabeling code is inserted.

Added break locations to the true and false part of a conditional expression.

Added stepping tests to cover more constructs.

These changes are only in the full compiler.

Changed the default value for the option --debugger in teh d8 shell from true to false. The reason for this is that with --debugger turned on the full compiler will be used for all code in when running d8, which can be unexpeceted.

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

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

14 years agoMove token-related constants from CodeEntry to TokenEnumerator.
mikhail.naganov@gmail.com [Tue, 8 Jun 2010 11:27:00 +0000 (11:27 +0000)]
Move token-related constants from CodeEntry to TokenEnumerator.

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

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

14 years agoFix building without debugger suport.
sgjesse@chromium.org [Tue, 8 Jun 2010 11:23:48 +0000 (11:23 +0000)]
Fix building without debugger suport.
Review URL: http://codereview.chromium.org/2733003

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

14 years agoFix bug in mjsunit/const-eval-init causing objects to be initialized to undefined.
ricow@chromium.org [Tue, 8 Jun 2010 11:20:36 +0000 (11:20 +0000)]
Fix bug in mjsunit/const-eval-init causing objects to be initialized to undefined.

In mjsunit/const-eval-init - testInitSlowCaseExtension a range of objects are initialized to undefined instead of a value because the variable i is within quotes (i.e., the source becommes "a1 = i" instead of "a1 = 1".

This should have no impact on the test, I just stumbled over this on
an unrelated matter.

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

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

14 years agoRemove the SetExternalStringDiposeCallback API
sgjesse@chromium.org [Tue, 8 Jun 2010 09:35:47 +0000 (09:35 +0000)]
Remove the SetExternalStringDiposeCallback API

Changed the disposal of external string resources to call a virtual Dispose method on the resource. The default inplementation of Dispose deletes the object and will capture the delete operator matching the new operator used to allocate the object.
Review URL: http://codereview.chromium.org/2658008

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

14 years agoAdd an overloaded PreCompile method that takes a Handle<String>.
ager@chromium.org [Tue, 8 Jun 2010 06:20:49 +0000 (06:20 +0000)]
Add an overloaded PreCompile method that takes a Handle<String>.

Code review URL: http://codereview.chromium.org/2633004/show

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

14 years agoFlushing of code from functions that we expect not to use again.
ricow@chromium.org [Mon, 7 Jun 2010 15:39:10 +0000 (15:39 +0000)]
Flushing of code from functions that we expect not to use again.

This adds an additional step to full gc, removing code from functions
that are no longer in the compilation cache. The code is replaced with
a lazy compile version enabling us to recompile the function in case
we do actually need it again.

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

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

14 years agoRevert change 4812 due to performance problems. This was a change in string addition...
whesse@chromium.org [Mon, 7 Jun 2010 13:16:05 +0000 (13:16 +0000)]
Revert change 4812 due to performance problems.  This was a change in string addition on ia32.
Review URL: http://codereview.chromium.org/2706001

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

14 years agoImprove generated code for string encoding tests on ia32.
whesse@chromium.org [Mon, 7 Jun 2010 12:15:10 +0000 (12:15 +0000)]
Improve generated code for string encoding tests on ia32.
Review URL: http://codereview.chromium.org/2673001

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

14 years agoCount Mark-Compact/Mark-Sweep collections only after compaction decision was made
vegorov@chromium.org [Mon, 7 Jun 2010 11:31:44 +0000 (11:31 +0000)]
Count Mark-Compact/Mark-Sweep collections only after compaction decision was made

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

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

14 years agoPrepare push to trunk. We are now working on version 2.2.16.
lrn@chromium.org [Mon, 7 Jun 2010 11:02:43 +0000 (11:02 +0000)]
Prepare push to trunk. We are now working on version 2.2.16.

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

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

14 years agoAdd regression tests for issues 728, 732
vegorov@chromium.org [Mon, 7 Jun 2010 10:54:42 +0000 (10:54 +0000)]
Add regression tests for issues 728, 732

TBR=lrn@chromium.org

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

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

14 years agoRevert r4782. Fix issues 728, 732.
vegorov@chromium.org [Mon, 7 Jun 2010 09:36:30 +0000 (09:36 +0000)]
Revert r4782. Fix issues 728, 732.

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

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

14 years agoAdd an API to control the disposal of external string resources
sgjesse@chromium.org [Mon, 7 Jun 2010 08:49:07 +0000 (08:49 +0000)]
Add an API to control the disposal of external string resources

A new callback have been added which - if set - will be called to dispose of external string resources passed from the embedder to the V8 engine.
Review URL: http://codereview.chromium.org/2645004

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

14 years agoExtend CallIC to support non-constant names.
kaznacheev@chromium.org [Mon, 7 Jun 2010 08:27:32 +0000 (08:27 +0000)]
Extend CallIC to support non-constant names.
This speeds up constructs like this:
var zz='replace'; '123'[zz]('3','4');

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

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

14 years agoPort fast eval calls to x64 and ARM. For global variables that can
ager@chromium.org [Mon, 7 Jun 2010 07:12:00 +0000 (07:12 +0000)]
Port fast eval calls to x64 and ARM.  For global variables that can
only be shadowed by eval-introduced variables we usually do not need
to do a context lookup in the runtime system.

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

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

14 years agoDirect load of global function prototype.
vitalyr@chromium.org [Fri, 4 Jun 2010 16:20:34 +0000 (16:20 +0000)]
Direct load of global function prototype.

As most of call IC code is tied to a context anyway we can save a few dependent loads by having a direct reference to an initial map of a global function.

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

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

14 years agoFix issue in previous test optimization
sandholm@chromium.org [Fri, 4 Jun 2010 13:43:41 +0000 (13:43 +0000)]
Fix issue in previous test optimization
Review URL: http://codereview.chromium.org/2653002

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