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 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 | 236 |
237 // Array/list element address computations. | 237 // Array/list element address computations. |
238 static intptr_t DataOffsetFor(intptr_t cid); | 238 static intptr_t DataOffsetFor(intptr_t cid); |
239 static intptr_t ElementSizeFor(intptr_t cid); | 239 static intptr_t ElementSizeFor(intptr_t cid); |
240 static FieldAddress ElementAddressForIntIndex(intptr_t cid, | 240 static FieldAddress ElementAddressForIntIndex(intptr_t cid, |
241 Register array, | 241 Register array, |
242 intptr_t offset); | 242 intptr_t offset); |
243 static FieldAddress ElementAddressForRegIndex(intptr_t cid, | 243 static FieldAddress ElementAddressForRegIndex(intptr_t cid, |
244 Register array, | 244 Register array, |
245 Register index); | 245 Register index); |
| 246 static Address ExternalElementAddressForIntIndex(intptr_t cid, |
| 247 Register array, |
| 248 intptr_t offset); |
| 249 static Address ExternalElementAddressForRegIndex(intptr_t cid, |
| 250 Register array, |
| 251 Register index); |
246 | 252 |
247 private: | 253 private: |
248 void EmitFrameEntry(); | 254 void EmitFrameEntry(); |
249 | 255 |
250 void AddStaticCallTarget(const Function& function); | 256 void AddStaticCallTarget(const Function& function); |
251 | 257 |
252 void GenerateDeferredCode(); | 258 void GenerateDeferredCode(); |
253 | 259 |
254 void EmitInstructionPrologue(Instruction* instr); | 260 void EmitInstructionPrologue(Instruction* instr); |
255 void EmitInstructionEpilogue(Instruction* instr); | 261 void EmitInstructionEpilogue(Instruction* instr); |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 // that should be used when deoptimizing we store it in this variable. | 366 // that should be used when deoptimizing we store it in this variable. |
361 // In future AddDeoptStub should be moved out of the instruction template. | 367 // In future AddDeoptStub should be moved out of the instruction template. |
362 Environment* pending_deoptimization_env_; | 368 Environment* pending_deoptimization_env_; |
363 | 369 |
364 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); | 370 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); |
365 }; | 371 }; |
366 | 372 |
367 } // namespace dart | 373 } // namespace dart |
368 | 374 |
369 #endif // VM_FLOW_GRAPH_COMPILER_X64_H_ | 375 #endif // VM_FLOW_GRAPH_COMPILER_X64_H_ |
OLD | NEW |