| 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 620 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 631 } | 631 } |
| 632 | 632 |
| 633 | 633 |
| 634 void FlowGraphCompiler::EmitInstructionPrologue(Instruction* instr) { | 634 void FlowGraphCompiler::EmitInstructionPrologue(Instruction* instr) { |
| 635 if (!is_optimizing()) { | 635 if (!is_optimizing()) { |
| 636 if (FLAG_enable_type_checks && instr->IsAssertAssignable()) { | 636 if (FLAG_enable_type_checks && instr->IsAssertAssignable()) { |
| 637 AssertAssignableInstr* assert = instr->AsAssertAssignable(); | 637 AssertAssignableInstr* assert = instr->AsAssertAssignable(); |
| 638 AddCurrentDescriptor(PcDescriptors::kDeopt, | 638 AddCurrentDescriptor(PcDescriptors::kDeopt, |
| 639 assert->deopt_id(), | 639 assert->deopt_id(), |
| 640 assert->token_pos()); | 640 assert->token_pos()); |
| 641 } else if (instr->IsGuardField()) { | 641 } else if (instr->CanBeDeoptimizationTarget() || instr->IsGuardField()) { |
| 642 GuardFieldInstr* guard = instr->AsGuardField(); | |
| 643 AddCurrentDescriptor(PcDescriptors::kDeopt, | |
| 644 guard->deopt_id(), | |
| 645 Scanner::kDummyTokenIndex); | |
| 646 } else if (instr->CanBeDeoptimizationTarget()) { | |
| 647 AddCurrentDescriptor(PcDescriptors::kDeopt, | 642 AddCurrentDescriptor(PcDescriptors::kDeopt, |
| 648 instr->deopt_id(), | 643 instr->deopt_id(), |
| 649 Scanner::kDummyTokenIndex); | 644 Scanner::kDummyTokenIndex); |
| 650 } | 645 } |
| 651 AllocateRegistersLocally(instr); | 646 AllocateRegistersLocally(instr); |
| 652 } | 647 } |
| 653 } | 648 } |
| 654 | 649 |
| 655 | 650 |
| 656 void FlowGraphCompiler::EmitInstructionEpilogue(Instruction* instr) { | 651 void FlowGraphCompiler::EmitInstructionEpilogue(Instruction* instr) { |
| (...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1575 void ParallelMoveResolver::RestoreFpuScratch(FpuRegister reg) { | 1570 void ParallelMoveResolver::RestoreFpuScratch(FpuRegister reg) { |
| 1576 __ vldrd(reg, Address(SP, kDoubleSize, Address::PostIndex)); | 1571 __ vldrd(reg, Address(SP, kDoubleSize, Address::PostIndex)); |
| 1577 } | 1572 } |
| 1578 | 1573 |
| 1579 | 1574 |
| 1580 #undef __ | 1575 #undef __ |
| 1581 | 1576 |
| 1582 } // namespace dart | 1577 } // namespace dart |
| 1583 | 1578 |
| 1584 #endif // defined TARGET_ARCH_ARM | 1579 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |