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 1201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1212 void SmiUntag(Register dst, Register src) { | 1212 void SmiUntag(Register dst, Register src) { |
1213 AsrImmediate(dst, src, kSmiTagSize); | 1213 AsrImmediate(dst, src, kSmiTagSize); |
1214 } | 1214 } |
1215 void SmiTag(Register reg) { | 1215 void SmiTag(Register reg) { |
1216 LslImmediate(reg, reg, kSmiTagSize); | 1216 LslImmediate(reg, reg, kSmiTagSize); |
1217 } | 1217 } |
1218 void SmiTag(Register dst, Register src) { | 1218 void SmiTag(Register dst, Register src) { |
1219 LslImmediate(dst, src, kSmiTagSize); | 1219 LslImmediate(dst, src, kSmiTagSize); |
1220 } | 1220 } |
1221 | 1221 |
| 1222 void BranchIfNotSmi(Register reg, Label* label) { |
| 1223 tsti(reg, Immediate(kSmiTagMask)); |
| 1224 b(label, NE); |
| 1225 } |
| 1226 |
1222 void Branch(const StubEntry& stub_entry, | 1227 void Branch(const StubEntry& stub_entry, |
1223 Register pp, | 1228 Register pp, |
1224 Patchability patchable = kNotPatchable); | 1229 Patchability patchable = kNotPatchable); |
1225 void BranchPatchable(const StubEntry& stub_entry); | 1230 void BranchPatchable(const StubEntry& stub_entry); |
1226 | 1231 |
1227 void BranchLink(const StubEntry& stub_entry, | 1232 void BranchLink(const StubEntry& stub_entry, |
1228 Patchability patchable = kNotPatchable); | 1233 Patchability patchable = kNotPatchable); |
1229 | 1234 |
1230 void BranchLinkPatchable(const StubEntry& stub_entry); | 1235 void BranchLinkPatchable(const StubEntry& stub_entry); |
1231 void BranchLinkToRuntime(); | 1236 void BranchLinkToRuntime(); |
(...skipping 714 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1946 Register value, | 1951 Register value, |
1947 Label* no_update); | 1952 Label* no_update); |
1948 | 1953 |
1949 DISALLOW_ALLOCATION(); | 1954 DISALLOW_ALLOCATION(); |
1950 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1955 DISALLOW_COPY_AND_ASSIGN(Assembler); |
1951 }; | 1956 }; |
1952 | 1957 |
1953 } // namespace dart | 1958 } // namespace dart |
1954 | 1959 |
1955 #endif // VM_ASSEMBLER_ARM64_H_ | 1960 #endif // VM_ASSEMBLER_ARM64_H_ |
OLD | NEW |