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

Reply via email to