kmillikin@chromium.org
9edc69c72f
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
2009-08-07 07:15:31 +00:00
kasperl@chromium.org
bcbef79a11
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
2009-08-07 07:15:16 +00:00
mikhail.naganov@gmail.com
b290c323a9
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
2009-08-06 20:35:33 +00:00
whesse@chromium.org
d3eeaf1757
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
2009-08-06 15:47:58 +00:00
whesse@chromium.org
863582bad4
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
2009-08-06 14:42:38 +00:00
whesse@chromium.org
384a6f299e
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
2009-08-06 14:42:10 +00:00
kmillikin@chromium.org
cde1262754
M regexp-macro-assembler-ia32.cc
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-06 13:57:34 +00:00
vitalyr@chromium.org
d6fcda0044
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
2009-08-06 13:35:21 +00:00
lrn@chromium.org
5ae761cc15
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
2009-08-06 12:51:04 +00:00
whesse@chromium.org
7bd88e829f
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
2009-08-06 11:51:23 +00:00
kmillikin@chromium.org
6a19a8f5fd
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
2009-08-06 11:14:48 +00:00
lrn@chromium.org
6f21761ea8
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
2009-08-06 10:22:38 +00:00
whesse@chromium.org
3abd9bfa93
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
2009-08-06 08:27:10 +00:00
kmillikin@chromium.org
98b93c739d
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
2009-08-06 07:51:44 +00:00
whesse@chromium.org
23507e34db
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
2009-08-06 07:42:04 +00:00
kmillikin@chromium.org
23fbd8fe3f
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
2009-08-05 12:52:31 +00:00
mikhail.naganov@gmail.com
eb5c9458a1
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
2009-08-05 11:52:59 +00:00
lrn@chromium.org
30fa78f1f7
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
2009-08-05 11:08:24 +00:00
mikhail.naganov@gmail.com
ed09a3bf0b
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
2009-08-05 08:53:02 +00:00
sgjesse@chromium.org
02ac252907
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
2009-08-05 08:27:54 +00:00
sgjesse@chromium.org
27ffe641d6
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
2009-08-05 07:59:46 +00:00
sgjesse@chromium.org
fd956f70a5
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
2009-08-05 07:35:05 +00:00
whesse@chromium.org
2f7f0f6ea5
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
2009-08-04 14:18:03 +00:00
mikhail.naganov@gmail.com
5470f9b132
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
2009-08-04 14:14:01 +00:00
whesse@chromium.org
f2faaa5c34
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
2009-08-04 13:46:58 +00:00
lrn@chromium.org
4fa5fc4f7e
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
2009-08-04 12:30:21 +00:00
whesse@chromium.org
ff05b349e5
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
2009-08-04 10:22:36 +00:00
whesse@chromium.org
3703231636
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
2009-08-04 09:41:18 +00:00
lrn@chromium.org
e05ea61528
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
2009-08-04 08:23:37 +00:00
lrn@chromium.org
0e11fbcd79
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
2009-08-03 13:17:34 +00:00
lrn@chromium.org
fd8b376989
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
2009-08-03 11:05:26 +00:00
sgjesse@chromium.org
8c9b30af83
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
2009-08-03 10:59:00 +00:00
whesse@chromium.org
118d5e171b
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
2009-08-03 10:53:45 +00:00
kmillikin@chromium.org
67a61e96c7
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
2009-08-03 07:55:48 +00:00
iposva@chromium.org
3d070f1f0c
- 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
2009-08-01 06:11:53 +00:00
whesse@chromium.org
78ec956610
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
2009-07-31 13:24:40 +00:00
whesse@chromium.org
2679ad1118
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
2009-07-31 13:17:59 +00:00
kmillikin@chromium.org
75562c7943
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
2009-07-31 12:19:20 +00:00
kmillikin@chromium.org
e2ae01b6ef
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
2009-07-31 11:34:47 +00:00
kmillikin@chromium.org
b092d55890
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
2009-07-31 11:27:14 +00:00
mikhail.naganov@gmail.com
33f54fa6e2
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
2009-07-31 11:07:05 +00:00
kmillikin@chromium.org
3a472fada8
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
2009-07-31 11:06:17 +00:00
whesse@chromium.org
ddbe148b68
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
2009-07-31 08:04:41 +00:00
mikhail.naganov@gmail.com
340bb1092d
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
2009-07-31 07:55:07 +00:00
sgjesse@chromium.org
219df901a2
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
2009-07-30 14:18:09 +00:00
kmillikin@chromium.org
d8e35a098f
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
2009-07-30 12:25:24 +00:00
lrn@chromium.org
67936a7b16
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
2009-07-30 12:09:51 +00:00
kmillikin@chromium.org
1a39e07003
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
2009-07-30 12:09:05 +00:00
kmillikin@chromium.org
a48fd5916e
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
2009-07-30 11:53:29 +00:00
lrn@chromium.org
dc8ca16931
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
2009-07-30 09:18:14 +00:00