| Index: runtime/vm/intrinsifier_arm.cc
|
| ===================================================================
|
| --- runtime/vm/intrinsifier_arm.cc (revision 24544)
|
| +++ runtime/vm/intrinsifier_arm.cc (working copy)
|
| @@ -1402,9 +1402,9 @@
|
| __ LoadImmediate(R0, a_int32_value);
|
| __ LoadFromOffset(kLoadWord, R2, R1, disp_0 - kHeapObjectTag);
|
| __ LoadFromOffset(kLoadWord, R3, R1, disp_1 - kHeapObjectTag);
|
| - __ mov(R6, ShifterOperand(R3, ASR, 31)); // Sign extend into R6.
|
| - // 64-bit multiply and accumulate into R6:R3.
|
| - __ smlal(R3, R6, R0, R2); // R6:R3 <- R6:R3 + R0 * R2.
|
| + __ mov(R6, ShifterOperand(0)); // Zero extend unsigned _state[kSTATE_HI].
|
| + // Unsigned 32-bit multiply and 64-bit accumulate into R6:R3.
|
| + __ umlal(R3, R6, R0, R2); // R6:R3 <- R6:R3 + R0 * R2.
|
| __ StoreToOffset(kStoreWord, R3, R1, disp_0 - kHeapObjectTag);
|
| __ StoreToOffset(kStoreWord, R6, R1, disp_1 - kHeapObjectTag);
|
| __ Ret();
|
|
|