| 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 662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 673 Condition cond = AL); | 673 Condition cond = AL); |
| 674 | 674 |
| 675 void BranchLink(const StubEntry& stub_entry, | 675 void BranchLink(const StubEntry& stub_entry, |
| 676 Patchability patchable = kNotPatchable); | 676 Patchability patchable = kNotPatchable); |
| 677 void BranchLink(const Code& code, Patchability patchable); | 677 void BranchLink(const Code& code, Patchability patchable); |
| 678 | 678 |
| 679 // Branch and link to an entry address. Call sequence can be patched. | 679 // Branch and link to an entry address. Call sequence can be patched. |
| 680 void BranchLinkPatchable(const StubEntry& stub_entry); | 680 void BranchLinkPatchable(const StubEntry& stub_entry); |
| 681 void BranchLinkPatchable(const Code& code); | 681 void BranchLinkPatchable(const Code& code); |
| 682 | 682 |
| 683 // Emit a call that shares its object pool entries with other calls |
| 684 // that have the same equivalence marker. |
| 685 void BranchLinkWithEquivalence(const StubEntry& stub_entry, |
| 686 const Object& equivalence); |
| 687 |
| 683 // Branch and link to [base + offset]. Call sequence is never patched. | 688 // Branch and link to [base + offset]. Call sequence is never patched. |
| 684 void BranchLinkOffset(Register base, int32_t offset); | 689 void BranchLinkOffset(Register base, int32_t offset); |
| 685 | 690 |
| 686 // Add signed immediate value to rd. May clobber IP. | 691 // Add signed immediate value to rd. May clobber IP. |
| 687 void AddImmediate(Register rd, int32_t value, Condition cond = AL); | 692 void AddImmediate(Register rd, int32_t value, Condition cond = AL); |
| 688 void AddImmediate(Register rd, Register rn, int32_t value, | 693 void AddImmediate(Register rd, Register rn, int32_t value, |
| 689 Condition cond = AL); | 694 Condition cond = AL); |
| 690 void AddImmediateSetFlags(Register rd, Register rn, int32_t value, | 695 void AddImmediateSetFlags(Register rd, Register rn, int32_t value, |
| 691 Condition cond = AL); | 696 Condition cond = AL); |
| 692 void SubImmediateSetFlags(Register rd, Register rn, int32_t value, | 697 void SubImmediateSetFlags(Register rd, Register rn, int32_t value, |
| (...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1210 Register new_value, | 1215 Register new_value, |
| 1211 FieldContent old_content); | 1216 FieldContent old_content); |
| 1212 | 1217 |
| 1213 DISALLOW_ALLOCATION(); | 1218 DISALLOW_ALLOCATION(); |
| 1214 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1219 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 1215 }; | 1220 }; |
| 1216 | 1221 |
| 1217 } // namespace dart | 1222 } // namespace dart |
| 1218 | 1223 |
| 1219 #endif // VM_ASSEMBLER_ARM_H_ | 1224 #endif // VM_ASSEMBLER_ARM_H_ |
| OLD | NEW |