| Index: runtime/vm/intermediate_language_mips.cc
|
| diff --git a/runtime/vm/intermediate_language_mips.cc b/runtime/vm/intermediate_language_mips.cc
|
| index 15fc876447e14290bcace045e6ef32ca99e79471..a63ba7d99284eabb067fc7c91e1be56e17c65cf6 100644
|
| --- a/runtime/vm/intermediate_language_mips.cc
|
| +++ b/runtime/vm/intermediate_language_mips.cc
|
| @@ -4931,7 +4931,13 @@ void ShiftMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ or_(out_lo, out_lo, TMP);
|
| __ sra(out_hi, left_hi, shift);
|
| } else {
|
| - __ sra(out_lo, left_hi, shift - 32);
|
| + if (shift == 32) {
|
| + __ mov(out_lo, left_hi);
|
| + } else if (shift < 64) {
|
| + __ sra(out_lo, left_hi, shift - 32);
|
| + } else {
|
| + __ sra(out_lo, left_hi, 31);
|
| + }
|
| __ sra(out_hi, left_hi, 31);
|
| }
|
| break;
|
|
|