| Index: runtime/vm/assembler_mips.cc
|
| diff --git a/runtime/vm/assembler_mips.cc b/runtime/vm/assembler_mips.cc
|
| index c08d4fa1886124e1846e13d15122a2f6d3bfa244..4bdc206dc85f2abae0e4309b0a3a56bb0bf98ecf 100644
|
| --- a/runtime/vm/assembler_mips.cc
|
| +++ b/runtime/vm/assembler_mips.cc
|
| @@ -749,15 +749,14 @@ void Assembler::LoadClass(Register result, Register object) {
|
|
|
|
|
| void Assembler::LoadClassIdMayBeSmi(Register result, Register object) {
|
| - static const intptr_t kSmiCidSource = kSmiCid << RawObject::kClassIdTagPos;
|
| -
|
| - LoadImmediate(TMP, reinterpret_cast<int32_t>(&kSmiCidSource) + 1);
|
| + Label heap_object, done;
|
| andi(CMPRES1, object, Immediate(kSmiTagMask));
|
| - if (result != object) {
|
| - mov(result, object);
|
| - }
|
| - movz(result, TMP, CMPRES1);
|
| - LoadClassId(result, result);
|
| + bne(CMPRES1, ZR, &heap_object);
|
| + LoadImmediate(result, kSmiCid);
|
| + b(&done);
|
| + Bind(&heap_object);
|
| + LoadClassId(result, object);
|
| + Bind(&done);
|
| }
|
|
|
|
|
|
|