| 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 889 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 900 // Untag the value in the register assuming it is a smi. | 900 // Untag the value in the register assuming it is a smi. |
| 901 // Untagging shifts tag bit into the carry flag - if carry is clear | 901 // Untagging shifts tag bit into the carry flag - if carry is clear |
| 902 // assumption was correct. In this case jump to the is_smi label. | 902 // assumption was correct. In this case jump to the is_smi label. |
| 903 // Otherwise fall-through. | 903 // Otherwise fall-through. |
| 904 void SmiUntag(Register dst, Register src, Label* is_smi) { | 904 void SmiUntag(Register dst, Register src, Label* is_smi) { |
| 905 ASSERT(kSmiTagSize == 1); | 905 ASSERT(kSmiTagSize == 1); |
| 906 Asrs(dst, src, Operand(kSmiTagSize)); | 906 Asrs(dst, src, Operand(kSmiTagSize)); |
| 907 b(is_smi, CC); | 907 b(is_smi, CC); |
| 908 } | 908 } |
| 909 | 909 |
| 910 void BranchIfNotSmi(Register reg, Label* label) { | |
| 911 tst(reg, Operand(kSmiTagMask)); | |
| 912 b(label, NE); | |
| 913 } | |
| 914 | |
| 915 void CheckCodePointer(); | 910 void CheckCodePointer(); |
| 916 | 911 |
| 917 // Function frame setup and tear down. | 912 // Function frame setup and tear down. |
| 918 void EnterFrame(RegList regs, intptr_t frame_space); | 913 void EnterFrame(RegList regs, intptr_t frame_space); |
| 919 void LeaveFrame(RegList regs); | 914 void LeaveFrame(RegList regs); |
| 920 void Ret(); | 915 void Ret(); |
| 921 void ReserveAlignedFrameSpace(intptr_t frame_space); | 916 void ReserveAlignedFrameSpace(intptr_t frame_space); |
| 922 | 917 |
| 923 // Create a frame for calling into runtime that preserves all volatile | 918 // Create a frame for calling into runtime that preserves all volatile |
| 924 // registers. Frame's SP is guaranteed to be correctly aligned and | 919 // registers. Frame's SP is guaranteed to be correctly aligned and |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1167 Register value, | 1162 Register value, |
| 1168 Label* no_update); | 1163 Label* no_update); |
| 1169 | 1164 |
| 1170 DISALLOW_ALLOCATION(); | 1165 DISALLOW_ALLOCATION(); |
| 1171 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1166 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 1172 }; | 1167 }; |
| 1173 | 1168 |
| 1174 } // namespace dart | 1169 } // namespace dart |
| 1175 | 1170 |
| 1176 #endif // VM_ASSEMBLER_ARM_H_ | 1171 #endif // VM_ASSEMBLER_ARM_H_ |
| OLD | NEW |