OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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_DBC. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_DBC. |
6 #if defined(TARGET_ARCH_DBC) | 6 #if defined(TARGET_ARCH_DBC) |
7 | 7 |
8 #include "vm/intermediate_language.h" | 8 #include "vm/intermediate_language.h" |
9 | 9 |
10 #include "vm/cpu.h" | 10 #include "vm/cpu.h" |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 } | 205 } |
206 | 206 |
207 | 207 |
208 LocationSummary* PolymorphicInstanceCallInstr::MakeLocationSummary( | 208 LocationSummary* PolymorphicInstanceCallInstr::MakeLocationSummary( |
209 Zone* zone, bool optimizing) const { | 209 Zone* zone, bool optimizing) const { |
210 return MakeCallSummary(zone); | 210 return MakeCallSummary(zone); |
211 } | 211 } |
212 | 212 |
213 | 213 |
214 void PolymorphicInstanceCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 214 void PolymorphicInstanceCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 215 #if defined(PRODUCT) |
| 216 compiler->Bailout("PolymorphicInstanceCallInstr::EmitNativeCode"); |
| 217 #else // defined(PRODUCT) |
215 compiler->Bailout(ToCString()); | 218 compiler->Bailout(ToCString()); |
| 219 #endif // defined(PRODUCT) |
216 } | 220 } |
217 | 221 |
218 | 222 |
219 EMIT_NATIVE_CODE(CheckStackOverflow, | 223 EMIT_NATIVE_CODE(CheckStackOverflow, |
220 0, Location::NoLocation(), | 224 0, Location::NoLocation(), |
221 LocationSummary::kCall) { | 225 LocationSummary::kCall) { |
222 __ CheckStack(); | 226 __ CheckStack(); |
223 compiler->RecordSafepoint(locs()); | 227 compiler->RecordSafepoint(locs()); |
224 compiler->AddCurrentDescriptor(RawPcDescriptors::kRuntimeCall, | 228 compiler->AddCurrentDescriptor(RawPcDescriptors::kRuntimeCall, |
225 Thread::kNoDeoptId, | 229 Thread::kNoDeoptId, |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
498 compiler->RecordSafepoint(locs()); | 502 compiler->RecordSafepoint(locs()); |
499 if (compiler->is_optimizing()) { | 503 if (compiler->is_optimizing()) { |
500 __ PopLocal(locs()->out(0).reg()); | 504 __ PopLocal(locs()->out(0).reg()); |
501 } | 505 } |
502 } | 506 } |
503 | 507 |
504 | 508 |
505 EMIT_NATIVE_CODE(StoreIndexed, 3) { | 509 EMIT_NATIVE_CODE(StoreIndexed, 3) { |
506 if (compiler->is_optimizing()) { | 510 if (compiler->is_optimizing()) { |
507 if (class_id() != kArrayCid) { | 511 if (class_id() != kArrayCid) { |
| 512 #if defined(PRODUCT) |
| 513 compiler->Bailout("StoreIndexed"); |
| 514 #else // defined(PRODUCT) |
508 compiler->Bailout(ToCString()); | 515 compiler->Bailout(ToCString()); |
| 516 #endif // defined(PRODUCT) |
509 } | 517 } |
510 | 518 |
511 __ StoreIndexed(locs()->in(kArrayPos).reg(), | 519 __ StoreIndexed(locs()->in(kArrayPos).reg(), |
512 locs()->in(kIndexPos).reg(), | 520 locs()->in(kIndexPos).reg(), |
513 locs()->in(kValuePos).reg()); | 521 locs()->in(kValuePos).reg()); |
514 } else { | 522 } else { |
515 ASSERT(class_id() == kArrayCid); | 523 ASSERT(class_id() == kArrayCid); |
516 __ StoreIndexedTOS(); | 524 __ StoreIndexedTOS(); |
517 } | 525 } |
518 } | 526 } |
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
891 ASSERT(values_[values_.length() - i - 1]->definition()->IsPushArgument()); | 899 ASSERT(values_[values_.length() - i - 1]->definition()->IsPushArgument()); |
892 } | 900 } |
893 #endif | 901 #endif |
894 values_.TruncateTo(values_.length() - argc); | 902 values_.TruncateTo(values_.length() - argc); |
895 } | 903 } |
896 | 904 |
897 | 905 |
898 } // namespace dart | 906 } // namespace dart |
899 | 907 |
900 #endif // defined TARGET_ARCH_DBC | 908 #endif // defined TARGET_ARCH_DBC |
OLD | NEW |