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 809 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
820 void br(Register rn) { | 820 void br(Register rn) { |
821 EmitUnconditionalBranchRegOp(BR, rn); | 821 EmitUnconditionalBranchRegOp(BR, rn); |
822 } | 822 } |
823 void blr(Register rn) { | 823 void blr(Register rn) { |
824 EmitUnconditionalBranchRegOp(BLR, rn); | 824 EmitUnconditionalBranchRegOp(BLR, rn); |
825 } | 825 } |
826 void ret(Register rn = R30) { | 826 void ret(Register rn = R30) { |
827 EmitUnconditionalBranchRegOp(RET, rn); | 827 EmitUnconditionalBranchRegOp(RET, rn); |
828 } | 828 } |
829 | 829 |
830 // Exceptions. | 830 // Breakpoint. |
831 void hlt(uint16_t imm) { | |
832 EmitExceptionGenOp(HLT, imm); | |
833 } | |
834 void brk(uint16_t imm) { | 831 void brk(uint16_t imm) { |
835 EmitExceptionGenOp(BRK, imm); | 832 EmitExceptionGenOp(BRK, imm); |
836 } | 833 } |
837 | 834 |
838 // Double floating point. | 835 // Double floating point. |
839 bool fmovdi(VRegister vd, double immd) { | 836 bool fmovdi(VRegister vd, double immd) { |
840 int64_t imm64 = bit_cast<int64_t, double>(immd); | 837 int64_t imm64 = bit_cast<int64_t, double>(immd); |
841 const uint8_t bit7 = imm64 >> 63; | 838 const uint8_t bit7 = imm64 >> 63; |
842 const uint8_t bit6 = (~(imm64 >> 62)) & 0x1; | 839 const uint8_t bit6 = (~(imm64 >> 62)) & 0x1; |
843 const uint8_t bit54 = (imm64 >> 52) & 0x3; | 840 const uint8_t bit54 = (imm64 >> 52) & 0x3; |
(...skipping 1080 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1924 Register value, | 1921 Register value, |
1925 Label* no_update); | 1922 Label* no_update); |
1926 | 1923 |
1927 DISALLOW_ALLOCATION(); | 1924 DISALLOW_ALLOCATION(); |
1928 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1925 DISALLOW_COPY_AND_ASSIGN(Assembler); |
1929 }; | 1926 }; |
1930 | 1927 |
1931 } // namespace dart | 1928 } // namespace dart |
1932 | 1929 |
1933 #endif // VM_ASSEMBLER_ARM64_H_ | 1930 #endif // VM_ASSEMBLER_ARM64_H_ |
OLD | NEW |