| 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 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 void mvn(Register rd, ShifterOperand so, Condition cond = AL); | 383 void mvn(Register rd, ShifterOperand so, Condition cond = AL); |
| 384 void mvns(Register rd, ShifterOperand so, Condition cond = AL); | 384 void mvns(Register rd, ShifterOperand so, Condition cond = AL); |
| 385 | 385 |
| 386 // Miscellaneous data-processing instructions. | 386 // Miscellaneous data-processing instructions. |
| 387 void clz(Register rd, Register rm, Condition cond = AL); | 387 void clz(Register rd, Register rm, Condition cond = AL); |
| 388 void movw(Register rd, uint16_t imm16, Condition cond = AL); | 388 void movw(Register rd, uint16_t imm16, Condition cond = AL); |
| 389 void movt(Register rd, uint16_t imm16, Condition cond = AL); | 389 void movt(Register rd, uint16_t imm16, Condition cond = AL); |
| 390 | 390 |
| 391 // Multiply instructions. | 391 // Multiply instructions. |
| 392 void mul(Register rd, Register rn, Register rm, Condition cond = AL); | 392 void mul(Register rd, Register rn, Register rm, Condition cond = AL); |
| 393 void muls(Register rd, Register rn, Register rm, Condition cond = AL); |
| 393 void mla(Register rd, Register rn, Register rm, Register ra, | 394 void mla(Register rd, Register rn, Register rm, Register ra, |
| 394 Condition cond = AL); | 395 Condition cond = AL); |
| 395 void mls(Register rd, Register rn, Register rm, Register ra, | 396 void mls(Register rd, Register rn, Register rm, Register ra, |
| 396 Condition cond = AL); | 397 Condition cond = AL); |
| 397 void umull(Register rd_lo, Register rd_hi, Register rn, Register rm, | 398 void umull(Register rd_lo, Register rd_hi, Register rn, Register rm, |
| 398 Condition cond = AL); | 399 Condition cond = AL); |
| 399 | 400 |
| 401 // Division instructions. |
| 402 void sdiv(Register rd, Register rn, Register rm, Condition cond = AL); |
| 403 void udiv(Register rd, Register rn, Register rm, Condition cond = AL); |
| 404 |
| 400 // Load/store instructions. | 405 // Load/store instructions. |
| 401 void ldr(Register rd, Address ad, Condition cond = AL); | 406 void ldr(Register rd, Address ad, Condition cond = AL); |
| 402 void str(Register rd, Address ad, Condition cond = AL); | 407 void str(Register rd, Address ad, Condition cond = AL); |
| 403 | 408 |
| 404 void ldrb(Register rd, Address ad, Condition cond = AL); | 409 void ldrb(Register rd, Address ad, Condition cond = AL); |
| 405 void strb(Register rd, Address ad, Condition cond = AL); | 410 void strb(Register rd, Address ad, Condition cond = AL); |
| 406 | 411 |
| 407 void ldrh(Register rd, Address ad, Condition cond = AL); | 412 void ldrh(Register rd, Address ad, Condition cond = AL); |
| 408 void strh(Register rd, Address ad, Condition cond = AL); | 413 void strh(Register rd, Address ad, Condition cond = AL); |
| 409 | 414 |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 699 Register rm, | 704 Register rm, |
| 700 ShifterOperand so); | 705 ShifterOperand so); |
| 701 | 706 |
| 702 void EmitMulOp(Condition cond, | 707 void EmitMulOp(Condition cond, |
| 703 int32_t opcode, | 708 int32_t opcode, |
| 704 Register rd, | 709 Register rd, |
| 705 Register rn, | 710 Register rn, |
| 706 Register rm, | 711 Register rm, |
| 707 Register rs); | 712 Register rs); |
| 708 | 713 |
| 714 void EmitDivOp(Condition cond, |
| 715 int32_t opcode, |
| 716 Register rd, |
| 717 Register rn, |
| 718 Register rm); |
| 719 |
| 709 void EmitMultiVSMemOp(Condition cond, | 720 void EmitMultiVSMemOp(Condition cond, |
| 710 BlockAddressMode am, | 721 BlockAddressMode am, |
| 711 bool load, | 722 bool load, |
| 712 Register base, | 723 Register base, |
| 713 SRegister start, | 724 SRegister start, |
| 714 uint32_t count); | 725 uint32_t count); |
| 715 | 726 |
| 716 void EmitMultiVDMemOp(Condition cond, | 727 void EmitMultiVDMemOp(Condition cond, |
| 717 BlockAddressMode am, | 728 BlockAddressMode am, |
| 718 bool load, | 729 bool load, |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 753 return *reg1 - *reg2; | 764 return *reg1 - *reg2; |
| 754 } | 765 } |
| 755 | 766 |
| 756 DISALLOW_ALLOCATION(); | 767 DISALLOW_ALLOCATION(); |
| 757 DISALLOW_COPY_AND_ASSIGN(Assembler); | 768 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 758 }; | 769 }; |
| 759 | 770 |
| 760 } // namespace dart | 771 } // namespace dart |
| 761 | 772 |
| 762 #endif // VM_ASSEMBLER_ARM_H_ | 773 #endif // VM_ASSEMBLER_ARM_H_ |
| OLD | NEW |