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