OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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_ARM64. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM64. |
6 #if defined(TARGET_ARCH_ARM64) | 6 #if defined(TARGET_ARCH_ARM64) |
7 | 7 |
8 #include "vm/intermediate_language.h" | 8 #include "vm/intermediate_language.h" |
9 | 9 |
10 #include "vm/dart_entry.h" | 10 #include "vm/dart_entry.h" |
(...skipping 1117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1128 __ SmiTag(result); | 1128 __ SmiTag(result); |
1129 break; | 1129 break; |
1130 default: | 1130 default: |
1131 ASSERT((class_id() == kArrayCid) || (class_id() == kImmutableArrayCid)); | 1131 ASSERT((class_id() == kArrayCid) || (class_id() == kImmutableArrayCid)); |
1132 __ ldr(result, element_address); | 1132 __ ldr(result, element_address); |
1133 break; | 1133 break; |
1134 } | 1134 } |
1135 } | 1135 } |
1136 | 1136 |
1137 | 1137 |
1138 Representation LoadCodeUnitsInstr::representation() const { | |
1139 switch (class_id()) { | |
1140 case kOneByteStringCid: | |
1141 case kTwoByteStringCid: | |
1142 case kExternalOneByteStringCid: | |
1143 case kExternalTwoByteStringCid: | |
1144 return kTagged; | |
1145 default: | |
1146 UNIMPLEMENTED(); | |
1147 return kTagged; | |
1148 } | |
1149 } | |
1150 | |
1151 | |
1152 LocationSummary* LoadCodeUnitsInstr::MakeLocationSummary(Isolate* isolate, | 1138 LocationSummary* LoadCodeUnitsInstr::MakeLocationSummary(Isolate* isolate, |
1153 bool opt) const { | 1139 bool opt) const { |
1154 const intptr_t kNumInputs = 2; | 1140 const intptr_t kNumInputs = 2; |
1155 const intptr_t kNumTemps = 0; | 1141 const intptr_t kNumTemps = 0; |
1156 LocationSummary* summary = new(isolate) LocationSummary( | 1142 LocationSummary* summary = new(isolate) LocationSummary( |
1157 isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); | 1143 isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
1158 summary->set_in(0, Location::RequiresRegister()); | 1144 summary->set_in(0, Location::RequiresRegister()); |
1159 summary->set_in(1, Location::RequiresRegister()); | 1145 summary->set_in(1, Location::RequiresRegister()); |
1160 summary->set_out(0, Location::RequiresRegister()); | 1146 summary->set_out(0, Location::RequiresRegister()); |
1161 return summary; | 1147 return summary; |
(...skipping 4437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5599 compiler->GenerateCall(token_pos(), &label, stub_kind_, locs()); | 5585 compiler->GenerateCall(token_pos(), &label, stub_kind_, locs()); |
5600 #if defined(DEBUG) | 5586 #if defined(DEBUG) |
5601 __ LoadImmediate(R4, kInvalidObjectPointer, kNoPP); | 5587 __ LoadImmediate(R4, kInvalidObjectPointer, kNoPP); |
5602 __ LoadImmediate(R5, kInvalidObjectPointer, kNoPP); | 5588 __ LoadImmediate(R5, kInvalidObjectPointer, kNoPP); |
5603 #endif | 5589 #endif |
5604 } | 5590 } |
5605 | 5591 |
5606 } // namespace dart | 5592 } // namespace dart |
5607 | 5593 |
5608 #endif // defined TARGET_ARCH_ARM64 | 5594 #endif // defined TARGET_ARCH_ARM64 |
OLD | NEW |