| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VM_ASSEMBLER_ARM_H_ | 5 #ifndef VM_ASSEMBLER_ARM_H_ |
| 6 #define VM_ASSEMBLER_ARM_H_ | 6 #define VM_ASSEMBLER_ARM_H_ |
| 7 | 7 |
| 8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
| 9 #error Do not include assembler_arm.h directly; use assembler.h instead. | 9 #error Do not include assembler_arm.h directly; use assembler.h instead. |
| 10 #endif | 10 #endif |
| (...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 609 | 609 |
| 610 void Push(Register rd, Condition cond = AL); | 610 void Push(Register rd, Condition cond = AL); |
| 611 void Pop(Register rd, Condition cond = AL); | 611 void Pop(Register rd, Condition cond = AL); |
| 612 | 612 |
| 613 void PushList(RegList regs, Condition cond = AL); | 613 void PushList(RegList regs, Condition cond = AL); |
| 614 void PopList(RegList regs, Condition cond = AL); | 614 void PopList(RegList regs, Condition cond = AL); |
| 615 | 615 |
| 616 void MoveRegister(Register rd, Register rm, Condition cond = AL); | 616 void MoveRegister(Register rd, Register rm, Condition cond = AL); |
| 617 | 617 |
| 618 // Convenience shift instructions. Use mov instruction with shifter operand | 618 // Convenience shift instructions. Use mov instruction with shifter operand |
| 619 // for variants setting the status flags or using a register shift count. | 619 // for variants setting the status flags. |
| 620 void Lsl(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL); | 620 void Lsl(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL); |
| 621 void Lsl(Register rd, Register rm, Register rs, Condition cond = AL); |
| 621 void Lsr(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL); | 622 void Lsr(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL); |
| 623 void Lsr(Register rd, Register rm, Register rs, Condition cond = AL); |
| 622 void Asr(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL); | 624 void Asr(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL); |
| 625 void Asr(Register rd, Register rm, Register rs, Condition cond = AL); |
| 623 void Ror(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL); | 626 void Ror(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL); |
| 627 void Ror(Register rd, Register rm, Register rs, Condition cond = AL); |
| 624 void Rrx(Register rd, Register rm, Condition cond = AL); | 628 void Rrx(Register rd, Register rm, Condition cond = AL); |
| 625 | 629 |
| 626 void SmiTag(Register reg, Condition cond = AL) { | 630 void SmiTag(Register reg, Condition cond = AL) { |
| 627 Lsl(reg, reg, kSmiTagSize, cond); | 631 Lsl(reg, reg, kSmiTagSize, cond); |
| 628 } | 632 } |
| 629 | 633 |
| 630 void SmiUntag(Register reg, Condition cond = AL) { | 634 void SmiUntag(Register reg, Condition cond = AL) { |
| 631 Asr(reg, reg, kSmiTagSize, cond); | 635 Asr(reg, reg, kSmiTagSize, cond); |
| 632 } | 636 } |
| 633 | 637 |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 798 Register value, | 802 Register value, |
| 799 Label* no_update); | 803 Label* no_update); |
| 800 | 804 |
| 801 DISALLOW_ALLOCATION(); | 805 DISALLOW_ALLOCATION(); |
| 802 DISALLOW_COPY_AND_ASSIGN(Assembler); | 806 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 803 }; | 807 }; |
| 804 | 808 |
| 805 } // namespace dart | 809 } // namespace dart |
| 806 | 810 |
| 807 #endif // VM_ASSEMBLER_ARM_H_ | 811 #endif // VM_ASSEMBLER_ARM_H_ |
| OLD | NEW |