Chromium Code Reviews| Index: runtime/vm/assembler_arm.cc |
| =================================================================== |
| --- runtime/vm/assembler_arm.cc (revision 36956) |
| +++ runtime/vm/assembler_arm.cc (working copy) |
| @@ -1685,6 +1685,19 @@ |
| } |
| +void Assembler::LoadTaggedClassIdMayBeSmi(Register result, Register object) { |
|
zra
2014/06/04 18:55:00
tst(object, Operand(kSmiTagMask));
LoadImmediate(r
srdjan
2014/06/04 20:08:04
Done and added condition to LoadClassId
|
| + Label load, done; |
| + tst(object, Operand(kSmiTagMask)); |
| + b(&load, NE); |
| + LoadImmediate(result, Smi::RawValue(kSmiCid)); |
| + b(&done); |
| + Bind(&load); |
| + LoadClassId(result, object); |
| + SmiTag(result); |
| + Bind(&done); |
| +} |
| + |
| + |
| static bool CanEncodeBranchOffset(int32_t offset) { |
| ASSERT(Utils::IsAligned(offset, 4)); |
| return Utils::IsInt(Utils::CountOneBits(kBranchOffsetMask), offset); |