| Index: runtime/vm/assembler_mips.h
|
| diff --git a/runtime/vm/assembler_mips.h b/runtime/vm/assembler_mips.h
|
| index fbc52dc2031c0cf8bc35b788aa25989915ef4823..46219dda9ed25de3d7bdfcbdc57cebcecec64e1a 100644
|
| --- a/runtime/vm/assembler_mips.h
|
| +++ b/runtime/vm/assembler_mips.h
|
| @@ -856,7 +856,9 @@ class Assembler : public ValueObject {
|
| const uint16_t low = Utils::Low16Bits(value);
|
| const uint16_t high = Utils::High16Bits(value);
|
| lui(rd, Immediate(high));
|
| - ori(rd, rd, Immediate(low));
|
| + if (low != 0) {
|
| + ori(rd, rd, Immediate(low));
|
| + }
|
| }
|
| }
|
|
|
| @@ -1125,6 +1127,10 @@ class Assembler : public ValueObject {
|
| sll(reg, reg, kSmiTagSize);
|
| }
|
|
|
| + void SmiTag(Register dst, Register src) {
|
| + sll(dst, src, kSmiTagSize);
|
| + }
|
| +
|
| void SmiUntag(Register reg) {
|
| sra(reg, reg, kSmiTagSize);
|
| }
|
|
|