Index: runtime/vm/intermediate_language_mips.cc |
=================================================================== |
--- runtime/vm/intermediate_language_mips.cc (revision 36182) |
+++ runtime/vm/intermediate_language_mips.cc (working copy) |
@@ -2675,24 +2675,24 @@ |
if (locs()->in(1).IsConstant()) { |
const Object& constant = locs()->in(1).constant(); |
ASSERT(constant.IsSmi()); |
- int32_t imm = reinterpret_cast<int32_t>(constant.raw()); |
+ const int32_t imm = reinterpret_cast<int32_t>(constant.raw()); |
switch (op_kind()) { |
- case Token::kSUB: { |
- __ TraceSimMsg("kSUB imm"); |
+ case Token::kADD: { |
if (deopt == NULL) { |
- __ AddImmediate(result, left, -imm); |
+ __ AddImmediate(result, left, imm); |
} else { |
- __ SubImmediateDetectOverflow(result, left, imm, CMPRES1); |
+ Register temp = locs()->temp(0).reg(); |
+ __ AddImmediateDetectOverflow(result, left, imm, CMPRES1, temp); |
__ bltz(CMPRES1, deopt); |
} |
break; |
} |
- case Token::kADD: { |
+ case Token::kSUB: { |
+ __ TraceSimMsg("kSUB imm"); |
if (deopt == NULL) { |
- __ AddImmediate(result, left, imm); |
+ __ AddImmediate(result, left, -imm); |
} else { |
- Register temp = locs()->temp(0).reg(); |
- __ AddImmediateDetectOverflow(result, left, imm, CMPRES1, temp); |
+ __ SubImmediateDetectOverflow(result, left, imm, CMPRES1); |
__ bltz(CMPRES1, deopt); |
} |
break; |