OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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_ARM64_H_ | 5 #ifndef VM_ASSEMBLER_ARM64_H_ |
6 #define VM_ASSEMBLER_ARM64_H_ | 6 #define VM_ASSEMBLER_ARM64_H_ |
7 | 7 |
8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
9 #error Do not include assembler_arm64.h directly; use assembler.h instead. | 9 #error Do not include assembler_arm64.h directly; use assembler.h instead. |
10 #endif | 10 #endif |
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
819 blr(TMP); | 819 blr(TMP); |
820 } | 820 } |
821 | 821 |
822 // Macros accepting a pp Register argument may attempt to load values from | 822 // Macros accepting a pp Register argument may attempt to load values from |
823 // the object pool when possible. Unless you are sure that the untagged object | 823 // the object pool when possible. Unless you are sure that the untagged object |
824 // pool pointer is in another register, or that it is not available at all, | 824 // pool pointer is in another register, or that it is not available at all, |
825 // PP should be passed for pp. | 825 // PP should be passed for pp. |
826 void AddImmediate(Register dest, Register rn, int64_t imm, Register pp); | 826 void AddImmediate(Register dest, Register rn, int64_t imm, Register pp); |
827 void AddImmediateSetFlags( | 827 void AddImmediateSetFlags( |
828 Register dest, Register rn, int64_t imm, Register pp); | 828 Register dest, Register rn, int64_t imm, Register pp); |
| 829 void SubImmediateSetFlags( |
| 830 Register dest, Register rn, int64_t imm, Register pp); |
829 void AndImmediate(Register rd, Register rn, int64_t imm, Register pp); | 831 void AndImmediate(Register rd, Register rn, int64_t imm, Register pp); |
830 void OrImmediate(Register rd, Register rn, int64_t imm, Register pp); | 832 void OrImmediate(Register rd, Register rn, int64_t imm, Register pp); |
831 void XorImmediate(Register rd, Register rn, int64_t imm, Register pp); | 833 void XorImmediate(Register rd, Register rn, int64_t imm, Register pp); |
832 void TestImmediate(Register rn, int64_t imm, Register pp); | 834 void TestImmediate(Register rn, int64_t imm, Register pp); |
833 void CompareImmediate(Register rn, int64_t imm, Register pp); | 835 void CompareImmediate(Register rn, int64_t imm, Register pp); |
834 | 836 |
835 void LoadFromOffset(Register dest, Register base, int32_t offset, | 837 void LoadFromOffset(Register dest, Register base, int32_t offset, |
836 Register pp, OperandSize sz = kDoubleWord); | 838 Register pp, OperandSize sz = kDoubleWord); |
837 void LoadFieldFromOffset( | 839 void LoadFieldFromOffset( |
838 Register dest, Register base, int32_t offset, Register pp) { | 840 Register dest, Register base, int32_t offset, Register pp) { |
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1397 Register value, | 1399 Register value, |
1398 Label* no_update); | 1400 Label* no_update); |
1399 | 1401 |
1400 DISALLOW_ALLOCATION(); | 1402 DISALLOW_ALLOCATION(); |
1401 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1403 DISALLOW_COPY_AND_ASSIGN(Assembler); |
1402 }; | 1404 }; |
1403 | 1405 |
1404 } // namespace dart | 1406 } // namespace dart |
1405 | 1407 |
1406 #endif // VM_ASSEMBLER_ARM64_H_ | 1408 #endif // VM_ASSEMBLER_ARM64_H_ |
OLD | NEW |