Author: [EMAIL PROTECTED]
Date: Fri Nov  7 00:58:23 2008
New Revision: 709

Modified:
    branches/bleeding_edge/src/codegen-arm.cc
    branches/bleeding_edge/src/codegen-arm.h
    branches/bleeding_edge/src/codegen-ia32.cc
    branches/bleeding_edge/src/codegen-ia32.h

Log:
Reporting -1 as the size of an ILLEGAL reference which actually has
size 0 was too cute.
Review URL: http://codereview.chromium.org/9689

Modified: branches/bleeding_edge/src/codegen-arm.cc
==============================================================================
--- branches/bleeding_edge/src/codegen-arm.cc   (original)
+++ branches/bleeding_edge/src/codegen-arm.cc   Fri Nov  7 00:58:23 2008
@@ -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);

Modified: branches/bleeding_edge/src/codegen-arm.h
==============================================================================
--- branches/bleeding_edge/src/codegen-arm.h    (original)
+++ branches/bleeding_edge/src/codegen-arm.h    Fri Nov  7 00:58:23 2008
@@ -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; }

Modified: branches/bleeding_edge/src/codegen-ia32.cc
==============================================================================
--- branches/bleeding_edge/src/codegen-ia32.cc  (original)
+++ branches/bleeding_edge/src/codegen-ia32.cc  Fri Nov  7 00:58:23 2008
@@ -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);

Modified: branches/bleeding_edge/src/codegen-ia32.h
==============================================================================
--- branches/bleeding_edge/src/codegen-ia32.h   (original)
+++ branches/bleeding_edge/src/codegen-ia32.h   Fri Nov  7 00:58:23 2008
@@ -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; }

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

Reply via email to