Create branch for experimental code generator changes.


git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Merge change list off bleeding_edge into toiger branch.
Review URL: http://codereview.chromium.org/8961

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Semi-weekly merge from bleeding_edge to the toiger branch.
Review URL: http://codereview.chromium.org/9320

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Experimental: merge from the bleeding_edge branch to the experimental
code generator branch.
Review URL: http://codereview.chromium.org/9455

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Initial (stub) port of jump targets to the ARM platform.

The JumpTarget and VirtualFrame classes have been split out into their own
source files, with platform-specific include and implementation files.

Much of the code can ultimately be shared.
Review URL: http://codereview.chromium.org/9328

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Merge from bleeding_edge@712.
Review URL: http://codereview.chromium.org/9507

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Merging in some files that slipped through the cracks.  Experimental
code generator branch should be merged up to r713.

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Added missing file.

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove the platform specific jump target files by making them have the
same interfaces.
Review URL: http://codereview.chromium.org/9693

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add state to track the individual elements of the virtual frame.
Currently, all elements are eagerly pushed to and popped from the
actual frame, so they are always in memory.

The code still passes all the v8 and mozilla tests (in debug mode,
asserting that frames match at every CFG merge point).

This change has not yet been ported to ARM.
Review URL: http://codereview.chromium.org/9769

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Merge bleeding_edge@736 to the experimental code generator branch.

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Experimental: Finish porting jump target changes to the ARM platform.  The v8 test suite passes on the simulator.
Review URL: http://codereview.chromium.org/10829

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Experimental: periodic merge to the experimental branch from
bleeding_edge.  Merge bleeding edge@751.
Review URL: http://codereview.chromium.org/10945

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
The expected expression stack height at the return label can be
anything, so we set it to zero and special case it when generating
merge code.
Review URL: http://codereview.chromium.org/11011

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Simplify virtual frame by removing the virtual stack pointer, which
can be derived from the backing store's length.
Review URL: http://codereview.chromium.org/11406

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Experimental: change the name of the VirtualFrame function Push to
EmitPush to up the better name for a smarter Push operation.
Ultimately, all uses of the low-level "EmitPush" will be removed from
the code generators and it will be a private VirtualFrame helper.

This is nothing more than search and replace, submitted as a separate
changelist to avoid polluting subsequent ones.

Review URL: http://codereview.chromium.org/11229

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
First step toward allowing constants to appear in the virtual frame
without being materialized on the actual frame.

Currently constants are materialized almost immediately: as soon as we
call the runtime; push any non-constant value on top of them; jump,
branch, or bind a jump target; or generate code for any AST node.
Review URL: http://codereview.chromium.org/11232

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
For some reason gcc didn't like a STATIC_ASSERT argument with '>' in
it, because it confused parsing of the template that STATIC_ASSERT
expands to.

It's all too magical for me.
Review URL: http://codereview.chromium.org/11468

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Experimental: eagerly allocate space in the actual frame for spilling
locals.  It's more compact for multiple locals, and we will always
need to allocate this space anyway.
Review URL: http://codereview.chromium.org/11470

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Experimental: initial simple support for registers in the virtual
frame.

It's impossible to do anything interesting without a register file
abstraction to track live registers and merge code for frames
containing registers.
Review URL: http://codereview.chromium.org/11472

git-svn-id: https://v8.googlecode.com/svn/branches/experimental/toiger@803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00