Reviewers: William Hesse, Description: Do not shuffle parameters when doing sub on ia32 and arm.
Please review this at http://codereview.chromium.org/6283012/ SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/arm/lithium-arm.cc M src/ia32/lithium-ia32.cc Index: src/arm/lithium-arm.cc =================================================================== --- src/arm/lithium-arm.cc (revision 6455) +++ src/arm/lithium-arm.cc (working copy) @@ -1294,8 +1294,8 @@ if (instr->representation().IsInteger32()) { ASSERT(instr->left()->representation().IsInteger32()); ASSERT(instr->right()->representation().IsInteger32()); - LOperand* left = UseRegisterAtStart(instr->LeastConstantOperand()); - LOperand* right = UseOrConstantAtStart(instr->MostConstantOperand()); + LOperand* left = UseRegisterAtStart(instr->left()); + LOperand* right = UseOrConstantAtStart(instr->right()); LSubI* sub = new LSubI(left, right); LInstruction* result = DefineSameAsFirst(sub); if (instr->CheckFlag(HValue::kCanOverflow)) { Index: src/ia32/lithium-ia32.cc =================================================================== --- src/ia32/lithium-ia32.cc (revision 6455) +++ src/ia32/lithium-ia32.cc (working copy) @@ -1327,8 +1327,8 @@ if (instr->representation().IsInteger32()) { ASSERT(instr->left()->representation().IsInteger32()); ASSERT(instr->right()->representation().IsInteger32()); - LOperand* left = UseRegisterAtStart(instr->LeastConstantOperand()); - LOperand* right = UseOrConstantAtStart(instr->MostConstantOperand()); + LOperand* left = UseRegisterAtStart(instr->left()); + LOperand* right = UseOrConstantAtStart(instr->right()); LSubI* sub = new LSubI(left, right); LInstruction* result = DefineSameAsFirst(sub); if (instr->CheckFlag(HValue::kCanOverflow)) { -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
