Chromium Code Reviews| Index: runtime/vm/assembler_arm.h |
| diff --git a/runtime/vm/assembler_arm.h b/runtime/vm/assembler_arm.h |
| index 9a08c8e6fe50243a428a2aac9978a885a16782aa..49e621bf4ed4f2112c243babf29935b1e7873227 100644 |
| --- a/runtime/vm/assembler_arm.h |
| +++ b/runtime/vm/assembler_arm.h |
| @@ -717,6 +717,7 @@ class Assembler : public ValueObject { |
| void Lsr(Register rd, Register rm, Register rs, Condition cond = AL); |
| void Asr(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL); |
| void Asr(Register rd, Register rm, Register rs, Condition cond = AL); |
| + void AsrS(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL); |
|
zra
2014/09/10 23:17:22
It looks like we've been using a little s, i.e. As
Vyacheslav Egorov (Google)
2014/09/11 11:49:16
Done.
|
| void Ror(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL); |
| void Ror(Register rd, Register rm, Register rs, Condition cond = AL); |
| void Rrx(Register rd, Register rm, Condition cond = AL); |
| @@ -734,6 +735,10 @@ class Assembler : public ValueObject { |
| Lsl(reg, reg, kSmiTagSize, cond); |
| } |
| + void SmiTag(Register dst, Register src, Condition cond = AL) { |
| + Lsl(dst, src, kSmiTagSize, cond); |
| + } |
| + |
| void SmiUntag(Register reg, Condition cond = AL) { |
| Asr(reg, reg, kSmiTagSize, cond); |
| } |
| @@ -742,6 +747,12 @@ class Assembler : public ValueObject { |
| Asr(dst, src, kSmiTagSize, cond); |
| } |
| + void SmiUntag(Register dst, Register src, Label* ok) { |
|
zra
2014/09/10 23:17:22
Maybe comment here about what the Label is for.
Vyacheslav Egorov (Google)
2014/09/11 11:49:16
Done.
|
| + ASSERT(kSmiTagSize == 1); |
| + AsrS(dst, src, kSmiTagSize); |
| + b(ok, CC); |
| + } |
| + |
| // Function frame setup and tear down. |
| void EnterFrame(RegList regs, intptr_t frame_space); |
| void LeaveFrame(RegList regs); |