| 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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 __ Push(IP); | 58 __ Push(IP); |
| 59 } | 59 } |
| 60 } | 60 } |
| 61 } | 61 } |
| 62 | 62 |
| 63 | 63 |
| 64 LocationSummary* ReturnInstr::MakeLocationSummary() const { | 64 LocationSummary* ReturnInstr::MakeLocationSummary() const { |
| 65 const intptr_t kNumInputs = 1; | 65 const intptr_t kNumInputs = 1; |
| 66 const intptr_t kNumTemps = 0; | 66 const intptr_t kNumTemps = 0; |
| 67 LocationSummary* locs = | 67 LocationSummary* locs = |
| 68 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); | 68 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
| 69 locs->set_in(0, Location::RegisterLocation(R0)); | 69 locs->set_in(0, Location::RegisterLocation(R0)); |
| 70 return locs; | 70 return locs; |
| 71 } | 71 } |
| 72 | 72 |
| 73 | 73 |
| 74 // Attempt optimized compilation at return instruction instead of at the entry. | 74 // Attempt optimized compilation at return instruction instead of at the entry. |
| 75 // The entry needs to be patchable, no inlined objects are allowed in the area | 75 // The entry needs to be patchable, no inlined objects are allowed in the area |
| 76 // that will be overwritten by the patch instructions: a branch macro sequence. | 76 // that will be overwritten by the patch instructions: a branch macro sequence. |
| 77 void ReturnInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 77 void ReturnInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 78 Register result = locs()->in(0).reg(); | 78 Register result = locs()->in(0).reg(); |
| (...skipping 2237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2316 &label, | 2316 &label, |
| 2317 PcDescriptors::kOther, | 2317 PcDescriptors::kOther, |
| 2318 locs()); | 2318 locs()); |
| 2319 __ Drop(2); // Discard type arguments and receiver. | 2319 __ Drop(2); // Discard type arguments and receiver. |
| 2320 } | 2320 } |
| 2321 | 2321 |
| 2322 } // namespace dart | 2322 } // namespace dart |
| 2323 | 2323 |
| 2324 #endif // defined TARGET_ARCH_ARM | 2324 #endif // defined TARGET_ARCH_ARM |
| 2325 | 2325 |
| OLD | NEW |