The approach LGTM, and this if fine as a work in progress.

I think the two comments below are worth addressing earlier rather than later.


http://codereview.chromium.org/6219001/diff/1/src/ia32/lithium-ia32.h
File src/ia32/lithium-ia32.h (right):

http://codereview.chromium.org/6219001/diff/1/src/ia32/lithium-ia32.h#newcode312
src/ia32/lithium-ia32.h:312: virtual void set_result(LOperand* operand)
= 0;
Maybe we should put these only on the Result=1 specialization as
non-virtual member functions.  We could have a static casting function
that checks types in debug builds but that has no overhead in release
builds, rather than incurring a small overhead for each access.

http://codereview.chromium.org/6219001/diff/1/src/ia32/lithium-ia32.h#newcode337
src/ia32/lithium-ia32.h:337: template <int Result = 0>
I think I'd rather have two separate specializations than the default
parameter.

http://codereview.chromium.org/6219001/diff/1/src/ia32/lithium-ia32.h#newcode2103
src/ia32/lithium-ia32.h:2103: LInstruction*
Define(LTemplateInstruction<1>* instr, LUnallocated* result);
This is nice.

http://codereview.chromium.org/6219001/

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to