| Index: runtime/vm/assembler_arm.cc
|
| diff --git a/runtime/vm/assembler_arm.cc b/runtime/vm/assembler_arm.cc
|
| index 3618bcedf7154a7a7fe586c4765efda5f168bf47..d0e9d3c756f4dc01143353bee6b66743fab50028 100644
|
| --- a/runtime/vm/assembler_arm.cc
|
| +++ b/runtime/vm/assembler_arm.cc
|
| @@ -3047,9 +3047,12 @@ void Assembler::AddImmediate(Register rd,
|
| } else if (Operand::CanHold(~(-value), &o)) {
|
| mvn(IP, o, cond);
|
| sub(rd, rn, Operand(IP), cond);
|
| - } else {
|
| + } else if (value > 0) {
|
| LoadDecodableImmediate(IP, value, cond);
|
| add(rd, rn, Operand(IP), cond);
|
| + } else {
|
| + LoadDecodableImmediate(IP, -value, cond);
|
| + sub(rd, rn, Operand(IP), cond);
|
| }
|
| }
|
| }
|
|
|