OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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_FLOW_GRAPH_COMPILER_X64_H_ | 5 #ifndef VM_FLOW_GRAPH_COMPILER_X64_H_ |
6 #define VM_FLOW_GRAPH_COMPILER_X64_H_ | 6 #define VM_FLOW_GRAPH_COMPILER_X64_H_ |
7 | 7 |
8 #ifndef VM_FLOW_GRAPH_COMPILER_H_ | 8 #ifndef VM_FLOW_GRAPH_COMPILER_H_ |
9 #error Include flow_graph_compiler.h instead of flow_graph_compiler_x64.h. | 9 #error Include flow_graph_compiler.h instead of flow_graph_compiler_x64.h. |
10 #endif | 10 #endif |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 Label* deopt); | 127 Label* deopt); |
128 | 128 |
129 // Returns pc-offset (in bytes) of the pc after the call, can be used to emit | 129 // Returns pc-offset (in bytes) of the pc after the call, can be used to emit |
130 // pc-descriptor information. | 130 // pc-descriptor information. |
131 intptr_t EmitInstanceCall(ExternalLabel* target_label, | 131 intptr_t EmitInstanceCall(ExternalLabel* target_label, |
132 const ICData& ic_data, | 132 const ICData& ic_data, |
133 const Array& arguments_descriptor, | 133 const Array& arguments_descriptor, |
134 intptr_t argument_count); | 134 intptr_t argument_count); |
135 | 135 |
136 void EmitLoadIndexedGeneric(LoadIndexedComp* comp); | 136 void EmitLoadIndexedGeneric(LoadIndexedComp* comp); |
| 137 void EmitTestAndCall(const ICData& ic_data, |
| 138 Register class_id_reg, |
| 139 intptr_t arg_count, |
| 140 const Array& arg_names, |
| 141 Label* deopt, |
| 142 Label* done, |
| 143 intptr_t cid, |
| 144 intptr_t token_index, |
| 145 intptr_t try_index); |
137 | 146 |
138 intptr_t StackSize() const; | 147 intptr_t StackSize() const; |
139 | 148 |
140 // Returns assembler label associated with the given block entry. | 149 // Returns assembler label associated with the given block entry. |
141 Label* GetBlockLabel(BlockEntryInstr* block_entry) const; | 150 Label* GetBlockLabel(BlockEntryInstr* block_entry) const; |
142 | 151 |
143 // Returns true if the next block after current in the current block order | 152 // Returns true if the next block after current in the current block order |
144 // is the given block. | 153 // is the given block. |
145 bool IsNextBlock(TargetEntryInstr* block_entry) const; | 154 bool IsNextBlock(TargetEntryInstr* block_entry) const; |
146 | 155 |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 const DeoptReasonId reason_; | 315 const DeoptReasonId reason_; |
307 GrowableArray<Register> registers_; | 316 GrowableArray<Register> registers_; |
308 Label entry_label_; | 317 Label entry_label_; |
309 | 318 |
310 DISALLOW_COPY_AND_ASSIGN(DeoptimizationStub); | 319 DISALLOW_COPY_AND_ASSIGN(DeoptimizationStub); |
311 }; | 320 }; |
312 | 321 |
313 } // namespace dart | 322 } // namespace dart |
314 | 323 |
315 #endif // VM_FLOW_GRAPH_COMPILER_X64_H_ | 324 #endif // VM_FLOW_GRAPH_COMPILER_X64_H_ |
OLD | NEW |