platform/upstream/v8.git
15 years agoX64 Implementation: Make codegen load literals and assign to local variables.
whesse@chromium.org [Wed, 17 Jun 2009 12:16:59 +0000 (12:16 +0000)]
X64 Implementation: Make codegen load literals and assign to local variables.
Review URL: http://codereview.chromium.org/126198

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

15 years agoX64: Implementation of a bunch of stubs, and some new opcodes.
lrn@chromium.org [Wed, 17 Jun 2009 11:50:33 +0000 (11:50 +0000)]
X64: Implementation of a bunch of stubs, and some new opcodes.

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

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

15 years agoAvoid needless creation of handles in regexp runtime routines and use
ager@chromium.org [Wed, 17 Jun 2009 11:44:25 +0000 (11:44 +0000)]
Avoid needless creation of handles in regexp runtime routines and use
the stack instead.
Review URL: http://codereview.chromium.org/126268

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

15 years agoOptimize special cases of Math.pow().
kasperl@chromium.org [Wed, 17 Jun 2009 11:06:32 +0000 (11:06 +0000)]
Optimize special cases of Math.pow().
Review URL: http://codereview.chromium.org/125245

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

15 years agoInline fast case of the method that ensures that an array has a
ager@chromium.org [Wed, 17 Jun 2009 10:55:58 +0000 (10:55 +0000)]
Inline fast case of the method that ensures that an array has a
certain size.
Review URL: http://codereview.chromium.org/126265

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

15 years agoInclude weak symbols from 'nm' report. This fixes "C++" part of profiling results.
mikhail.naganov@gmail.com [Wed, 17 Jun 2009 08:27:19 +0000 (08:27 +0000)]
Include weak symbols from 'nm' report. This fixes "C++" part of profiling results.

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

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

15 years agoRevert change to LongRunningApply, but allow the test case to time
kasperl@chromium.org [Wed, 17 Jun 2009 06:47:15 +0000 (06:47 +0000)]
Revert change to LongRunningApply, but allow the test case to time
out for now.
Review URL: http://codereview.chromium.org/125241

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

15 years agoMake test-api/ApplyInterruption less likely to time out in debug
kasperl@chromium.org [Wed, 17 Jun 2009 06:18:10 +0000 (06:18 +0000)]
Make test-api/ApplyInterruption less likely to time out in debug
mode and on actual ARM hardware.

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

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

15 years agoReimplemented the KeyedLookupCache to speed up access.
bak@chromium.org [Wed, 17 Jun 2009 06:07:49 +0000 (06:07 +0000)]
Reimplemented the KeyedLookupCache to speed up access.

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

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

15 years agoFix the problem with JS entries in tickprocessor.
mikhail.naganov@gmail.com [Tue, 16 Jun 2009 18:57:26 +0000 (18:57 +0000)]
Fix the problem with JS entries in tickprocessor.

The main problem was due to the following: after Erik had fixed the logger to report library addresses, tickprocessor started to add to the code map entries that covered almost entire memory. This happened because tickprocessor contains a heuristic to bias addresses of functions from dynamic libraries:

    if (funcInfo.start < libStart && funcInfo.start < libEnd - libStart) {
      funcInfo.start += libStart;
    }

And, as tickprocessor tried to process all symbols from the library, including data entries, which can be outside reported library addresses range, the second condition failed, and funcInfo.start remained unbiased.

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

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

15 years agoUse >>> instead of >> in order to cover the full 32 bit range when
erik.corry@gmail.com [Tue, 16 Jun 2009 15:01:24 +0000 (15:01 +0000)]
Use >>> instead of >> in order to cover the full 32 bit range when
handling addresses.
Review URL: http://codereview.chromium.org/125187

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

15 years agoDon't panic if tickprocessor can't find a shared library.
erik.corry@gmail.com [Tue, 16 Jun 2009 13:44:48 +0000 (13:44 +0000)]
Don't panic if tickprocessor can't find a shared library.
Don't swallow exceptions so we can't see where they are really
thrown.
Review URL: http://codereview.chromium.org/126200

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

15 years ago- Changed fast case for computing object size based on usage histogram.
bak@chromium.org [Tue, 16 Jun 2009 13:31:31 +0000 (13:31 +0000)]
- Changed fast case for computing object size based on usage histogram.
- Added fast case to String.prototype.split (Mads's idea).
- Made minor other optimizations in String.prototype.split.

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

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

15 years agoAdd fast negative checks for symbol equality: If we're comparing
kasperl@chromium.org [Tue, 16 Jun 2009 12:54:07 +0000 (12:54 +0000)]
Add fast negative checks for symbol equality: If we're comparing
two symbols, they're only equal if the objects are identical.
Review URL: http://codereview.chromium.org/125184

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

15 years agoFix profiling for shared libraries on Linux loaded at negative addresses
erik.corry@gmail.com [Tue, 16 Jun 2009 12:52:02 +0000 (12:52 +0000)]
Fix profiling for shared libraries on Linux loaded at negative addresses
(Android does this).  Fix logging for executable mappings that have no
file associated.  Be more consistent with use of uintptr_t.
Review URL: http://codereview.chromium.org/125183

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

15 years agoAdded utility scripts for running oprofile in tools/oprofile.
sgjesse@chromium.org [Tue, 16 Jun 2009 12:08:59 +0000 (12:08 +0000)]
Added utility scripts for running oprofile in tools/oprofile.

To profile running the JavaScript file test.js using the V8 release mode shell (assuming it is build passing prof=oprofile to the SCons build). The following commands can be used:

$ tools/oprofile/start
$ tools/oprofile/run test.js
$ tools/oprofile/report | less
$ tools/oprofile/annotate | less
$ tools/oprofile/shutdown

Here is a summary of the commands.

For all the commands taking an executable the executable is expected to be a binary using V8. If no executable is specified the release mode V8 shell is assumed.

By default the --session-dir=/tmp/oprofv8 is passed to all oprofile commands. This walue can be changed by setting environment variable OPROFILE_SESSION_DIR.

When using the defaulf executable (V8 shell in release mode) it is assumed to be located in ../.. relative from the oprofile utility scripts. This default location can be overridden using the V8_SHELL_DIR environment variable.

start
-----
Start the oprofiling daemon.

run [executable] [parameters]
-----------------------------
Profile a V8 executable. Running this will reset oprofile samples, run the command and do an oprofile dump to flush samples and write ELF binaries for the generated code. The parameters are passed to the executable together with the --oprofile option.

report [executable] [parameters]
--------------------------------
Print the report for a profile run. The parameters are passed to opreport. E.g report --callgraph.

annotate [executable] [parameters]
----------------------------------
Print annotated assembly for a profile run. The parameters are passed to opannotate. E.g annotate -threshold 1.

reset
-----
Reset oprofile samples.

dump
----
Flush oprofile samples and write ELF binaries for the generated code.

shutdown
--------
Shutdown oprofile daemon.

Added a warning which is printed if option --oprofile is passed to a V8 which has not been compiled with oprofile support.
Review URL: http://codereview.chromium.org/125181

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

15 years agoFix issue 380.
mikhail.naganov@gmail.com [Tue, 16 Jun 2009 11:47:00 +0000 (11:47 +0000)]
Fix issue 380.

Don't infer name for a function if a result of its call is assigned to a variable / property. E.g., in this case:

  a = function() { ... } ();

the function must remain anonymous because 'a' doesn't receive a function reference, but instead a result of its call.

BUG=http://code.google.com/p/v8/issues/detail?id=380
TEST=cctest/test-func-name-inference/Issue380

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

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

15 years agoReview URL: http://codereview.chromium.org/126158
antonm@chromium.org [Tue, 16 Jun 2009 10:06:24 +0000 (10:06 +0000)]
Review URL: http://codereview.chromium.org/126158

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

15 years agoRemove the unused support for jump-table switch statements.
kmillikin@chromium.org [Tue, 16 Jun 2009 09:50:37 +0000 (09:50 +0000)]
Remove the unused support for jump-table switch statements.
Review URL: http://codereview.chromium.org/126193

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

15 years agoAvoid going into runtime system for round-towards-zero operations on ARM.
erik.corry@gmail.com [Tue, 16 Jun 2009 09:49:29 +0000 (09:49 +0000)]
Avoid going into runtime system for round-towards-zero operations on ARM.
Review URL: http://codereview.chromium.org/126192

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

15 years agoPrepare to push V8 version 1.2.8 to trunk.
ager@chromium.org [Tue, 16 Jun 2009 09:33:17 +0000 (09:33 +0000)]
Prepare to push V8 version 1.2.8 to trunk.
Review URL: http://codereview.chromium.org/125177

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

15 years agoMake sure to invoke valueOf methods on both operands of & and >> -- even
kasperl@chromium.org [Tue, 16 Jun 2009 08:29:31 +0000 (08:29 +0000)]
Make sure to invoke valueOf methods on both operands of & and >> -- even
when the left operand lets us shortcut the computation.
Review URL: http://codereview.chromium.org/125176

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

15 years agoX64 implementation: Test Compiler::Compile by compiling and running a function.
whesse@chromium.org [Tue, 16 Jun 2009 08:25:08 +0000 (08:25 +0000)]
X64 implementation: Test Compiler::Compile by compiling and running a function.
Review URL: http://codereview.chromium.org/126191

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

15 years agoX64 platform: Add more register allocator functions.
whesse@chromium.org [Tue, 16 Jun 2009 08:24:42 +0000 (08:24 +0000)]
X64 platform: Add more register allocator functions.
Review URL: http://codereview.chromium.org/125131

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

15 years agoImprove DST offset computation performance.
kasperl@chromium.org [Tue, 16 Jun 2009 06:52:04 +0000 (06:52 +0000)]
Improve DST offset computation performance.
Review URL: http://codereview.chromium.org/126188

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

15 years agoImplemented fast case for NumberToString where the result is a single character string.
bak@chromium.org [Tue, 16 Jun 2009 06:44:09 +0000 (06:44 +0000)]
Implemented fast case for NumberToString where the result is a single character string.

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

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

15 years agoFix disassembly output from oprofile.
sgjesse@chromium.org [Mon, 15 Jun 2009 16:33:28 +0000 (16:33 +0000)]
Fix disassembly output from oprofile.

Only send the inscructions part of a code object to oprofile when reporting dynamically generated code. Before the code object header was also reported to oprofile as code which caused strange disassembly output when using opannotate.
Review URL: http://codereview.chromium.org/125126

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

15 years agoAnother attempt at fixing sine & cosine test.
ager@chromium.org [Mon, 15 Jun 2009 15:57:06 +0000 (15:57 +0000)]
Another attempt at fixing sine & cosine test.

TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/125129

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

15 years agoFixed pointer vs. va_list overloading problem occuring in gcc 3.3 (used for ARM build).
mikhail.naganov@gmail.com [Mon, 15 Jun 2009 15:49:03 +0000 (15:49 +0000)]
Fixed pointer vs. va_list overloading problem occuring in gcc 3.3 (used for ARM build).

It seems that when calling a method that has two overloaded versions like this:
  f(char* format, ...)
  f(char* format, va_list args)
with a second pointer argument: f("format", pointer), the second version is picked up.

I've found a description of a similar issue here: http://bugs.gentoo.org/63112

So, to resolve this ambiguity, I've named such LogMessageBuilder's Append functions differently.

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

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

15 years agoUse the correct version of CallRuntime in the arm code generator.
ager@chromium.org [Mon, 15 Jun 2009 14:27:57 +0000 (14:27 +0000)]
Use the correct version of CallRuntime in the arm code generator.

This fixes assertion failures in debug mode tests.
Review URL: http://codereview.chromium.org/126128

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

15 years agoSemirandom changes in the code generated by gcc -g mean we can't iterate quite
erik.corry@gmail.com [Mon, 15 Jun 2009 13:50:07 +0000 (13:50 +0000)]
Semirandom changes in the code generated by gcc -g mean we can't iterate quite
as deep on newer VMs in debug mode.
Review URL: http://codereview.chromium.org/126125

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

15 years agoModify regression test.
ager@chromium.org [Mon, 15 Jun 2009 13:18:51 +0000 (13:18 +0000)]
Modify regression test.

Because of varying floating-point precision, the slow case is hard to
test with explicit values.  Instead, we check that sine and cosine do
not return the same value (the regression was that the slow case of
cosine accidentally did sine instead of cosine).

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

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

15 years agoFix stack alignment issue with the new fast Math.random() code
kasperl@chromium.org [Mon, 15 Jun 2009 13:17:09 +0000 (13:17 +0000)]
Fix stack alignment issue with the new fast Math.random() code
under Mac OS.
Review URL: http://codereview.chromium.org/125123

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

15 years agoTwo small fixes for the Math.sin and Math.cos optimizations.
ager@chromium.org [Mon, 15 Jun 2009 12:55:48 +0000 (12:55 +0000)]
Two small fixes for the Math.sin and Math.cos optimizations.
Review URL: http://codereview.chromium.org/125122

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

15 years agoOptimize Math.sin and Math.cos by avoiding runtime calls.
ager@chromium.org [Mon, 15 Jun 2009 12:06:48 +0000 (12:06 +0000)]
Optimize Math.sin and Math.cos by avoiding runtime calls.
Review URL: http://codereview.chromium.org/125121

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

15 years agoMake young space smaller on ARM.
erik.corry@gmail.com [Mon, 15 Jun 2009 11:44:04 +0000 (11:44 +0000)]
Make young space smaller on ARM.
Review URL: http://codereview.chromium.org/126121

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

15 years agoOptimize constant divisions by powers of 2.
erik.corry@gmail.com [Mon, 15 Jun 2009 10:27:52 +0000 (10:27 +0000)]
Optimize constant divisions by powers of 2.
Review URL: http://codereview.chromium.org/126116

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

15 years agoOptimize the slow case implementations of bit operations by
kasperl@chromium.org [Mon, 15 Jun 2009 09:49:17 +0000 (09:49 +0000)]
Optimize the slow case implementations of bit operations by
avoiding excessive ToNumber calls and by dealing with NaNs
in BIT_AND and SAR.
Review URL: http://codereview.chromium.org/125118

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

15 years agoInvolve more log compression techniques.
mikhail.naganov@gmail.com [Mon, 15 Jun 2009 09:37:50 +0000 (09:37 +0000)]
Involve more log compression techniques.

Code addresses are now written as an offset from the previous address for ticks, code move and delete events. Employed backreference and RLE compression for code move and delete events. This gives additional 30% log size reduction for benchmarks run w/o snapshot.

Overall compression results (compared with the revision of V8 having no compression):
 - V8: 70% size reduction for benchmarks run w/o snapshot (for reference, gzip gives 87%)
 - Chromium: 65% size reduction for public html version of benchmarks (v4) (for reference, gzip gives 90%)

The one obvious opportunity for improving compression results in Chromium is to compress URLs of scripts.

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

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

15 years agoAvoid sign issues with the fast case code for Math.floor().
kasperl@chromium.org [Mon, 15 Jun 2009 08:27:38 +0000 (08:27 +0000)]
Avoid sign issues with the fast case code for Math.floor().
Review URL: http://codereview.chromium.org/126115

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

15 years agoFix x64 build.
kasperl@chromium.org [Mon, 15 Jun 2009 08:25:08 +0000 (08:25 +0000)]
Fix x64 build.
Review URL: http://codereview.chromium.org/126114

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

15 years agoChange the implementation of Math.random to use George
kasperl@chromium.org [Mon, 15 Jun 2009 08:04:47 +0000 (08:04 +0000)]
Change the implementation of Math.random to use George
Marsaglia's multiply-with-carry instead of mixing the
bits obtained from calling the system random() twice.

This seems to be a bit faster and gives a better
distribution than the system random() in particular on
Windows.
Review URL: http://codereview.chromium.org/126113

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

15 years agoFix memory leak in regexp macro assembler. If the buffer has been
ager@chromium.org [Mon, 15 Jun 2009 06:27:33 +0000 (06:27 +0000)]
Fix memory leak in regexp macro assembler.  If the buffer has been
expanded the macro assembler owns the buffer and needs to dispose it
in the destructor.
Review URL: http://codereview.chromium.org/126111

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

15 years agoRemove branching and binding with two arguments from the JumpTarget
kmillikin@chromium.org [Fri, 12 Jun 2009 14:43:27 +0000 (14:43 +0000)]
Remove branching and binding with two arguments from the JumpTarget
class.  Manually manage off-frame results at the two sites where they
were used.

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

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

15 years agoX64: Call runtime function from JS stack frame.
lrn@chromium.org [Fri, 12 Jun 2009 13:14:35 +0000 (13:14 +0000)]
X64: Call runtime function from JS stack frame.

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

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

15 years agoX64: Remove restriction on using r12 as index register.
lrn@chromium.org [Fri, 12 Jun 2009 12:29:01 +0000 (12:29 +0000)]
X64: Remove restriction on using r12 as index register.

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

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

15 years agoImplement more of x64 register allocator.
whesse@chromium.org [Fri, 12 Jun 2009 11:25:15 +0000 (11:25 +0000)]
Implement more of x64 register allocator.
Review URL: http://codereview.chromium.org/126043

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

15 years agoFirst round of JumpTarget simplification. Remove dead functions (jumps,
kmillikin@chromium.org [Fri, 12 Jun 2009 11:25:13 +0000 (11:25 +0000)]
First round of JumpTarget simplification.  Remove dead functions (jumps,
branches, and bind with more than two arguments).  Remove unneeded
variable (the "watermark" on virtual frames).

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

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

15 years agoFix debugger after inlined keyed store change.
ager@chromium.org [Fri, 12 Jun 2009 11:24:13 +0000 (11:24 +0000)]
Fix debugger after inlined keyed store change.

Make sure that the IC is always hit when debugging and make sure to
restore the fast case when leaving the debugger.
Review URL: http://codereview.chromium.org/125044

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

15 years agoChanged the expansion of new space to depend on how much has survived scavenge.
bak@chromium.org [Fri, 12 Jun 2009 11:11:04 +0000 (11:11 +0000)]
Changed the expansion of new space to depend on how much has survived scavenge.
This replaces the fixed expansion policy based on number of scavenges.
Increased the max new space size to 8MB (only reserved space).
Increased the defalt new space size to 512KB.

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

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

15 years agoMove the default return handling to please some versions of gcc.
sgjesse@chromium.org [Fri, 12 Jun 2009 10:25:05 +0000 (10:25 +0000)]
Move the default return handling to please some versions of gcc.

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

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

15 years agoAdd scope chain information to the debugger.
sgjesse@chromium.org [Fri, 12 Jun 2009 10:03:25 +0000 (10:03 +0000)]
Add scope chain information to the debugger.

For each frame it is now possible to request information on the scope chain. Each scope in the chain can have one of the types local, global, with and closure. For scopes of type global and with the mirror for the actual global or with object is available. For scopes of type local and closure a plain JavaScript object with the materialized content of the scope is created and its mirror is returned. Depending on the level of possible optimization the content of the materialized local and closure scopes might only contain the names which are actually used.

To iterate the scope chain an iterator ScopeIterator have been added which can provide the type of each scope for each part of the chain. This iterator creates an artificial local scope whenever that is present as the context chain does not include the local scope.

To avoid caching the mirror objects for the materialized the local and closure scopes transient mirrors have been added. They have negative handles and cannot be retrieved by subsequent lookup calls. Their content is part of a single response.

For debugging purposes an additional runtime function DebugPrintScopes is been added.

Added commands 'scopes' and 'scope' to the developer shell and fixed the dir command.

BUG=none
TEST=test/mjsunit/debug-scopes.js
Review URL: http://codereview.chromium.org/123021

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

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