You should probably swap the comparee.Unuse() and bind of the deferred
exit label (I'm pretty sure we will need it that way soon).

Otherwise, LGTM with a couple of questions.


http://codereview.chromium.org/13665/diff/215/216
File src/codegen-ia32.cc (right):

http://codereview.chromium.org/13665/diff/215/216#newcode1234
Line 1234: comparee.ConvertConstantToRegister();
Maybe this should be more a more general ToRegister?  We might
eventually have non-register types other than constants, and we might
also want an overloaded version to move a Result (even a register one)
to a specific register like in SmiComparisonDeferred::Generate just
above (the Result left_side_ is moved into edx, which shouldn't require
emitting any code if it is already in edx).

http://codereview.chromium.org/13665/diff/215/216#newcode1245
Line 1245: comparee.Unuse();
I think comparee should be unused right before the bind of exit rather
than after.  The register will not be live on either path leading to the
label.

http://codereview.chromium.org/13665/diff/215/217
File src/virtual-frame-ia32.cc (right):

http://codereview.chromium.org/13665/diff/215/217#newcode56
Line 56: type_ = INVALID;
Is it useful that unusing a constant turns it into invalid?  It might be
more useful if the semantics is unuse if a register, otherwise do
nothing.

http://codereview.chromium.org/13665

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

Reply via email to