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
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
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
antonm@chromium.org
0d2c81584b
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
2009-07-29 12:34:21 +00:00
antonm@chromium.org
4354661a49
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
2009-07-28 14:46:06 +00:00
kasperl@chromium.org
516d47c73b
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
2009-07-28 12:46:08 +00:00
sgjesse@chromium.org
422b02717e
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
2009-07-28 11:42:18 +00:00
iposva@chromium.org
1ce28eda0b
- 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
2009-07-28 08:43:51 +00:00
vitalyr@chromium.org
57e8217c10
Stub Cache: speed up load callback accessor by allocating data handle on stack.
...
Review URL: http://codereview.chromium.org/160041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-27 09:54:59 +00:00
kmillikin@chromium.org
1ca19c383d
Fix ARM compiler crash in short-circuited boolean expressions.
...
We did not handle the case where the left-hand-side expression was
fully compiled to control flow. There were also some assertions for
unary and binary expressions that crashed debug builds when the
expression was fully compiled to control flow.
Regression test added.
Review URL: http://codereview.chromium.org/160006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-23 11:40:14 +00:00
whesse@chromium.org
76833936b7
Make Array::kHeaderSize protected, and only use kHeaderSize of its subclasses.
...
Many X64 bugs have been due to the difference between (unaligned) Array::kHeaderSize and (aligned) FixedArray::kHeaderSize.
Review URL: http://codereview.chromium.org/155687
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 12:12:24 +00:00
whesse@chromium.org
f8e622a620
Added inline caching for calls to a field to X64. Changed a use of Array::kHeaderSize to FixedArray::kHeaderSize on all platforms.
...
Review URL: http://codereview.chromium.org/149798
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 08:55:01 +00:00
kasperl@chromium.org
38f5a84701
Avoid more static variables in inline functions.
...
Review URL: http://codereview.chromium.org/149799
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 08:22:07 +00:00
kasperl@chromium.org
94c4760225
Revert r2486, r2487, and r2488 until I get the chance to fix
...
the performance issue with number dictionaries.
TBR=kmillikin@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 04:57:17 +00:00
bak@chromium.org
e0047e4331
Changed hash table to use more of the hash value when probing.
...
Review URL: http://codereview.chromium.org/155350
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-16 12:56:50 +00:00
ager@chromium.org
7a80be473d
Firefox and Safari both allow calling regular expression objects as
...
functions (as an alias for calling the exec method). For
compatibility make call_regexp the default and remove the flag.
Review URL: http://codereview.chromium.org/155453
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 23:41:17 +00:00
ager@chromium.org
44be312091
Put the work-around for http://crbug.com/16276 into the ARM port as
...
well.
Review URL: http://codereview.chromium.org/155459
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 23:15:04 +00:00
ager@chromium.org
55050383e1
Port the function prototype load stub to ARM.
...
Review URL: http://codereview.chromium.org/155373
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-10 23:26:33 +00:00
kasperl@chromium.org
875dbe6584
Re-enable ICs for loads and calls that skips a global object during
...
lookup through the prototype chain.
Review URL: http://codereview.chromium.org/155344
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-10 09:40:47 +00:00
kmillikin@chromium.org
726c29c0be
Skip the write barrier for global property cell writes. The heap
...
verification code was refactored to avoid verifying that property
cells have correct remembered sets.
Review URL: http://codereview.chromium.org/149392
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 14:34:08 +00:00
erik.corry@gmail.com
97f319d989
Get peep-hole optimizer working on ARM by not emitting
...
debug info at places where the debugger can't stop.
This fixes the ARM version after
http://codereview.chromium.org/14170
Reformat debug-backtrace.js test.
Review URL: http://codereview.chromium.org/155285
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 11:59:58 +00:00
kasperl@chromium.org
98f1a228c6
Allow access through the global proxy to use ICs.
...
Review URL: http://codereview.chromium.org/155283
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 11:17:57 +00:00
ager@chromium.org
68f5664689
Address review comments.
...
Only jump over 'else' part of a conditional if it is actually
generated. Update a comment to more correctly reflect what is going
on.
Review URL: http://codereview.chromium.org/155272
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 04:22:05 +00:00
iposva@chromium.org
05b7b265cb
- Update comments and fix a small glitch in the ARM disassembler.
...
- Fix the use of OS::ActivationFrameAlignment() when running with
the simulator.
Review URL: http://codereview.chromium.org/155109
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 22:13:42 +00:00
ager@chromium.org
13bf328e19
Fix crash bug in ARM codegenerator by adding another special case for
...
generating code after a call to LoadConditionAndSpill.
This crash is hit on www.rightmove.co.uk when using the ARM
codegenerator.
Review URL: http://codereview.chromium.org/149351
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 22:05:06 +00:00
ager@chromium.org
0be6a72cc1
Fix crash in arm conditional expression code generation.
...
Review URL: http://codereview.chromium.org/155234
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 19:43:22 +00:00
ager@chromium.org
b4c6762b61
Port IsConstructCall optimization to x64 and ARM.
...
Review URL: http://codereview.chromium.org/149266
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 19:00:24 +00:00
erik.corry@gmail.com
9dd35ee2f9
ARM improvements to constant div, mod and mul.
...
* Fast runtime calls for div and mod.
* Fix assembly and disassembly of multiply instructions.
* Strength reduce and inline multiplications to shift-add.
* Strength reduce and inline mod by power of 2.
* Strength reduce mod by other small integers to mul.
* Strength reduce div by 2 and 3.
Review URL: http://codereview.chromium.org/155047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 12:44:31 +00:00
erik.corry@gmail.com
1a3d633edc
Fix thinko in IC code.
...
Review URL: http://codereview.chromium.org/149175
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 12:43:59 +00:00
bak@chromium.org
3cb5fc56d2
M ic-arm.cc
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 08:00:51 +00:00
bak@chromium.org
99bea86c7a
Missing file from last change
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 06:58:56 +00:00
ager@chromium.org
465aadc8b6
Port %ClassOf() optimization to X64 and ARM.
...
Review URL: http://codereview.chromium.org/150226
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 14:17:10 +00:00
bak@chromium.org
9aa0f380a6
Fixed arm/mac errors and presubmitting 2324.
...
Review URL: http://codereview.chromium.org/151193
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 06:50:43 +00:00
kasperl@chromium.org
6cfc5f1ef9
Treat the builtins object like other global objects (with
...
cells in old space for properties) and avoid allocating tons
of unused properties in new space when creating new contexts.
Review URL: http://codereview.chromium.org/151146
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 11:44:37 +00:00
erik.corry@gmail.com
70331f67f9
ARM: Don't always go into the runtime system just because a
...
mul gave zero.
Review URL: http://codereview.chromium.org/151144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 11:32:08 +00:00
erik.corry@gmail.com
ea3b18919e
We have to be sure to generate a relocatable instruction when
...
handling external references before a heap serialization.
Review URL: http://codereview.chromium.org/151080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 16:35:42 +00:00
sgjesse@chromium.org
92bb897081
Tweaks to global object inline cache code.
...
Remove the check for deleted properties in the global load inline cache if the property is known to be read only.
Propegate the in loop flag for the global call inline cache.
Changed the propagation of the code flags in the call stub compiler to compute these the same way for all types of call stubs and assert that the flags for the generated code is the same as those used for the cache lookup.
Addressed a few comments from previous review in test-api.cc.
Review URL: http://codereview.chromium.org/150101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 14:07:29 +00:00
erik.corry@gmail.com
cea9476cf0
More changes to make the simulator run code that is for the ARM5 snapshot.
...
Review URL: http://codereview.chromium.org/150100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 13:38:40 +00:00
sgjesse@chromium.org
a54a4ada5c
Changed the global object representation.The global object is now always in dictionary (slow) mode with each of its properties stored in a cell object. A cell object has one field containing the actual value for the property. Inline caches for access to global properties which uses direct to the cell are now created for load, store and call to properties of the global object. When properties of the global object are deleted the cell for that property is kept with an indcation of that the property is deleted.Added counters to track the use of the global property inline caches.Added additional information on IC's in the disassembler.
...
Review URL: http://codereview.chromium.org/151019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 10:05:36 +00:00
erik.corry@gmail.com
c9e004a808
Add a compare stub on ARM.
...
Review URL: http://codereview.chromium.org/151003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 13:52:13 +00:00
kasperl@chromium.org
f1ffd50257
Optimize %ClassOf() on IA-32 and use it instead of the
...
custom %HasXXXClass() calls.
Review URL: http://codereview.chromium.org/151018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 10:45:16 +00:00
erik.corry@gmail.com
4a30e3f58e
* Add missing imul instruction on Intel.
...
* Fix incorrect signedness in disassembly of umull/mull on ARM.
* Fix incorrect register order in disassembly of umull/mull.
* Fix incorrect assembly of umull on ARM.
* Remove retroactively obsoleted restriction on choice of
registers in mul instructions on ARM.
Review URL: http://codereview.chromium.org/150002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 09:32:06 +00:00
kasperl@chromium.org
a1622491af
Optimize %IsConstructCall() on IA-32.
...
Review URL: http://codereview.chromium.org/150018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 08:14:06 +00:00
lrn@chromium.org
76ac8bc73b
Removed static type inference and add a dynamic test for string addition.
...
The complexity of static type inference never really paid off, and as an
analysis it didn't fit well with codegen frame propagation.
Review URL: http://codereview.chromium.org/146077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 12:46:00 +00:00
whesse@chromium.org
c19fde4f1c
X64 implementation: Change argument to relocator to take a 64-bit delta. Change maximum relocation info encoding length.
...
Review URL: http://codereview.chromium.org/146021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-23 09:50:51 +00:00
kasperl@chromium.org
5f5fbd4e4a
Allow functions to have custom construct stubs that are called
...
when the function is instantiated.
Review URL: http://codereview.chromium.org/132063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-19 07:36:16 +00:00
kmillikin@chromium.org
73fe551048
Remove the unused support for jump-table switch statements.
...
Review URL: http://codereview.chromium.org/126193
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 09:50:37 +00:00
erik.corry@gmail.com
824140bde0
Avoid going into runtime system for round-towards-zero operations on ARM.
...
Review URL: http://codereview.chromium.org/126192
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 09:49:29 +00:00
ager@chromium.org
00107efb02
Use the correct version of CallRuntime in the arm code generator.
...
This fixes assertion failures in debug mode tests.
Review URL: http://codereview.chromium.org/126128
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 14:27:57 +00:00