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 RUNTIME_VM_ASSEMBLER_ARM_H_ | 5 #ifndef RUNTIME_VM_ASSEMBLER_ARM_H_ |
6 #define RUNTIME_VM_ASSEMBLER_ARM_H_ | 6 #define RUNTIME_VM_ASSEMBLER_ARM_H_ |
7 | 7 |
8 #ifndef RUNTIME_VM_ASSEMBLER_H_ | 8 #ifndef RUNTIME_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 962 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
973 ASSERT(kSmiTagSize == 1); | 973 ASSERT(kSmiTagSize == 1); |
974 Asrs(dst, src, Operand(kSmiTagSize)); | 974 Asrs(dst, src, Operand(kSmiTagSize)); |
975 b(is_smi, CC); | 975 b(is_smi, CC); |
976 } | 976 } |
977 | 977 |
978 void BranchIfNotSmi(Register reg, Label* label) { | 978 void BranchIfNotSmi(Register reg, Label* label) { |
979 tst(reg, Operand(kSmiTagMask)); | 979 tst(reg, Operand(kSmiTagMask)); |
980 b(label, NE); | 980 b(label, NE); |
981 } | 981 } |
982 | 982 |
| 983 void BranchIfSmi(Register reg, Label* label) { |
| 984 tst(reg, Operand(kSmiTagMask)); |
| 985 b(label, EQ); |
| 986 } |
| 987 |
983 void CheckCodePointer(); | 988 void CheckCodePointer(); |
984 | 989 |
985 // Function frame setup and tear down. | 990 // Function frame setup and tear down. |
986 void EnterFrame(RegList regs, intptr_t frame_space); | 991 void EnterFrame(RegList regs, intptr_t frame_space); |
987 void LeaveFrame(RegList regs); | 992 void LeaveFrame(RegList regs); |
988 void Ret(); | 993 void Ret(); |
989 void ReserveAlignedFrameSpace(intptr_t frame_space); | 994 void ReserveAlignedFrameSpace(intptr_t frame_space); |
990 | 995 |
991 // Create a frame for calling into runtime that preserves all volatile | 996 // Create a frame for calling into runtime that preserves all volatile |
992 // registers. Frame's SP is guaranteed to be correctly aligned and | 997 // registers. Frame's SP is guaranteed to be correctly aligned and |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1247 Register value, | 1252 Register value, |
1248 Label* no_update); | 1253 Label* no_update); |
1249 | 1254 |
1250 DISALLOW_ALLOCATION(); | 1255 DISALLOW_ALLOCATION(); |
1251 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1256 DISALLOW_COPY_AND_ASSIGN(Assembler); |
1252 }; | 1257 }; |
1253 | 1258 |
1254 } // namespace dart | 1259 } // namespace dart |
1255 | 1260 |
1256 #endif // RUNTIME_VM_ASSEMBLER_ARM_H_ | 1261 #endif // RUNTIME_VM_ASSEMBLER_ARM_H_ |
OLD | NEW |