erik.corry@gmail.com
0efd83c916
* Add code to check coverage of generated code on IA32 port.
...
* Move ARM coverage code to ARM-specific file and add missing
file to cover.
Review URL: http://codereview.chromium.org/88025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-21 13:42:12 +00:00
feng@chromium.org
ea48d53bad
Add ENABLE_DEBUGGER_SUPPORT macro.
...
ENABLE_DEBUGGER_SUPPORT is enabled by default unless it is on Android platform.
On Android platform, it can also enabled by passing -DENABLE_DEBUGGER_SUPPORT flag to the compiler.
This should not affect any existing build (I hope, cross my fingers) except the build in real Android environment (in other word, it only affects me now).
There are lot of room for code refactoring in stead of using #ifdef all over the place. I will leave this to v8 folks.
Review URL: http://codereview.chromium.org/77035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-20 16:36:13 +00:00
erik.corry@gmail.com
8f911a2f5d
* Remove unused code from codegen-arm.cc
...
* Fix fp ops on pre-EABI ARM targets.
* Fix missing TIMEVAL_TO_TIMESPEC on Android.
Review URL: http://codereview.chromium.org/77025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-17 13:27:36 +00:00
erik.corry@gmail.com
4db9cb3a7f
Don't blindly use blx instruction without knowing whether the CPU supports it.
...
Review URL: http://codereview.chromium.org/67213
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-16 12:12:47 +00:00
erik.corry@gmail.com
4d18959446
Avoid a call to the runtime system when doing binary fp ops on ARM
...
(at the moment only if we do not need to allocate a heap number).
Find a few more oportunities to avoid heap number allocation on IA32.
Add some infrastructure to test coverage of generated ARM code in our
tests.
Review URL: http://codereview.chromium.org/67163
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-16 09:30:23 +00:00
ager@chromium.org
0de8a28ea7
Fix crash bug when loading const variable in the presence of eval.
...
The problem was a missing 'uninitialized' check.
Review URL: http://codereview.chromium.org/73076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-15 10:47:23 +00:00
whesse@chromium.org
20a6e7e5e9
Rewrite of VisitCountOperation that should speed it up
...
Review URL: http://codereview.chromium.org/56151
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-03 13:27:14 +00:00
kmillikin@chromium.org
b8af68b03f
Make VirtualFrame::CallStub on IA32 responsible for moving arguments
...
into the appropriate registers for the stub call. Since stubs that
take arguments in registers do not (currently) take any arguments on
the stack, the unused generality has been removed (it's easy to put
back in later).
Review URL: http://codereview.chromium.org/55003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-27 10:29:37 +00:00
feng@chromium.org
0a5a8e8854
Fix and cleanup ARM port:
...
1) removed unused function, PcStoreOffset;
2) use macro instruction, Jump, when branching from JS code to C code.
This CL replaces http://codereview.chromium.org/53039/show , per our discussion.
Review URL: http://codereview.chromium.org/42610
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-25 18:23:04 +00:00
kmillikin@chromium.org
7c35a5d820
The code generator doesn't need to put the argument count in eax for
...
call ICs. Refactor CallRuntime on ARM to match the structure of IA32.
Update some comments.
Review URL: http://codereview.chromium.org/42598
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-25 11:05:36 +00:00
kasperl@chromium.org
70aa1fde83
Fix ARM performance regression on constructing array
...
and object literals by using the same logic as we use
on IA-32.
Review URL: http://codereview.chromium.org/53001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-24 08:55:11 +00:00
kmillikin@chromium.org
5e2f3adfd0
Fix issue 284.
...
The problem was continuing out of the body of a for/in (where we do
register allocation) to the loop update (where we do not). Variables
allocated to registers where not preserved.
Review URL: http://codereview.chromium.org/53002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-24 08:29:24 +00:00
olehougaard
a8c50151fc
Reapply revisions 1432, 1433, 1469 and 1472 while fixing issue 279.
...
Review URL: http://codereview.chromium.org/48006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-23 07:27:47 +00:00
kmillikin@chromium.org
6565243504
Inline the Result::Unuse member function and change the Result
...
destructor to no longer invalidate the result.
Review URL: http://codereview.chromium.org/50051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-20 12:58:14 +00:00
kmillikin@chromium.org
9752bf90b5
Remove a bunch of unnecessary includes from header files in favor of
...
forward declarations.
Review URL: http://codereview.chromium.org/42389
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-20 09:35:31 +00:00
erik.corry@gmail.com
3aa57f7f65
Revert 1432, 1433, 1469 and 1472 due to a bug with literal objects.
...
Review URL: http://codereview.chromium.org/46088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-15 16:18:20 +00:00
kmillikin@chromium.org
3c41aab15d
Ensure deallocation of the dynamically allocated shadow targets used
...
for compilation of try/finally, even in the case where control cannot
reach the end of the finally block.
Review URL: http://codereview.chromium.org/43071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 13:14:27 +00:00
kmillikin@chromium.org
1a7359fb9d
Deallocate the dynamically-allocated shadow targets that we use for
...
compilation of try/catch and try/finally.
Review URL: http://codereview.chromium.org/42068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 12:08:28 +00:00
kmillikin@chromium.org
82df32b78c
Fix issue 268 by explicitly calling Unuse (to deallocate all contained
...
virtual frames) on zone-allocated jump targets. These include jump
targets in AST nodes and the entry and exit targets of deferred code.
See http://code.google.com/p/v8/issues/detail?id=268
Review URL: http://codereview.chromium.org/42067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 10:25:48 +00:00
kmillikin@chromium.org
0e60cf38dc
Fix issue 265 by handling extra statement state on the frame based on
...
the expectation at the break, continue, and return labels (including
shadowed ones) instead of based on the AST nodes.
See http://code.google.com/p/v8/issues/detail?id=265
Review URL: http://codereview.chromium.org/42017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 06:17:19 +00:00
lrn@chromium.org
34db0ff86c
Issue 267: Calls to arguments in eval-tainted function scope uses global object as receiver.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-10 12:28:34 +00:00
kmillikin@chromium.org
773843b62e
Introduce a BreakTarget subclass of JumpTarget used to represent the
...
blocks labeled by "break", "continue", and "return". BreakTargets are
the only jump targets that appear in the AST, the only ones that can
be uninitialized, and the only ones that can be shadowed.
Review URL: http://codereview.chromium.org/42008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-10 12:11:56 +00:00
olehougaard
860508f3e2
Optimizing generation of nested literals for both object and array literals.
...
Review URL: http://codereview.chromium.org/40295
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-10 08:59:00 +00:00
kmillikin@chromium.org
ece2c03160
Fix issue 263:
...
http://code.google.com/p/v8/issues/detail?id=263
Sharing the code to unlink the exception handler for a try/finally
causes us to try to merge virtual frames with different heights (due
to statements that keep state on the stack) at the entry to the unlink
code.
Avoid this by unlinking the handler separately for each exit from the
try block.
Review URL: http://codereview.chromium.org/39331
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-09 10:51:57 +00:00
kmillikin@chromium.org
182c3ebb2d
Reapply r1434 and port to ARM.
...
Review URL: http://codereview.chromium.org/40220
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-06 14:18:03 +00:00
olehougaard
3d9c24c8a4
Fixed ARM build by remembering to apply object literal optimazation to ARM code.
...
Review URL: http://codereview.chromium.org/40214
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-06 09:56:59 +00:00
kmillikin@chromium.org
f4735247cf
Merge from experimental code generator branch to bleeding edge.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-27 13:00:32 +00:00
ager@chromium.org
0c7af39737
Speed up access to global variables from eval scopes. Traverse the
...
surrounding context to figure out if the variable could be global. If
the variable could be global we check context extension objects at
runtime and use a global LoadIC if no variables have been introduced
by eval.
Fix crash bug when loading function arguments from inside eval. The
shadowed variable in the DYNAMIC_LOCAL case does not rewrite to a slot in
that case.
Review URL: http://codereview.chromium.org/28027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-24 13:11:53 +00:00
kmillikin@chromium.org
0c1c8d1876
Cleanup the ARM code generator for try...catch and try...finally by
...
clarifying the comments and simplifying code.
Review URL: http://codereview.chromium.org/27047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-23 12:05:40 +00:00
ager@chromium.org
195753ff7b
Commit of eval changes left out because they were stuck in another changelist.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-19 07:22:53 +00:00
ager@chromium.org
cafe25f258
ARM side of load optimization in the presence of eval.
...
Review URL: http://codereview.chromium.org/20453
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-18 13:54:13 +00:00
ager@chromium.org
a09832ab76
Optimize loads from variables that might be shadowed by variables
...
introduced by eval.
In the cases where calls to eval have not introduced any variables, we
do not need to perform a runtime call. Instead, we verify that the
context extension objects have not been created and perform a direct
load.
Not implemented for ARM yet and the scope resolution code could use
some better abstractions. I'd like to do that in a separate
changelist.
Review URL: http://codereview.chromium.org/20419
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-18 13:04:28 +00:00
kmillikin@chromium.org
46023fb742
Fix for off-by-one when initializing a constant or function
...
declaration that was not a slot.
Review URL: http://codereview.chromium.org/19745
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-02 12:05:13 +00:00
ager@chromium.org
47d1298236
Change the handling of catch blocks to use context extension objects
...
instead of normal JSObjects.
This ensures that __proto__ and accessors on the Object prototype do
not interfere with catch scopes. Also, it fixes the bug that catch
variables were not DontDelete (issue 74).
Next step is to create special lookup routines for context extension
objects and remove the special handling of context extension objects
from the general javascript object lookup routines.
Review URL: http://codereview.chromium.org/18143
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-16 09:42:08 +00:00
olehougaard
958316400f
Fixed some external references in the ARM code generator to use an ExternalReference wrapper.
...
Review URL: http://codereview.chromium.org/18266
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-15 08:32:50 +00:00
christian.plesner.hansen@gmail.com
4e78736900
Fixed build with no ENABLE_LOGGING_AND_PROFILING
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-07 14:24:08 +00:00
christian.plesner.hansen@gmail.com
afcc36a417
Added runtime call to the logging infrastructure. Made some changes
...
to the way regexps are being logged.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-06 13:24:52 +00:00
ager@chromium.org
3f383346aa
Inline array loads in loops directly in the code instead of always
...
calling a stub. The map to check against is unknown when generating
the code, so we patch the map check in the IC initialization code.
Loop nesting is currently not tracked on ARM. I'll file feature
request bug reports for implementing this on ARM and add the number to
the TODOs before I commit.
Review URL: http://codereview.chromium.org/16409
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-22 12:56:32 +00:00
olehougaard
392e6f849b
Fixing a subtle bug in receiver resolution when a thrown and caught function is called from a catch-block.
...
Second attempt - now with better memory efficiency.
Review URL: http://codereview.chromium.org/14834
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-18 11:28:13 +00:00
sgjesse@chromium.org
b3dd6b686a
Refactored the recording of source position in the generated code. The code generator now has two methods
...
void CodeForStatement(Node* node)
void CodeForSourcePosition(int pos)
The first is used to indicate that code is about to be generated for the given statement and the second is used to indicate that code is about to be generated for the given source position.
Added position information for some statements which was missing whem.
Updated the code generator for ARM to emit source position the same way as for IA-32.
Added an assert to ensure that deferred code stubs will always have a source source position as if it has not it will take whatever source position before which makes no sense.
The passing test on ARM has only been tested using the simulator.
Review URL: http://codereview.chromium.org/14170
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-17 08:45:42 +00:00
lrn@chromium.org
5afca497cb
Arm codegen could emit const pool in the middle of jump table.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@956 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-10 08:37:58 +00:00
olehougaard
2b72eeedfb
Change implementation of eval to make an exact distinction between direct eval and aliased eval.
...
Review URL: http://codereview.chromium.org/12673
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-27 13:55:06 +00:00
ager@chromium.org
95d1d40077
Revert r819, 821, and 822 which caused a big performance regression
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-21 15:01:41 +00:00
olehougaard
3877c91a19
Fixing the detection of aliased eval so that it is exact.
...
Fixing the semantics of aliased eval so that it is conformant.
Review URL: http://codereview.chromium.org/11563
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-21 12:49:57 +00:00
feng@chromium.org
9d06372cfe
Enable IC stubs for KeyedLaod/Store on ARM.
...
Several functions are not complete yet, always fall back to slow case.
It fixes test-api/AccessControlIC test.
Review URL: http://codereview.chromium.org/10624
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-13 01:18:31 +00:00
kmillikin@chromium.org
45e88ce988
Minor cleanup of the code generators to reduce (eventual) register
...
pressure and to avoid gratuitous merges in the CFG. No real
performance impact is expected.
Review URL: http://codereview.chromium.org/10404
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-12 11:00:12 +00:00
feng@chromium.org
3ccdce6d83
Fix CALL_NON_FUNCTION.
...
Using two flags to specify the state of targets:
1) FixupIsPCRelative specifies where to patch (relative to pc or at pc);
2) FixupUseCodeObject specifies what to patch (code object or start address).
Review URL: http://codereview.chromium.org/10233
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-10 22:53:19 +00:00
feng@chromium.org
47ac6ff1e0
fix lint, approved offline by iposva
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-07 23:00:09 +00:00
feng@chromium.org
fc8a0e3fa5
Fix OOM handler code. Old code didn't pop up the state slot.
...
Review URL: http://codereview.chromium.org/10223
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-07 22:56:41 +00:00
kmillikin@chromium.org
6edea51f89
Reporting -1 as the size of an ILLEGAL reference which actually has
...
size 0 was too cute.
Review URL: http://codereview.chromium.org/9689
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-07 08:58:23 +00:00