| Index: runtime/vm/intermediate_language_arm.cc
|
| diff --git a/runtime/vm/intermediate_language_arm.cc b/runtime/vm/intermediate_language_arm.cc
|
| index 026d0ed938dd24e31d6e6318895c900dd38f3d84..06f3988208f34eb2d517a5903c0c695df63b68f6 100644
|
| --- a/runtime/vm/intermediate_language_arm.cc
|
| +++ b/runtime/vm/intermediate_language_arm.cc
|
| @@ -6221,14 +6221,17 @@ void ShiftMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| } else {
|
| if (shift == 32) {
|
| __ mov(out_lo, Operand(left_hi));
|
| - } else {
|
| + } else if (shift < 64) {
|
| __ Asr(out_lo, left_hi, Operand(shift - 32));
|
| + } else {
|
| + __ Asr(out_lo, left_hi, Operand(31));
|
| }
|
| __ Asr(out_hi, left_hi, Operand(31));
|
| }
|
| break;
|
| }
|
| case Token::kSHL: {
|
| + ASSERT(shift < 64);
|
| if (shift < 32) {
|
| __ Lsr(out_hi, left_lo, Operand(32 - shift));
|
| __ orr(out_hi, out_hi, Operand(left_hi, LSL, shift));
|
|
|