platform/upstream/v8.git
15 years agoLars spotted that Handle::operator -> and * are not inlined. That apparently buys...
antonm@chromium.org [Thu, 11 Jun 2009 19:44:48 +0000 (19:44 +0000)]
Lars spotted that Handle::operator -> and * are not inlined.  That apparently buys us almost ~10%
speedup for some DOM operations.

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

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

15 years agoImplement tick events compression in a log file.
mikhail.naganov@gmail.com [Thu, 11 Jun 2009 14:08:34 +0000 (14:08 +0000)]
Implement tick events compression in a log file.

Two techniques are involved:
 - compress repeated line ends (common stack beginnings) by using back references;
 - do RLE compression of repeated tick events.

This gives only 5% size reduction on benchmarks run, but this is because tick events are only comprise 10% of file size. Under Chromium winnings are bigger because long repeated samples of idleness are now compressed into a single line.

Tickprocessor will be updated in the next patch.

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

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

15 years agoX64 implementation starts using virtual frame and register allocators.
whesse@chromium.org [Thu, 11 Jun 2009 13:51:46 +0000 (13:51 +0000)]
X64 implementation starts using virtual frame and register allocators.
Review URL: http://codereview.chromium.org/123018

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

15 years agoX64: Create test JS-function and call it.
lrn@chromium.org [Thu, 11 Jun 2009 13:17:46 +0000 (13:17 +0000)]
X64: Create test JS-function and call it.

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

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

15 years agoInline keyed stores if the code is in a loop and the key is likely to
ager@chromium.org [Thu, 11 Jun 2009 13:17:26 +0000 (13:17 +0000)]
Inline keyed stores if the code is in a loop and the key is likely to
be a smi.

The inlined version works for stores to JSArrays where the key is a
smi that is within bounds of the array and the value is either
constant or a smi so we can skip the write-barrier.
Review URL: http://codereview.chromium.org/122035

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

15 years agoX64: Adds zone scope before creating codegenerator for testing.
lrn@chromium.org [Thu, 11 Jun 2009 11:21:10 +0000 (11:21 +0000)]
X64: Adds zone scope before creating codegenerator for testing.

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

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

15 years agoX64: Implemented InvokeFunction
lrn@chromium.org [Thu, 11 Jun 2009 10:46:28 +0000 (10:46 +0000)]
X64: Implemented InvokeFunction

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

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

15 years agoAdd x64 implementation test support for assembler and code generator.
whesse@chromium.org [Thu, 11 Jun 2009 10:03:51 +0000 (10:03 +0000)]
Add x64 implementation test support for assembler and code generator.
Review URL: http://codereview.chromium.org/123014

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

15 years agoFix fp code for mixed-endian ARM.
erik.corry@gmail.com [Wed, 10 Jun 2009 16:32:15 +0000 (16:32 +0000)]
Fix fp code for mixed-endian ARM.
Review URL: http://codereview.chromium.org/119420

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

15 years agoAdd statistics operations and long calls and jumps to x64 macro assembler.
whesse@chromium.org [Wed, 10 Jun 2009 15:53:46 +0000 (15:53 +0000)]
Add statistics operations and long calls and jumps to x64 macro assembler.
Remove unimplemented instructions from x64 assembler.  Add operand-size
suffixes to add, sub, inc, dec, and cmp.
Review URL: http://codereview.chromium.org/118380

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

15 years agoMake JSObjects with both indexed interceptors and indexed accessors work safely.
whesse@chromium.org [Wed, 10 Jun 2009 15:33:31 +0000 (15:33 +0000)]
Make JSObjects with both indexed interceptors and indexed accessors work safely.
Review URL: http://codereview.chromium.org/118499

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

15 years agoGet rid of the notion of "parameter pointer" that no longer exists in
kmillikin@chromium.org [Wed, 10 Jun 2009 15:08:25 +0000 (15:08 +0000)]
Get rid of the notion of "parameter pointer" that no longer exists in
the implementation but still lives on in comments and identifier
names.

Where it was used, it has been changed to "caller's stack pointer".
Review URL: http://codereview.chromium.org/118500

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

15 years agoRe-land patch r2110.
kasperl@chromium.org [Wed, 10 Jun 2009 14:45:46 +0000 (14:45 +0000)]
Re-land patch r2110.

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

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

15 years agoFix a bug when shifting left by zero. Ensure that the left operand is
kmillikin@chromium.org [Wed, 10 Jun 2009 12:41:57 +0000 (12:41 +0000)]
Fix a bug when shifting left by zero.  Ensure that the left operand is
writable (non-aliased) so it can be used for the result in the slow
case.

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

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

15 years agoMake Array.sort safely generic on JSObject types. Fix bug 346 http://code.google...
whesse@chromium.org [Wed, 10 Jun 2009 11:42:22 +0000 (11:42 +0000)]
Make Array.sort safely generic on JSObject types.  Fix bug 346 code.google.com/p/v8/issues/detail?id=346
Review URL: http://codereview.chromium.org/119357

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

15 years agoAdd instanceof stub for ARM.
erik.corry@gmail.com [Wed, 10 Jun 2009 11:42:13 +0000 (11:42 +0000)]
Add instanceof stub for ARM.
Review URL: http://codereview.chromium.org/119353

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

15 years agoA bunch of changes to speed up math on ARM.
erik.corry@gmail.com [Wed, 10 Jun 2009 10:20:37 +0000 (10:20 +0000)]
A bunch of changes to speed up math on ARM.
* Identify heap numbers that contain non-Smi int32s and do bit
ops on them without calling the fp hardware or emulation.
* Identify results that are non-Smi int32s and write them into
heap numbers without calling the fp hardware or emulation.
* Do unary minus on heap numbers without going into the runtime
system.
* On add, sub and mul if we have both Smi and heapnumber inputs
to the same operation then convert the Smi to a double and do
the op without going into runtime system.  This also applies
if we have two Smi inputs but the result is not Smi.
Review URL: http://codereview.chromium.org/119241

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

15 years agoX64: Implement CEntryStub and JSEntryTrampoline.
lrn@chromium.org [Wed, 10 Jun 2009 09:48:15 +0000 (09:48 +0000)]
X64: Implement CEntryStub and JSEntryTrampoline.
Still some supporting functions missing.

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

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

15 years agoCleanup of ARM exception handlers. Remove the unused code and
kmillikin@chromium.org [Wed, 10 Jun 2009 09:00:07 +0000 (09:00 +0000)]
Cleanup of ARM exception handlers.  Remove the unused code and
parameter pointer slots.  Change it so that the handler address no
longer points into the middle of the handler.

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

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

15 years agoChange the IA32 stack handler layout so that the handler address does
kmillikin@chromium.org [Wed, 10 Jun 2009 08:01:30 +0000 (08:01 +0000)]
Change the IA32 stack handler layout so that the handler address does
not point into the middle of the handler.  Also remove top-of-stack
caching from MacroAssembler::PushTryHandler.

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

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

15 years ago* Modify simulator and ARM code generator to avoid swi
erik.corry@gmail.com [Tue, 9 Jun 2009 09:26:53 +0000 (09:26 +0000)]
* Modify simulator and ARM code generator to avoid swi
instructions.  The intention is that the snapshots generated
by the simulator should be usable on the hardware.  Instead of
swi instructions we generate a branch to a swi instruction that
is not part of the snapshot.  The call/jump is patched up in
the same way as other external references when the snapshot
is deserialized.  This only works for EABI targets: on old ABI
targets we still emit some instructions not supported by the
simulator (fp coprocessor instructions).
Review URL: http://codereview.chromium.org/119036

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

15 years agoChange IA32's CodeGenerator::GenerateFastCharCodeAt to eagerly
kmillikin@chromium.org [Tue, 9 Jun 2009 07:44:09 +0000 (07:44 +0000)]
Change IA32's CodeGenerator::GenerateFastCharCodeAt to eagerly
allocate and spill registers, so that the register reference counts
and virtual frame are unchanged in the main body.

This eliminates a few sites of magic branching or binding of
JumpTarget with arguments.

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

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

15 years agoChange locationFromPosition() and locationFromLine() to use a binary search to locate...
sgjesse@chromium.org [Tue, 9 Jun 2009 07:03:21 +0000 (07:03 +0000)]
Change locationFromPosition() and locationFromLine() to use a binary search to locate line numbers from position numbers.  Modify test debug-sourceinfo.js to include more tests, including error conditions.

Patch by Matt Hanselman, see http://codereview.chromium.org/118371.

BUG=213
TEST=test/mjsunit/debug-sourceinfo.js
Review URL: http://codereview.chromium.org/118425

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

15 years agoActivate the debugger in the developer shell earlier.
sgjesse@chromium.org [Tue, 9 Jun 2009 06:53:15 +0000 (06:53 +0000)]
Activate the debugger in the developer shell earlier.

This will support breaking in debugger statements in JavaScript files read from the command line.
Review URL: http://codereview.chromium.org/113998

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

15 years agoSimplify the IA32 exception handler block by removing the unused code
kmillikin@chromium.org [Mon, 8 Jun 2009 14:39:50 +0000 (14:39 +0000)]
Simplify the IA32 exception handler block by removing the unused code
pointer and parameter pointer slots.

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

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

15 years agoAdd log compression ability.
mikhail.naganov@gmail.com [Mon, 8 Jun 2009 13:39:48 +0000 (13:39 +0000)]
Add log compression ability.

This is a trivial per-row compression:
- short aliases are introduced for events and code creation tags;
- in tick events, offsets are used instead of absolute addresses;
- removed 'code-allocation' event, as it seems not used.

The first two options are depend on the new flag: 'compress-log', which is off by default.

On benchmarks run w/o snapshot, this gives 45% log size reduction.

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

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

15 years agoPrepare push of V8 version 1.2.7 to trunk. Now working on version 1.2.8.
ager@chromium.org [Mon, 8 Jun 2009 11:03:04 +0000 (11:03 +0000)]
Prepare push of V8 version 1.2.7 to trunk.  Now working on version 1.2.8.
Review URL: http://codereview.chromium.org/118378

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

15 years agoAdd more debugging information to scripts compiled through eval.
sgjesse@chromium.org [Mon, 8 Jun 2009 10:47:49 +0000 (10:47 +0000)]
Add more debugging information to scripts compiled through eval.

Scripts now have a compilation type which can be host, eval or JSON. Host scripts are compiled through the API, eval scripts are compiled through call to evan and JSON scripts are compiled as a result of calling JSON.parse.

For scripts scripts compiled through eval the JavaScript function in top of the stack and the pc offset into the code is stored in the script object. This makes it possible to calculate the source position of the eval call later when requested. This information can be obtained through the script mirror object and is part of the script mirror JSON serialization for the debugger protocol.

Moved the enumeration ScripType into class Script and remamed to Type. The new compilation type enumeration is also inside the class Script.

This information is now shown when using the scripts command in he developer shell debugger.
Review URL: http://codereview.chromium.org/119108

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

15 years agoIntroduce an API to force the deletion of a property ignoring
ager@chromium.org [Mon, 8 Jun 2009 09:46:09 +0000 (09:46 +0000)]
Introduce an API to force the deletion of a property ignoring
interceptors and dont-delete attributes.

Minor change to the behavior of eval: throw exception when calling
eval in a context for which the global has been detached.  This
matches the behavior of both Firefox and Safari post navigation in the
browser.
Review URL: http://codereview.chromium.org/118374

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

15 years agoFix compilation on FreeBSD. Thanks to Ryan Dahl for patch.
erik.corry@gmail.com [Mon, 8 Jun 2009 08:51:35 +0000 (08:51 +0000)]
Fix compilation on FreeBSD.  Thanks to Ryan Dahl for patch.
http://codereview.chromium.org/113897

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

15 years agoLower the number of generations in the script compilation
kasperl@chromium.org [Mon, 8 Jun 2009 08:03:58 +0000 (08:03 +0000)]
Lower the number of generations in the script compilation
cache to 5 (down from 8). Generations 5, 6, and 7 are
rarely hit in real browsing sessions (~2% in the best case)
so it seems better to lower the size to avoid carrying around
too many compiled scripts in the cache.
Review URL: http://codereview.chromium.org/119301

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

15 years agoChange handle creation to use Object*, to comply with strict aliasing rules.
whesse@chromium.org [Mon, 8 Jun 2009 07:16:04 +0000 (07:16 +0000)]
Change handle creation to use Object*, to comply with strict aliasing rules.
Review URL: http://codereview.chromium.org/119177

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

15 years agoFix x64 build.
kmillikin@chromium.org [Fri, 5 Jun 2009 17:14:06 +0000 (17:14 +0000)]
Fix x64 build.

TBR=whesse@chromium.org,lrn@chromium.org
Review URL: http://codereview.chromium.org/118310

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

15 years agoAdd an ability to explicitly specify path to d8 shell to linux-tick-processor.
mikhail.naganov@gmail.com [Fri, 5 Jun 2009 15:49:37 +0000 (15:49 +0000)]
Add an ability to explicitly specify path to d8 shell to linux-tick-processor.

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

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

15 years agoSimplify the processing of deferred code in the code generator. Our
kmillikin@chromium.org [Fri, 5 Jun 2009 14:16:32 +0000 (14:16 +0000)]
Simplify the processing of deferred code in the code generator.  Our
deferred code snippets are highly stylized.  They always make a call
to a stub or the runtime and then return.  This change takes advantage
of that.

Creating a deferred code object now captures a snapshot of the
registers in the virtual frame.  The registers are automatically saved
on entry to the deferred code and restored on exit.

The clients of deferred code must ensure that there is no change to
the registers in the virtual frame (eg, by allocating which can cause
spilling) or to the stack pointer.  That is currently the case.

As a separate change, I will add either code to verify this constraint
or else code to forbid any frame effect.

The deferred code itself does not use the virtual frame or register
allocator (or even the code generator).  It is raw macro assembler
code.
Review URL: http://codereview.chromium.org/118226

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

15 years agoRevert r2110 as it introduces performance regressions.
antonm@chromium.org [Fri, 5 Jun 2009 13:42:29 +0000 (13:42 +0000)]
Revert r2110 as it introduces performance regressions.

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

15 years agoDon't do local lookup on global object as those (currently) are not JITed anyway.
antonm@chromium.org [Fri, 5 Jun 2009 10:50:36 +0000 (10:50 +0000)]
Don't do local lookup on global object as those (currently) are not JITed anyway.

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

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

15 years agoRevert revision 2108. This brings back the changes
kasperl@chromium.org [Fri, 5 Jun 2009 08:07:15 +0000 (08:07 +0000)]
Revert revision 2108. This brings back the changes
submitted in revisions 2093, 2094, 2099, and 2106.
There's no evidence that supports that these changes
should be the cause of the unexplained performance
regressions on the intl2 and DHTML page cyclers.

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

15 years agoExperimental revert of revisions 2093, 2094, 2099, and
kasperl@chromium.org [Fri, 5 Jun 2009 06:57:30 +0000 (06:57 +0000)]
Experimental revert of revisions 2093, 2094, 2099, and
2106 to try to isolate a performance regression on the
page cyclers.

I'll roll the changes back in if this doesn't fix the
regression.

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

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

15 years agoPatch by Craig Schlenter. See http://codereview.chromium.org/118153
kasperl@chromium.org [Fri, 5 Jun 2009 06:20:30 +0000 (06:20 +0000)]
Patch by Craig Schlenter. See codereview.chromium.org/118153

Change stack alignment on linux to 16 bytes to keep gcc 4.4 happy.
This fixes the mksnapshot segfault without requiring -fno-tree-vectorize
which just avoided the problem by not generating code with movdqa.

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

15 years agoFix the issue with layout tests.
antonm@chromium.org [Thu, 4 Jun 2009 19:19:53 +0000 (19:19 +0000)]
Fix the issue with layout tests.

The problem was I incorrectly treated NULL result as failure to fetch
a property with a getter.  However, if getter returns zero, it is
manifested as NULL pointer (see added test case).

Good news: that gives another boost as before this CL if getter returned
0, I did another slow lookup.

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

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

15 years agoClean up the AST pretty printer by adding some missing newlines and
kmillikin@chromium.org [Thu, 4 Jun 2009 12:01:55 +0000 (12:01 +0000)]
Clean up the AST pretty printer by adding some missing newlines and
indentation.

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

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

15 years agoX64: JSEntry Stub
lrn@chromium.org [Thu, 4 Jun 2009 11:54:14 +0000 (11:54 +0000)]
X64: JSEntry Stub

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

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

15 years agoFix formatting of one line.
whesse@chromium.org [Thu, 4 Jun 2009 11:20:03 +0000 (11:20 +0000)]
Fix formatting of one line.
Review URL: http://codereview.chromium.org/119171

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

15 years agoDeclare register names as static constants rather than external globals.
whesse@chromium.org [Thu, 4 Jun 2009 11:09:17 +0000 (11:09 +0000)]
Declare register names as static constants rather than external globals.
Review URL: http://codereview.chromium.org/119082

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

15 years agoProfiler cleanup: removed another piece that is only needed for DevTools profiler.
mikhail.naganov@gmail.com [Thu, 4 Jun 2009 09:20:27 +0000 (09:20 +0000)]
Profiler cleanup: removed another piece that is only needed for DevTools profiler.

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

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

15 years agoAdded more output on timeout failures to test runner.
sgjesse@chromium.org [Thu, 4 Jun 2009 09:18:39 +0000 (09:18 +0000)]
Added more output on timeout failures to test runner.
Review URL: http://codereview.chromium.org/119112

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

15 years agoStore lookup index in ARM stubs as well (see r2093 and 2094 for more info).
antonm@chromium.org [Wed, 3 Jun 2009 16:09:43 +0000 (16:09 +0000)]
Store lookup index in ARM stubs as well (see r2093 and 2094 for more info).

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

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

15 years agoAdd multiplication and division to x64 assembler. Add emit_modrm() function.
whesse@chromium.org [Wed, 3 Jun 2009 13:30:31 +0000 (13:30 +0000)]
Add multiplication and division to x64 assembler.  Add emit_modrm() function.
Review URL: http://codereview.chromium.org/119078

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

15 years agoRename misnamed test file.
kmillikin@chromium.org [Wed, 3 Jun 2009 12:21:54 +0000 (12:21 +0000)]
Rename misnamed test file.
Review URL: http://codereview.chromium.org/119081

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

15 years agoRefactor IA32 shift operations to simplify moving the right operand
kmillikin@chromium.org [Wed, 3 Jun 2009 12:20:56 +0000 (12:20 +0000)]
Refactor IA32 shift operations to simplify moving the right operand
into the ecx register and to ensure that there is no frame effect
between the first entry to the deferred code and binding its exit.
Review URL: http://codereview.chromium.org/118157

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

15 years agoFix flakyness in tests: make sure to garbage collect temporary test
ager@chromium.org [Wed, 3 Jun 2009 12:09:52 +0000 (12:09 +0000)]
Fix flakyness in tests: make sure to garbage collect temporary test
external strings so that they are not disposed when running other
tests that rely on only one external string being disposed during its
run.

TBR=kasperl
Review URL: http://codereview.chromium.org/118158

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

15 years agoFollow up to r2093: forgotten files and changes.
antonm@chromium.org [Wed, 3 Jun 2009 12:04:53 +0000 (12:04 +0000)]
Follow up to r2093: forgotten files and changes.

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

15 years agoIn case of holder with fast properties that allows to fetch the property
antonm@chromium.org [Wed, 3 Jun 2009 11:25:34 +0000 (11:25 +0000)]
In case of holder with fast properties that allows to fetch the property
immediately if holder has this property or saves binary search on holder if
property doesn't belong to holder.  Of course, in the cases when named getter
returns nothing.

That gives ~20% for dom benchmark/Document Object String Get, speeds up overall
dom_perf (not dramatically) and overall score for peacekeeper.  Strange, but DOM
part of peacekeepr runs somewhat slower.
Review URL: http://codereview.chromium.org/118118

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

15 years agoMake tickprocessor's ProfileView extensible and move out DevTools-only stuff.
mikhail.naganov@gmail.com [Wed, 3 Jun 2009 11:21:23 +0000 (11:21 +0000)]
Make tickprocessor's ProfileView extensible and move out DevTools-only stuff.

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

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

15 years agoX64: Added implementations of Set(..., Immediate) to macro assembler.
lrn@chromium.org [Wed, 3 Jun 2009 10:30:50 +0000 (10:30 +0000)]
X64: Added implementations of Set(..., Immediate) to macro assembler.
Removed duplicates comments in assembler-x64.cc.

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

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

15 years agoAs a simplification, manually inline the function
kmillikin@chromium.org [Tue, 2 Jun 2009 20:11:26 +0000 (20:11 +0000)]
As a simplification, manually inline the function
DeferredInlineBinaryOperation::GenerateInlineCode and remove its
definition.  It was only called from one site and was the only
deferred code object that was split that way into fast-case inline and
slow-case stub.

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

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

15 years agoAdd miscellaneous operations to x64 assembler.
whesse@chromium.org [Tue, 2 Jun 2009 13:40:52 +0000 (13:40 +0000)]
Add miscellaneous operations to x64 assembler.
Review URL: http://codereview.chromium.org/113997

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

15 years agoAdd shift operations to x64 assembler.
whesse@chromium.org [Tue, 2 Jun 2009 11:43:26 +0000 (11:43 +0000)]
Add shift operations to x64 assembler.
Review URL: http://codereview.chromium.org/118107

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

15 years agoFactor out the code for emitting the IA32 binary operations div and
kmillikin@chromium.org [Tue, 2 Jun 2009 11:18:41 +0000 (11:18 +0000)]
Factor out the code for emitting the IA32 binary operations div and
mod so they do not share code with the other binary operations.  They
now preallocate their fixed registers (eax and edx).  There is now no
frame effect between entries to the deferred call to the stub.

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

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

15 years agoFix determining of JS lower stack bottom used in profiler's JS stack tracer to work...
mikhail.naganov@gmail.com [Tue, 2 Jun 2009 09:33:17 +0000 (09:33 +0000)]
Fix determining of JS lower stack bottom used in profiler's JS stack tracer to work with Chromium.

My assumption that log initialization happens somewhere near the stack's bottom is true for V8's sample shell but isn't true for Chromium, causing many otherwise valid stack addresses to be thrown out. The solution proposed is to save stack pointer value for the outermost JS function in ThreadLocalTop similar to c_entry_fp.

Implemented only for IA-32. Currently I'm not dealing with profiling on ARM and x86-64 anyway.

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

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

15 years agoX64: Added jmp and call and nop(n) to X64 assembler.
lrn@chromium.org [Tue, 2 Jun 2009 07:21:05 +0000 (07:21 +0000)]
X64: Added jmp and call and nop(n) to X64 assembler.

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

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

15 years agoAdd a couple of parenthesis to improve readability and please certain
ager@chromium.org [Fri, 29 May 2009 19:17:48 +0000 (19:17 +0000)]
Add a couple of parenthesis to improve readability and please certain
GCC version.

BUG=364
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/118016

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

15 years agoFix wait interval calculation in ProfLazyMode test.
mikhail.naganov@gmail.com [Fri, 29 May 2009 15:33:02 +0000 (15:33 +0000)]
Fix wait interval calculation in ProfLazyMode test.

Also, add a small delay to be sure that all ticks are logged prior to leaving CheckThatProfilerWorks function.

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

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

15 years agoChange RelocInfo to write 64-bit data field on x64 architecture.
whesse@chromium.org [Fri, 29 May 2009 12:14:54 +0000 (12:14 +0000)]
Change RelocInfo to write 64-bit data field on x64 architecture.
Review URL: http://codereview.chromium.org/115860

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

15 years agoPrepare for push to trunk. We are now working on 1.2.7.
sgjesse@chromium.org [Fri, 29 May 2009 10:52:00 +0000 (10:52 +0000)]
Prepare for push to trunk. We are now working on 1.2.7.
Review URL: http://codereview.chromium.org/113994

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

15 years agoUse uint in ProfLazyMode test when measuring time delta.
mikhail.naganov@gmail.com [Fri, 29 May 2009 09:33:53 +0000 (09:33 +0000)]
Use uint in ProfLazyMode test when measuring time delta.

While testing ProfLazyMode stability I encountered a situation when the cycle supposed to run for 200 ms started to run "infinitely" because delta between two int64_t values became negative.

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

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

15 years agofix embedded vector copy constructor and assignment.
mikhail.naganov@gmail.com [Fri, 29 May 2009 09:00:39 +0000 (09:00 +0000)]
fix embedded vector copy constructor and assignment.

Thanks to Tobias Kaes, an issue with default copy constructor and assignment operator is found and fixed.

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

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

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

15 years agoAdd test, neg, and not instructions to x64 assembler
whesse@chromium.org [Fri, 29 May 2009 08:56:31 +0000 (08:56 +0000)]
Add test, neg, and not instructions to x64 assembler
Review URL: http://codereview.chromium.org/112066

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

15 years agoRemoved unused variable to fix Linux build.
sgjesse@chromium.org [Fri, 29 May 2009 08:50:05 +0000 (08:50 +0000)]
Removed unused variable to fix Linux build.

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

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

15 years agoChange the handling of the debug break stack guard. The debug break is no longer...
sgjesse@chromium.org [Fri, 29 May 2009 08:42:02 +0000 (08:42 +0000)]
Change the handling of the debug break stack guard. The debug break is no longer ignored when hit inside "system" JavaScript. The reason for this is twofold:

* Running "system" JavaScript with the debug break flag active leads to slow running code while waiting for the break in non "system" JavaScript (one exception to this it is to try to avoid breaks in the clear mirror cache JavaScript code called when leaving the debugger).

* If this happens while processing RegExp running in native code an infinite loop is created as the stack guard handler for RegExp does not move execution forward

Fixed a GC bug in the interrupt handling for RegExp running in native code.

Added test of debug break while in debug message handler callback and debug break while executing a RegExp.
Review URL: http://codereview.chromium.org/115262

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

15 years agoTwo simple profiler changes: 1) log sampling rate, 2) check current state before...
mikhail.naganov@gmail.com [Fri, 29 May 2009 06:56:23 +0000 (06:56 +0000)]
Two simple profiler changes: 1) log sampling rate, 2) check current state before pausing & resuming.

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

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

15 years agoHandle filling up of memory buffer to make log processing in DevTools Profiler easier.
mikhail.naganov@gmail.com [Thu, 28 May 2009 13:56:32 +0000 (13:56 +0000)]
Handle filling up of memory buffer to make log processing in DevTools Profiler easier.

When profiler's memory buffer is filled up, profiling is stopped and it is ensured that the last record in the buffer is "profiler,\"pause\"" thus making the end of profiling session explicit. Otherwise DevTools Profiler would need to guess whether the current profiling session has been stopped.

Tested with Chromium.

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

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

15 years agoImprove debugger property lookup.
sgjesse@chromium.org [Thu, 28 May 2009 11:30:54 +0000 (11:30 +0000)]
Improve debugger property lookup.

before performing debugger property lookup make sure the current context is set to the context active before the debugger was entered.

Make the use of the LookupResult GC safe in debugger property lookup.
Review URL: http://codereview.chromium.org/115855

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

15 years agoAdd more arithmetic to x64 assembler.
whesse@chromium.org [Thu, 28 May 2009 10:06:48 +0000 (10:06 +0000)]
Add more arithmetic to x64 assembler.
Review URL: http://codereview.chromium.org/115857

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

15 years agoAdd immediate operands and arithmetic operations to the x64 assembler.
whesse@chromium.org [Thu, 28 May 2009 09:18:17 +0000 (09:18 +0000)]
Add immediate operands and arithmetic operations to the x64 assembler.
Review URL: http://codereview.chromium.org/115816

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

15 years agoTiny fix: initialize TickSample::frames_count with 0.
mikhail.naganov@gmail.com [Thu, 28 May 2009 07:45:17 +0000 (07:45 +0000)]
Tiny fix: initialize TickSample::frames_count with 0.

I suggest that the lack of initialization causes issue 358 to happen. In Profiler::Disengage an empty TickSample is inserted in order to wake up the Profiler thread. Issue reporter claims that crash happens in LogTickEvent function. My guess is that frames_couint receives a wild value.

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

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

15 years agoImplement a dynamically growing memory log buffer with an upper limit.
mikhail.naganov@gmail.com [Thu, 28 May 2009 07:08:09 +0000 (07:08 +0000)]
Implement a dynamically growing memory log buffer with an upper limit.

The goal of this change is to allow longer profiling sessions and preserve memory when profiler isn't started. The buffer starts with 64K and grows until it reaches the upper limit, which is currently set to 50MB --- according to my evaluations, this is enough for at least 20 minutes of GMail profiling. As we're planning to introduce compression for the profiler log, this time boundary will be significantly increased soon.

To make possible unit testing of the new component, I've factored out Logger's utility classes into a separate source file: log-utils.h/cc. Log and LogMessageBuilder are moved there from log.cc without any semantical changes.

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

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

15 years agoDon't process debug requests if the debug event is script collected.
sgjesse@chromium.org [Wed, 27 May 2009 20:57:01 +0000 (20:57 +0000)]
Don't process debug requests if the debug event is script collected.
Review URL: http://codereview.chromium.org/113900

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

15 years agoSimplify deferred code by removing some unneeded or redundant stuff.
kmillikin@chromium.org [Wed, 27 May 2009 15:13:00 +0000 (15:13 +0000)]
Simplify deferred code by removing some unneeded or redundant stuff.

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

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

15 years agoAdded stack overflow check for RegExp analysis phase.
lrn@chromium.org [Wed, 27 May 2009 11:23:26 +0000 (11:23 +0000)]
Added stack overflow check for RegExp analysis phase.
A very long regexp graph can overflow the stack with recursive calls.

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

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

15 years agoImplement memory operands for instructions in the x64 assembler.
whesse@chromium.org [Wed, 27 May 2009 08:15:31 +0000 (08:15 +0000)]
Implement memory operands for instructions in the x64 assembler.
Review URL: http://codereview.chromium.org/113841

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

15 years agoChange the register allocator so that it no longer tracks references
kmillikin@chromium.org [Wed, 27 May 2009 07:53:47 +0000 (07:53 +0000)]
Change the register allocator so that it no longer tracks references
to the platform-specific reserved registers.  They are always in use
for their intended purpose, cannot appear in the virtual frame, and
can be freely used without allocation in the code generator.

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

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

15 years agoFix for issue 351 - lastIndexOf.
lrn@chromium.org [Tue, 26 May 2009 15:42:06 +0000 (15:42 +0000)]
Fix for issue 351 - lastIndexOf.

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

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

15 years agoRun script in ProfLazyMode test longer to improve stability.
mikhail.naganov@gmail.com [Tue, 26 May 2009 14:28:08 +0000 (14:28 +0000)]
Run script in ProfLazyMode test longer to improve stability.

Prior to this change debug version of the test crashed 2 of 1000 times. After the change no crashes (out of 1000 runs) occured.

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

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

15 years agoRemove duplicate line in benchmarks/base.js
sandholm@chromium.org [Tue, 26 May 2009 13:28:51 +0000 (13:28 +0000)]
Remove duplicate line in benchmarks/base.js
This resolves issue 356 (http://code.google.com/p/v8/issues/detail?id=356) thanks to bitRAKE. Changed benchmark version number from 4 to 5 resulting in updates to base.js, README.txt and revisions.html.

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

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

15 years agoAdd implementation of control flow and label binding to x64 assembler.
whesse@chromium.org [Tue, 26 May 2009 12:32:09 +0000 (12:32 +0000)]
Add implementation of control flow and label binding to x64 assembler.
Review URL: http://codereview.chromium.org/113832

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

15 years agoRemove spurious 'const' that upsets some versions of gcc.
erik.corry@gmail.com [Tue, 26 May 2009 10:46:40 +0000 (10:46 +0000)]
Remove spurious 'const' that upsets some versions of gcc.
Review URL: http://codereview.chromium.org/115770

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

15 years agoNever use the freelists when always compacting.
erik.corry@gmail.com [Tue, 26 May 2009 09:17:50 +0000 (09:17 +0000)]
Never use the freelists when always compacting.
Review URL: http://codereview.chromium.org/113825

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

15 years agoAdd Joel Stanley to AUTHORS. Also sort the list so it is easier to see
erik.corry@gmail.com [Tue, 26 May 2009 08:49:07 +0000 (08:49 +0000)]
Add Joel Stanley to AUTHORS.  Also sort the list so it is easier to see
whether people are already in it.
Review URL: http://codereview.chromium.org/113834

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

15 years ago- Record cache hit rates at different levels in the compilation cache
iposva@chromium.org [Tue, 26 May 2009 08:10:04 +0000 (08:10 +0000)]
- Record cache hit rates at different levels in the compilation cache
  for scripts.
Review URL: http://codereview.chromium.org/115592

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

15 years agoAdd a unit test for V8's 64-bit assembler.
whesse@chromium.org [Tue, 26 May 2009 07:58:36 +0000 (07:58 +0000)]
Add a unit test for V8's 64-bit assembler.
Review URL: http://codereview.chromium.org/115707

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

15 years agoPrepare to push version 1.2.5 to trunk.
kasperl@chromium.org [Tue, 26 May 2009 05:22:48 +0000 (05:22 +0000)]
Prepare to push version 1.2.5 to trunk.

TBR=iposva@chromium.org
Review URL: http://codereview.chromium.org/113829

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

15 years agoChanged the flags that indicate the status of running vs dead
davemoore@chromium.org [Mon, 25 May 2009 19:39:52 +0000 (19:39 +0000)]
Changed the flags that indicate the status of running vs dead
This allows us to optimized the EnsureInitialized() function
so it doesn't require a function call when we're running

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

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

15 years agoFix 64-bit after in-loop patch.
erik.corry@gmail.com [Mon, 25 May 2009 18:57:25 +0000 (18:57 +0000)]
Fix 64-bit after in-loop patch.
Review URL: http://codereview.chromium.org/115764

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

15 years agoThis patch much improves our tracking of whether function is
erik.corry@gmail.com [Mon, 25 May 2009 18:29:02 +0000 (18:29 +0000)]
This patch much improves our tracking of whether function is
called from within a loop or not.  In the past we lost the
information if a call site went megamorphic before a lazily
compiled callee was called for the first time.  Now we track
that correctly (this is an issue that affects richards).
We still don't manage to track the in-loop state through a
constructor call, since constructor calls use LoadICs instead
of CallICs.  This issue affects delta-blue.  So in this patch
we assume that lazy compilations that don't happen through a
CallIC happen from inside a loop.  I have an idea to fix this
but this patch is big enough already.
With our improved tracking of in-loop state I have switched
off the inlining of in-object loads for code that is not in
a loop.  This benefits compile speed.  One issue is that
eagerly compiled code now doesn't get the in-object loads
inlined.  We need to eagerly compile less code to fix this.
Review URL: http://codereview.chromium.org/115744

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

15 years ago- Introduce histograms collecting data about the number of set remembered set
iposva@chromium.org [Mon, 25 May 2009 16:33:00 +0000 (16:33 +0000)]
- Introduce histograms collecting data about the number of set remembered set
  bits in a page.
Review URL: http://codereview.chromium.org/113819

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

15 years agoWhen inspecting a function with a native getter return result of execution of the...
yurys@chromium.org [Mon, 25 May 2009 15:07:21 +0000 (15:07 +0000)]
When inspecting a function with a native getter return result of execution of the getter function in the client context. This is useful for debugging DOM elements.
Review URL: http://codereview.chromium.org/113821

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

15 years agoImplementation of a few more assembly instructions on x64
whesse@chromium.org [Mon, 25 May 2009 14:00:30 +0000 (14:00 +0000)]
Implementation of a few more assembly instructions on x64
Review URL: http://codereview.chromium.org/113767

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

15 years agoRemove ifdef from ProfLazyMode test, instead mark it in cctest.status.
mikhail.naganov@gmail.com [Mon, 25 May 2009 12:35:32 +0000 (12:35 +0000)]
Remove ifdef from ProfLazyMode test, instead mark it in cctest.status.

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

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