| 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 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 506 | 506 |
| 507 void ldrh(Register rd, Address ad, Condition cond = AL); | 507 void ldrh(Register rd, Address ad, Condition cond = AL); |
| 508 void strh(Register rd, Address ad, Condition cond = AL); | 508 void strh(Register rd, Address ad, Condition cond = AL); |
| 509 | 509 |
| 510 void ldrsb(Register rd, Address ad, Condition cond = AL); | 510 void ldrsb(Register rd, Address ad, Condition cond = AL); |
| 511 void ldrsh(Register rd, Address ad, Condition cond = AL); | 511 void ldrsh(Register rd, Address ad, Condition cond = AL); |
| 512 | 512 |
| 513 // ldrd and strd actually support the full range of addressing modes, but | 513 // ldrd and strd actually support the full range of addressing modes, but |
| 514 // we don't use them, and we need to split them up into two instructions for | 514 // we don't use them, and we need to split them up into two instructions for |
| 515 // ARMv5TE, so we only support the base + offset mode. | 515 // ARMv5TE, so we only support the base + offset mode. |
| 516 void ldrd(Register rd, Register rn, int32_t offset, Condition cond = AL); | 516 // rd must be an even register and rd2 must be rd + 1. |
| 517 void strd(Register rd, Register rn, int32_t offset, Condition cond = AL); | 517 void ldrd(Register rd, Register rd2, Register rn, int32_t offset, |
| 518 Condition cond = AL); |
| 519 void strd(Register rd, Register rd2, Register rn, int32_t offset, |
| 520 Condition cond = AL); |
| 518 | 521 |
| 519 void ldm(BlockAddressMode am, Register base, | 522 void ldm(BlockAddressMode am, Register base, |
| 520 RegList regs, Condition cond = AL); | 523 RegList regs, Condition cond = AL); |
| 521 void stm(BlockAddressMode am, Register base, | 524 void stm(BlockAddressMode am, Register base, |
| 522 RegList regs, Condition cond = AL); | 525 RegList regs, Condition cond = AL); |
| 523 | 526 |
| 524 void ldrex(Register rd, Register rn, Condition cond = AL); | 527 void ldrex(Register rd, Register rn, Condition cond = AL); |
| 525 void strex(Register rd, Register rt, Register rn, Condition cond = AL); | 528 void strex(Register rd, Register rt, Register rn, Condition cond = AL); |
| 526 | 529 |
| 527 // Miscellaneous instructions. | 530 // Miscellaneous instructions. |
| (...skipping 673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1201 Register new_value, | 1204 Register new_value, |
| 1202 FieldContent old_content); | 1205 FieldContent old_content); |
| 1203 | 1206 |
| 1204 DISALLOW_ALLOCATION(); | 1207 DISALLOW_ALLOCATION(); |
| 1205 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1208 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 1206 }; | 1209 }; |
| 1207 | 1210 |
| 1208 } // namespace dart | 1211 } // namespace dart |
| 1209 | 1212 |
| 1210 #endif // VM_ASSEMBLER_ARM_H_ | 1213 #endif // VM_ASSEMBLER_ARM_H_ |
| OLD | NEW |