Reviewers: Kevin Millikin,
Message:
This is a first step towards a bigger refactoring. Please have a look.
Description:
Split LInstruction into multiple variant to make our LIR more compact.
This change introduces LTemplateInstruction which is a specialized version
of LInstruction and takes one template parameter to indicate whether the
instruction produces a result operand.
All instruction that do not have a result inherit from
LTemplateInstruction<0>.
Instructions that have a result operand from LTemplateInstruction<1>
All the Define* function only operate on instructions with a result.
For this to work I also refactored the places where we do
LInstruction* result = new Lxyy
into
Lxyz* result = new Lxyz
Please review this at http://codereview.chromium.org/6219001/
SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/
Affected files:
M src/ia32/lithium-ia32.h
M src/ia32/lithium-ia32.cc
M src/lithium-allocator.h
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev