Chromium Code Reviews| Index: runtime/vm/assembler_arm64.cc |
| =================================================================== |
| --- runtime/vm/assembler_arm64.cc (revision 36956) |
| +++ runtime/vm/assembler_arm64.cc (working copy) |
| @@ -1073,6 +1073,19 @@ |
| } |
| +void Assembler::LoadTaggedClassIdMayBeSmi(Register result, Register object) { |
|
zra
2014/06/04 18:55:00
tsti(object, kSmiTagMask);
LoadImmediate(result, S
srdjan
2014/06/04 20:08:04
Discussed offline, leave it as it be since LoadCla
|
| + Label load, done; |
| + tsti(object, kSmiTagMask); |
| + b(&load, NE); |
| + LoadImmediate(result, Smi::RawValue(kSmiCid), PP); |
| + b(&done); |
| + Bind(&load); |
| + LoadClassId(result, object, PP); |
| + SmiTag(result); |
| + Bind(&done); |
| +} |
| + |
| + |
| // Frame entry and exit. |
| void Assembler::ReserveAlignedFrameSpace(intptr_t frame_space) { |
| // Reserve space for arguments and align frame before entering |