LGTM On Fri, Nov 7, 2008 at 9:44 AM, <[EMAIL PROTECTED]> wrote: > Reviewers: Mads Ager, > > Description: > Reporting -1 as the size of an ILLEGAL reference which actually has > size 0 was too cute. > > Please review this at http://codereview.chromium.org/9689 > > SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ > > Affected files: > M src/codegen-arm.h > M src/codegen-arm.cc > M src/codegen-ia32.h > M src/codegen-ia32.cc > > > Index: src/codegen-ia32.h > =================================================================== > --- src/codegen-ia32.h (revision 706) > +++ src/codegen-ia32.h (working copy) > @@ -121,8 +121,8 @@ > type_ = value; > } > > - // The size of the reference or -1 if the reference is illegal. > - int size() const { return type_; } > + // The size the reference takes up on the stack. > + int size() const { return (type_ == ILLEGAL) ? 0 : type_; } > > bool is_illegal() const { return type_ == ILLEGAL; } > bool is_slot() const { return type_ == SLOT; } > Index: src/codegen-arm.cc > =================================================================== > --- src/codegen-arm.cc (revision 706) > +++ src/codegen-arm.cc (working copy) > @@ -569,9 +569,7 @@ > // Pop a reference from the stack while preserving TOS. > Comment cmnt(masm_, "[ UnloadReference"); > int size = ref->size(); > - if (size <= 0) { > - // Do nothing. No popping is necessary. > - } else { > + if (size > 0) { > frame_->Pop(r0); > frame_->Drop(size); > frame_->Push(r0); > Index: src/codegen-arm.h > =================================================================== > --- src/codegen-arm.h (revision 706) > +++ src/codegen-arm.h (working copy) > @@ -117,8 +117,8 @@ > type_ = value; > } > > - // The size of the reference or -1 if the reference is illegal. > - int size() const { return type_; } > + // The size the reference takes up on the stack. > + int size() const { return (type_ == ILLEGAL) ? 0 : type_; } > > bool is_illegal() const { return type_ == ILLEGAL; } > bool is_slot() const { return type_ == SLOT; } > Index: src/codegen-ia32.cc > =================================================================== > --- src/codegen-ia32.cc (revision 706) > +++ src/codegen-ia32.cc (working copy) > @@ -607,12 +607,10 @@ > // Pop a reference from the stack while preserving TOS. > Comment cmnt(masm_, "[ UnloadReference"); > int size = ref->size(); > - if (size <= 0) { > - // Do nothing. No popping is necessary. > - } else if (size == 1) { > + if (size == 1) { > frame_->Pop(eax); > __ mov(frame_->Top(), eax); > - } else { > + } else if (size > 1) { > frame_->Pop(eax); > frame_->Drop(size); > frame_->Push(eax); > > >
--~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
