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
sgjesse@chromium.org [Mon, 3 Aug 2009 10:59:00 +0000 (10:59 +0000)]
Removed some comments which did not make any sense.
Review URL: http://codereview.chromium.org/159783
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2606
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 3 Aug 2009 10:53:45 +0000 (10:53 +0000)]
Fix debug printing of pointers, and a keyed store with smi index error, in X64
Review URL: http://codereview.chromium.org/160452
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2605
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 3 Aug 2009 07:55:48 +0000 (07:55 +0000)]
Restructure to support recursive invocation of the CFG builder. Add
support for stack-allocated variables when run with multipass.
There is no liveness analysis and they are currently always allocated
to memory.
Review URL: http://codereview.chromium.org/159701
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2604
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Sat, 1 Aug 2009 06:11:53 +0000 (06:11 +0000)]
- Fix a style violation which was flagged by gcc: while loop without body
- Restructured the entire function because:
During the simple style fix I discovered that this whole routine was
hard to read due to a general lack of comments. While adding comments I
realized that the function was also skipping entries if there were two
consecutive entries in the maps file.
Review URL: http://codereview.chromium.org/159659
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2603
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 31 Jul 2009 13:24:40 +0000 (13:24 +0000)]
Add missing file to last changelist, for NaN Dates.
Review URL: http://codereview.chromium.org/159700
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2602
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 31 Jul 2009 13:17:59 +0000 (13:17 +0000)]
Guard local time posix functions from NaN value of invalid dates.
Review URL: http://codereview.chromium.org/160451
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2601
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 31 Jul 2009 12:19:20 +0000 (12:19 +0000)]
Enable C++ missing virtual destructor warning.
-Wnon-virtual-dtor is part of -Wall on gcc 4.0.3, but not on 4.2.4.
Enable it specifically.
Review URL: http://codereview.chromium.org/160450
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2600
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 31 Jul 2009 11:34:47 +0000 (11:34 +0000)]
Add virtual destructors to address a gcc warning.
TBR=plesner@chromium.org
Review URL: http://codereview.chromium.org/160449
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2599
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 31 Jul 2009 11:27:14 +0000 (11:27 +0000)]
Enable --trace when --multipass is on. Bugfix in bailout condition.
All V8 and (ia32) mozilla tests pass with --multipass on, failures now
count as regressions.
Review URL: http://codereview.chromium.org/159698
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2598
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 31 Jul 2009 11:07:05 +0000 (11:07 +0000)]
X64: enable stack sampling in profiler.
Added necessary code to initialize Top::js_entry_sp value.
Renamed 'test-log-ia32' test to 'test-log-stack-tracer' and enabled it in 64-bit version.
Review URL: http://codereview.chromium.org/160446
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2597
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 31 Jul 2009 11:06:17 +0000 (11:06 +0000)]
Basic infrastructure for fast two-pass compilation. A CFG is
generated in one-pass from the source AST, code is generated from the
CFG. Enabled by the flag --multipass and disabled by default.
Rudimentary and currently only supports literal expressions and return
statements. There are some other known limitations (e.g., missing
support for tracing).
Review URL: http://codereview.chromium.org/159695
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2596
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 31 Jul 2009 08:04:41 +0000 (08:04 +0000)]
X64: Add fix of issue 392 to X64
Review URL: http://codereview.chromium.org/160393
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2594
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 31 Jul 2009 07:55:07 +0000 (07:55 +0000)]
Remove the rest of references to jsregexp-inl.h
TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/159696
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2593
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 30 Jul 2009 14:18:09 +0000 (14:18 +0000)]
Prepare push to trunk. We are now working towards version 1.3.2.
Review URL: http://codereview.chromium.org/160391
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2590
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 30 Jul 2009 12:25:24 +0000 (12:25 +0000)]
Fix broken test compilation.
TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/160389
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2589
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 30 Jul 2009 12:09:51 +0000 (12:09 +0000)]
X64: Fix lint problem and add missing stub function.
Review URL: http://codereview.chromium.org/160387
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2588
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 30 Jul 2009 12:09:05 +0000 (12:09 +0000)]
Another name change for consistency's sake. NODE_LIST -> AST_NODE_LIST.
Review URL: http://codereview.chromium.org/159633
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2587
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 30 Jul 2009 11:53:29 +0000 (11:53 +0000)]
Change the overly-general class named Node to the more specific
AstNode in case we ever want to have some other kind of node.
Split the NODE_LIST macro-generating macro so that we can iterate
concrete subclasses of Statement and concrete subclasses of Expression
separately.
Review URL: http://codereview.chromium.org/159632
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2586
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 30 Jul 2009 09:18:14 +0000 (09:18 +0000)]
X64: Added inline keyed load/store and a bunch of other missing functions.
Review URL: http://codereview.chromium.org/160272
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2585
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 30 Jul 2009 09:13:48 +0000 (09:13 +0000)]
Avoid dictionary expansion during bootstrapping.
Allocate the code stubs dictionary and non monomorphic cache dictionary with an initial size which avoids these dictionaries to be expanded during bootstrapping. This gets rid of 9 dictionary expansions during bootstrapping.
Preallocate the dictionary when normalizing an object to a size sufficient for holding the number of properties which is expected to be added to the object. This is used when ceating an object from an object literal boilerplate where multiple properties are known to be added. This gets rid of 10 dictionary expansions during bootstrapping.
There are now 3 dictionary expansions left during bootstrapping.
Review URL: http://codereview.chromium.org/160382
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2584
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 30 Jul 2009 08:11:25 +0000 (08:11 +0000)]
X64: Change wording of comments.
Review URL: http://codereview.chromium.org/160381
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2583
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 30 Jul 2009 07:33:05 +0000 (07:33 +0000)]
Allocate global object as a normalized object.
The global object is now allocated and initialized as a normalized object.
Review URL: http://codereview.chromium.org/159587
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2582
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 30 Jul 2009 07:31:54 +0000 (07:31 +0000)]
X64: Fix error in division & modulus, adjust mjsunit test status, fix lint error in objects.h
Review URL: http://codereview.chromium.org/159584
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2581
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 30 Jul 2009 07:02:23 +0000 (07:02 +0000)]
Harden message handling in the debugger agent.
This defect have been reported by the Coverity Prevent static analysis tool.
Review URL: http://codereview.chromium.org/160327
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2580
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Wed, 29 Jul 2009 12:50:20 +0000 (12:50 +0000)]
Speed up CalledAsConstructor.
Changed CalledAsConstructor to process the raw runtime stack directly,
rather than using a StackFrameIterator. Using an interator turns out
to be quite expensive and the vast majority of the work done is not
relevant to deciding if we've been called as a constructor.
This speeds up getElementById by ~13%.
Review URL: http://codereview.chromium.org/160325
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2578
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 29 Jul 2009 12:34:21 +0000 (12:34 +0000)]
Compile precanned answers for the case of failed interceptor for some combinations.
Review URL: http://codereview.chromium.org/140069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2577
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Wed, 29 Jul 2009 11:55:26 +0000 (11:55 +0000)]
Use JSFunction::IsBuiltin() for checking if a function is a builtin one
Review URL: http://codereview.chromium.org/160323
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2575
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 29 Jul 2009 11:23:36 +0000 (11:23 +0000)]
Add generic V8 API functions for controlling profiling aspects.
As we'll have several aspects of heap profiling, it is more handy to control them using binary flags than by individual functions. CPU profiling represent just a particular aspect to control, so {Pause,Resume}Profiler and IsProfilerPaused are only left for compatibility.
For now, PROFILER_FLAG_HEAP_STATS and PROFILER_FLAG_JS_CONSTRUCTOR are equivalent, but later will be split.
Review URL: http://codereview.chromium.org/159581
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2574
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 29 Jul 2009 09:51:41 +0000 (09:51 +0000)]
Change the check for builtin functions to not be based on identity,
which seems shaky in the presence of multiple builtin objects.
Review URL: http://codereview.chromium.org/159583
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2573
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 29 Jul 2009 08:46:28 +0000 (08:46 +0000)]
Add missing case in AST printer.
Review URL: http://codereview.chromium.org/159580
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2572
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 29 Jul 2009 08:10:19 +0000 (08:10 +0000)]
Introduce first approximation of constructor heap profile for JS objects.
It is activated with '--log-gc' flag.
JS object size is calculated as its size + size of 'properties' and 'elements' arrays, if they are non-empty. This doesn't take maps, strings, heap numbers, and other shared objects into account.
As Soeren suggested, I've moved ZoneSplayTree from jsregexp to zone, and removed now empty jsregexp-inl header file.
Review URL: http://codereview.chromium.org/159504
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2570
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Wed, 29 Jul 2009 06:58:00 +0000 (06:58 +0000)]
* Mark debug-stepin-builtin test as failing on x64
* Change copyright year of the new test file to 2009
TBR=kasperl
Review URL: http://codereview.chromium.org/160318
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2569
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Wed, 29 Jul 2009 06:34:30 +0000 (06:34 +0000)]
Don't step in function.call/apply if the function is builtin one.
Chromium bug: http://code.google.com/p/chromium/issues/detail?id=17886
Review URL: http://codereview.chromium.org/159508
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2568
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Tue, 28 Jul 2009 21:10:13 +0000 (21:10 +0000)]
- getc returns an int.
Review URL: http://codereview.chromium.org/159538
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2566
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Tue, 28 Jul 2009 20:32:57 +0000 (20:32 +0000)]
Add x64 to the gyp build.
Review URL: http://codereview.chromium.org/159502
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2565
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Tue, 28 Jul 2009 18:11:12 +0000 (18:11 +0000)]
- Clamp double values as doubles to get a free NaN check and
to handle infinity properly.
Review URL: http://codereview.chromium.org/159518
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2564
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 28 Jul 2009 15:37:05 +0000 (15:37 +0000)]
X64: Fixes to enable C/C++ functions processing in profiler.
- rewrote Linux version of LogSharedLibraryAddresses to work correctly with 64-bit libs;
- fixed address length restriction in JS tickprofiler script.
Review URL: http://codereview.chromium.org/160273
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2563
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 28 Jul 2009 14:46:06 +0000 (14:46 +0000)]
Get rid of unnecessary handle management when invoking interceptors.
Review URL: http://codereview.chromium.org/155682
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2562
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 28 Jul 2009 14:11:09 +0000 (14:11 +0000)]
X64: Fix bug that showed up in mjsunit/invalid-lhs.js
Review URL: http://codereview.chromium.org/159506
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2561
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 28 Jul 2009 13:44:17 +0000 (13:44 +0000)]
More X64 inline cache implementation.
Review URL: http://codereview.chromium.org/160268
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2560
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 28 Jul 2009 13:29:11 +0000 (13:29 +0000)]
X64: Add passing date tests to the mjsunit X64 test status
Review URL: http://codereview.chromium.org/159501
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2559
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 28 Jul 2009 12:50:58 +0000 (12:50 +0000)]
Change custom NaN check to use isnan to fix pixel array
failures on ARM hardware.
Review URL: http://codereview.chromium.org/160269
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2557
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 28 Jul 2009 12:46:08 +0000 (12:46 +0000)]
Fix pixel array support for x64 and make the fast Array functions
that use JSARRAY_HAS_FAST_ELEMENTS_CHECK a bit safer in the presence
of pixel arrays.
Review URL: http://codereview.chromium.org/159500
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2556
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 28 Jul 2009 11:42:18 +0000 (11:42 +0000)]
Change the updating of the counters for global stub use to be consistent. Now counters are updated when they are sure to count to avoid decrementing them when there is a miss.
Review URL: http://codereview.chromium.org/160265
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2554
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 28 Jul 2009 10:51:54 +0000 (10:51 +0000)]
There's seems to be an issue with 0/0 on ARM, which I'll
continue to investigate. For now, use NaN instead of computing
it ourselves.
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/160267
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2552
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 28 Jul 2009 09:10:29 +0000 (09:10 +0000)]
Fix lint issues. TBR=mikhail.naganov@gmail.com
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2551
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 28 Jul 2009 09:05:05 +0000 (09:05 +0000)]
Fix lint issues. TBR=iposva@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2550
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Tue, 28 Jul 2009 08:43:51 +0000 (08:43 +0000)]
- Expose CanvasPixelArray functionality directly in JavaScript
indexed property accesses.
- The IC stubs have not been updated to handle these directly, but
at least we do not have to leave the VM to access bytes.
Review URL: http://codereview.chromium.org/159263
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2549
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00