| 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_ARM. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM. |
| 6 #if defined(TARGET_ARCH_ARM) | 6 #if defined(TARGET_ARCH_ARM) |
| 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 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 LocationSummary* locs) { | 376 LocationSummary* locs) { |
| 377 UNIMPLEMENTED(); | 377 UNIMPLEMENTED(); |
| 378 } | 378 } |
| 379 | 379 |
| 380 | 380 |
| 381 void FlowGraphCompiler::GenerateDartCall(intptr_t deopt_id, | 381 void FlowGraphCompiler::GenerateDartCall(intptr_t deopt_id, |
| 382 intptr_t token_pos, | 382 intptr_t token_pos, |
| 383 const ExternalLabel* label, | 383 const ExternalLabel* label, |
| 384 PcDescriptors::Kind kind, | 384 PcDescriptors::Kind kind, |
| 385 LocationSummary* locs) { | 385 LocationSummary* locs) { |
| 386 UNIMPLEMENTED(); | 386 __ BranchLinkPatchable(label); |
| 387 AddCurrentDescriptor(kind, deopt_id, token_pos); |
| 388 RecordSafepoint(locs); |
| 389 // Marks either the continuation point in unoptimized code or the |
| 390 // deoptimization point in optimized code, after call. |
| 391 if (is_optimizing()) { |
| 392 AddDeoptIndexAtCall(deopt_id, token_pos); |
| 393 } else { |
| 394 // Add deoptimization continuation point after the call and before the |
| 395 // arguments are removed. |
| 396 AddCurrentDescriptor(PcDescriptors::kDeoptAfter, |
| 397 deopt_id, |
| 398 token_pos); |
| 399 } |
| 387 } | 400 } |
| 388 | 401 |
| 389 | 402 |
| 390 void FlowGraphCompiler::GenerateCallRuntime(intptr_t token_pos, | 403 void FlowGraphCompiler::GenerateCallRuntime(intptr_t token_pos, |
| 391 intptr_t deopt_id, | 404 intptr_t deopt_id, |
| 392 const RuntimeEntry& entry, | 405 const RuntimeEntry& entry, |
| 393 LocationSummary* locs) { | 406 LocationSummary* locs) { |
| 394 __ Unimplemented("call runtime"); | 407 __ Unimplemented("call runtime"); |
| 395 } | 408 } |
| 396 | 409 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 428 UNIMPLEMENTED(); | 441 UNIMPLEMENTED(); |
| 429 } | 442 } |
| 430 | 443 |
| 431 | 444 |
| 432 void FlowGraphCompiler::EmitStaticCall(const Function& function, | 445 void FlowGraphCompiler::EmitStaticCall(const Function& function, |
| 433 const Array& arguments_descriptor, | 446 const Array& arguments_descriptor, |
| 434 intptr_t argument_count, | 447 intptr_t argument_count, |
| 435 intptr_t deopt_id, | 448 intptr_t deopt_id, |
| 436 intptr_t token_pos, | 449 intptr_t token_pos, |
| 437 LocationSummary* locs) { | 450 LocationSummary* locs) { |
| 438 UNIMPLEMENTED(); | 451 __ LoadObject(R4, arguments_descriptor); |
| 452 // Do not use the code from the function, but let the code be patched so that |
| 453 // we can record the outgoing edges to other code. |
| 454 GenerateDartCall(deopt_id, |
| 455 token_pos, |
| 456 &StubCode::CallStaticFunctionLabel(), |
| 457 PcDescriptors::kFuncCall, |
| 458 locs); |
| 459 AddStaticCallTarget(function); |
| 460 __ Drop(argument_count); |
| 439 } | 461 } |
| 440 | 462 |
| 441 | 463 |
| 442 void FlowGraphCompiler::EmitEqualityRegConstCompare(Register reg, | 464 void FlowGraphCompiler::EmitEqualityRegConstCompare(Register reg, |
| 443 const Object& obj, | 465 const Object& obj, |
| 444 bool needs_number_check) { | 466 bool needs_number_check) { |
| 445 UNIMPLEMENTED(); | 467 UNIMPLEMENTED(); |
| 446 } | 468 } |
| 447 | 469 |
| 448 | 470 |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 595 | 617 |
| 596 | 618 |
| 597 void ParallelMoveResolver::Exchange(const Address& mem1, const Address& mem2) { | 619 void ParallelMoveResolver::Exchange(const Address& mem1, const Address& mem2) { |
| 598 UNIMPLEMENTED(); | 620 UNIMPLEMENTED(); |
| 599 } | 621 } |
| 600 | 622 |
| 601 | 623 |
| 602 } // namespace dart | 624 } // namespace dart |
| 603 | 625 |
| 604 #endif // defined TARGET_ARCH_ARM | 626 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |