| 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 791 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 802 | 802 |
| 803 // Inlined allocation of an instance of class 'cls', code has no runtime | 803 // Inlined allocation of an instance of class 'cls', code has no runtime |
| 804 // calls. Jump to 'failure' if the instance cannot be allocated here. | 804 // calls. Jump to 'failure' if the instance cannot be allocated here. |
| 805 // Allocated instance is returned in 'instance_reg'. | 805 // Allocated instance is returned in 'instance_reg'. |
| 806 // Only the tags field of the object is initialized. | 806 // Only the tags field of the object is initialized. |
| 807 void TryAllocate(const Class& cls, | 807 void TryAllocate(const Class& cls, |
| 808 Label* failure, | 808 Label* failure, |
| 809 Register instance_reg, | 809 Register instance_reg, |
| 810 Register temp_reg); | 810 Register temp_reg); |
| 811 | 811 |
| 812 void TryAllocateArray(intptr_t cid, |
| 813 intptr_t instance_size, |
| 814 Label* failure, |
| 815 Register instance, |
| 816 Register end_address, |
| 817 Register temp1, |
| 818 Register temp2); |
| 819 |
| 812 // Emit data (e.g encoded instruction or immediate) in instruction stream. | 820 // Emit data (e.g encoded instruction or immediate) in instruction stream. |
| 813 void Emit(int32_t value); | 821 void Emit(int32_t value); |
| 814 | 822 |
| 815 // On some other platforms, we draw a distinction between safe and unsafe | 823 // On some other platforms, we draw a distinction between safe and unsafe |
| 816 // smis. | 824 // smis. |
| 817 static bool IsSafe(const Object& object) { return true; } | 825 static bool IsSafe(const Object& object) { return true; } |
| 818 static bool IsSafeSmi(const Object& object) { return object.IsSmi(); } | 826 static bool IsSafeSmi(const Object& object) { return object.IsSmi(); } |
| 819 | 827 |
| 820 private: | 828 private: |
| 821 AssemblerBuffer buffer_; // Contains position independent code. | 829 AssemblerBuffer buffer_; // Contains position independent code. |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 955 Register value, | 963 Register value, |
| 956 Label* no_update); | 964 Label* no_update); |
| 957 | 965 |
| 958 DISALLOW_ALLOCATION(); | 966 DISALLOW_ALLOCATION(); |
| 959 DISALLOW_COPY_AND_ASSIGN(Assembler); | 967 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 960 }; | 968 }; |
| 961 | 969 |
| 962 } // namespace dart | 970 } // namespace dart |
| 963 | 971 |
| 964 #endif // VM_ASSEMBLER_ARM_H_ | 972 #endif // VM_ASSEMBLER_ARM_H_ |
| OLD | NEW |