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 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 kTestTypeThreeArgs, | 291 kTestTypeThreeArgs, |
292 }; | 292 }; |
293 | 293 |
294 RawSubtypeTestCache* GenerateCallSubtypeTestStub(TypeTestStubKind test_kind, | 294 RawSubtypeTestCache* GenerateCallSubtypeTestStub(TypeTestStubKind test_kind, |
295 Register instance_reg, | 295 Register instance_reg, |
296 Register type_arguments_reg, | 296 Register type_arguments_reg, |
297 Register temp_reg, | 297 Register temp_reg, |
298 Label* is_instance_lbl, | 298 Label* is_instance_lbl, |
299 Label* is_not_instance_lbl); | 299 Label* is_not_instance_lbl); |
300 | 300 |
| 301 // Returns true if checking against this type is a direct class id comparison. |
| 302 bool TypeCheckAsClassEquality(const AbstractType& type); |
| 303 |
301 void GenerateBoolToJump(Register bool_reg, Label* is_true, Label* is_false); | 304 void GenerateBoolToJump(Register bool_reg, Label* is_true, Label* is_false); |
302 | 305 |
303 void CopyParameters(); | 306 void CopyParameters(); |
304 | 307 |
305 void GenerateInlinedGetter(intptr_t offset); | 308 void GenerateInlinedGetter(intptr_t offset); |
306 void GenerateInlinedSetter(intptr_t offset); | 309 void GenerateInlinedSetter(intptr_t offset); |
307 | 310 |
308 // Map a block number in a forward iteration into the block number in the | 311 // Map a block number in a forward iteration into the block number in the |
309 // corresponding reverse iteration. Used to obtain an index into | 312 // corresponding reverse iteration. Used to obtain an index into |
310 // block_order for reverse iterations. | 313 // block_order for reverse iterations. |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
346 // that should be used when deoptimizing we store it in this variable. | 349 // that should be used when deoptimizing we store it in this variable. |
347 // In future AddDeoptStub should be moved out of the instruction template. | 350 // In future AddDeoptStub should be moved out of the instruction template. |
348 Environment* pending_deoptimization_env_; | 351 Environment* pending_deoptimization_env_; |
349 | 352 |
350 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); | 353 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); |
351 }; | 354 }; |
352 | 355 |
353 } // namespace dart | 356 } // namespace dart |
354 | 357 |
355 #endif // VM_FLOW_GRAPH_COMPILER_X64_H_ | 358 #endif // VM_FLOW_GRAPH_COMPILER_X64_H_ |
OLD | NEW |