| 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/intermediate_language.h" | 8 #include "vm/intermediate_language.h" |
| 9 | 9 |
| 10 #include "lib/error.h" | 10 #include "lib/error.h" |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 // A finally clause may leave a previously pushed return value if it | 64 // A finally clause may leave a previously pushed return value if it |
| 65 // has its own return instruction. Method that have finally are currently | 65 // has its own return instruction. Method that have finally are currently |
| 66 // not optimized. | 66 // not optimized. |
| 67 if (!compiler->HasFinally()) { | 67 if (!compiler->HasFinally()) { |
| 68 __ sub(R2, FP, ShifterOperand(SP)); | 68 __ sub(R2, FP, ShifterOperand(SP)); |
| 69 // + 1 for saved PP. | 69 // + 1 for saved PP. |
| 70 __ CompareImmediate(R2, (compiler->StackSize() + 1) * kWordSize); | 70 __ CompareImmediate(R2, (compiler->StackSize() + 1) * kWordSize); |
| 71 __ bkpt(0, NE); | 71 __ bkpt(0, NE); |
| 72 } | 72 } |
| 73 #endif | 73 #endif |
| 74 AssemblerMacros::LeaveDartFrame(compiler->assembler()); | 74 __ LeaveDartFrame(); |
| 75 __ Ret(); | 75 __ Ret(); |
| 76 | 76 |
| 77 // Generate 2 NOP instructions so that the debugger can patch the return | 77 // Generate 2 NOP instructions so that the debugger can patch the return |
| 78 // pattern (1 instruction) with a call to the debug stub (3 instructions). | 78 // pattern (1 instruction) with a call to the debug stub (3 instructions). |
| 79 __ nop(); | 79 __ nop(); |
| 80 __ nop(); | 80 __ nop(); |
| 81 compiler->AddCurrentDescriptor(PcDescriptors::kReturn, | 81 compiler->AddCurrentDescriptor(PcDescriptors::kReturn, |
| 82 Isolate::kNoDeoptId, | 82 Isolate::kNoDeoptId, |
| 83 token_pos()); | 83 token_pos()); |
| 84 } | 84 } |
| (...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 825 | 825 |
| 826 | 826 |
| 827 void CreateClosureInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 827 void CreateClosureInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 828 UNIMPLEMENTED(); | 828 UNIMPLEMENTED(); |
| 829 } | 829 } |
| 830 | 830 |
| 831 } // namespace dart | 831 } // namespace dart |
| 832 | 832 |
| 833 #endif // defined TARGET_ARCH_ARM | 833 #endif // defined TARGET_ARCH_ARM |
| 834 | 834 |
| OLD | NEW |