LGTM On Mon, Oct 13, 2008 at 8:42 PM, <[EMAIL PROTECTED]> wrote:
> Reviewers: Kevin Millikin, Erik Corry, > > Description: > Fix a missing peephole optimization in ia32 code exposed with Kevin's > change. > > > Please review this at http://codereview.chromium.org/7117 > > Affected files: > M src/assembler-ia32.cc > > > Index: src/assembler-ia32.cc > =================================================================== > --- src/assembler-ia32.cc (revision 490) > +++ src/assembler-ia32.cc (working copy) > @@ -720,6 +720,23 @@ > > > void Assembler::add(const Operand& dst, const Immediate& x) { > + ASSERT(reloc_info_writer.last_pc() != NULL); > + if (FLAG_push_pop_elimination && (reloc_info_writer.last_pc() <= > last_pc_)) { > + byte instr = last_pc_[0]; > + if ((instr & 0xf8) == 0x50) { > + // Last instruction was a push. Check whether this is a pop without > a > + // result. > + if ((dst.is_reg(esp)) && > + (x.x_ == kPointerSize) && (x.rmode_ == RelocInfo::NONE)) { > + pc_ = last_pc_; > + last_pc_ = NULL; > + if (FLAG_print_push_pop_elimination) { > + PrintF("%d push/pop(noreg) eliminated\n", pc_offset()); > + } > + return; > + } > + } > + } > EnsureSpace ensure_space(this); > last_pc_ = pc_; > emit_arith(0, dst, x); > > > -- Erik Corry, Software Engineer Google Denmark ApS. CVR nr. 28 86 69 84 c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018 Copenhagen K, Denmark. --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
