Revision: 8443
Author: [email protected]
Date: Tue Jun 28 02:09:07 2011
Log: Fix bug in register assignment of IsObjectAndBranch.
Make sure that input and temp registers don't overlap.
Review URL: http://codereview.chromium.org/7273026
http://code.google.com/p/v8/source/detail?r=8443
Modified:
/branches/bleeding_edge/src/arm/lithium-arm.cc
/branches/bleeding_edge/src/ia32/lithium-ia32.cc
=======================================
--- /branches/bleeding_edge/src/arm/lithium-arm.cc Tue Jun 28 01:54:09 2011
+++ /branches/bleeding_edge/src/arm/lithium-arm.cc Tue Jun 28 02:09:07 2011
@@ -1098,7 +1098,7 @@
HIsObject* compare = HIsObject::cast(v);
ASSERT(compare->value()->representation().IsTagged());
LOperand* temp = TempRegister();
- return new LIsObjectAndBranch(UseRegisterAtStart(compare->value()),
temp);
+ return new LIsObjectAndBranch(UseRegister(compare->value()), temp);
} else if (v->IsCompareObjectEq()) {
HCompareObjectEq* compare = HCompareObjectEq::cast(v);
return new LCmpObjectEqAndBranch(UseRegisterAtStart(compare->left()),
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-ia32.cc Tue Jun 28 01:54:09
2011
+++ /branches/bleeding_edge/src/ia32/lithium-ia32.cc Tue Jun 28 02:09:07
2011
@@ -1098,7 +1098,7 @@
ASSERT(compare->value()->representation().IsTagged());
LOperand* temp1 = TempRegister();
LOperand* temp2 = TempRegister();
- return new LIsObjectAndBranch(UseRegisterAtStart(compare->value()),
+ return new LIsObjectAndBranch(UseRegister(compare->value()),
temp1,
temp2);
} else if (v->IsCompareObjectEq()) {
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev