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 -~----------~----~----~----~------~----~------~--~---
