| 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 957 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 968 // ..... | 968 // ..... |
| 969 // This code sets this up with the sequence: | 969 // This code sets this up with the sequence: |
| 970 // pushq rbp | 970 // pushq rbp |
| 971 // movq rbp, rsp | 971 // movq rbp, rsp |
| 972 // pushq immediate(0) | 972 // pushq immediate(0) |
| 973 // ..... | 973 // ..... |
| 974 void EnterStubFrame(); | 974 void EnterStubFrame(); |
| 975 void LeaveStubFrame(); | 975 void LeaveStubFrame(); |
| 976 | 976 |
| 977 void UpdateAllocationStats(intptr_t cid, | 977 void UpdateAllocationStats(intptr_t cid, |
| 978 Heap::Space space, | 978 Heap::Space space); |
| 979 bool inline_isolate = true); | |
| 980 | 979 |
| 981 void UpdateAllocationStatsWithSize(intptr_t cid, | 980 void UpdateAllocationStatsWithSize(intptr_t cid, |
| 982 Register size_reg, | 981 Register size_reg, |
| 983 Heap::Space space, | 982 Heap::Space space); |
| 984 bool inline_isolate = true); | |
| 985 void UpdateAllocationStatsWithSize(intptr_t cid, | 983 void UpdateAllocationStatsWithSize(intptr_t cid, |
| 986 intptr_t instance_size, | 984 intptr_t instance_size, |
| 987 Heap::Space space, | 985 Heap::Space space); |
| 988 bool inline_isolate = true); | |
| 989 | 986 |
| 990 // If allocation tracing for |cid| is enabled, will jump to |trace| label, | 987 // If allocation tracing for |cid| is enabled, will jump to |trace| label, |
| 991 // which will allocate in the runtime where tracing occurs. | 988 // which will allocate in the runtime where tracing occurs. |
| 992 void MaybeTraceAllocation(intptr_t cid, | 989 void MaybeTraceAllocation(intptr_t cid, |
| 993 Label* trace, | 990 Label* trace, |
| 994 bool near_jump, | 991 bool near_jump); |
| 995 bool inline_isolate = true); | |
| 996 | 992 |
| 997 // Inlined allocation of an instance of class 'cls', code has no runtime | 993 // Inlined allocation of an instance of class 'cls', code has no runtime |
| 998 // calls. Jump to 'failure' if the instance cannot be allocated here. | 994 // calls. Jump to 'failure' if the instance cannot be allocated here. |
| 999 // Allocated instance is returned in 'instance_reg'. | 995 // Allocated instance is returned in 'instance_reg'. |
| 1000 // Only the tags field of the object is initialized. | 996 // Only the tags field of the object is initialized. |
| 1001 void TryAllocate(const Class& cls, | 997 void TryAllocate(const Class& cls, |
| 1002 Label* failure, | 998 Label* failure, |
| 1003 bool near_jump, | 999 bool near_jump, |
| 1004 Register instance_reg, | 1000 Register instance_reg, |
| 1005 Register temp); | 1001 Register temp); |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1205 } | 1201 } |
| 1206 | 1202 |
| 1207 | 1203 |
| 1208 inline void Assembler::EmitOperandSizeOverride() { | 1204 inline void Assembler::EmitOperandSizeOverride() { |
| 1209 EmitUint8(0x66); | 1205 EmitUint8(0x66); |
| 1210 } | 1206 } |
| 1211 | 1207 |
| 1212 } // namespace dart | 1208 } // namespace dart |
| 1213 | 1209 |
| 1214 #endif // VM_ASSEMBLER_X64_H_ | 1210 #endif // VM_ASSEMBLER_X64_H_ |
| OLD | NEW |