| 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 |