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_X64_H_ | 5 #ifndef VM_ASSEMBLER_X64_H_ |
6 #define VM_ASSEMBLER_X64_H_ | 6 #define VM_ASSEMBLER_X64_H_ |
7 | 7 |
8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
9 #error Do not include assembler_x64.h directly; use assembler.h instead. | 9 #error Do not include assembler_x64.h directly; use assembler.h instead. |
10 #endif | 10 #endif |
(...skipping 995 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1006 // Inlined allocation of an instance of class 'cls', code has no runtime | 1006 // Inlined allocation of an instance of class 'cls', code has no runtime |
1007 // calls. Jump to 'failure' if the instance cannot be allocated here. | 1007 // calls. Jump to 'failure' if the instance cannot be allocated here. |
1008 // Allocated instance is returned in 'instance_reg'. | 1008 // Allocated instance is returned in 'instance_reg'. |
1009 // Only the tags field of the object is initialized. | 1009 // Only the tags field of the object is initialized. |
1010 // Loads large immediates from the object pool with pool pointer in PP if it | 1010 // Loads large immediates from the object pool with pool pointer in PP if it |
1011 // is not kNoRegister | 1011 // is not kNoRegister |
1012 void TryAllocate(const Class& cls, | 1012 void TryAllocate(const Class& cls, |
1013 Label* failure, | 1013 Label* failure, |
1014 bool near_jump, | 1014 bool near_jump, |
1015 Register instance_reg, | 1015 Register instance_reg, |
1016 Register pp); | 1016 Register pp, |
| 1017 Register temp); |
1017 | 1018 |
1018 void TryAllocateArray(intptr_t cid, | 1019 void TryAllocateArray(intptr_t cid, |
1019 intptr_t instance_size, | 1020 intptr_t instance_size, |
1020 Label* failure, | 1021 Label* failure, |
1021 bool near_jump, | 1022 bool near_jump, |
1022 Register instance, | 1023 Register instance, |
1023 Register end_address); | 1024 Register end_address, |
| 1025 Register temp); |
1024 | 1026 |
1025 // Debugging and bringup support. | 1027 // Debugging and bringup support. |
1026 void Stop(const char* message, bool fixed_length_encoding = false); | 1028 void Stop(const char* message, bool fixed_length_encoding = false); |
1027 void Unimplemented(const char* message); | 1029 void Unimplemented(const char* message); |
1028 void Untested(const char* message); | 1030 void Untested(const char* message); |
1029 void Unreachable(const char* message); | 1031 void Unreachable(const char* message); |
1030 | 1032 |
1031 static void InitializeMemoryWithBreakpoints(uword data, intptr_t length); | 1033 static void InitializeMemoryWithBreakpoints(uword data, intptr_t length); |
1032 | 1034 |
1033 static const char* RegisterName(Register reg); | 1035 static const char* RegisterName(Register reg); |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1214 } | 1216 } |
1215 | 1217 |
1216 | 1218 |
1217 inline void Assembler::EmitOperandSizeOverride() { | 1219 inline void Assembler::EmitOperandSizeOverride() { |
1218 EmitUint8(0x66); | 1220 EmitUint8(0x66); |
1219 } | 1221 } |
1220 | 1222 |
1221 } // namespace dart | 1223 } // namespace dart |
1222 | 1224 |
1223 #endif // VM_ASSEMBLER_X64_H_ | 1225 #endif // VM_ASSEMBLER_X64_H_ |
OLD | NEW |