| 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_X64. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_X64. |
| 6 #if defined(TARGET_ARCH_X64) | 6 #if defined(TARGET_ARCH_X64) |
| 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 1113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1124 __ SmiTag(result); | 1124 __ SmiTag(result); |
| 1125 break; | 1125 break; |
| 1126 default: | 1126 default: |
| 1127 ASSERT((class_id() == kArrayCid) || (class_id() == kImmutableArrayCid)); | 1127 ASSERT((class_id() == kArrayCid) || (class_id() == kImmutableArrayCid)); |
| 1128 __ movq(result, element_address); | 1128 __ movq(result, element_address); |
| 1129 break; | 1129 break; |
| 1130 } | 1130 } |
| 1131 } | 1131 } |
| 1132 | 1132 |
| 1133 | 1133 |
| 1134 Representation LoadCodeUnitsInstr::representation() const { | |
| 1135 switch (class_id()) { | |
| 1136 case kOneByteStringCid: | |
| 1137 case kTwoByteStringCid: | |
| 1138 case kExternalOneByteStringCid: | |
| 1139 case kExternalTwoByteStringCid: | |
| 1140 return kTagged; | |
| 1141 default: | |
| 1142 UNIMPLEMENTED(); | |
| 1143 return kTagged; | |
| 1144 } | |
| 1145 } | |
| 1146 | |
| 1147 | |
| 1148 LocationSummary* LoadCodeUnitsInstr::MakeLocationSummary(Isolate* isolate, | 1134 LocationSummary* LoadCodeUnitsInstr::MakeLocationSummary(Isolate* isolate, |
| 1149 bool opt) const { | 1135 bool opt) const { |
| 1150 const intptr_t kNumInputs = 2; | 1136 const intptr_t kNumInputs = 2; |
| 1151 const intptr_t kNumTemps = 0; | 1137 const intptr_t kNumTemps = 0; |
| 1152 LocationSummary* summary = new(isolate) LocationSummary( | 1138 LocationSummary* summary = new(isolate) LocationSummary( |
| 1153 isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); | 1139 isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
| 1154 summary->set_in(0, Location::RequiresRegister()); | 1140 summary->set_in(0, Location::RequiresRegister()); |
| 1155 // The smi index is either untagged (element size == 1), or it is left smi | 1141 // The smi index is either untagged (element size == 1), or it is left smi |
| 1156 // tagged (for all element sizes > 1). | 1142 // tagged (for all element sizes > 1). |
| 1157 summary->set_in(1, index_scale() == 1 ? Location::WritableRegister() | 1143 summary->set_in(1, index_scale() == 1 ? Location::WritableRegister() |
| (...skipping 5239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6397 __ movq(R10, Immediate(kInvalidObjectPointer)); | 6383 __ movq(R10, Immediate(kInvalidObjectPointer)); |
| 6398 __ movq(RBX, Immediate(kInvalidObjectPointer)); | 6384 __ movq(RBX, Immediate(kInvalidObjectPointer)); |
| 6399 #endif | 6385 #endif |
| 6400 } | 6386 } |
| 6401 | 6387 |
| 6402 } // namespace dart | 6388 } // namespace dart |
| 6403 | 6389 |
| 6404 #undef __ | 6390 #undef __ |
| 6405 | 6391 |
| 6406 #endif // defined TARGET_ARCH_X64 | 6392 #endif // defined TARGET_ARCH_X64 |
| OLD | NEW |