platform/upstream/v8.git
14 years agoMake "typeof this" return object in fast compiler.
whesse@chromium.org [Thu, 5 Nov 2009 12:45:53 +0000 (12:45 +0000)]
Make "typeof this" return object in fast compiler.
Review URL: http://codereview.chromium.org/366028

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

14 years agoFix case where we treat an unaliased call to eval as an aliased call
ager@chromium.org [Thu, 5 Nov 2009 11:19:37 +0000 (11:19 +0000)]
Fix case where we treat an unaliased call to eval as an aliased call
to eval.

BUG=http://code.google.com/p/v8/issues/detail?id=496
Review URL: http://codereview.chromium.org/366027

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

14 years agoIn the toplevel code generator, support local context allocation
kmillikin@chromium.org [Thu, 5 Nov 2009 10:38:26 +0000 (10:38 +0000)]
In the toplevel code generator, support local context allocation
provided that none of the parameters need to be copied into the
context.

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

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

14 years agoRemoved (now) unused Token-lookup code.
lrn@chromium.org [Thu, 5 Nov 2009 10:24:20 +0000 (10:24 +0000)]
Removed (now) unused Token-lookup code.

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

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

14 years agoImplement typeof in fast compiler.
whesse@chromium.org [Thu, 5 Nov 2009 10:15:25 +0000 (10:15 +0000)]
Implement typeof in fast compiler.
Review URL: http://codereview.chromium.org/354027

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

14 years agoChanged keyword token recognition to be done inline in the identifier scanner.
lrn@chromium.org [Thu, 5 Nov 2009 10:11:38 +0000 (10:11 +0000)]
Changed keyword token recognition to be done inline in the identifier scanner.

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

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

14 years agoAdd support for debugger statement to top-level compiler.
fschneider@chromium.org [Wed, 4 Nov 2009 19:04:29 +0000 (19:04 +0000)]
Add support for debugger statement to top-level compiler.

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

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

14 years agoFix a bug where if a non-lazily-compiled function is a candidate for
kmillikin@chromium.org [Wed, 4 Nov 2009 18:39:44 +0000 (18:39 +0000)]
Fix a bug where if a non-lazily-compiled function is a candidate for
toplevel compilation and the toplevel compiler cannot handle the
function, we would erroneously signal a stack overflow instead of
falling back on the optimizing compiler.

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

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

14 years agoObey the flag --lazy in the toplevel code generator.
kmillikin@chromium.org [Wed, 4 Nov 2009 17:59:24 +0000 (17:59 +0000)]
Obey the flag --lazy in the toplevel code generator.

There were two separate implementations of the function
'BuildBoilerplate' that is used to compile function declarations and
function literals.  The implementations did not do exactly the same
thing.  In particular, one ignored the flag --lazy.

Combine the two implementations.

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

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

14 years agoSort tests to increase predictability of mozilla test runs
erik.corry@gmail.com [Wed, 4 Nov 2009 16:55:24 +0000 (16:55 +0000)]
Sort tests to increase predictability of mozilla test runs
in the face of suspected python bugs.  Also remove some
unused code.
Review URL: http://codereview.chromium.org/365001

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

14 years agoFix ARM debug build
sgjesse@chromium.org [Wed, 4 Nov 2009 15:24:11 +0000 (15:24 +0000)]
Fix ARM debug build

TBR=fschneider@chromium.org

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

14 years agoFix issue 491: constantpool dump violates ARM debugger assertion for return point
sgjesse@chromium.org [Wed, 4 Nov 2009 14:45:50 +0000 (14:45 +0000)]
Fix issue 491: constantpool dump violates ARM debugger assertion for return point

The generation of the return sequence is now protected from having the constant pool emitted inside of it in both compilers.

BUG=http://code.google.com/p/v8/issues/detail?id=491
TEST=test/mjsunit/regress/regress-491.js
Review URL: http://codereview.chromium.org/362003

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

14 years agoFix compilation error in debug build for IA-32 and ARM.
fschneider@chromium.org [Wed, 4 Nov 2009 14:33:37 +0000 (14:33 +0000)]
Fix compilation error in debug build for IA-32 and ARM.

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

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

14 years agoEmitting the common return sequence in the top-level compiler in one function for...
fschneider@chromium.org [Wed, 4 Nov 2009 14:11:39 +0000 (14:11 +0000)]
Emitting the common return sequence in the top-level compiler in one function for each platform.

I factored out the code for emitting the return sequence since we had this code duplicated in the top-level compiler.

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

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

14 years agoRemove the typeof state threaded through the code generator. It was
kmillikin@chromium.org [Wed, 4 Nov 2009 13:56:41 +0000 (13:56 +0000)]
Remove the typeof state threaded through the code generator.  It was
used to signal that an expression was the immediate subexpression of
typeof, or (?) in the arm of a conditional expression itself in the
typeof state.

It was inconsistently consulted.  It was not used for property loads,
but only for slot loads.  This means that we matched the Webkit JSC
(not Spidermonkey) behavior for:

typeof(true ? x : y)  // throws ReferenceError

and we matched the SpiderMonkey behavior (not JSC) for:

with ({}) { typeof(true ? x : y) }  // ==> "undefined"

Now we are expected to match the JSC behavior in all cases.

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

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

14 years agoFix xssue 492: ARM debug crash: mozilla/ecma/FunctionObjects/15.3.1.1-3
sgjesse@chromium.org [Wed, 4 Nov 2009 10:04:22 +0000 (10:04 +0000)]
Fix xssue 492: ARM debug crash: mozilla/ecma/FunctionObjects/15.3.1.1-3

When the number of parameters times 4 (kPointerSize) to a function cannot be encoded in 12 bits the return sequence gets one more instruction. Changed the assertion to check for this case.

BUG=http://code.google.com/p/v8/issues/detail?id=492
TEST=test/mjsunit/regress/regress-492.js
Review URL: http://codereview.chromium.org/354028

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

14 years agoHate. Hate. Hate.
christian.plesner.hansen@gmail.com [Wed, 4 Nov 2009 09:19:30 +0000 (09:19 +0000)]
Hate.  Hate.  Hate.

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

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

14 years agoReverting 3174. Aka reapplying 3150, 3151 and 3159. Aka api accessor
christian.plesner.hansen@gmail.com [Wed, 4 Nov 2009 08:51:48 +0000 (08:51 +0000)]
Reverting 3174.  Aka reapplying 3150, 3151 and 3159.  Aka api accessor
ics.

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

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

14 years ago* Do a GC in mksnapshot to get rid of some extraneous junk.
erik.corry@gmail.com [Tue, 3 Nov 2009 21:00:43 +0000 (21:00 +0000)]
* Do a GC in mksnapshot to get rid of some extraneous junk.
* Make snapshot more compact by coding the tag and the space
in one byte.  Contract some common sequences to one byte.
* Use back references only within one page.  Index from the
start of the space otherwise.
* Serialize Smis as raw data rather than int-encoding them.
This takes a little more space but is faster.
Review URL: http://codereview.chromium.org/341079

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

14 years agoInsert call to CodeForFunctionPosition in the ARM code generator.
fschneider@chromium.org [Tue, 3 Nov 2009 16:08:35 +0000 (16:08 +0000)]
Insert call to CodeForFunctionPosition in the ARM code generator.

(== SetFunctionPosition in the top-level compiler)

IA32 and X64 already do this at the beginning of CodeGenerator::gencode

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

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

14 years agoBegin using the top-level code generator for code that is inside
kmillikin@chromium.org [Tue, 3 Nov 2009 14:48:59 +0000 (14:48 +0000)]
Begin using the top-level code generator for code that is inside
directly-applied function literals that are themselves compiled with
the top-level code generator.

The choice is guarded by a test that the function is anonymous (thus
not expected to be recursive) and not in a loop.

A compilation hint is set in the shared function info and used to make
the choice.

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

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

14 years agoMarked mjsunit/apply as expected to fail on mac debug.
christian.plesner.hansen@gmail.com [Tue, 3 Nov 2009 12:53:30 +0000 (12:53 +0000)]
Marked mjsunit/apply as expected to fail on mac debug.

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

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

14 years agoFix a latent bug in the top-level compilation of function calls.
kmillikin@chromium.org [Tue, 3 Nov 2009 12:47:19 +0000 (12:47 +0000)]
Fix a latent bug in the top-level compilation of function calls.

Calls to a non-global variable would go through the "call to a global"
path, rather than the "call to an arbitrary (other) expression" path.

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

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

14 years agoMade rethrow test not depend on stack overflow behavior.
christian.plesner.hansen@gmail.com [Tue, 3 Nov 2009 09:52:06 +0000 (09:52 +0000)]
Made rethrow test not depend on stack overflow behavior.

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

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

14 years agoAdded TryCatch::ReThrow method.
christian.plesner.hansen@gmail.com [Tue, 3 Nov 2009 08:53:34 +0000 (08:53 +0000)]
Added TryCatch::ReThrow method.

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

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

14 years agoCommiting changelist issue 348039 outside the codereview tool. Add comparisons to...
whesse@chromium.org [Mon, 2 Nov 2009 15:01:06 +0000 (15:01 +0000)]
Commiting changelist issue 348039 outside the codereview tool.  Add comparisons to fast compiler

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

14 years agoAdd support for for loops to the toplevel code generator.
kmillikin@chromium.org [Mon, 2 Nov 2009 14:12:48 +0000 (14:12 +0000)]
Add support for for loops to the toplevel code generator.

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

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

14 years agoAdd support for initialization block assignments in the toplevel code
kmillikin@chromium.org [Mon, 2 Nov 2009 13:30:24 +0000 (13:30 +0000)]
Add support for initialization block assignments in the toplevel code
generator, mimicing the behavior of the optimizing compiler.

Initialization blocks can only contain (thus begin and end) with a
property assignment in toplevel code.

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

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

14 years agoDon't use string slices when processing RexExp replace (re-apply r3153)
sgjesse@chromium.org [Mon, 2 Nov 2009 12:21:43 +0000 (12:21 +0000)]
Don't use string slices when processing RexExp replace (re-apply r3153)

Re-apply r3153 with a fix for issue 490. Except for the change in line 1756 and the added test this change is identical to http://codereview.chromium.org/342015.

BUG=490
TEST=test/mjsunit/regress/regress-490.js
Review URL: http://codereview.chromium.org/341064

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

14 years agoSupport for function calls on an arbitrary expression that returns
fschneider@chromium.org [Mon, 2 Nov 2009 12:04:35 +0000 (12:04 +0000)]
Support for function calls on an arbitrary expression that returns
a function in the top-level compiler.

e.g.

function f() { return (function() { return true; }) }
f()()

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

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

14 years agoRefactor the somewhat complicated code generation for assignments into
kmillikin@chromium.org [Mon, 2 Nov 2009 11:01:47 +0000 (11:01 +0000)]
Refactor the somewhat complicated code generation for assignments into
a platform-independent structure and a few platform-specific helpers
to do the heavy lifting.

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

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

14 years agoSupport for post-fix count operations (x++, x--) where x is a global
fschneider@chromium.org [Mon, 2 Nov 2009 10:22:22 +0000 (10:22 +0000)]
Support for post-fix count operations (x++, x--) where x is a global
variable for the top-level compiler.

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

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

14 years agoAdd unary not operator to fast compiler.
whesse@chromium.org [Mon, 2 Nov 2009 10:17:12 +0000 (10:17 +0000)]
Add unary not operator to fast compiler.
Review URL: http://codereview.chromium.org/343057

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

14 years agoAdd conditional expressions (ternary choice operator) to fast compiler.
whesse@chromium.org [Mon, 2 Nov 2009 08:44:19 +0000 (08:44 +0000)]
Add conditional expressions (ternary choice operator) to fast compiler.
Review URL: http://codereview.chromium.org/340058

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

14 years agoReport function source position via JSON protocol
peter.rybin@gmail.com [Fri, 30 Oct 2009 16:38:37 +0000 (16:38 +0000)]
Report function source position via JSON protocol

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

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

14 years agoImplement new support for if statements in top-level code.
kmillikin@chromium.org [Fri, 30 Oct 2009 15:34:09 +0000 (15:34 +0000)]
Implement new support for if statements in top-level code.

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

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

14 years agoInitial implementation of top-level compilation of expressions in test
kmillikin@chromium.org [Fri, 30 Oct 2009 14:06:48 +0000 (14:06 +0000)]
Initial implementation of top-level compilation of expressions in test
context.  Test contexts are used for the left subexpressions of
short-circuited boolean operators.  The right subexpressions inherit
their expression context from the binary op expression.

Compilation of short-circuited operations in effect and test context
is straightforward:

effect(e0 || e1) =
 test(e0, L0, L1)
 L1: effect(e1)
 L0:

test(e0 || e1, L0, L1) =
 test(e0, L0, L2)
 L2: test(e1, L0, L1)

Because the value of the first subexpression may be needed as the
value of the whole expression in a value context, we introduce a
hybrid value/test contest (the value is needed if true, but not if
false).

value(e0 || e1) =
 value/test(e0, L0, L1)
 L1: value(e1)
 L0:

The compilation of value/test and test/value (introduced by boolean
AND) is:

value/test(e0 || e1, L0, L1) =
 value/test(e0, L0, L2)
 L2: value/test(e1, L0, L1)

test/value(e0 || e1, L0, L1) =
 test(e0, L0, L2)
 L2: test/value(e1, L0, L1)

Boolean AND is the dual.  The AST nodes themselves (not their parents)
are responsible for producing the proper result (effect, value, or
control flow) depending on their context.

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

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

14 years agoAdd void operator to fast compiler.
whesse@chromium.org [Fri, 30 Oct 2009 11:32:42 +0000 (11:32 +0000)]
Add void operator to fast compiler.
Review URL: http://codereview.chromium.org/342055

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

14 years agoFix new snapshot compilation on ARM.
erik.corry@gmail.com [Fri, 30 Oct 2009 11:28:49 +0000 (11:28 +0000)]
Fix new snapshot compilation on ARM.
Review URL: http://codereview.chromium.org/349001

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

14 years agoIntroduce a switch for the new snapshot code and switch
erik.corry@gmail.com [Fri, 30 Oct 2009 10:23:12 +0000 (10:23 +0000)]
Introduce a switch for the new snapshot code and switch
it on by default.  Includes bug fixes for new snapshots.
Review URL: http://codereview.chromium.org/342054

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

14 years agoSupport for calls on named and keyed properties in the fast compiler of the form:
fschneider@chromium.org [Fri, 30 Oct 2009 10:22:31 +0000 (10:22 +0000)]
Support for calls on named and keyed properties in the fast compiler of the form:

o.x() and o[expr]()

other changes:
- Fix missing relocation info for StoreIC on global object.
- Generate only one common return sequence instead of always appending
  "return <undefined>" at the end of each function: The first JS
  return-statement will generate the common return sequence. All
  other return-statements will generate a unconditional branch to the common
  return sequence.

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

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

14 years agoFix thinko in assertion.
kmillikin@chromium.org [Fri, 30 Oct 2009 09:57:08 +0000 (09:57 +0000)]
Fix thinko in assertion.

TBR=whesse@chromium.org

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

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

14 years agoMove the Location class into the AST Expression class as a member.
kmillikin@chromium.org [Fri, 30 Oct 2009 08:36:46 +0000 (08:36 +0000)]
Move the Location class into the AST Expression class as a member.
Since it is (currently) only an enum, change it to an enum (for now).

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

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

14 years agoSupport for property assignment in the fast compiler.
fschneider@chromium.org [Fri, 30 Oct 2009 07:56:38 +0000 (07:56 +0000)]
Support for property assignment in the fast compiler.

The code for .result = (b.y = 99) where b is a global variable is:

  push [esi+0x17]
  mov ecx,0xf5c229ad          ;; object: 0xf5c229ad <String[1]: b>
  call LoadIC_Initialize
  nop
  mov [esp],eax
  mov eax,0xc6
  mov ecx,0xf5c25c41          ;; object: 0xf5c25c41 <String[1]: y>
  call StoreIC_Initialize
  nop
  mov [esp],eax
  pop [ebp+0xf4]

There is still some room for improvement in the generated code.

Other changes:
 - Replaced switch-statement in FastCodeGenerator::VisitProperty with DropAndMove(...)
 - Do not emit nop after IC calls on ARM.

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

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

14 years agoAdd a test which verifies that weak reference callbacks cannot be invoked while scave...
antonm@chromium.org [Thu, 29 Oct 2009 23:06:59 +0000 (23:06 +0000)]
Add a test which verifies that weak reference callbacks cannot be invoked while scavenging.

BUG=25819

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

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

14 years agoPrepare to push to trunk. We are now working on 1.3.19
sgjesse@chromium.org [Thu, 29 Oct 2009 14:33:51 +0000 (14:33 +0000)]
Prepare to push to trunk. We are now working on 1.3.19
Review URL: http://codereview.chromium.org/348010

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

14 years agoRename the Location type tags to be consistent with our current naming
kmillikin@chromium.org [Thu, 29 Oct 2009 13:58:04 +0000 (13:58 +0000)]
Rename the Location type tags to be consistent with our current naming
scheme for enumerations (eg, EFFECT => kEffect).

Remove the ability to move from one Location to another, which should
never be necessary.

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

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

14 years agoReverting 3159, 3151 and 3150
sgjesse@chromium.org [Thu, 29 Oct 2009 13:17:11 +0000 (13:17 +0000)]
Reverting 3159, 3151 and 3150

TBR=christian.plesner.hansen@gmail.com
Review URL: http://codereview.chromium.org/343035

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

14 years agoFix x64 build.
kmillikin@chromium.org [Thu, 29 Oct 2009 12:19:20 +0000 (12:19 +0000)]
Fix x64 build.

TBR=whesse@chromium.org

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

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

14 years agoAdd binary operations to fast compiler.
whesse@chromium.org [Thu, 29 Oct 2009 11:55:03 +0000 (11:55 +0000)]
Add binary operations to fast compiler.
Review URL: http://codereview.chromium.org/342019

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

14 years agoRename the kinds of locations to be consistent with the (codegen)
kmillikin@chromium.org [Thu, 29 Oct 2009 10:35:29 +0000 (10:35 +0000)]
Rename the kinds of locations to be consistent with the (codegen)
context of the expressions they label.  Introduce an "unintialized"
location to catch failure to assign any location at all.

Changed the object literal initialization on ARM to use a Store IC in
the same cases where it did on the other platforms.  This was required
because the location of the literal property name is given an
"unitialized" location.

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

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

14 years agoReverting 3153
sgjesse@chromium.org [Thu, 29 Oct 2009 07:31:23 +0000 (07:31 +0000)]
Reverting 3153

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

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

14 years agoPrepare push to trunk. Now working on version 1.3.18.
ager@chromium.org [Wed, 28 Oct 2009 14:30:55 +0000 (14:30 +0000)]
Prepare push to trunk.  Now working on version 1.3.18.
Review URL: http://codereview.chromium.org/338063

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

14 years agoARM still not quite right with new serialization code.
erik.corry@gmail.com [Wed, 28 Oct 2009 14:28:20 +0000 (14:28 +0000)]
ARM still not quite right with new serialization code.
Review URL: http://codereview.chromium.org/339043

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

14 years agoIssue 485: Fix leak of builtins object through call and apply functions.
lrn@chromium.org [Wed, 28 Oct 2009 13:51:30 +0000 (13:51 +0000)]
Issue 485: Fix leak of builtins object through call and apply functions.

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

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

14 years agoIn the toplevel compiler, shift the responsibility of assigning a
kmillikin@chromium.org [Wed, 28 Oct 2009 13:25:40 +0000 (13:25 +0000)]
In the toplevel compiler, shift the responsibility of assigning a
location to an Expression AST node from the node's parent to the node
itself.

This allows an inherited code generation context from a parent node to
be passed arbitrarily far down the tree (eg, the subexpression of a
unary not is in the same context as the unary expression itself, the
then and else subexpressions of the ternary operator are in the same
context as the whole expression, and so forth).

We do not yet take advantage of this in the backend (eg, the right
subexpression of short-circuited OR is still compiled by using the
parent's destination location, rather than the subexpression's
itself).

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

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

14 years agoDerive string size constants
sgjesse@chromium.org [Wed, 28 Oct 2009 13:10:36 +0000 (13:10 +0000)]
Derive string size constants

* The maximum length of short and medium sized strings is now derived from other constants.
* Remove the redundant String part of their names.
Review URL: http://codereview.chromium.org/347002

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

14 years ago* Fix new snapshot code on ARM.
erik.corry@gmail.com [Wed, 28 Oct 2009 12:37:54 +0000 (12:37 +0000)]
* Fix new snapshot code on ARM.
Review URL: http://codereview.chromium.org/344011

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

14 years agoMarking test as expected to flake.
christian.plesner.hansen@gmail.com [Wed, 28 Oct 2009 12:23:35 +0000 (12:23 +0000)]
Marking test as expected to flake.

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

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

14 years agoChanged accessor ICs to using direct calls.
christian.plesner.hansen@gmail.com [Wed, 28 Oct 2009 12:14:20 +0000 (12:14 +0000)]
Changed accessor ICs to using direct calls.

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

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

14 years agoAdd fast check for NaN in NumberCompare slow case.
ager@chromium.org [Wed, 28 Oct 2009 10:19:56 +0000 (10:19 +0000)]
Add fast check for NaN in NumberCompare slow case.
Review URL: http://codereview.chromium.org/344010

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

14 years agoFix missing recording of source position for property access in fast compiler.
fschneider@chromium.org [Wed, 28 Oct 2009 10:14:32 +0000 (10:14 +0000)]
Fix missing recording of source position for property access in fast compiler.

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

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

14 years agoFactor out a commonly used code sequence to DropAndMove(Location, Register)
whesse@chromium.org [Wed, 28 Oct 2009 09:56:14 +0000 (09:56 +0000)]
Factor out a commonly used code sequence to DropAndMove(Location, Register)
Review URL: http://codereview.chromium.org/337060

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

14 years agoAdd snapshot option to test runner.
sgjesse@chromium.org [Wed, 28 Oct 2009 09:38:09 +0000 (09:38 +0000)]
Add snapshot option to test runner.

Passing option --snapshot to test.py has the same effect as passing -S snapshot=on.
Review URL: http://codereview.chromium.org/346004

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

14 years agoFix crbug/24815. Changes affect profiler "lazy" mode used for V8 in Chromium.
mikhail.naganov@gmail.com [Wed, 28 Oct 2009 09:13:11 +0000 (09:13 +0000)]
Fix crbug/24815. Changes affect profiler "lazy" mode used for V8 in Chromium.

- don't engage the processing thread of CPU profiling until the first time profiling is resumed, this saves us a thread allocation for the majority of users;
- don't log shared libraries addresses: this is useless for JS-only profiling, and also consumes time on startup.

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

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

14 years agoDon't use string slices when processing RexExp replace.
sgjesse@chromium.org [Wed, 28 Oct 2009 09:11:45 +0000 (09:11 +0000)]
Don't use string slices when processing RexExp replace.

String slices from RegExp replace results is now encoded in either one or two smis. Substrings are not used any more.

If the existing one smi encoding cannot hold the start/length information two smis are used the first having the negative length and the second having the start.

This is in preparation for removing string slices.
Review URL: http://codereview.chromium.org/342015

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

14 years agoSupport for property access (named, keyed) in the fast compiler.
fschneider@chromium.org [Tue, 27 Oct 2009 16:11:12 +0000 (16:11 +0000)]
Support for property access (named, keyed) in the fast compiler.

The generated code is similar to the existing code, but we never
inline any IC code in the fast compiler.

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

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

14 years agoFixed build error on x64.
christian.plesner.hansen@gmail.com [Tue, 27 Oct 2009 15:57:21 +0000 (15:57 +0000)]
Fixed build error on x64.

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

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

14 years agoImplemented specialized stubs for API getters. This includes a number
christian.plesner.hansen@gmail.com [Tue, 27 Oct 2009 15:38:49 +0000 (15:38 +0000)]
Implemented specialized stubs for API getters.  This includes a number
of individual changes:

  - Added infrastructure for custom stub caching.
  - Push the code object onto the stack in exit calls instead of a
    debug/non-debug marker.
  - Remove the DEBUG_EXIT frame type.
  - Add a new exit stub generator for API getters.

Committed: http://code.google.com/p/v8/source/detail?r=3130
Review URL: http://codereview.chromium.org/330017

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

14 years agoRemove --check-stack flag from V8.
whesse@chromium.org [Tue, 27 Oct 2009 14:56:50 +0000 (14:56 +0000)]
Remove --check-stack flag from V8.
Review URL: http://codereview.chromium.org/338017

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

14 years agoAdd VisitCallNew to fast compiler.
whesse@chromium.org [Tue, 27 Oct 2009 14:52:55 +0000 (14:52 +0000)]
Add VisitCallNew to fast compiler.
Review URL: http://codereview.chromium.org/334041

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

14 years agoLanding http://codereview.chromium.org/339026
sgjesse@chromium.org [Tue, 27 Oct 2009 14:40:50 +0000 (14:40 +0000)]
Landing http://codereview.chromium.org/339026

TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/334044

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

14 years agoMake it more pleasant to work with expression locations in the
kmillikin@chromium.org [Tue, 27 Oct 2009 13:38:57 +0000 (13:38 +0000)]
Make it more pleasant to work with expression locations in the
top-level code generator backend.  Introduce function to move one
location to another (source cannot be nowhere); to move registers,
slots, and literals into a location; and to move a location to a
register or slot.

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

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

14 years agoFix bug in test on Windows.
lrn@chromium.org [Tue, 27 Oct 2009 13:26:22 +0000 (13:26 +0000)]
Fix bug in test on Windows.

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

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

14 years agoStart using snapshot VM configuration in internal benchmark
erik.corry@gmail.com [Tue, 27 Oct 2009 13:19:14 +0000 (13:19 +0000)]
Start using snapshot VM configuration in internal benchmark
graphing tool.  Fix nonportable fopen call in new snapshot code.
Review URL: http://codereview.chromium.org/340002

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

14 years agoFixed problem with test on big-endian-float ARM.
lrn@chromium.org [Tue, 27 Oct 2009 12:26:21 +0000 (12:26 +0000)]
Fixed problem with test on big-endian-float ARM.

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

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

14 years agoNew snapshot framework. Doesn't work on ARM yet (code targets
erik.corry@gmail.com [Tue, 27 Oct 2009 11:54:01 +0000 (11:54 +0000)]
New snapshot framework.  Doesn't work on ARM yet (code targets
are different).  Is able to deserialize the whole heap and run
some stuff.  Not available as the primary snapshot system yet.
Review URL: http://codereview.chromium.org/335009

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

14 years agoAdd fucomip instruction to disassembler. Fix some other floating point instructions.
whesse@chromium.org [Tue, 27 Oct 2009 10:47:01 +0000 (10:47 +0000)]
Add fucomip instruction to disassembler.  Fix some other floating point instructions.
Review URL: http://codereview.chromium.org/316010

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

14 years agoFix x64 breakage in r3136.
sgjesse@chromium.org [Tue, 27 Oct 2009 10:40:43 +0000 (10:40 +0000)]
Fix x64 breakage in r3136.

Make sure that the return value is moved to rax. The line added back was accidently removed in r3136.

TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/339021

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

14 years agoFix x64 DEBUG build.
kmillikin@chromium.org [Tue, 27 Oct 2009 10:27:08 +0000 (10:27 +0000)]
Fix x64 DEBUG build.

TBR=lrn@chromium.org

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

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

14 years agoWindows: Change test to not assume ebp is frame-pointer.
lrn@chromium.org [Tue, 27 Oct 2009 08:50:24 +0000 (08:50 +0000)]
Windows: Change test to not assume ebp is frame-pointer.

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

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

14 years agoEliminate the constant location used for literals in the AST.
kmillikin@chromium.org [Tue, 27 Oct 2009 08:48:01 +0000 (08:48 +0000)]
Eliminate the constant location used for literals in the AST.
Literals now have a location of temporary by default and are
responsible for moving themselves into their location like all other
expressions.

The constant location turned out not to allow us to avoid checking
subexpressions in AST interior nodes, and it turned out to require
checking after some normal calls to Visit (like for the arguments to a
call).  With this change do not have to check after a call to Visit
that we got our result in the expected location.

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

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

14 years agoPort optimization of calls to GenericBinaryStub to x64.
sgjesse@chromium.org [Tue, 27 Oct 2009 08:20:21 +0000 (08:20 +0000)]
Port optimization of calls to GenericBinaryStub to x64.

See description of the change in the ia32 changelist at http://codereview.chromium.org/246075.

Minor changes to the ia32 version using variables for the registers to pass parameters in (edx and eax) to make the parameter set up code easier to read.
Review URL: http://codereview.chromium.org/335005

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

14 years agoChange NaN-test to only check for QNaNs, and API to only introduce QNaNs.
lrn@chromium.org [Tue, 27 Oct 2009 08:13:59 +0000 (08:13 +0000)]
Change NaN-test to only check for QNaNs, and API to only introduce QNaNs.

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

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

14 years agoApply patch by Timur Iskhodzhanov to add valgrind notifications on
ager@chromium.org [Mon, 26 Oct 2009 17:53:34 +0000 (17:53 +0000)]
Apply patch by Timur Iskhodzhanov to add valgrind notifications on
code modification to the x64 build.  The same notifications are
already in place in the ia32 build.

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

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

14 years agoReverted 3130-3131 since they don't work on mac.
christian.plesner.hansen@gmail.com [Mon, 26 Oct 2009 15:16:42 +0000 (15:16 +0000)]
Reverted 3130-3131 since they don't work on mac.

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

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

14 years agoGenerate more compact XOR on 64-bit architecture when using xor to zero out registers.
fschneider@chromium.org [Mon, 26 Oct 2009 14:38:22 +0000 (14:38 +0000)]
Generate more compact XOR on 64-bit architecture when using xor to zero out registers.

When using xor to zero a 64-bit register, generate 32-bit instruction instead.
(according to Intel 64-bit mode coding guidelines)

previous code for zeroing RAX:
  xor rax, rax

==>

new code for zeroing RAX:
  xor eax, eax

The 32-bit operand form has the same semantics: It also zeroes the upper
32-bit of rax and its encoding uses 1 byte less.

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

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

14 years agoFixed release test build breakage.
christian.plesner.hansen@gmail.com [Mon, 26 Oct 2009 14:33:13 +0000 (14:33 +0000)]
Fixed release test build breakage.

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

14 years agoImplemented specialized stubs for API getters. This includes a number
christian.plesner.hansen@gmail.com [Mon, 26 Oct 2009 13:54:47 +0000 (13:54 +0000)]
Implemented specialized stubs for API getters.  This includes a number
of individual changes:

  - Added infrastructure for custom stub caching.
  - Push the code object onto the stack in exit calls instead of a
    debug/non-debug marker.
  - Remove the DEBUG_EXIT frame type.
  - Add a new exit stub generator for API getters.

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

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

14 years agoSupport for object literals in fast compiler.
fschneider@chromium.org [Mon, 26 Oct 2009 13:21:48 +0000 (13:21 +0000)]
Support for object literals in fast compiler.

I also added more unit tests for literals.

Right now, the fast compiler produces code very similar to
the existing code generator. We may consider different ways to
further compact the generated code for top-level code.

ARM always goes through a runtime function to initialize computed
properties in an object literal whereas IA32 and x64 use StoreIC.

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

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

14 years agoAllocate global handles in chunks.
antonm@chromium.org [Mon, 26 Oct 2009 12:54:41 +0000 (12:54 +0000)]
Allocate global handles in chunks.

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

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

14 years agoHandle the list of code-stub types using macro expansion.
sgjesse@chromium.org [Mon, 26 Oct 2009 12:26:42 +0000 (12:26 +0000)]
Handle the list of code-stub types using macro expansion.

As the list of code-stubs is used in two places it is now handled through a macro to keep this in sync. As some code-stubs is only used on ARM the list have been split into two parts to indicate this and get rid of dummy implementation on ia32 and x64 platforms.

BUG=484
Review URL: http://codereview.chromium.org/335025

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

14 years agoFix retainer profile test regression
mikhail.naganov@gmail.com [Mon, 26 Oct 2009 11:59:55 +0000 (11:59 +0000)]
Fix retainer profile test regression

TBR=sgjesse@chromium.org

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

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

14 years agoMake V8::LowMemoryNotification GC for all platforms.
antonm@chromium.org [Mon, 26 Oct 2009 11:35:07 +0000 (11:35 +0000)]
Make V8::LowMemoryNotification GC for all platforms.

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

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

14 years agoHeap profiler improvements.
mikhail.naganov@gmail.com [Mon, 26 Oct 2009 10:51:30 +0000 (10:51 +0000)]
Heap profiler improvements.

- account code objects in retainers profile;
- differentiate between function boilerplates and closures;
- simplify code;

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

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

14 years agoRemove a check which was not needed
sgjesse@chromium.org [Fri, 23 Oct 2009 12:54:48 +0000 (12:54 +0000)]
Remove a check which was not needed
Review URL: http://codereview.chromium.org/326011

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

14 years agoUse RtlCaptureContext instead of inline assembly to capture execution context on...
sgjesse@chromium.org [Fri, 23 Oct 2009 12:47:44 +0000 (12:47 +0000)]
Use RtlCaptureContext instead of inline assembly to capture execution context on Windows

Inline assembly is not available in Visual C++ 64-bit version so use RtlCaptureContext to capture execution context. RtlCaptureContext is not available on Windows 2000 so this change removes Windows 2000 support. If this turns up causing trouble we can revert to only use RtlCaptureContext in 64-bit and inline assembly in 32-bit.
Review URL: http://codereview.chromium.org/335008

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

14 years agoFix issue with running some constructors having only this.x = ... assignments.
sgjesse@chromium.org [Fri, 23 Oct 2009 12:18:47 +0000 (12:18 +0000)]
Fix issue with running some constructors having only this.x = ... assignments.

If we had compiled the comment instead of the code it would have worked.

BUG=483
TEST=mjsunit/regress/regress-483.js
Review URL: http://codereview.chromium.org/332007

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

14 years agoX64/Win64: Fix bug in returning ObjectPair.
lrn@chromium.org [Fri, 23 Oct 2009 10:53:20 +0000 (10:53 +0000)]
X64/Win64: Fix bug in returning ObjectPair.
Used the registers to test for failure before loading the result from the stack.

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

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

14 years agoSimple toplevel code generator support for short-circuited boolean OR
kmillikin@chromium.org [Fri, 23 Oct 2009 10:42:14 +0000 (10:42 +0000)]
Simple toplevel code generator support for short-circuited boolean OR
in a non-test (ie, value or effect) context.  (It is implicitly not in
a test context because the code generator does not support expressions
in a test context yet.)

Compilation is essentially the same as in the optimized code
generator.  The expression (e0 || e1) is compiled as if it were
(let (temp = e0) temp ? temp : e1).

On ia32 and x64 a single shared ToBoolean stub is used to convert a
value to a flag.  The inlined checks assumed by the stub are reordered
to compare to undefined (the common case in toplevel code?) first.  On
ARM a call to the runtime is used.  In the interest of code size no
checks are yet inlined on ARM.

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

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