Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: dart/runtime/vm/intermediate_language_mips.cc

Issue 59073003: Version 0.8.10.4 (Closed) Base URL: http://dart.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_MIPS. 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS.
6 #if defined(TARGET_ARCH_MIPS) 6 #if defined(TARGET_ARCH_MIPS)
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 1021 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 switch (class_id_) { 1032 switch (class_id_) {
1033 case kArrayCid: 1033 case kArrayCid:
1034 case kImmutableArrayCid: 1034 case kImmutableArrayCid:
1035 return CompileType::Dynamic(); 1035 return CompileType::Dynamic();
1036 1036
1037 case kTypedDataFloat32ArrayCid: 1037 case kTypedDataFloat32ArrayCid:
1038 case kTypedDataFloat64ArrayCid: 1038 case kTypedDataFloat64ArrayCid:
1039 return CompileType::FromCid(kDoubleCid); 1039 return CompileType::FromCid(kDoubleCid);
1040 case kTypedDataFloat32x4ArrayCid: 1040 case kTypedDataFloat32x4ArrayCid:
1041 return CompileType::FromCid(kFloat32x4Cid); 1041 return CompileType::FromCid(kFloat32x4Cid);
1042 case kTypedDataUint32x4ArrayCid: 1042 case kTypedDataInt32x4ArrayCid:
1043 return CompileType::FromCid(kUint32x4Cid); 1043 return CompileType::FromCid(kInt32x4Cid);
1044 1044
1045 case kTypedDataInt8ArrayCid: 1045 case kTypedDataInt8ArrayCid:
1046 case kTypedDataUint8ArrayCid: 1046 case kTypedDataUint8ArrayCid:
1047 case kTypedDataUint8ClampedArrayCid: 1047 case kTypedDataUint8ClampedArrayCid:
1048 case kExternalTypedDataUint8ArrayCid: 1048 case kExternalTypedDataUint8ArrayCid:
1049 case kExternalTypedDataUint8ClampedArrayCid: 1049 case kExternalTypedDataUint8ClampedArrayCid:
1050 case kTypedDataInt16ArrayCid: 1050 case kTypedDataInt16ArrayCid:
1051 case kTypedDataUint16ArrayCid: 1051 case kTypedDataUint16ArrayCid:
1052 case kOneByteStringCid: 1052 case kOneByteStringCid:
1053 case kTwoByteStringCid: 1053 case kTwoByteStringCid:
(...skipping 29 matching lines...) Expand all
1083 case kTwoByteStringCid: 1083 case kTwoByteStringCid:
1084 return kTagged; 1084 return kTagged;
1085 case kTypedDataInt32ArrayCid: 1085 case kTypedDataInt32ArrayCid:
1086 case kTypedDataUint32ArrayCid: 1086 case kTypedDataUint32ArrayCid:
1087 // Instruction can deoptimize if we optimistically assumed that the result 1087 // Instruction can deoptimize if we optimistically assumed that the result
1088 // fits into Smi. 1088 // fits into Smi.
1089 return CanDeoptimize() ? kTagged : kUnboxedMint; 1089 return CanDeoptimize() ? kTagged : kUnboxedMint;
1090 case kTypedDataFloat32ArrayCid: 1090 case kTypedDataFloat32ArrayCid:
1091 case kTypedDataFloat64ArrayCid: 1091 case kTypedDataFloat64ArrayCid:
1092 return kUnboxedDouble; 1092 return kUnboxedDouble;
1093 case kTypedDataUint32x4ArrayCid: 1093 case kTypedDataInt32x4ArrayCid:
1094 return kUnboxedUint32x4; 1094 return kUnboxedInt32x4;
1095 case kTypedDataFloat32x4ArrayCid: 1095 case kTypedDataFloat32x4ArrayCid:
1096 return kUnboxedFloat32x4; 1096 return kUnboxedFloat32x4;
1097 default: 1097 default:
1098 UNIMPLEMENTED(); 1098 UNIMPLEMENTED();
1099 return kTagged; 1099 return kTagged;
1100 } 1100 }
1101 } 1101 }
1102 1102
1103 1103
1104 LocationSummary* LoadIndexedInstr::MakeLocationSummary() const { 1104 LocationSummary* LoadIndexedInstr::MakeLocationSummary() const {
1105 const intptr_t kNumInputs = 2; 1105 const intptr_t kNumInputs = 2;
1106 const intptr_t kNumTemps = 0; 1106 const intptr_t kNumTemps = 0;
1107 LocationSummary* locs = 1107 LocationSummary* locs =
1108 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); 1108 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
1109 locs->set_in(0, Location::RequiresRegister()); 1109 locs->set_in(0, Location::RequiresRegister());
1110 // The smi index is either untagged (element size == 1), or it is left smi 1110 // The smi index is either untagged (element size == 1), or it is left smi
1111 // tagged (for all element sizes > 1). 1111 // tagged (for all element sizes > 1).
1112 // TODO(regis): Revisit and see if the index can be immediate. 1112 // TODO(regis): Revisit and see if the index can be immediate.
1113 locs->set_in(1, Location::WritableRegister()); 1113 locs->set_in(1, Location::WritableRegister());
1114 if ((representation() == kUnboxedDouble) || 1114 if ((representation() == kUnboxedDouble) ||
1115 (representation() == kUnboxedFloat32x4) || 1115 (representation() == kUnboxedFloat32x4) ||
1116 (representation() == kUnboxedUint32x4)) { 1116 (representation() == kUnboxedInt32x4)) {
1117 locs->set_out(Location::RequiresFpuRegister()); 1117 locs->set_out(Location::RequiresFpuRegister());
1118 } else { 1118 } else {
1119 locs->set_out(Location::RequiresRegister()); 1119 locs->set_out(Location::RequiresRegister());
1120 } 1120 }
1121 return locs; 1121 return locs;
1122 } 1122 }
1123 1123
1124 1124
1125 void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 1125 void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
1126 __ TraceSimMsg("LoadIndexedInstr"); 1126 __ TraceSimMsg("LoadIndexedInstr");
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1166 // If the data offset doesn't fit into the 18 bits we get for the addressing 1166 // If the data offset doesn't fit into the 18 bits we get for the addressing
1167 // mode, then we must load the offset into a register and add it to the 1167 // mode, then we must load the offset into a register and add it to the
1168 // index. 1168 // index.
1169 element_address = Address(index.reg(), 1169 element_address = Address(index.reg(),
1170 FlowGraphCompiler::DataOffsetFor(class_id()) - kHeapObjectTag); 1170 FlowGraphCompiler::DataOffsetFor(class_id()) - kHeapObjectTag);
1171 } 1171 }
1172 1172
1173 if ((representation() == kUnboxedDouble) || 1173 if ((representation() == kUnboxedDouble) ||
1174 (representation() == kUnboxedMint) || 1174 (representation() == kUnboxedMint) ||
1175 (representation() == kUnboxedFloat32x4) || 1175 (representation() == kUnboxedFloat32x4) ||
1176 (representation() == kUnboxedUint32x4)) { 1176 (representation() == kUnboxedInt32x4)) {
1177 DRegister result = locs()->out().fpu_reg(); 1177 DRegister result = locs()->out().fpu_reg();
1178 switch (class_id()) { 1178 switch (class_id()) {
1179 case kTypedDataInt32ArrayCid: 1179 case kTypedDataInt32ArrayCid:
1180 UNIMPLEMENTED(); 1180 UNIMPLEMENTED();
1181 break; 1181 break;
1182 case kTypedDataUint32ArrayCid: 1182 case kTypedDataUint32ArrayCid:
1183 UNIMPLEMENTED(); 1183 UNIMPLEMENTED();
1184 break; 1184 break;
1185 case kTypedDataFloat32ArrayCid: 1185 case kTypedDataFloat32ArrayCid:
1186 // Load single precision float and promote to double. 1186 // Load single precision float and promote to double.
1187 __ lwc1(STMP1, element_address); 1187 __ lwc1(STMP1, element_address);
1188 __ cvtds(result, STMP1); 1188 __ cvtds(result, STMP1);
1189 break; 1189 break;
1190 case kTypedDataFloat64ArrayCid: 1190 case kTypedDataFloat64ArrayCid:
1191 __ LoadDFromOffset(result, index.reg(), 1191 __ LoadDFromOffset(result, index.reg(),
1192 FlowGraphCompiler::DataOffsetFor(class_id()) - kHeapObjectTag); 1192 FlowGraphCompiler::DataOffsetFor(class_id()) - kHeapObjectTag);
1193 break; 1193 break;
1194 case kTypedDataUint32x4ArrayCid: 1194 case kTypedDataInt32x4ArrayCid:
1195 case kTypedDataFloat32x4ArrayCid: 1195 case kTypedDataFloat32x4ArrayCid:
1196 UNIMPLEMENTED(); 1196 UNIMPLEMENTED();
1197 break; 1197 break;
1198 } 1198 }
1199 return; 1199 return;
1200 } 1200 }
1201 1201
1202 Register result = locs()->out().reg(); 1202 Register result = locs()->out().reg();
1203 switch (class_id()) { 1203 switch (class_id()) {
1204 case kTypedDataInt8ArrayCid: 1204 case kTypedDataInt8ArrayCid:
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1268 case kTypedDataUint16ArrayCid: 1268 case kTypedDataUint16ArrayCid:
1269 return kTagged; 1269 return kTagged;
1270 case kTypedDataInt32ArrayCid: 1270 case kTypedDataInt32ArrayCid:
1271 case kTypedDataUint32ArrayCid: 1271 case kTypedDataUint32ArrayCid:
1272 return value()->IsSmiValue() ? kTagged : kUnboxedMint; 1272 return value()->IsSmiValue() ? kTagged : kUnboxedMint;
1273 case kTypedDataFloat32ArrayCid: 1273 case kTypedDataFloat32ArrayCid:
1274 case kTypedDataFloat64ArrayCid: 1274 case kTypedDataFloat64ArrayCid:
1275 return kUnboxedDouble; 1275 return kUnboxedDouble;
1276 case kTypedDataFloat32x4ArrayCid: 1276 case kTypedDataFloat32x4ArrayCid:
1277 return kUnboxedFloat32x4; 1277 return kUnboxedFloat32x4;
1278 case kTypedDataUint32x4ArrayCid: 1278 case kTypedDataInt32x4ArrayCid:
1279 return kUnboxedUint32x4; 1279 return kUnboxedInt32x4;
1280 default: 1280 default:
1281 UNIMPLEMENTED(); 1281 UNIMPLEMENTED();
1282 return kTagged; 1282 return kTagged;
1283 } 1283 }
1284 } 1284 }
1285 1285
1286 1286
1287 LocationSummary* StoreIndexedInstr::MakeLocationSummary() const { 1287 LocationSummary* StoreIndexedInstr::MakeLocationSummary() const {
1288 const intptr_t kNumInputs = 3; 1288 const intptr_t kNumInputs = 3;
1289 const intptr_t kNumTemps = 0; 1289 const intptr_t kNumTemps = 0;
(...skipping 21 matching lines...) Expand all
1311 case kTypedDataInt32ArrayCid: 1311 case kTypedDataInt32ArrayCid:
1312 case kTypedDataUint32ArrayCid: 1312 case kTypedDataUint32ArrayCid:
1313 locs->set_in(2, Location::WritableRegister()); 1313 locs->set_in(2, Location::WritableRegister());
1314 break; 1314 break;
1315 case kTypedDataFloat32ArrayCid: 1315 case kTypedDataFloat32ArrayCid:
1316 // TODO(regis): Verify. 1316 // TODO(regis): Verify.
1317 // Need temp register for float-to-double conversion. 1317 // Need temp register for float-to-double conversion.
1318 locs->AddTemp(Location::RequiresFpuRegister()); 1318 locs->AddTemp(Location::RequiresFpuRegister());
1319 // Fall through. 1319 // Fall through.
1320 case kTypedDataFloat64ArrayCid: // TODO(srdjan): Support Float64 constants. 1320 case kTypedDataFloat64ArrayCid: // TODO(srdjan): Support Float64 constants.
1321 case kTypedDataUint32x4ArrayCid: 1321 case kTypedDataInt32x4ArrayCid:
1322 case kTypedDataFloat32x4ArrayCid: 1322 case kTypedDataFloat32x4ArrayCid:
1323 locs->set_in(2, Location::RequiresFpuRegister()); 1323 locs->set_in(2, Location::RequiresFpuRegister());
1324 break; 1324 break;
1325 default: 1325 default:
1326 UNREACHABLE(); 1326 UNREACHABLE();
1327 return NULL; 1327 return NULL;
1328 } 1328 }
1329 return locs; 1329 return locs;
1330 } 1330 }
1331 1331
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1451 case kTypedDataFloat32ArrayCid: 1451 case kTypedDataFloat32ArrayCid:
1452 // Convert to single precision. 1452 // Convert to single precision.
1453 __ cvtsd(STMP1, locs()->in(2).fpu_reg()); 1453 __ cvtsd(STMP1, locs()->in(2).fpu_reg());
1454 // Store. 1454 // Store.
1455 __ swc1(STMP1, element_address); 1455 __ swc1(STMP1, element_address);
1456 break; 1456 break;
1457 case kTypedDataFloat64ArrayCid: 1457 case kTypedDataFloat64ArrayCid:
1458 __ StoreDToOffset(locs()->in(2).fpu_reg(), index.reg(), 1458 __ StoreDToOffset(locs()->in(2).fpu_reg(), index.reg(),
1459 FlowGraphCompiler::DataOffsetFor(class_id()) - kHeapObjectTag); 1459 FlowGraphCompiler::DataOffsetFor(class_id()) - kHeapObjectTag);
1460 break; 1460 break;
1461 case kTypedDataUint32x4ArrayCid: 1461 case kTypedDataInt32x4ArrayCid:
1462 case kTypedDataFloat32x4ArrayCid: 1462 case kTypedDataFloat32x4ArrayCid:
1463 UNIMPLEMENTED(); 1463 UNIMPLEMENTED();
1464 break; 1464 break;
1465 default: 1465 default:
1466 UNREACHABLE(); 1466 UNREACHABLE();
1467 } 1467 }
1468 } 1468 }
1469 1469
1470 1470
1471 LocationSummary* GuardFieldInstr::MakeLocationSummary() const { 1471 LocationSummary* GuardFieldInstr::MakeLocationSummary() const {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
1579 // list length here, without this check the list length could change 1579 // list length here, without this check the list length could change
1580 // without triggering a deoptimization. 1580 // without triggering a deoptimization.
1581 Label check_array, length_compared, no_fixed_length; 1581 Label check_array, length_compared, no_fixed_length;
1582 // If length is negative the length guard is either disabled or 1582 // If length is negative the length guard is either disabled or
1583 // has not been initialized, either way it is safe to skip the 1583 // has not been initialized, either way it is safe to skip the
1584 // length check. 1584 // length check.
1585 __ lw(CMPRES1, field_length_operand); 1585 __ lw(CMPRES1, field_length_operand);
1586 __ BranchSignedLess(CMPRES1, 0, &skip_length_check); 1586 __ BranchSignedLess(CMPRES1, 0, &skip_length_check);
1587 __ BranchEqual(value_cid_reg, kNullCid, &no_fixed_length); 1587 __ BranchEqual(value_cid_reg, kNullCid, &no_fixed_length);
1588 // Check for typed data array. 1588 // Check for typed data array.
1589 __ BranchSignedGreater(value_cid_reg, kTypedDataUint32x4ArrayCid, 1589 __ BranchSignedGreater(value_cid_reg, kTypedDataInt32x4ArrayCid,
1590 &no_fixed_length); 1590 &no_fixed_length);
1591 __ BranchSignedLess(value_cid_reg, kTypedDataInt8ArrayCid, 1591 __ BranchSignedLess(value_cid_reg, kTypedDataInt8ArrayCid,
1592 &check_array); 1592 &check_array);
1593 __ lw(TMP, FieldAddress(value_reg, TypedData::length_offset())); 1593 __ lw(TMP, FieldAddress(value_reg, TypedData::length_offset()));
1594 __ lw(CMPRES1, field_length_operand); 1594 __ lw(CMPRES1, field_length_operand);
1595 __ subu(CMPRES1, TMP, CMPRES1); 1595 __ subu(CMPRES1, TMP, CMPRES1);
1596 __ b(&length_compared); 1596 __ b(&length_compared);
1597 // Check for regular array. 1597 // Check for regular array.
1598 __ Bind(&check_array); 1598 __ Bind(&check_array);
1599 __ BranchSignedGreater(value_cid_reg, kImmutableArrayCid, 1599 __ BranchSignedGreater(value_cid_reg, kImmutableArrayCid,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1655 __ lw(CMPRES1, field_cid_operand); 1655 __ lw(CMPRES1, field_cid_operand);
1656 __ BranchNotEqual(CMPRES1, kIllegalCid, fail); 1656 __ BranchNotEqual(CMPRES1, kIllegalCid, fail);
1657 1657
1658 if (value_cid == kDynamicCid) { 1658 if (value_cid == kDynamicCid) {
1659 __ sw(value_cid_reg, field_cid_operand); 1659 __ sw(value_cid_reg, field_cid_operand);
1660 __ sw(value_cid_reg, field_nullability_operand); 1660 __ sw(value_cid_reg, field_nullability_operand);
1661 if (field_has_length) { 1661 if (field_has_length) {
1662 Label check_array, length_set, no_fixed_length; 1662 Label check_array, length_set, no_fixed_length;
1663 __ BranchEqual(value_cid_reg, kNullCid, &no_fixed_length); 1663 __ BranchEqual(value_cid_reg, kNullCid, &no_fixed_length);
1664 // Check for typed data array. 1664 // Check for typed data array.
1665 __ BranchSignedGreater(value_cid_reg, kTypedDataUint32x4ArrayCid, 1665 __ BranchSignedGreater(value_cid_reg, kTypedDataInt32x4ArrayCid,
1666 &no_fixed_length); 1666 &no_fixed_length);
1667 __ BranchSignedLess(value_cid_reg, kTypedDataInt8ArrayCid, 1667 __ BranchSignedLess(value_cid_reg, kTypedDataInt8ArrayCid,
1668 &check_array); 1668 &check_array);
1669 // Destroy value_cid_reg (safe because we are finished with it). 1669 // Destroy value_cid_reg (safe because we are finished with it).
1670 __ lw(value_cid_reg, 1670 __ lw(value_cid_reg,
1671 FieldAddress(value_reg, TypedData::length_offset())); 1671 FieldAddress(value_reg, TypedData::length_offset()));
1672 __ sw(value_cid_reg, field_length_operand); 1672 __ sw(value_cid_reg, field_length_operand);
1673 // Updated field length typed data array. 1673 // Updated field length typed data array.
1674 __ b(&length_set); 1674 __ b(&length_set);
1675 // Check for regular array. 1675 // Check for regular array.
(...skipping 1227 matching lines...) Expand 10 before | Expand all | Expand 10 after
2903 UNIMPLEMENTED(); 2903 UNIMPLEMENTED();
2904 return NULL; 2904 return NULL;
2905 } 2905 }
2906 2906
2907 2907
2908 void UnboxFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { 2908 void UnboxFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
2909 UNIMPLEMENTED(); 2909 UNIMPLEMENTED();
2910 } 2910 }
2911 2911
2912 2912
2913 LocationSummary* BoxUint32x4Instr::MakeLocationSummary() const { 2913 LocationSummary* BoxInt32x4Instr::MakeLocationSummary() const {
2914 UNIMPLEMENTED(); 2914 UNIMPLEMENTED();
2915 return NULL; 2915 return NULL;
2916 } 2916 }
2917 2917
2918 2918
2919 void BoxUint32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { 2919 void BoxInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
2920 UNIMPLEMENTED(); 2920 UNIMPLEMENTED();
2921 } 2921 }
2922 2922
2923 2923
2924 LocationSummary* UnboxUint32x4Instr::MakeLocationSummary() const { 2924 LocationSummary* UnboxInt32x4Instr::MakeLocationSummary() const {
2925 UNIMPLEMENTED(); 2925 UNIMPLEMENTED();
2926 return NULL; 2926 return NULL;
2927 } 2927 }
2928 2928
2929 2929
2930 void UnboxUint32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { 2930 void UnboxInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
2931 UNIMPLEMENTED(); 2931 UNIMPLEMENTED();
2932 } 2932 }
2933 2933
2934 2934
2935 LocationSummary* BinaryDoubleOpInstr::MakeLocationSummary() const { 2935 LocationSummary* BinaryDoubleOpInstr::MakeLocationSummary() const {
2936 const intptr_t kNumInputs = 2; 2936 const intptr_t kNumInputs = 2;
2937 const intptr_t kNumTemps = 0; 2937 const intptr_t kNumTemps = 0;
2938 LocationSummary* summary = 2938 LocationSummary* summary =
2939 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); 2939 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
2940 summary->set_in(0, Location::RequiresFpuRegister()); 2940 summary->set_in(0, Location::RequiresFpuRegister());
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
3095 UNIMPLEMENTED(); 3095 UNIMPLEMENTED();
3096 return NULL; 3096 return NULL;
3097 } 3097 }
3098 3098
3099 3099
3100 void Float32x4WithInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 3100 void Float32x4WithInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
3101 UNIMPLEMENTED(); 3101 UNIMPLEMENTED();
3102 } 3102 }
3103 3103
3104 3104
3105 LocationSummary* Float32x4ToUint32x4Instr::MakeLocationSummary() const { 3105 LocationSummary* Float32x4ToInt32x4Instr::MakeLocationSummary() const {
3106 UNIMPLEMENTED(); 3106 UNIMPLEMENTED();
3107 return NULL; 3107 return NULL;
3108 } 3108 }
3109 3109
3110 3110
3111 void Float32x4ToUint32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { 3111 void Float32x4ToInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
3112 UNIMPLEMENTED(); 3112 UNIMPLEMENTED();
3113 } 3113 }
3114 3114
3115 3115
3116 LocationSummary* Uint32x4BoolConstructorInstr::MakeLocationSummary() const { 3116 LocationSummary* Int32x4BoolConstructorInstr::MakeLocationSummary() const {
3117 UNIMPLEMENTED(); 3117 UNIMPLEMENTED();
3118 return NULL; 3118 return NULL;
3119 } 3119 }
3120 3120
3121 3121
3122 void Uint32x4BoolConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 3122 void Int32x4BoolConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
3123 UNIMPLEMENTED(); 3123 UNIMPLEMENTED();
3124 } 3124 }
3125 3125
3126 3126
3127 LocationSummary* Uint32x4GetFlagInstr::MakeLocationSummary() const { 3127 LocationSummary* Int32x4GetFlagInstr::MakeLocationSummary() const {
3128 UNIMPLEMENTED(); 3128 UNIMPLEMENTED();
3129 return NULL; 3129 return NULL;
3130 } 3130 }
3131 3131
3132 3132
3133 void Uint32x4GetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 3133 void Int32x4GetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
3134 UNIMPLEMENTED(); 3134 UNIMPLEMENTED();
3135 } 3135 }
3136 3136
3137 3137
3138 LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary() const { 3138 LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary() const {
3139 UNIMPLEMENTED(); 3139 UNIMPLEMENTED();
3140 return NULL; 3140 return NULL;
3141 } 3141 }
3142 3142
3143 3143
3144 void Simd32x4GetSignMaskInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 3144 void Simd32x4GetSignMaskInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
3145 UNIMPLEMENTED(); 3145 UNIMPLEMENTED();
3146 } 3146 }
3147 3147
3148 3148
3149 LocationSummary* Uint32x4SelectInstr::MakeLocationSummary() const { 3149 LocationSummary* Int32x4SelectInstr::MakeLocationSummary() const {
3150 UNIMPLEMENTED(); 3150 UNIMPLEMENTED();
3151 return NULL; 3151 return NULL;
3152 } 3152 }
3153 3153
3154 3154
3155 void Uint32x4SelectInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 3155 void Int32x4SelectInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
3156 UNIMPLEMENTED(); 3156 UNIMPLEMENTED();
3157 } 3157 }
3158 3158
3159 3159
3160 LocationSummary* Uint32x4SetFlagInstr::MakeLocationSummary() const { 3160 LocationSummary* Int32x4SetFlagInstr::MakeLocationSummary() const {
3161 UNIMPLEMENTED(); 3161 UNIMPLEMENTED();
3162 return NULL; 3162 return NULL;
3163 } 3163 }
3164 3164
3165 3165
3166 void Uint32x4SetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 3166 void Int32x4SetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
3167 UNIMPLEMENTED(); 3167 UNIMPLEMENTED();
3168 } 3168 }
3169 3169
3170 3170
3171 LocationSummary* Uint32x4ToFloat32x4Instr::MakeLocationSummary() const { 3171 LocationSummary* Int32x4ToFloat32x4Instr::MakeLocationSummary() const {
3172 UNIMPLEMENTED(); 3172 UNIMPLEMENTED();
3173 return NULL; 3173 return NULL;
3174 } 3174 }
3175 3175
3176 3176
3177 void Uint32x4ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { 3177 void Int32x4ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
3178 UNIMPLEMENTED(); 3178 UNIMPLEMENTED();
3179 } 3179 }
3180 3180
3181 3181
3182 LocationSummary* BinaryUint32x4OpInstr::MakeLocationSummary() const { 3182 LocationSummary* BinaryInt32x4OpInstr::MakeLocationSummary() const {
3183 UNIMPLEMENTED(); 3183 UNIMPLEMENTED();
3184 return NULL; 3184 return NULL;
3185 } 3185 }
3186 3186
3187 3187
3188 void BinaryUint32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 3188 void BinaryInt32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
3189 UNIMPLEMENTED(); 3189 UNIMPLEMENTED();
3190 } 3190 }
3191 3191
3192 3192
3193 LocationSummary* MathUnaryInstr::MakeLocationSummary() const { 3193 LocationSummary* MathUnaryInstr::MakeLocationSummary() const {
3194 if ((kind() == MethodRecognizer::kMathSin) || 3194 if ((kind() == MethodRecognizer::kMathSin) ||
3195 (kind() == MethodRecognizer::kMathCos)) { 3195 (kind() == MethodRecognizer::kMathCos)) {
3196 const intptr_t kNumInputs = 1; 3196 const intptr_t kNumInputs = 1;
3197 const intptr_t kNumTemps = 0; 3197 const intptr_t kNumTemps = 0;
3198 LocationSummary* summary = 3198 LocationSummary* summary =
(...skipping 891 matching lines...) Expand 10 before | Expand all | Expand 10 after
4090 compiler->GenerateCall(token_pos(), 4090 compiler->GenerateCall(token_pos(),
4091 &label, 4091 &label,
4092 PcDescriptors::kOther, 4092 PcDescriptors::kOther,
4093 locs()); 4093 locs());
4094 __ Drop(2); // Discard type arguments and receiver. 4094 __ Drop(2); // Discard type arguments and receiver.
4095 } 4095 }
4096 4096
4097 } // namespace dart 4097 } // namespace dart
4098 4098
4099 #endif // defined TARGET_ARCH_MIPS 4099 #endif // defined TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « dart/runtime/vm/intermediate_language_ia32.cc ('k') | dart/runtime/vm/intermediate_language_x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698