platform/upstream/v8.git
13 years agoPorting r10023 and r10054 to x64 (pointer cache for external strings).
yangguo@chromium.org [Thu, 24 Nov 2011 10:16:39 +0000 (10:16 +0000)]
Porting r10023 and r10054 to x64 (pointer cache for external strings).

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

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

13 years agoUpstream Android V8 change.
jkummerow@chromium.org [Wed, 23 Nov 2011 17:32:34 +0000 (17:32 +0000)]
Upstream Android V8 change.

Fix the Mac build. "_toolset" needs to be tested inside target_conditions now.

And there is no need to have -llog any more.

Review URL: http://codereview.chromium.org/8631012
Patch from Jing Zhao <jingzhao@chromium.org>.

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

13 years agoARM: Implement code stub for object literal creation.
mstarzinger@chromium.org [Wed, 23 Nov 2011 15:01:20 +0000 (15:01 +0000)]
ARM: Implement code stub for object literal creation.

This just ports r10036 to the ARM codegenerator. Please see the original
revision for a detailed description.

R=erik.corry@gmail.com

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

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

13 years agoRefactor Heap::SymbolMapForString to use switch/case.
yangguo@chromium.org [Wed, 23 Nov 2011 13:31:26 +0000 (13:31 +0000)]
Refactor Heap::SymbolMapForString to use switch/case.

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

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

13 years agoRecommit introducing short external strings.
yangguo@chromium.org [Wed, 23 Nov 2011 13:08:28 +0000 (13:08 +0000)]
Recommit introducing short external strings.

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

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

13 years agoPrepare push to trunk. Now working on version 3.7.11.
mstarzinger@chromium.org [Wed, 23 Nov 2011 11:56:52 +0000 (11:56 +0000)]
Prepare push to trunk.  Now working on version 3.7.11.

R=jkummerow@chromium.org

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

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

13 years agoRolling back r10049 due to webkit failures.
yangguo@chromium.org [Wed, 23 Nov 2011 10:41:12 +0000 (10:41 +0000)]
Rolling back r10049 due to webkit failures.

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

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

13 years agoIntroduce short external strings without pointer cache.
yangguo@chromium.org [Wed, 23 Nov 2011 09:58:58 +0000 (09:58 +0000)]
Introduce short external strings without pointer cache.

BUG=
TEST=

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

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

13 years agoMIPS: Reduced the number of threads in cctest test-lockers.
ricow@chromium.org [Wed, 23 Nov 2011 08:36:03 +0000 (08:36 +0000)]
MIPS: Reduced the number of threads in cctest test-lockers.

Some MIPS boards could not handle the large number of threads and failed these tests.

BUG=
TEST=
Review URL: http://codereview.chromium.org/8506008

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

13 years agoDecrease number of threads in ExtensionRegistration tests for mips, current number...
ricow@chromium.org [Wed, 23 Nov 2011 08:06:13 +0000 (08:06 +0000)]
Decrease number of threads in ExtensionRegistration tests for mips, current number is causing OOMs.

This was fixed for arm in revision 10045
Review URL: http://codereview.chromium.org/8662003

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

13 years agoSet the code age field of SharedFunctionInfo correctly.
ulan@chromium.org [Tue, 22 Nov 2011 19:46:00 +0000 (19:46 +0000)]
Set the code age field of SharedFunctionInfo correctly.

BUG=
TEST=

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

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

13 years agoFix ExtensionsRegistration cctest on ARM.
dslomov@chromium.org [Tue, 22 Nov 2011 18:51:53 +0000 (18:51 +0000)]
Fix ExtensionsRegistration cctest on ARM.
Reduced the number of created threads on ARM.

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

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

13 years agoSet maximum length of FixedArray in terms of elements instead an absolute number...
fschneider@chromium.org [Tue, 22 Nov 2011 16:02:26 +0000 (16:02 +0000)]
Set maximum length of FixedArray in terms of elements instead an absolute number of bytes.

This sets the limit to 128M elements on all platforms. Before allocating a large array may
cause an OutOfMemory on x64 whereas it would not on ia32.

Also remove an unused constant from the FreeSpace class.

BUG=103103
Review URL: http://codereview.chromium.org/8637015

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

13 years agoMIPS: Landing: [hydrogen] optimize switch with string clauses.
fschneider@chromium.org [Tue, 22 Nov 2011 13:51:56 +0000 (13:51 +0000)]
MIPS: Landing: [hydrogen] optimize switch with string clauses.

Port r10019 (9bbb78bf)

Original commit message:
Patch by Fedor Indutny <fedor.indutny@gmail.com>.

BUG=
TEST=
Review URL: http://codereview.chromium.org/8574073

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

13 years agoRemove unused runtime functions for literals.
mstarzinger@chromium.org [Tue, 22 Nov 2011 10:15:00 +0000 (10:15 +0000)]
Remove unused runtime functions for literals.

R=jkummerow@chromium.org

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

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

13 years agoMinimal changes required to build d8 for Android
jkummerow@chromium.org [Mon, 21 Nov 2011 15:01:52 +0000 (15:01 +0000)]
Minimal changes required to build d8 for Android

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

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

13 years agoAlways create deopt data when using full-codegen if the function is optimizable
ricow@chromium.org [Mon, 21 Nov 2011 14:07:46 +0000 (14:07 +0000)]
Always create deopt data when using full-codegen if the function is optimizable
Review URL: http://codereview.chromium.org/8611003

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

13 years agoMIPS: Add a level of indirection to exception handler addresses.
kmillikin@chromium.org [Mon, 21 Nov 2011 14:05:18 +0000 (14:05 +0000)]
MIPS: Add a level of indirection to exception handler addresses.

Port r9977 (9aded78be4).
Note: This is the port of the reapplied patch, not the original.

Original commit message:

To support deoptimization of exception handlers, the handler address in the
stack is converted to a pair of code object and an index into a separate
table of code offsets.  The index part is invariant under deoptimization.
The index is packed into the handler state field so that handler size does
not change.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8557003
Patch from Gergely Kis <gergely@homejinni.com>.

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

13 years agoFix presubmit error for recent revision.
mstarzinger@chromium.org [Mon, 21 Nov 2011 14:04:41 +0000 (14:04 +0000)]
Fix presubmit error for recent revision.

R=fschneider@chromium.org

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

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

13 years agoImplement code stub for object literal creation.
mstarzinger@chromium.org [Mon, 21 Nov 2011 13:27:44 +0000 (13:27 +0000)]
Implement code stub for object literal creation.

This generates code stubs for cloning of shallow object literal
boilerplates that have no elements and only fast properties. Improves
splay performance because object literals are created frequently.

R=fschneider@chromium.org

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

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

13 years agoPrepare push to trunk. Now working on version 3.7.10.
erikcorry [Mon, 21 Nov 2011 13:06:13 +0000 (13:06 +0000)]
Prepare push to trunk. Now working on version 3.7.10.
Review URL: http://codereview.chromium.org/8612001

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

13 years agoPropagate and combine constants in Hydrogen
fschneider@chromium.org [Mon, 21 Nov 2011 10:18:47 +0000 (10:18 +0000)]
Propagate and combine constants in Hydrogen

BUG=none
TEST=none
Review URL: http://codereview.chromium.org/8473002

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

13 years agoPartially revert r9734 due to crashes in dev and canary channel.
keuchel@chromium.org [Mon, 21 Nov 2011 08:44:02 +0000 (08:44 +0000)]
Partially revert r9734 due to crashes in dev and canary channel.

This reverts the changes to the ScopeIterator from r9734 to the
previous implementation. The other changes in the commit to Parser,
Scope and (Serialized)ScopeInfo are retained.

BUG=104522,v8:1824,v8:1826

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

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

13 years agoRemove more superfluous write barriers.
erik.corry@gmail.com [Fri, 18 Nov 2011 14:09:41 +0000 (14:09 +0000)]
Remove more superfluous write barriers.
Review URL: http://codereview.chromium.org/8595008

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

13 years agoAdd flag --collect-megamorphic-maps-from-stub-cache to help diagnose a
erik.corry@gmail.com [Fri, 18 Nov 2011 14:08:57 +0000 (14:08 +0000)]
Add flag --collect-megamorphic-maps-from-stub-cache to help diagnose a
memory leak.
Review URL: http://codereview.chromium.org/8599006

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

13 years agoReally fix missing HandleScope to prevent local handles to DOMWindow leaking.
mikhail.naganov@gmail.com [Fri, 18 Nov 2011 11:42:39 +0000 (11:42 +0000)]
Really fix missing HandleScope to prevent local handles to DOMWindow leaking.

A follow-up to r9994.

R=vitalyr@chromium.org
BUG=102895
TEST=cctests/test-heap-profiler/NoHandleLeaks

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

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

13 years agoFix debug builds.
yangguo@chromium.org [Fri, 18 Nov 2011 11:16:58 +0000 (11:16 +0000)]
Fix debug builds.

BUG=
TEST=

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

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

13 years agoAvoid explicitly using built-in new operator where possible to appease Windows build.
yangguo@chromium.org [Fri, 18 Nov 2011 11:08:46 +0000 (11:08 +0000)]
Avoid explicitly using built-in new operator where possible to appease Windows build.

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

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

13 years agoMIPS: Change generated code for substring not to bail out to runtime system.
yangguo@chromium.org [Fri, 18 Nov 2011 09:13:01 +0000 (09:13 +0000)]
MIPS: Change generated code for substring not to bail out to runtime system.

Port r10012 (09c6bcba81).

Original commit message:
There is no need to bail out to runtime system when creating sliced strings of external strings since the string content is unimportant.

BUG=
TEST=

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

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

13 years agoFixing compiler warning on gcc 4.6.1.
yangguo@chromium.org [Fri, 18 Nov 2011 09:10:19 +0000 (09:10 +0000)]
Fixing compiler warning on gcc 4.6.1.

BUG=v8:1831

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

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

13 years agoRemoving exit time destructors by leaking static members.
yangguo@chromium.org [Fri, 18 Nov 2011 08:59:33 +0000 (08:59 +0000)]
Removing exit time destructors by leaking static members.

Note that some cctests and d8 still contain statical members with exit time destructors.

BUG=v8:1828

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

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

13 years agoOptimize array literal boilerplate copy for fast cases.
danno@chromium.org [Thu, 17 Nov 2011 17:22:21 +0000 (17:22 +0000)]
Optimize array literal boilerplate copy for fast cases.

R=jkummerow@chromium.org
BUG=none
TEST=none

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

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

13 years agoAdd pointer cache field to external string for access in generated code.
yangguo@chromium.org [Thu, 17 Nov 2011 17:05:12 +0000 (17:05 +0000)]
Add pointer cache field to external string for access in generated code.

TEST=test/mjsunit/string-externalize.js

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

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

13 years agoAdd version of x64 FastCloneShallowArrayStub that copies all boilerplate kinds
danno@chromium.org [Thu, 17 Nov 2011 15:08:59 +0000 (15:08 +0000)]
Add version of x64 FastCloneShallowArrayStub that copies all boilerplate kinds

R=jkummerow@chromium.org
BUG=none
TEST=none

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

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

13 years agoAdd ia32 FastCloneShallowArrayStub that copies all boilerplate kinds.
danno@chromium.org [Thu, 17 Nov 2011 14:55:26 +0000 (14:55 +0000)]
Add ia32 FastCloneShallowArrayStub that copies all boilerplate kinds.

R=jkummerow@chromium.org
BUG=none
TEST=none

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

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

13 years agoMIPS: Fix lazy deoptimization at HInvokeFunction and enable target-recording call...
fschneider@chromium.org [Thu, 17 Nov 2011 14:33:49 +0000 (14:33 +0000)]
MIPS: Fix lazy deoptimization at HInvokeFunction and enable target-recording call-function stub.

Port r10006 (4b344a03).

Original commit message:

Changes the way we do lazy deoptimization:

1. For side-effect instructions, we insert the lazy-deopt call at
the following LLazyBailout instruction.

     CALL
     GAP
     LAZY-BAILOUT ==> lazy-deopt-call

2. For other instructions (StackCheck) we insert it right after the
instruction since the deopt targets an earlier deoptimization environment.

   STACK-CHECK
   GAP ==> lazy-deopt-call

The pc of the lazy-deopt call that will be patched in is recorded in the
deoptimization input data. Each Lithium instruction can have 0..n safepoints.
All safepoints get the deoptimization index of the associated LAZY-BAILOUT
instruction. On lazy deoptimization we use the return-pc to find the safepoint.
The safepoint tells us the deoptimization index, which in turn finds us the
PC where to insert the lazy-deopt-call.

Additional changes:
* RegExpLiteral marked it as having side-effects so that it
  gets an explicitlazy-bailout instruction (instead of
  treating it specially like stack-checks)
* Enable target recording CallFunctionStub to achieve
  more inlining on optimized code.

BUG=
TEST=
Review URL: http://codereview.chromium.org/8587008

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

13 years agoLanding: [hydrogen] optimize switch with string clauses. Patch by Fedor Indutny ...
fschneider@chromium.org [Thu, 17 Nov 2011 13:57:55 +0000 (13:57 +0000)]
Landing: [hydrogen] optimize switch with string clauses. Patch by Fedor Indutny <fedor.indutny@gmail.com>.

Original code review: http://codereview.chromium.org/8373029/
Review URL: http://codereview.chromium.org/8589019

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

13 years agoMIPS: Cleaned up an unused declaration in lithium-codegen-mips.h.
danno@chromium.org [Thu, 17 Nov 2011 13:36:27 +0000 (13:36 +0000)]
MIPS: Cleaned up an unused declaration in lithium-codegen-mips.h.

DoDeferredBinaryOpStub is not used (or even defined) anywhere.
MIPS can handle special cases of div, which is the only place it's used in the ARM version.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8588005
Patch from Gergely Kis <gergely@homejinni.com>.

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

13 years agoMIPS: Fixed a minor inconsistency in lithium-codegen-mips.cc
danno@chromium.org [Thu, 17 Nov 2011 13:35:15 +0000 (13:35 +0000)]
MIPS: Fixed a minor inconsistency in lithium-codegen-mips.cc

EmitIsObject is only called from one function, DoIsObjectAndBranch.
DoIsObjectAndBranch now passes the temp2 register to EmitIsObject
instead of simply relying on the two functions using the same
lithium scratch register.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8588004
Patch from Gergely Kis <gergely@homejinni.com>.

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

13 years agoMIPS: Re-work DoModI.
danno@chromium.org [Thu, 17 Nov 2011 13:33:56 +0000 (13:33 +0000)]
MIPS: Re-work DoModI.

Changes:
-separated the two code-paths (constant power of 2 divisor similar to ARM and everything else)
-replaced a bailout condition with faster handling (negative modulo result)
-removed a possibly useless mov instruction from one path
-replaced the IsConstantOperand condition with the more meaningful HasPowerOf2Divisor (although in this specific case they're equivalent)

BUG=
TEST=

Review URL: http://codereview.chromium.org/8591002
Patch from Gergely Kis <gergely@homejinni.com>.

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

13 years agoMIPS: Fix for Ins macro-assembler instruction for non-mips32r2 platforms.
danno@chromium.org [Thu, 17 Nov 2011 13:31:26 +0000 (13:31 +0000)]
MIPS: Fix for Ins macro-assembler instruction for non-mips32r2 platforms.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8520023
Patch from Gergely Kis <gergely@homejinni.com>.

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

13 years agoMIPS: Implement runtime function for array literal transitions.
danno@chromium.org [Thu, 17 Nov 2011 13:27:58 +0000 (13:27 +0000)]
MIPS: Implement runtime function for array literal transitions.

Port r9979(0cf0570a).

Original commit message:

Also simplify ia32 and x64 handing of the trace_elements_transition flag.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8557004
Patch from Gergely Kis <gregely@homejinni.com>.

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

13 years agoChange generated code for substring not to bail out to runtime system.
yangguo@chromium.org [Thu, 17 Nov 2011 08:40:40 +0000 (08:40 +0000)]
Change generated code for substring not to bail out to runtime system.

There is no need to bail out to runtime system when creating sliced strings of external strings since the string content is unimportant.

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

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

13 years agoPrepare push to trunk. Now working on version 3.7.9.
ricow@chromium.org [Thu, 17 Nov 2011 08:10:30 +0000 (08:10 +0000)]
Prepare push to trunk. Now working on version 3.7.9.
Review URL: http://codereview.chromium.org/8568042

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

13 years agoReset allocation info when we are releasing the page that contains allocation top.
vegorov@chromium.org [Wed, 16 Nov 2011 22:25:56 +0000 (22:25 +0000)]
Reset allocation info when we are releasing the page that contains allocation top.

R=erik.corry@gmail.com
BUG=103587

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

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

13 years agoAdding NetBSD support for scons build.
yangguo@chromium.org [Wed, 16 Nov 2011 14:35:47 +0000 (14:35 +0000)]
Adding NetBSD support for scons build.

BUG=v8:1678

Review URL: http://codereview.chromium.org/8513012
Patch from Matthew Sporleder <msporleder@gmail.com>.

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

13 years agoUse safe version (i.e. using write barrier) of set_map in ReinitializeJSReceiver.
ricow@chromium.org [Wed, 16 Nov 2011 10:40:50 +0000 (10:40 +0000)]
Use safe version (i.e. using write barrier) of set_map in ReinitializeJSReceiver.

We pass in the object that we set the map on.
Review URL: http://codereview.chromium.org/8486005

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

13 years agoFix lazy deoptimization at HInvokeFunction and enable target-recording call-function...
fschneider@chromium.org [Wed, 16 Nov 2011 08:44:30 +0000 (08:44 +0000)]
Fix lazy deoptimization at HInvokeFunction and enable target-recording call-function stub.

Changes the way we do lazy deoptimization:

1. For side-effect instructions, we insert the lazy-deopt call at
the following LLazyBailout instruction.

     CALL
     GAP
     LAZY-BAILOUT ==> lazy-deopt-call

2. For other instructions (StackCheck) we insert it right after the
instruction since the deopt targets an earlier deoptimization environment.

   STACK-CHECK
   GAP ==> lazy-deopt-call

The pc of the lazy-deopt call that will be patched in is recorded in the
deoptimization input data. Each Lithium instruction can have 0..n safepoints.
All safepoints get the deoptimization index of the associated LAZY-BAILOUT
instruction. On lazy deoptimization we use the return-pc to find the safepoint.
The safepoint tells us the deoptimization index, which in turn finds us the
PC where to insert the lazy-deopt-call.

Additional changes:
 * RegExpLiteral marked it as having side-effects so that it
   gets an explicitlazy-bailout instruction (instead of
   treating it specially like stack-checks)
 * Enable target recording CallFunctionStub to achieve
   more inlining on optimized code.

BUG=v8:1789
TEST=jslint and uglify run without crashing, mjsunit/compiler/regress-lazy-deopt.js
Review URL: http://codereview.chromium.org/8492004

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

13 years agoRe-added missing return in HInferRepresentation::TryChange.
svenpanne@chromium.org [Wed, 16 Nov 2011 07:46:19 +0000 (07:46 +0000)]
Re-added missing return in HInferRepresentation::TryChange.

It mysteriously disappeared about 800 revisions ago... :-} Thanks to Jakob for spotting this!

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

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

13 years agoFix presubmit errors introduced by r10002.
vegorov@chromium.org [Wed, 16 Nov 2011 01:44:17 +0000 (01:44 +0000)]
Fix presubmit errors introduced by r10002.

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

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

13 years agoPresubmit failures fixed
dslomov@chromium.org [Tue, 15 Nov 2011 23:26:22 +0000 (23:26 +0000)]
Presubmit failures fixed

TBR=vitalyr@chromium.org

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

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

13 years agoIntroduce non auto-scaling mode in spinning balls benchmark.
vegorov@chromium.org [Tue, 15 Nov 2011 22:52:38 +0000 (22:52 +0000)]
Introduce non auto-scaling mode in spinning balls benchmark.
Review URL: http://codereview.chromium.org/8570017

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

13 years agoExtension state made per-siolate in genesis
dslomov@chromium.org [Tue, 15 Nov 2011 22:48:55 +0000 (22:48 +0000)]
Extension state made per-siolate in genesis

BUG=http://code.google.com/p/v8/issues/detail?id=1821

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

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

13 years agoElide superfluous write barriers.
erik.corry@gmail.com [Tue, 15 Nov 2011 14:01:02 +0000 (14:01 +0000)]
Elide superfluous write barriers.
Review URL: http://codereview.chromium.org/8468005

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

13 years agoStatic resolution of outer variables in eval code.
keuchel@chromium.org [Tue, 15 Nov 2011 13:48:40 +0000 (13:48 +0000)]
Static resolution of outer variables in eval code.

So far free variables references in eval code are not statically
resolved. For example in
    function foo() { var x = 1; eval("y = x"); }
the variable x will get mode DYNAMIC and y will get mode DYNAMIC_GLOBAL,
i.e. free variable references trigger dynamic lookups with a fast case
handling for global variables.

The CL introduces static resolution of free variables references in eval
code. If possible variable references are resolved to bindings belonging to
outer scopes of the eval call site.

This is achieved by deserializing the outer scope chain using
Scope::DeserializeScopeChain prior to parsing the eval code similar to lazy
parsing of functions. The existing code for variable resolution is used,
however resolution starts at the first outer unresolved scope instead of
always starting at the root of the scope tree.

This is a prerequisite for statically checking validity of assignments in
the extended code as specified by the current ES.next draft which will be
introduced by a subsequent CL. More specifically section 11.13 of revision 4
of the ES.next draft reads:
* It is a Syntax Error if the AssignmentExpression is contained in extended
  code and the LeftHandSideExpression is an Identifier that does not
  statically resolve to a declarative environment record binding or if the
  resolved binding is an immutable binding.

TEST=existing tests in mjsunit

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

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

13 years agoWe might decide to start incremental marking immediately after finishing one cycle.
vegorov@chromium.org [Tue, 15 Nov 2011 13:01:52 +0000 (13:01 +0000)]
We might decide to start incremental marking immediately after finishing one cycle.

In this case uncommiting marking deque is impossible.

R=erik.corry@gmail.com

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

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

13 years agoAdd -e to echo in push-to-trunk.sh to print \t properly
jkummerow@chromium.org [Tue, 15 Nov 2011 12:47:37 +0000 (12:47 +0000)]
Add -e to echo in push-to-trunk.sh to print \t properly

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

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

13 years agoFix test failures introduced by last revision.
mstarzinger@chromium.org [Tue, 15 Nov 2011 12:34:55 +0000 (12:34 +0000)]
Fix test failures introduced by last revision.

R=erik.corry@gmail.com
TEST=mjsunit/array-elements-from-array-prototype-chain

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

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

13 years agoAvoid write barrier when writing an external pointer to an internal field.
erik.corry@gmail.com [Tue, 15 Nov 2011 12:18:24 +0000 (12:18 +0000)]
Avoid write barrier when writing an external pointer to an internal field.
Review URL: http://codereview.chromium.org/8572003

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

13 years agoFix missing HandleScope to prevent local handles to DOMWindow leaking.
mikhail.naganov@gmail.com [Tue, 15 Nov 2011 10:10:35 +0000 (10:10 +0000)]
Fix missing HandleScope to prevent local handles to DOMWindow leaking.

R=erik.corry@gmail.com
BUG=102895
TEST=none

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

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

13 years agoRemove hidden prototype for builtin functions.
mstarzinger@chromium.org [Tue, 15 Nov 2011 09:44:57 +0000 (09:44 +0000)]
Remove hidden prototype for builtin functions.

This is a deliberate non-conformity introduced more than 2 years ago to
be compatible with JSC. The current state is that all other browsers
perform ES5 conform in that regard.

R=erik.corry@gmail.com
BUG=chromium:1717,chromium:39662
TEST=test262/15.2.3.6-4-6??,mjsunit/undeletable-functions

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

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

13 years agoPrepare push to trunk. Now working on version 3.7.8.
jkummerow@chromium.org [Mon, 14 Nov 2011 13:31:57 +0000 (13:31 +0000)]
Prepare push to trunk.  Now working on version 3.7.8.

R=yangguo@chromium.org

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

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

13 years agoSpeedup unit test to avoid timeout on slow ARM simulator.
fschneider@chromium.org [Mon, 14 Nov 2011 12:33:44 +0000 (12:33 +0000)]
Speedup unit test to avoid timeout on slow ARM simulator.

This test depends on OSR being triggered. That's why I can't
use %OptimizeFunctionOnNextCall.
Review URL: http://codereview.chromium.org/8555004

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

13 years agoFix static const weirdness in both gcc and msvs compatible way.
mikhail.naganov@gmail.com [Mon, 14 Nov 2011 11:36:04 +0000 (11:36 +0000)]
Fix static const weirdness in both gcc and msvs compatible way.

Afterpatch for r9985.

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

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

13 years agoFix missing fast property accessors in heap snapshots.
mikhail.naganov@gmail.com [Mon, 14 Nov 2011 11:13:29 +0000 (11:13 +0000)]
Fix missing fast property accessors in heap snapshots.

Implementation for this case

var x = {};
x.__defineGetter__("y", function Y() { return 42; });

BUG=v8:1818
TEST=cctest/test-heap-profiler/FastCaseGetter

Review URL: http://codereview.chromium.org/8491041
Patch from Ilya Tikhonovsky <loislo@chromium.org>.

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

13 years agoMake eval compilation cache calling scope sensitive.
keuchel@chromium.org [Mon, 14 Nov 2011 08:58:47 +0000 (08:58 +0000)]
Make eval compilation cache calling scope sensitive.

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

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

13 years agoFixing build errors.
yangguo@chromium.org [Fri, 11 Nov 2011 17:48:40 +0000 (17:48 +0000)]
Fixing build errors.

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

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

13 years agoCatch OOM when sparse array join results in too large array.
yangguo@chromium.org [Fri, 11 Nov 2011 17:21:16 +0000 (17:21 +0000)]
Catch OOM when sparse array join results in too large array.

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

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

13 years agoARM: Implement runtime function for array literal transitions.
danno@chromium.org [Fri, 11 Nov 2011 14:49:16 +0000 (14:49 +0000)]
ARM: Implement runtime function for array literal transitions.

Also simplify ia32 and x64 handing of the trace_elements_transition flag.

R=jkummerow@chromium.org
BUG=none
TEST=array-literal-transitions.js

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

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

13 years agoImprove push-to-trunk.sh
jkummerow@chromium.org [Fri, 11 Nov 2011 14:48:16 +0000 (14:48 +0000)]
Improve push-to-trunk.sh

1) Make sure that commits sneaking in before the "Prepare Push" CL is landed are included in the push.
2) Easy-to-copy output at the end.

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

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

13 years agoReapply "Add a level of indirection to exception handler addresses."
kmillikin@chromium.org [Fri, 11 Nov 2011 13:48:14 +0000 (13:48 +0000)]
Reapply "Add a level of indirection to exception handler addresses."

Original commit message:

Add a level of indirection to exception handler addresses.

To support deoptimization of exception handlers, the handler address in the
stack is converted to a pair of code object and an index into a separate
table of code offsets.  The index part is invariant under deoptimization.
The index is packed into the handler state field so that handler size does
not change.

R=vegorov@chromium.org
BUG=
TEST=

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

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

13 years agoRevert "Add a level of indirection to exception handler addresses."
kmillikin@chromium.org [Fri, 11 Nov 2011 13:13:35 +0000 (13:13 +0000)]
Revert "Add a level of indirection to exception handler addresses."

This reverts r9975.  This change broke (at least) snapshots on x64.

TBR=fschneider@chromium.org
BUG=
TEST=

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

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

13 years agoAdd a level of indirection to exception handler addresses.
kmillikin@chromium.org [Fri, 11 Nov 2011 12:51:42 +0000 (12:51 +0000)]
Add a level of indirection to exception handler addresses.

To support deoptimization of exception handlers, the handler address in the
stack is converted to a pair of code object and an index into a separate
table of code offsets.  The index part is invariant under deoptimization.
The index is packed into the handler state field so that handler size does
not change.

R=vegorov@chromium.org,fschneider@chromium.org
BUG=
TEST=

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

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

13 years agoRefactor embedded pointer visitors for the serializer
mstarzinger@chromium.org [Fri, 11 Nov 2011 12:28:42 +0000 (12:28 +0000)]
Refactor embedded pointer visitors for the serializer

This patch continues the refactoring that started in r9597 and
extends it with support for the serializer.
This is required for MIPS support in the serializer.

Review URL: http://codereview.chromium.org/8467010
Patch from Gergely Kis <gergely@homejinni.com>.

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

13 years agoFix mistake in comment for last revision.
mstarzinger@chromium.org [Fri, 11 Nov 2011 11:50:05 +0000 (11:50 +0000)]
Fix mistake in comment for last revision.

TBR=vegorov@chromium.org

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

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

13 years agoPrepare push to trunk. Now working on version 3.7.7.
danno@chromium.org [Fri, 11 Nov 2011 11:44:16 +0000 (11:44 +0000)]
Prepare push to trunk.  Now working on version 3.7.7.

R=jkummerow@chromium.org
BUG=
TEST=

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

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

13 years ago8-byte align zone allocations of objects that may require it.
erik.corry@gmail.com [Fri, 11 Nov 2011 11:23:39 +0000 (11:23 +0000)]
8-byte align zone allocations of objects that may require it.
Review URL: http://codereview.chromium.org/8539008

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

13 years agoFix filtering of store buffer for large object pages.
mstarzinger@chromium.org [Fri, 11 Nov 2011 09:45:12 +0000 (09:45 +0000)]
Fix filtering of store buffer for large object pages.

Our Heap::FreeQueuedChunks generates fake inner chunks in large object
pages queued for freeing, so that StoreBuffer::Filter can recognize them
as pages to be freed. This also relies on MemoryChunk::Contains to work
properly, which is why the size field needs to be initialized as well.

R=vegorov@chromium.org
BUG=v8:1817
TEST=mozilla/js1_5/Regress/regress-360969-05

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

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

13 years agoARM: Check that address given to __ RecordWrite is correct.
erik.corry@gmail.com [Fri, 11 Nov 2011 08:23:06 +0000 (08:23 +0000)]
ARM: Check that address given to __ RecordWrite is correct.
Review URL: http://codereview.chromium.org/8511052

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

13 years agoFixing crash of StringHash test.
yangguo@chromium.org [Thu, 10 Nov 2011 17:01:32 +0000 (17:01 +0000)]
Fixing crash of StringHash test.

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

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

13 years agoA more holistic test case for proxies.
rossberg@chromium.org [Thu, 10 Nov 2011 16:24:43 +0000 (16:24 +0000)]
A more holistic test case for proxies.

Depends on http://codereview.chromium.org/8318014/

R=mstarzinger@chromium.org
BUG=
TEST=

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

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

13 years agoFixing test cases for correct assertSame.
rossberg@chromium.org [Thu, 10 Nov 2011 15:48:07 +0000 (15:48 +0000)]
Fixing test cases for correct assertSame.
Leaving out derived construct trap for now, which I'm working on separately.

R=mstarzinger@chromium.org
BUG=
TEST=

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

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

13 years agoMake LiveRange objects 1 word smaller by using a bool instead of enum for register...
fschneider@chromium.org [Thu, 10 Nov 2011 15:37:24 +0000 (15:37 +0000)]
Make LiveRange objects 1 word smaller by using a bool instead of enum for register kind.
Review URL: http://codereview.chromium.org/8462016

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

13 years agoFixing build error on Win64.
yangguo@chromium.org [Thu, 10 Nov 2011 15:16:57 +0000 (15:16 +0000)]
Fixing build error on Win64.

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

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

13 years agoFixing presubmit failure in r9955.
yangguo@chromium.org [Thu, 10 Nov 2011 14:32:29 +0000 (14:32 +0000)]
Fixing presubmit failure in r9955.

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

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

13 years agoFixing generated hash function on all platforms.
yangguo@chromium.org [Thu, 10 Nov 2011 14:26:57 +0000 (14:26 +0000)]
Fixing generated hash function on all platforms.

BUG=v8:1808
TEST=cctest/test-hashing.cc

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

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

13 years agoMIPS: Fixed a bug in StringHelper::GenerateTwoCharacterSymbolTableProbe.
yangguo@chromium.org [Thu, 10 Nov 2011 14:13:32 +0000 (14:13 +0000)]
MIPS: Fixed a bug in StringHelper::GenerateTwoCharacterSymbolTableProbe.

r9871 (5baeaf57) changed the fill value for deleted entries in hash tables from null_value to the_hole_value.
This commit changes an assertion in MIPS code that expects this value.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8479028
Patch from Gergely Kis <gergely@homejinni.com>.

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

13 years agoFix instanceof a function proxy.
rossberg@chromium.org [Thu, 10 Nov 2011 13:39:22 +0000 (13:39 +0000)]
Fix instanceof a function proxy.

R=mstarzinger@chromium.org
BUG=
TEST=

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

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

13 years agoFix Heap::Shrink to ensure that it does not free pages that are still in use.
vegorov@chromium.org [Thu, 10 Nov 2011 13:24:00 +0000 (13:24 +0000)]
Fix Heap::Shrink to ensure that it does not free pages that are still in use.

Heap::Shrink is called from EnsureFromSpaceIsCommitted at the very start of the GC. At this moment live bytes counts on pages are in inconsistent states. Some pages might have been already swept but have not been yet reached by an incremental marker (or incremental marker is not in progress) and have live bytes count set to 0. Thus we can't rely only on LiveBytes to determine which pages can be released to the OS.

R=mstarzinger@chromium.org
BUG=100414

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

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

13 years agoImplement inline runtime function %_SetValueOf for Crankshaft.
fschneider@chromium.org [Thu, 10 Nov 2011 12:32:39 +0000 (12:32 +0000)]
Implement inline runtime function %_SetValueOf for Crankshaft.

It is frequently used inside our builtins and is implemented purely
by HIR instructions: a smi check, an instance-type check and an
in-object property store for storing to the value field.
Review URL: http://codereview.chromium.org/8507016

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

13 years agoPrepare push to trunk. Now working on version 3.7.6.
danno@chromium.org [Thu, 10 Nov 2011 11:26:27 +0000 (11:26 +0000)]
Prepare push to trunk.  Now working on version 3.7.6.

R=erik.corry@gmail.com
BUG=
TEST=

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

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

13 years agoMIPS: Fix the cctest QuietSignalingNaNs for MIPS.
yangguo@chromium.org [Thu, 10 Nov 2011 08:25:23 +0000 (08:25 +0000)]
MIPS: Fix the cctest QuietSignalingNaNs for MIPS.

MIPS uses a different NAN bit pattern to represent quiet or
signalling NANs than does x86 or ARM.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8510007
Patch from Gergely Kis <gergely@homejinni.com>.

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

13 years agoMIPS: Simplify StringCharCodeAt in non-crankshaft codegen.
yangguo@chromium.org [Thu, 10 Nov 2011 08:07:39 +0000 (08:07 +0000)]
MIPS: Simplify StringCharCodeAt in non-crankshaft codegen.

Port r9936 (61034d).

BUG=
TEST=

Review URL: http://codereview.chromium.org/8506024
Patch from Gergely Kis <gergely@homejinni.com>.

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

13 years agoMIPS: Repeat last debugger command in the arm simulator when command input is empty.
yangguo@chromium.org [Thu, 10 Nov 2011 08:01:23 +0000 (08:01 +0000)]
MIPS: Repeat last debugger command in the arm simulator when command input is empty.

Port r9937 (c263a9e).

BUG=
TEST=

Review URL: http://codereview.chromium.org/8509015
Patch from Gergely Kis <gergely@homejinni.com>.

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

13 years agoTighten handling of pthread_create errors on Linux.
vitalyr@chromium.org [Wed, 9 Nov 2011 19:02:41 +0000 (19:02 +0000)]
Tighten handling of pthread_create errors on Linux.

The return value of pthread_create is now checked to be 0.
Tests on MIPS boards had some silent and hard to find timeouts and errors related to this.
This ensures a proper error message and shutdown if a thread could not be started.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8497041
Patch from Gergely Kis <gergely@homejinni.com>.

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

13 years agoMIPS: Enable the ll_prof profiler on MIPS.
vitalyr@chromium.org [Wed, 9 Nov 2011 18:36:31 +0000 (18:36 +0000)]
MIPS: Enable the ll_prof profiler on MIPS.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8509006
Patch from Gergely Kis <gergely@homejinni.com>.

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

13 years agoAdd MIPS support to top-level Makefile
jkummerow@chromium.org [Wed, 9 Nov 2011 16:18:36 +0000 (16:18 +0000)]
Add MIPS support to top-level Makefile

For now, MIPS targets are not included in the "all", "release", "debug" and corresponding ".check" convenience targets, but they can be built explicitly (e.g. "mips.release.check").

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

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

13 years agoGet rid of CodeStub::TryGetCode.
kmillikin@chromium.org [Wed, 9 Nov 2011 15:44:13 +0000 (15:44 +0000)]
Get rid of CodeStub::TryGetCode.

This function is no longer needed.  It was only used (overly defensively)
when fetching the stack check stub for on-stack replacement patching.

R=vegorov@chromium.org
BUG=
TEST=

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

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

13 years agoFix Win64 compilation problems introduced by r9932.
vegorov@chromium.org [Wed, 9 Nov 2011 15:40:08 +0000 (15:40 +0000)]
Fix Win64 compilation problems introduced by r9932.

R=yangguo@chromium.org

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

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

13 years agoMIPS: Initial gyp infrastructure for MIPS architecture.
jkummerow@chromium.org [Wed, 9 Nov 2011 15:31:54 +0000 (15:31 +0000)]
MIPS: Initial gyp infrastructure for MIPS architecture.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8505007
Patch from Gergely Kis <gergely@homejinni.com>.

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