| Index: runtime/vm/assembler_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/assembler_ia32.cc (revision 36956)
|
| +++ runtime/vm/assembler_ia32.cc (working copy)
|
| @@ -2656,6 +2656,19 @@
|
| }
|
|
|
|
|
| +void Assembler::LoadTaggedClassIdMayBeSmi(Register result, Register object) {
|
| + testl(object, Immediate(kSmiTagMask));
|
| + Label not_smi, done;
|
| + j(NOT_ZERO, ¬_smi, Assembler::kNearJump);
|
| + movl(result, Immediate(Smi::RawValue(kSmiCid)));
|
| + jmp(&done, Assembler::kNearJump);
|
| + Bind(¬_smi);
|
| + LoadClassId(result, object);
|
| + SmiTag(result);
|
| + Bind(&done);
|
| +}
|
| +
|
| +
|
| static const char* cpu_reg_names[kNumberOfCpuRegisters] = {
|
| "eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi"
|
| };
|
|
|