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 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS. |
6 #if defined(TARGET_ARCH_MIPS) | 6 #if defined(TARGET_ARCH_MIPS) |
7 | 7 |
8 #include "vm/flow_graph_compiler.h" | 8 #include "vm/flow_graph_compiler.h" |
9 | 9 |
10 #include "lib/error.h" | 10 #include "lib/error.h" |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 } | 245 } |
246 } else { | 246 } else { |
247 AddCurrentDescriptor(PcDescriptors::kEntryPatch, | 247 AddCurrentDescriptor(PcDescriptors::kEntryPatch, |
248 Isolate::kNoDeoptId, | 248 Isolate::kNoDeoptId, |
249 0); // No token position. | 249 0); // No token position. |
250 } | 250 } |
251 __ Comment("Enter frame"); | 251 __ Comment("Enter frame"); |
252 __ EnterDartFrame((StackSize() * kWordSize)); | 252 __ EnterDartFrame((StackSize() * kWordSize)); |
253 } | 253 } |
254 | 254 |
| 255 |
255 // Input parameters: | 256 // Input parameters: |
256 // RA: return address. | 257 // RA: return address. |
257 // SP: address of last argument. | 258 // SP: address of last argument. |
258 // FP: caller's frame pointer. | 259 // FP: caller's frame pointer. |
259 // PP: caller's pool pointer. | 260 // PP: caller's pool pointer. |
260 // S5: ic-data. | 261 // S5: ic-data. |
261 // S4: arguments descriptor array. | 262 // S4: arguments descriptor array. |
262 void FlowGraphCompiler::CompileGraph() { | 263 void FlowGraphCompiler::CompileGraph() { |
263 InitCompiler(); | 264 InitCompiler(); |
264 if (TryIntrinsify()) { | 265 if (TryIntrinsify()) { |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 Isolate::kNoDeoptId, | 398 Isolate::kNoDeoptId, |
398 0); // No token position. | 399 0); // No token position. |
399 __ Branch(&StubCode::DeoptimizeLazyLabel()); | 400 __ Branch(&StubCode::DeoptimizeLazyLabel()); |
400 } | 401 } |
401 | 402 |
402 | 403 |
403 void FlowGraphCompiler::GenerateCall(intptr_t token_pos, | 404 void FlowGraphCompiler::GenerateCall(intptr_t token_pos, |
404 const ExternalLabel* label, | 405 const ExternalLabel* label, |
405 PcDescriptors::Kind kind, | 406 PcDescriptors::Kind kind, |
406 LocationSummary* locs) { | 407 LocationSummary* locs) { |
407 UNIMPLEMENTED(); | 408 __ BranchLinkPatchable(label); |
| 409 AddCurrentDescriptor(kind, Isolate::kNoDeoptId, token_pos); |
| 410 RecordSafepoint(locs); |
408 } | 411 } |
409 | 412 |
410 | 413 |
411 void FlowGraphCompiler::GenerateDartCall(intptr_t deopt_id, | 414 void FlowGraphCompiler::GenerateDartCall(intptr_t deopt_id, |
412 intptr_t token_pos, | 415 intptr_t token_pos, |
413 const ExternalLabel* label, | 416 const ExternalLabel* label, |
414 PcDescriptors::Kind kind, | 417 PcDescriptors::Kind kind, |
415 LocationSummary* locs) { | 418 LocationSummary* locs) { |
416 __ BranchLinkPatchable(label); | 419 __ BranchLinkPatchable(label); |
417 AddCurrentDescriptor(kind, deopt_id, token_pos); | 420 AddCurrentDescriptor(kind, deopt_id, token_pos); |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
665 | 668 |
666 | 669 |
667 void ParallelMoveResolver::Exchange(const Address& mem1, const Address& mem2) { | 670 void ParallelMoveResolver::Exchange(const Address& mem1, const Address& mem2) { |
668 UNIMPLEMENTED(); | 671 UNIMPLEMENTED(); |
669 } | 672 } |
670 | 673 |
671 | 674 |
672 } // namespace dart | 675 } // namespace dart |
673 | 676 |
674 #endif // defined TARGET_ARCH_MIPS | 677 #endif // defined TARGET_ARCH_MIPS |
OLD | NEW |