Index: runtime/vm/assembler_arm.cc |
=================================================================== |
--- runtime/vm/assembler_arm.cc (revision 38317) |
+++ runtime/vm/assembler_arm.cc (working copy) |
@@ -1728,10 +1728,13 @@ |
void Assembler::LoadTaggedClassIdMayBeSmi(Register result, Register object) { |
+ static const intptr_t kSmiCidSource = kSmiCid << RawObject::kClassIdTagPos; |
+ |
+ LoadImmediate(TMP, reinterpret_cast<int32_t>(&kSmiCidSource) + 1); |
tst(object, Operand(kSmiTagMask)); |
- LoadImmediate(result, Smi::RawValue(kSmiCid), EQ); |
- LoadClassId(result, object, NE); |
- SmiTag(result, NE); |
+ mov(TMP, Operand(object), NE); |
+ LoadClassId(result, TMP); |
+ SmiTag(result); |
} |