sgjesse@chromium.org [Wed, 19 Aug 2009 12:46:48 +0000 (12:46 +0000)]
Prepare to push to trunk. We are now working on version 1.3.6.
Review URL: http://codereview.chromium.org/173054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2721
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 19 Aug 2009 12:44:45 +0000 (12:44 +0000)]
Fix lint error.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/173056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2720
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 19 Aug 2009 12:06:16 +0000 (12:06 +0000)]
Fix uninitialized members.
Make sure that the DummyScope top level scope used for pre-parsing have all members initialized. The type of this scope is set to global scope as it is a top level scope. Also ensure that the "naked" Scope constructor can only be used by sub-classes of Scope.
The bug of missing initiaalization of members in the DummyScope was found by Valgrind.
Review URL: http://codereview.chromium.org/173052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2719
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 19 Aug 2009 11:34:06 +0000 (11:34 +0000)]
Speed up mjsunit/div-mod.js test, to avoid timeouts.
Review URL: http://codereview.chromium.org/171108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2718
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 19 Aug 2009 10:36:19 +0000 (10:36 +0000)]
Reapply the semispace growth policy change in isolation.
Additionally fix NewSpace capacity bug by removing the duplicated
capacity and maximum capacity book keeping. The capacity and maximum
capacity of NewSpace is the capacity and maximum capacity of one of
it's semispaces.
Review URL: http://codereview.chromium.org/174052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2717
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 19 Aug 2009 10:18:30 +0000 (10:18 +0000)]
X64: Implement debugger hooks.
Debugger is now fully functional.
Fix difference in emitting statement positions to match ia32.
Review URL: http://codereview.chromium.org/171107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2716
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 19 Aug 2009 08:48:17 +0000 (08:48 +0000)]
Put back the reduction of semispace sizes as an isolated change.
The growth policy change is next.
Review URL: http://codereview.chromium.org/173050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2713
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 19 Aug 2009 08:12:12 +0000 (08:12 +0000)]
Temporarily revert the reduction of semispace sizes and the growth
policy change.
I will put the changes back one at a time so we can see the effect of
them in isolation. Also, there is a bug in the growth policy change
that I will fix before putting it back again.
Review URL: http://codereview.chromium.org/174050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2712
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 19 Aug 2009 07:32:48 +0000 (07:32 +0000)]
Create a set of x64 Visual studio project files and corresponding solution.
These files will make it possible to start working with the 64-bit version on Windows.
The GUID's of the x64 project files are the same as their ia32 counterparts, but that does not matter as they will never be used in the same solution.
Added a temporary #error when building 64-bit version on Windows.
Review URL: http://codereview.chromium.org/171111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2711
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 19 Aug 2009 07:30:20 +0000 (07:30 +0000)]
Analyze functions for assignment to this properties.
During parsing functions are analyzed for statements of the form this.x = ...;. These assignments are categorized in two types: simple and non simple. The simple ones are where the right hand side is known to be either a constant or an argument to the function. If a function only contains statements of this type the property names are collected and for the simple assignments the index of the argument or the constant value assigned are stored as well.
When the initial map for a function is created and the function consists of only this type of assignemnts the initial map is created with a descriptor array describing these properties which will be known to always exist in an object created from the function.
The information on this property assignments is not collected during pre-parsing so if compiling using pre-parse data these optimization hints are not available.
Next step will be to use the information collected for the simple assignments to generate constructor code which will create and initialize the object from this information without calling the code for the function.
Review URL: http://codereview.chromium.org/172088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2710
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
feng@chromium.org [Tue, 18 Aug 2009 17:26:51 +0000 (17:26 +0000)]
Fix IA32 build when not using native regexp compiler.
Review URL: http://codereview.chromium.org/173003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2709
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 18 Aug 2009 12:43:36 +0000 (12:43 +0000)]
Fix errors in test-heap.cc and test-decls.cc. Adjust cctest.status.
Review URL: http://codereview.chromium.org/172089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2708
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 18 Aug 2009 11:26:14 +0000 (11:26 +0000)]
Increase new space size and limits on 64-bit platforms.
Review URL: http://codereview.chromium.org/171105
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2707
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 18 Aug 2009 10:52:14 +0000 (10:52 +0000)]
Remove one of the GCs performed by the --gc-greedy flag. The GC performed by CEntryStub before the first call to C, when --gc-greedy is set, caused a bug in calling API callbacks.
Review URL: http://codereview.chromium.org/171104
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2706
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 18 Aug 2009 09:47:45 +0000 (09:47 +0000)]
Fix regression caused by the generation of a shift stub during
snapshot creation in a better way.
Encode whether or not the stub should use sse3 instructions in the
minor key of the stub. The stubs generated during snapshot creation
will have sse3 disabled, but they will not be found when sse3 is
enabled. Therefore they will only affect the code generated as part
of the snapshot.
Review URL: http://codereview.chromium.org/172086
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2705
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 18 Aug 2009 09:14:19 +0000 (09:14 +0000)]
Fix regression caused by context creation optimization r2681.
The issue is that a shift operation is used when creating the
snapshot. This means that the shift binary operation stub is
generated at snapshot time without sse3 instructions.
The fix is to use division instead.
TBR=erik.corry@gmail.com
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2704
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
feng@chromium.org [Tue, 18 Aug 2009 07:14:02 +0000 (07:14 +0000)]
Streamline the scanner for external two byte string input.
Review URL: http://codereview.chromium.org/165403
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2703
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
feng@chromium.org [Tue, 18 Aug 2009 00:12:26 +0000 (00:12 +0000)]
Revert commit 2701 per Erik Corry's request.
Original CL:
http://codereview.chromium.org/171041
Review URL: http://codereview.chromium.org/171089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2702
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 17 Aug 2009 14:31:49 +0000 (14:31 +0000)]
Use root array to load roots in generated ARM code.
This cuts down on code size and reloc work.
Review URL: http://codereview.chromium.org/171041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2701
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Mon, 17 Aug 2009 14:26:48 +0000 (14:26 +0000)]
Added API for getting object mirrors
Added Debug::GetMirror call to get a mirror for a given object.
Review URL: http://codereview.chromium.org/172045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2700
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 17 Aug 2009 13:45:03 +0000 (13:45 +0000)]
Fix issue 427: JS tick processor now works out-of-the-box for Chromium on Windows.
MSVS names '.map' file using only module's name, so both 'a.exe' and 'a.dll' will have 'a.map' file. To distinguish an originating module, we're now checking for image base which is always
00400000 for .exe files, and not
00400000 for .dlls.
Verified that windows-tick-processor can now process logs from Chromium using .map file generated for 'chrome.dll', an that it still works for V8's 'shell.exe'.
Review URL: http://codereview.chromium.org/172044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2699
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Mon, 17 Aug 2009 13:34:41 +0000 (13:34 +0000)]
Added API call to get the stack trace for an exception
Added TryCatch::StackTrace that gets the stack trace for the thrown
exception.
Review URL: http://codereview.chromium.org/171042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2698
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Mon, 17 Aug 2009 11:41:00 +0000 (11:41 +0000)]
Context-independent script compilation.
Added Script::New calls that create a new context-independent
(boilerplate) script which can be executed in any context, unlike the
current scripts which bind the context in which they're compiled.
Review URL: http://codereview.chromium.org/172043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2697
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Mon, 17 Aug 2009 10:19:00 +0000 (10:19 +0000)]
RegExp tweaks
Fixed bug where regexps were not callable across contexts since the
callable test used object identity on the regexp constructor. Changed
typeof RegExp from 'object' to 'function' for compatibility.
Review URL: http://codereview.chromium.org/171039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2696
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 17 Aug 2009 09:31:58 +0000 (09:31 +0000)]
Fix issue 420: accept truncated log files.
http://code.google.com/p/v8/issues/detail?id=420
Review URL: http://codereview.chromium.org/171038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2695
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 17 Aug 2009 09:07:40 +0000 (09:07 +0000)]
X64: Remove compound smi+overflow test using cmov.
Review URL: http://codereview.chromium.org/165525
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2694
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 17 Aug 2009 08:02:07 +0000 (08:02 +0000)]
X64: Do not use an AllocateWithoutSpill register if it is invalid. Abandoned in favor of approach in codereview.chromium.org/165525/show (Issue 165526)
Review URL: http://codereview.chromium.org/164480
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2693
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Fri, 14 Aug 2009 17:19:51 +0000 (17:19 +0000)]
Fix strict aliasing crash on x64.
Review URL: http://codereview.chromium.org/164498
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2692
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 14 Aug 2009 12:39:48 +0000 (12:39 +0000)]
Fix typo in v8.gyp
Review URL: http://codereview.chromium.org/164555
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2691
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 14 Aug 2009 12:20:33 +0000 (12:20 +0000)]
Fix unsafe cast in RegExpStack
Review URL: http://codereview.chromium.org/164552
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2690
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 14 Aug 2009 11:35:10 +0000 (11:35 +0000)]
Refactor SetFunctionInfo to reduce long argument list take 2.
It now includes the change to ARM and x64 architectures as well.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/165528
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2689
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 14 Aug 2009 11:24:32 +0000 (11:24 +0000)]
X64: Implement RegExp natively.
Review URL: http://codereview.chromium.org/165443
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2688
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 14 Aug 2009 11:05:42 +0000 (11:05 +0000)]
Refactor SetFunctionInfo to reduce long argument list.
Review URL: http://codereview.chromium.org/165527
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2687
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
feng@chromium.org [Thu, 13 Aug 2009 22:13:45 +0000 (22:13 +0000)]
Revert code.google.com/p/v8/source/detail?r=2670
Now we can pass '--expose_gc' to V8 in the layout test controller. This is probably a better option.
Review URL: http://codereview.chromium.org/164520
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2686
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Thu, 13 Aug 2009 14:58:35 +0000 (14:58 +0000)]
Changed Heap::Shrink to free as many pages as possible.
As a benefit, this eliminates an ifdef ARDROID.
Review URL: http://codereview.chromium.org/165453
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2685
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 13 Aug 2009 14:04:49 +0000 (14:04 +0000)]
erikcorry: Remember to put objects back in fast case after adding functions.
P.S. for reasons unknown the original change (2681), also by erikcorry,
was attributed to Bill.
Review URL: http://codereview.chromium.org/164479
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2684
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 13 Aug 2009 14:03:12 +0000 (14:03 +0000)]
Fix mac-nm script to support filenames w/spaces
Review URL: http://codereview.chromium.org/164476
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2683
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 13 Aug 2009 12:35:59 +0000 (12:35 +0000)]
Avoid map transitions and multiple backing arrays for builtin prototypes
while adding functions and other properties. This gives around 2% on
context-create, more if we don't GC on every new context. Also fix
accounting bug in cell space.
Review URL: http://codereview.chromium.org/165449
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2681
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 13 Aug 2009 12:35:09 +0000 (12:35 +0000)]
X64: Change testl to testb if mask fits in 1 byte. Shortens smi test.
Review URL: http://codereview.chromium.org/164472
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2680
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 13 Aug 2009 12:21:11 +0000 (12:21 +0000)]
Prepare push to trunk to get JSON parser fix into Chromium.
Now working on version 1.3.5.
Review URL: http://codereview.chromium.org/164474
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2679
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Thu, 13 Aug 2009 12:13:50 +0000 (12:13 +0000)]
Changed semi space Grow to be rounded to OS page size.
Review URL: http://codereview.chromium.org/164469
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2678
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Thu, 13 Aug 2009 12:03:42 +0000 (12:03 +0000)]
- Added simple memory reduction behavior for IdleNotification.
- This also include a one line change approved by lrh.
http://codereview.chromium.org/164469
Review URL: http://codereview.chromium.org/165448
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2677
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Thu, 13 Aug 2009 10:25:35 +0000 (10:25 +0000)]
Fixed issue 19212
Fixed a bug in json parsing. Refactored compilation code a bit to
make it more obvious what's going on.
Review URL: http://codereview.chromium.org/165446
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2675
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Thu, 13 Aug 2009 09:35:51 +0000 (09:35 +0000)]
Added idle notification to the API.
The implementation is still empty.
Review URL: http://codereview.chromium.org/165445
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2674
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 13 Aug 2009 08:00:04 +0000 (08:00 +0000)]
X64: Add an SHL optimization, fix a floating-point bug, fix xchg rax,r8 and printing of test ?ax, imm in disassembler.
Review URL: http://codereview.chromium.org/164399
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2673
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 13 Aug 2009 07:36:28 +0000 (07:36 +0000)]
Move some arrays into functions so they don't get cloned on each new context.
Review URL: http://codereview.chromium.org/164396
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2672
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Thu, 13 Aug 2009 07:07:41 +0000 (07:07 +0000)]
Add a readline() command to d8. This reads a single line, stripping
the new-line at the end. This is the other half of what is required to
make the Debian Language Shootout code work correctly:
http://code.google.com/p/v8/issues/detail?id=353
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2671
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
feng@chromium.org [Wed, 12 Aug 2009 21:30:13 +0000 (21:30 +0000)]
Revert my previous change r2654.
It has a similar impact on page cycler performance because now GC is randomly counted in page load time.
http://code.google.com/p/v8/source/detail?r=2654
Review URL: http://codereview.chromium.org/164407
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2670
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Wed, 12 Aug 2009 14:02:09 +0000 (14:02 +0000)]
Prepare to push to trunk. We are now working on version 1.3.4.
Review URL: http://codereview.chromium.org/165383
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2668
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Wed, 12 Aug 2009 13:54:43 +0000 (13:54 +0000)]
- Reduced the maximum capacity of a semi space from 8MB to 4MB.
- Changed the semi space growth policy from doubling to increasing by 50%.
This slows down V8BenchmarkSuite with 1.32% but reduces the memory footprint with 8MB per V8 instance.
Review URL: http://codereview.chromium.org/164397
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2667
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Wed, 12 Aug 2009 11:52:22 +0000 (11:52 +0000)]
Add a write() command to d8. This is the same as the print() command, with the
exception that it does not add a new-line to the end. This half of what is
required to make the Debian Language Shootout code work correctly:
http://code.google.com/p/v8/issues/detail?id=354
BUG=354
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2666
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Wed, 12 Aug 2009 11:08:10 +0000 (11:08 +0000)]
Fixed broken build.
Review URL: http://codereview.chromium.org/164395
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2665
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Wed, 12 Aug 2009 10:27:35 +0000 (10:27 +0000)]
Add api call to determine whether a string can be externalized.
Review URL: http://codereview.chromium.org/164393
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2664
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 11 Aug 2009 15:30:09 +0000 (15:30 +0000)]
X64: Remove optimization of SHR by constant, due to unfixed bug.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2663
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 11 Aug 2009 15:23:06 +0000 (15:23 +0000)]
Land change to notify valgrind when we modify code on x86. This does
not seem to impact performance and makes it a lot easier for people
embedding V8 to run their application under valgrind.
If we observe a negative performance impact, we will need to revise
this again.
Review URL: http://codereview.chromium.org/13612.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2662
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 11 Aug 2009 12:49:27 +0000 (12:49 +0000)]
X64: Implement remaining constant smi optimizations. Enable mozilla tests that now pass.
Review URL: http://codereview.chromium.org/164317
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2661
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 11 Aug 2009 11:47:41 +0000 (11:47 +0000)]
Change the location set size from kPointerSize to kBitsPerPointer.
This was leftover from an old code review and not yet submitted.
Review URL: http://codereview.chromium.org/164315
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2660
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 11 Aug 2009 11:46:27 +0000 (11:46 +0000)]
Remove much of the register allocation overhead from ARM. When
registers are required for calls, explicitly construct a Result with
the needed register rather than allocating it. For returns from
calls, let the return value in r0 be implicit rather than explicitly
allocated.
Review URL: http://codereview.chromium.org/164316
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2659
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 10 Aug 2009 14:35:20 +0000 (14:35 +0000)]
X64: Add special inlining for subtracting a constant smi.
Review URL: http://codereview.chromium.org/164252
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2658
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 10 Aug 2009 13:00:05 +0000 (13:00 +0000)]
Factored out common Instruction code in the CFG builder that depends only
on the number of operands.
Tinkered with instruction printing to align operands and not include
so many parentheses.
Review URL: http://codereview.chromium.org/165237
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2657
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 10 Aug 2009 11:54:25 +0000 (11:54 +0000)]
"Port" (count >= 0) assertion in VirtualFrame::Drop to ia32 and x64.
Review URL: http://codereview.chromium.org/164251
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2656
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 10 Aug 2009 11:13:34 +0000 (11:13 +0000)]
Eliminate most of the jump target jumping, branching, and binding
overhead on the ARM platform.
Because virtual frames are always in memory, there is no work to be
done for control flow except in the case of breaking or continuing
when there is extra statement state on the stack.
Review URL: http://codereview.chromium.org/165230
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2655
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
feng@chromium.org [Fri, 7 Aug 2009 18:17:01 +0000 (18:17 +0000)]
Avoid calling GC in Context::New on Android devices.
Review URL: http://codereview.chromium.org/164153
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2654
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 7 Aug 2009 13:32:39 +0000 (13:32 +0000)]
Added support for property loads to the CFG builder and fast-mode
compiler.
Review URL: http://codereview.chromium.org/165129
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2653
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 7 Aug 2009 12:52:32 +0000 (12:52 +0000)]
Implement inline constructors for X64. Fix ia32 inline constructors a little. Fix a bug of a non-constant length between a call and its fixup.
Review URL: http://codereview.chromium.org/164144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2652
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 7 Aug 2009 11:16:26 +0000 (11:16 +0000)]
X64: Implement fast charCodeAt.
Review URL: http://codereview.chromium.org/164135
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2648
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 7 Aug 2009 10:55:19 +0000 (10:55 +0000)]
Factor out some platform-independent code into the shared cfg.cc.
Review URL: http://codereview.chromium.org/165127
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2647
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 7 Aug 2009 10:35:48 +0000 (10:35 +0000)]
Rename: ExpressionBuilder => ExpressionCfgBuilder, StatementBuilder =>
StatementCfgBuilder.
Review URL: http://codereview.chromium.org/165124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2646
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 7 Aug 2009 08:18:31 +0000 (08:18 +0000)]
Change the SpilledScope scope and ...AndSpill functions on ARM so that
they do nothing. The frame is currently always spilled, so they were
not doing anything useful.
The call sites have been left alone to mark where spills will
eventually be needed if we begin doing register allocation on ARM.
Review URL: http://codereview.chromium.org/164136
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2644
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 7 Aug 2009 07:15:31 +0000 (07:15 +0000)]
Add support for (some) assignment expressions to the CFG builder and
fast-mode compiler.
1. We avoid generating a useless temporary for assignments with
nontrivial right-hand sides. Instead of translating id = expr into:
...
tmp = <last expr instruction>
id = tmp
we generate directly
...
id = <last expr instruction>
by passing a data destination ('hint') down the AST. The semantics is
to use the destination as a result location if a temp is needed. It
may be ignored. NULL indicates I don't care and you should generate a
temp.
2. We correctly handle assignments as subexpressions. When building
the CFG for an expression we accumulate the assigned variables and we
emit a move to a fresh temporary if a value in a variable is in
jeopardy of being overwritten.
Review URL: http://codereview.chromium.org/165056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2643
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 7 Aug 2009 07:15:16 +0000 (07:15 +0000)]
Convert global objects to global receivers before invoking
JavaScript functions on them.
Review URL: http://codereview.chromium.org/165122
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2642
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 6 Aug 2009 20:35:33 +0000 (20:35 +0000)]
Fix presubmit errors.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/164085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2641
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 6 Aug 2009 15:47:58 +0000 (15:47 +0000)]
X64: Implement tickprocessor sampling on 64-bit MacOS. This issue on codereview has been accidentally reused from an earlier issue by a process mistake.
Review URL: http://codereview.chromium.org/151004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2640
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 6 Aug 2009 14:42:38 +0000 (14:42 +0000)]
Make sure use of eax in inlined sin and cos is safe.
Review URL: http://codereview.chromium.org/164061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2639
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 6 Aug 2009 14:42:10 +0000 (14:42 +0000)]
X64: Implement inline trigonometric operations.
Review URL: http://codereview.chromium.org/164056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2638
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 6 Aug 2009 13:57:34 +0000 (13:57 +0000)]
M regexp-macro-assembler-ia32.cc
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2637
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 6 Aug 2009 13:35:21 +0000 (13:35 +0000)]
API: added function to find instance of template in prototype chain.
Also inlined Object::IsInstanceOf.
This new function is intended to be used to speed up DOM bindings.
Review URL: http://codereview.chromium.org/165044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2636
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 6 Aug 2009 12:51:04 +0000 (12:51 +0000)]
Irregexp-ia32 internal call strategy changed.
Review URL: http://codereview.chromium.org/164053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2635
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 6 Aug 2009 11:51:23 +0000 (11:51 +0000)]
X64: Optimize MOD operator by a constant power of 2.
Review URL: http://codereview.chromium.org/164054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2634
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 6 Aug 2009 11:14:48 +0000 (11:14 +0000)]
Fix the debugger in multipass mode by introducing phantom instructions
marking statement boundaries.
Review URL: http://codereview.chromium.org/162007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2633
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 6 Aug 2009 10:22:38 +0000 (10:22 +0000)]
X64: Fix bug in boolean conversion of empty string.
Review URL: http://codereview.chromium.org/165043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2632
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 6 Aug 2009 08:27:10 +0000 (08:27 +0000)]
Fix SConstruct file to build with new logging code for Android.
Review URL: http://codereview.chromium.org/160641
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2631
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 6 Aug 2009 07:51:44 +0000 (07:51 +0000)]
Added support for expression statements to the CFG builder and
fast-mode compiler.
This will generate a compiler temporary for complex expressions and
then immediately throw it away, so a better approach (to be
implemented later) is to pass to the expression builder whether an
expression is in an effect or value context.
Review URL: http://codereview.chromium.org/162006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2630
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 6 Aug 2009 07:42:04 +0000 (07:42 +0000)]
X64: Make megamorphic and normal calls use stub cache and stub code.
Review URL: http://codereview.chromium.org/162009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2629
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 5 Aug 2009 12:52:31 +0000 (12:52 +0000)]
Add support to the CFG builder for non-short-circuited binary
expressions. Add compilation support in fast mode (optimized for
compilation time and code size).
This breaks one debugger test each on ARM and IA32 (expectedly).
Review URL: http://codereview.chromium.org/160584
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2628
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 5 Aug 2009 11:52:59 +0000 (11:52 +0000)]
Add .gitignore file similar to Chromium's one.
Review URL: http://codereview.chromium.org/160638
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2627
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 5 Aug 2009 11:08:24 +0000 (11:08 +0000)]
Fix bug in X64 RSet code. Optimize IA32 version.
Review URL: http://codereview.chromium.org/162001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2626
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 5 Aug 2009 08:53:02 +0000 (08:53 +0000)]
Fix issue 417: incorrect %t placeholder expansion.
BUG=http://code.google.com/p/v8/issues/detail?id=417
TEST=none
Verified on Linux, Mac, and Windows.
Review URL: http://codereview.chromium.org/160636
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2625
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 5 Aug 2009 08:27:54 +0000 (08:27 +0000)]
Prepare to push to trunk. We are now working on version 1.3.3.
Review URL: http://codereview.chromium.org/159910
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2623
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 5 Aug 2009 07:59:46 +0000 (07:59 +0000)]
On Linus don't force-export V8 symbols unless v8 is built as a shared library.
This lands: http://codereview.chromium.org/160556.
TBR=piman@chromium.org
Review URL: http://codereview.chromium.org/160634
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2622
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 5 Aug 2009 07:35:05 +0000 (07:35 +0000)]
Fix Windows build.
TBP=mnaganov
Review URL: http://codereview.chromium.org/160632
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2621
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 4 Aug 2009 14:18:03 +0000 (14:18 +0000)]
X64: Enable specialized stubs for length property.
Review URL: http://codereview.chromium.org/160582
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2620
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 4 Aug 2009 14:14:01 +0000 (14:14 +0000)]
Add an ability to initiate GC through V8 API.
I'm planning to use it in DevTools heap profiler. It is a common scenario in debugging memory leaks to enforce GC, then perform an operation, then enforce GC again to check for non-collected (that is, leaked) objects. Using the existing GC extension isn't possible because it doesn't exposed in the normal operation mode of Chromium.
Review URL: http://codereview.chromium.org/159787
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2619
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 4 Aug 2009 13:46:58 +0000 (13:46 +0000)]
X64: Add missing pop when calling handler with Out-of-memory exception.
Review URL: http://codereview.chromium.org/160520
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2618
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 4 Aug 2009 12:30:21 +0000 (12:30 +0000)]
X64: double stack size, to be able to have the same number of stack frames as in ia32.
Review URL: http://codereview.chromium.org/159852
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2617
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 4 Aug 2009 10:22:36 +0000 (10:22 +0000)]
X64: Set mozilla.status to reflect actual status of X64 tests.
Review URL: http://codereview.chromium.org/160518
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2616
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 4 Aug 2009 09:41:18 +0000 (09:41 +0000)]
Add safe handling of NaN to Posix platform-dependent time functions.
Review URL: http://codereview.chromium.org/160580
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2615
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 4 Aug 2009 08:23:37 +0000 (08:23 +0000)]
X64: Fix bug in RandomPositiveSmi (doesn't save rsi before calling C-code).
Review URL: http://codereview.chromium.org/160519
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2614
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 3 Aug 2009 13:17:34 +0000 (13:17 +0000)]
Removed unsafe optimization in RecordWrite.
Optimization was only unsafe if new-space was in the low half of memory and an object could be
located in the top half at an addressed that only differ from a new-space address by the high
bit.
Review URL: http://codereview.chromium.org/159784
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2608
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 3 Aug 2009 11:05:26 +0000 (11:05 +0000)]
X64: Reenabled RSet.
Review URL: http://codereview.chromium.org/160453
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2607
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00