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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
mikhail.naganov@gmail.com [Mon, 25 May 2009 12:34:47 +0000 (12:34 +0000)]
Expose IsProfilerPaused function on the public interface.
This is needed for DevTools Profiler because of its asynchronous and multi-client architecture.
Review URL: http://codereview.chromium.org/115761
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2041
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 25 May 2009 10:28:35 +0000 (10:28 +0000)]
Disable crashing ProfLazyMode test on ARM.
Review URL: http://codereview.chromium.org/115760
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2040
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 25 May 2009 10:27:18 +0000 (10:27 +0000)]
Fixes for comments in codereview.chromium.org/113641.
Review URL: http://codereview.chromium.org/115757
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2039
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 25 May 2009 10:05:56 +0000 (10:05 +0000)]
Split nested namespaces declaration in two lines in accordance with C++ Style Guide.
This issue was raised by Brett Wilson while reviewing my changelist for readability. Craig Silverstein (one of C++ SG maintainers) confirmed that we should declare one namespace per line. Our way of namespaces closing seems not violating style guides (there is no clear agreement on it), so I left it intact.
Review URL: http://codereview.chromium.org/115756
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2038
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 25 May 2009 08:39:22 +0000 (08:39 +0000)]
Merge in changes from readability review.
All changes from http://codereview.chromium.org/115024, except splitting namespace declarations in two lines (will be done separately for all source files).
Review URL: http://codereview.chromium.org/113763
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2037
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 25 May 2009 08:25:36 +0000 (08:25 +0000)]
Implement resource-saving ("lazy") mode of Profiler.
This is intended to be used with Chromium. When in resource-saving mode, profiler doesn't consume any resources (sampler and logging is off) until resumed. Then again, when profiler is paused, sampling and logging are turned off.
Tested under Linux and Windows. Also have done preliminary testing with Chromium.
Review URL: http://codereview.chromium.org/113762
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2036
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Mon, 25 May 2009 07:51:04 +0000 (07:51 +0000)]
When message handler is set to NULL and there is no debugger listener the debugger is unloaded immediately unless it's entered, in which case it will be unloaded when last instance of EnterDebugger is destroyed.
Without the change the debugger may crash as Debugger::EventActive(v8::Break) called from OnDebugBreak may clear current debugger context.
Also when compilation cache was enabled debugger could fail on second attach for the same reason(see AfterCompileMessageWhenMessageHandlerIsReset).
BUG=12404
Review URL: http://codereview.chromium.org/115709
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2035
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 22 May 2009 14:01:06 +0000 (14:01 +0000)]
X64: Omitted creating native builtins and using them in test-heap.
This allows test-heap to run successfully.
Review URL: http://codereview.chromium.org/115706
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2034
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 22 May 2009 11:52:24 +0000 (11:52 +0000)]
Remove list copy constructor (for which there was no corresponding
assignment operator) and add an AddAll method to lists instead.
Review URL: http://codereview.chromium.org/115705
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2033
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 22 May 2009 10:31:41 +0000 (10:31 +0000)]
Remove unreachable x64-specific function.
Review URL: http://codereview.chromium.org/113635
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2032
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 22 May 2009 09:04:06 +0000 (09:04 +0000)]
Add missing file to change 2030. x64/assembler-x64-inl.h was not uploaded.
Review URL: http://codereview.chromium.org/113761
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2031
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 22 May 2009 07:53:28 +0000 (07:53 +0000)]
Implement quadword MOV on x64 assembler, emitting REX prefix.
Review URL: http://codereview.chromium.org/115571
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2030
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 22 May 2009 07:43:41 +0000 (07:43 +0000)]
Do not ignore the result from calls to write(). This avoids a warning
from newer gcc versions.
Review URL: http://codereview.chromium.org/115698
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2029
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 22 May 2009 07:30:25 +0000 (07:30 +0000)]
Typographical fix
Review URL: http://codereview.chromium.org/115699
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2028
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 22 May 2009 07:01:04 +0000 (07:01 +0000)]
Fixed minor style issue in SConstruct file.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2027
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 22 May 2009 06:52:02 +0000 (06:52 +0000)]
Land patch from Craig Schlenter to make V8 build and run when compiled
with -O3 on gcc 4.4.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2026
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Thu, 21 May 2009 14:21:14 +0000 (14:21 +0000)]
For ScriptCollected events current context may be null. Message.GetEventContext will return an empty handle in such cases.
Review URL: http://codereview.chromium.org/113698
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2024
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 20 May 2009 20:28:33 +0000 (20:28 +0000)]
Disable compilation cache when debugger is active.
Added an option to control whether the compilation cache is enabled. Default value is true.
BUG=343
Review URL: http://codereview.chromium.org/113625
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2021
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 20 May 2009 19:33:44 +0000 (19:33 +0000)]
Propagate information on whether a non function was called as constructor or not.The Arguments object passed to the callback now has IsConstructCall set accordingly.BUG=crbug.com/3285
Review URL: http://codereview.chromium.org/113634
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2020
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 20 May 2009 16:43:46 +0000 (16:43 +0000)]
Fix test-log/EquivalenceOfLoggingAndTraversal for the snapshot case.
If was failing because with snapshot the range between minimum and maximum addresses of heap objects is very large (close to 0xf0000000). To fix this I rewrote handling of address maps in the test.
Submitting with TBR because of late time. I think, we'll need to revisit this change tomorrow.
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/113641
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2019
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Wed, 20 May 2009 16:39:26 +0000 (16:39 +0000)]
Fix unmotivated change which causes mismatch between function
declaration and definition.
Review URL: http://codereview.chromium.org/113640
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2018
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 20 May 2009 14:14:44 +0000 (14:14 +0000)]
Add the REX prefix to 64-bit assembly operands. Move some inline functions.
Review URL: http://codereview.chromium.org/115568
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2017
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 20 May 2009 13:20:02 +0000 (13:20 +0000)]
X64: Move some methods in x64/ to their file and make codegen do int3.
Review URL: http://codereview.chromium.org/115567
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2016
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 20 May 2009 12:47:30 +0000 (12:47 +0000)]
Fix lint errors, fix Windows version.
Sorry for not testing these prior to committing.
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/115566
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2015
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 20 May 2009 12:17:23 +0000 (12:17 +0000)]
Implement constructor and destructor of 64-bit assembler
Review URL: http://codereview.chromium.org/113631
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2014
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 20 May 2009 11:54:35 +0000 (11:54 +0000)]
Fix x64 build.
Review URL: http://codereview.chromium.org/115565
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2013
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 20 May 2009 11:14:18 +0000 (11:14 +0000)]
Size reduction of VirtualFrame objects. Remove the code generator and
macro assembler pointers and all derived state.
Review URL: http://codereview.chromium.org/115564
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2011
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 20 May 2009 09:37:36 +0000 (09:37 +0000)]
In linux-tick-processor only compile d8 if it doesn't exist.
Review URL: http://codereview.chromium.org/113581
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2010
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 20 May 2009 09:04:13 +0000 (09:04 +0000)]
Introduce Logger::LogCompiledFunctions that logs current map of compiled code.
The goal is to make possible having --prof flag always enabled in Chromium. Currently we can't do this because --prof causes compiler and gc to log code creations / moves / deletes which aren't needed until we start profiling. With LogCompiledFunctions it will be possible not to log anything until we start profiling. When started, the current map of compiled functions will be logged and compiler / gc logging will be enabled to update current state. When profling is stopped, logging will be turned off again.
Funny that testing code is actually much longer and complex than function code.
Review URL: http://codereview.chromium.org/112036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2009
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 20 May 2009 08:59:33 +0000 (08:59 +0000)]
Now lints.
Review URL: http://codereview.chromium.org/113628
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2008
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 20 May 2009 08:05:12 +0000 (08:05 +0000)]
X64: Disabled RSet in 64-bit mode.
Made a few more places use intptr_t instead of int for pointer arithmetic.
Ensure that objects have a declared size that matches heap object alignment.
Review URL: http://codereview.chromium.org/115559
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2007
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 20 May 2009 07:44:59 +0000 (07:44 +0000)]
Expose the calling context through the API.
In C++ callbacks, we can now get the context of the javascript code
that called the callback.
Review URL: http://codereview.chromium.org/113622
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2006
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Wed, 20 May 2009 07:28:42 +0000 (07:28 +0000)]
Exposed method for finding global context by traversing context chain to API.
Review URL: http://codereview.chromium.org/112035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2005
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 20 May 2009 06:42:12 +0000 (06:42 +0000)]
Fix compilation for gcc 4.3+. Patch by Lei Zhang.
Review URL: http://codereview.chromium.org/113621
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2004
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 19 May 2009 20:29:23 +0000 (20:29 +0000)]
Increase the size of VirtualFrame members to allow a larger number of
parameters, stack-allocated locals, or expression stack elements.
Review URL: http://codereview.chromium.org/115535
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2002
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 19 May 2009 20:12:50 +0000 (20:12 +0000)]
From joel.stan:
The preprocessor defines check for v5t and v5te. This patch adds v7 and
v7-a which provide support for -march=armv7 and -mcpu=cortex-a8
respectively.
This is to support my work compiling chromium on arm, see
http://crbug.com/12028
http://codereview.chromium.org/115509
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2001
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Tue, 19 May 2009 13:26:02 +0000 (13:26 +0000)]
Introduced copy constructor for List<T, P> and changed constructor of VirtualFrame to use it.
Review URL: http://codereview.chromium.org/113582
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2000
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 19 May 2009 09:59:41 +0000 (09:59 +0000)]
Fix compilation on MinGW
On MinGW _WIN32_WINNT needs to be 0x501 (Windows XP) instead of 0x500 (Windows 2000) for some TCP/IP API's to be present.
MinGW uses stdint.h whereas Visual C++ does not.
Review URL: http://codereview.chromium.org/113576
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1999
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 19 May 2009 09:20:57 +0000 (09:20 +0000)]
Remove code that adjusts synced and copied flags in MergeTo.
Review URL: http://codereview.chromium.org/113524
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1998
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 19 May 2009 09:11:30 +0000 (09:11 +0000)]
Add 2 asserts in search-replace implementation.
Review URL: http://codereview.chromium.org/115507
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1997
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 19 May 2009 09:01:03 +0000 (09:01 +0000)]
Fix for issue 349: Make initial boundary check for BM text search.
There was a case where the BMH algorithm bailed out exactly at the end of the string, and the BM algorithm that takes over wasn't expecting this.
Review URL: http://codereview.chromium.org/113575
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1995
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 19 May 2009 08:59:23 +0000 (08:59 +0000)]
X64: Fixups in heap-test.cc to make it compile in X64 mode.
Review URL: http://codereview.chromium.org/113574
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1994
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 18 May 2009 14:32:43 +0000 (14:32 +0000)]
Inline some simple member functions of VirtualFrame.
Review URL: http://codereview.chromium.org/113525
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1993
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 18 May 2009 13:23:54 +0000 (13:23 +0000)]
Fix ARM build.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/115465
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1991
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 18 May 2009 13:16:48 +0000 (13:16 +0000)]
Remove unused parameter.
Review URL: http://codereview.chromium.org/113523
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1990
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 18 May 2009 13:16:35 +0000 (13:16 +0000)]
Fix a failure to correctly set the static type on a frame element at a
backward jump. The frame entering the backward block is not used, so
the this is mostly just a bookkeeping change.
Review URL: http://codereview.chromium.org/115464
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1989
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 18 May 2009 13:14:37 +0000 (13:14 +0000)]
Add a script cache to the debugger
When loaded scripts are requested this cache is filled with all the script objects in the heap. Hereafter its content is kept in sync with the active scripts in the heap through the notifications of new scripts compiled and by using weak handles to get notified when a script is collected.
Through the tracking of collected scripts the debugger event OnScriptCollected have been added to notify a debugger that a script previously returned through the scripts command is no longer in use.
Make the ComputeIntegerHash globally available.
Moved clearing of the mirror cache to when debugger is really left. Previously recursive invocations of the debugger cause the mirror cache to be cleared causing handles to become either stale or reference other objects.
Review URL: http://codereview.chromium.org/115462
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1988
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 18 May 2009 12:26:59 +0000 (12:26 +0000)]
First round of size reduction for JumpTargets. Reduce their size by
two words: there is no reason to keep a pointer to the current code
generator and macro assembler in the JumpTarget.
Review URL: http://codereview.chromium.org/113458
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1987
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 18 May 2009 12:13:20 +0000 (12:13 +0000)]
X64: Checked and slightly modified Object layouts to be compatible with 64-bit pointers.
Review URL: http://codereview.chromium.org/113522
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1986
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Mon, 18 May 2009 09:41:16 +0000 (09:41 +0000)]
Changed FuncNameInferrer and ScopeInfo to support zone allocation.
Yields a 2% speedup when running compiler-benchmark.
Review URL: http://codereview.chromium.org/113519
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1985
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 18 May 2009 07:57:29 +0000 (07:57 +0000)]
Allow a few more (multiple-entry) deferred code snippets to take the
fast-merge path by manually giving them an expected entry frame.
Review URL: http://codereview.chromium.org/113518
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1984
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 18 May 2009 05:50:26 +0000 (05:50 +0000)]
Prepare to push version 1.2.4 to trunk.
Review URL: http://codereview.chromium.org/115458
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1982
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Fri, 15 May 2009 23:05:21 +0000 (23:05 +0000)]
Remove space at end of line.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1979
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Fri, 15 May 2009 22:36:26 +0000 (22:36 +0000)]
- Fix numeric overflow handling when compiling count operations.
In certain situations the overflow checking corrupted the value
being calculated.
Review URL: http://codereview.chromium.org/115423
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1978
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Fri, 15 May 2009 15:52:37 +0000 (15:52 +0000)]
If 'compactFormat' argument is passed in the request the response won't include referenced mirrors in the refs section instead each protocol reference object will contain some details necessary for displaying the referenced object in the graphical debugger when the object is not expanded. That allows to request full information lazily when the object is expanded.
Review URL: http://codereview.chromium.org/115401
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1977
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 15 May 2009 15:02:03 +0000 (15:02 +0000)]
Fix debug builds.
Review URL: http://codereview.chromium.org/113462
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1976
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Fri, 15 May 2009 14:58:02 +0000 (14:58 +0000)]
M src/jump-target.cc
M src/parser.cc
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1975
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 15 May 2009 14:46:59 +0000 (14:46 +0000)]
Fix debug build with a cast.
TBR=bak@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1974
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 15 May 2009 14:40:50 +0000 (14:40 +0000)]
Revert r1969 because of test failures.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1973
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00