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

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

Issue 56023004: Replace Uint32x4/Uint32x4List with Int32x4/Int32x4List (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
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
« no previous file with comments | « runtime/vm/intermediate_language_ia32.cc ('k') | runtime/vm/intermediate_language_x64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 711 matching lines...) Expand 10 before | Expand all | Expand 10 after
722 switch (class_id_) { 722 switch (class_id_) {
723 case kArrayCid: 723 case kArrayCid:
724 case kImmutableArrayCid: 724 case kImmutableArrayCid:
725 return CompileType::Dynamic(); 725 return CompileType::Dynamic();
726 726
727 case kTypedDataFloat32ArrayCid: 727 case kTypedDataFloat32ArrayCid:
728 case kTypedDataFloat64ArrayCid: 728 case kTypedDataFloat64ArrayCid:
729 return CompileType::FromCid(kDoubleCid); 729 return CompileType::FromCid(kDoubleCid);
730 case kTypedDataFloat32x4ArrayCid: 730 case kTypedDataFloat32x4ArrayCid:
731 return CompileType::FromCid(kFloat32x4Cid); 731 return CompileType::FromCid(kFloat32x4Cid);
732 case kTypedDataUint32x4ArrayCid: 732 case kTypedDataInt32x4ArrayCid:
733 return CompileType::FromCid(kUint32x4Cid); 733 return CompileType::FromCid(kInt32x4Cid);
734 734
735 case kTypedDataInt8ArrayCid: 735 case kTypedDataInt8ArrayCid:
736 case kTypedDataUint8ArrayCid: 736 case kTypedDataUint8ArrayCid:
737 case kTypedDataUint8ClampedArrayCid: 737 case kTypedDataUint8ClampedArrayCid:
738 case kExternalTypedDataUint8ArrayCid: 738 case kExternalTypedDataUint8ArrayCid:
739 case kExternalTypedDataUint8ClampedArrayCid: 739 case kExternalTypedDataUint8ClampedArrayCid:
740 case kTypedDataInt16ArrayCid: 740 case kTypedDataInt16ArrayCid:
741 case kTypedDataUint16ArrayCid: 741 case kTypedDataUint16ArrayCid:
742 case kOneByteStringCid: 742 case kOneByteStringCid:
743 case kTwoByteStringCid: 743 case kTwoByteStringCid:
(...skipping 29 matching lines...) Expand all
773 case kTwoByteStringCid: 773 case kTwoByteStringCid:
774 return kTagged; 774 return kTagged;
775 case kTypedDataInt32ArrayCid: 775 case kTypedDataInt32ArrayCid:
776 case kTypedDataUint32ArrayCid: 776 case kTypedDataUint32ArrayCid:
777 // Instruction can deoptimize if we optimistically assumed that the result 777 // Instruction can deoptimize if we optimistically assumed that the result
778 // fits into Smi. 778 // fits into Smi.
779 return CanDeoptimize() ? kTagged : kUnboxedMint; 779 return CanDeoptimize() ? kTagged : kUnboxedMint;
780 case kTypedDataFloat32ArrayCid: 780 case kTypedDataFloat32ArrayCid:
781 case kTypedDataFloat64ArrayCid: 781 case kTypedDataFloat64ArrayCid:
782 return kUnboxedDouble; 782 return kUnboxedDouble;
783 case kTypedDataUint32x4ArrayCid: 783 case kTypedDataInt32x4ArrayCid:
784 return kUnboxedUint32x4; 784 return kUnboxedInt32x4;
785 case kTypedDataFloat32x4ArrayCid: 785 case kTypedDataFloat32x4ArrayCid:
786 return kUnboxedFloat32x4; 786 return kUnboxedFloat32x4;
787 default: 787 default:
788 UNIMPLEMENTED(); 788 UNIMPLEMENTED();
789 return kTagged; 789 return kTagged;
790 } 790 }
791 } 791 }
792 792
793 793
794 LocationSummary* LoadIndexedInstr::MakeLocationSummary() const { 794 LocationSummary* LoadIndexedInstr::MakeLocationSummary() const {
795 const intptr_t kNumInputs = 2; 795 const intptr_t kNumInputs = 2;
796 const intptr_t kNumTemps = 0; 796 const intptr_t kNumTemps = 0;
797 LocationSummary* locs = 797 LocationSummary* locs =
798 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); 798 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
799 locs->set_in(0, Location::RequiresRegister()); 799 locs->set_in(0, Location::RequiresRegister());
800 // The smi index is either untagged (element size == 1), or it is left smi 800 // The smi index is either untagged (element size == 1), or it is left smi
801 // tagged (for all element sizes > 1). 801 // tagged (for all element sizes > 1).
802 // TODO(regis): Revisit and see if the index can be immediate. 802 // TODO(regis): Revisit and see if the index can be immediate.
803 locs->set_in(1, Location::WritableRegister()); 803 locs->set_in(1, Location::WritableRegister());
804 if ((representation() == kUnboxedDouble) || 804 if ((representation() == kUnboxedDouble) ||
805 (representation() == kUnboxedFloat32x4) || 805 (representation() == kUnboxedFloat32x4) ||
806 (representation() == kUnboxedUint32x4)) { 806 (representation() == kUnboxedInt32x4)) {
807 locs->set_out(Location::RequiresFpuRegister()); 807 locs->set_out(Location::RequiresFpuRegister());
808 } else { 808 } else {
809 locs->set_out(Location::RequiresRegister()); 809 locs->set_out(Location::RequiresRegister());
810 } 810 }
811 return locs; 811 return locs;
812 } 812 }
813 813
814 814
815 void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 815 void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
816 __ TraceSimMsg("LoadIndexedInstr"); 816 __ TraceSimMsg("LoadIndexedInstr");
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
856 // If the data offset doesn't fit into the 18 bits we get for the addressing 856 // If the data offset doesn't fit into the 18 bits we get for the addressing
857 // mode, then we must load the offset into a register and add it to the 857 // mode, then we must load the offset into a register and add it to the
858 // index. 858 // index.
859 element_address = Address(index.reg(), 859 element_address = Address(index.reg(),
860 FlowGraphCompiler::DataOffsetFor(class_id()) - kHeapObjectTag); 860 FlowGraphCompiler::DataOffsetFor(class_id()) - kHeapObjectTag);
861 } 861 }
862 862
863 if ((representation() == kUnboxedDouble) || 863 if ((representation() == kUnboxedDouble) ||
864 (representation() == kUnboxedMint) || 864 (representation() == kUnboxedMint) ||
865 (representation() == kUnboxedFloat32x4) || 865 (representation() == kUnboxedFloat32x4) ||
866 (representation() == kUnboxedUint32x4)) { 866 (representation() == kUnboxedInt32x4)) {
867 DRegister result = locs()->out().fpu_reg(); 867 DRegister result = locs()->out().fpu_reg();
868 switch (class_id()) { 868 switch (class_id()) {
869 case kTypedDataInt32ArrayCid: 869 case kTypedDataInt32ArrayCid:
870 UNIMPLEMENTED(); 870 UNIMPLEMENTED();
871 break; 871 break;
872 case kTypedDataUint32ArrayCid: 872 case kTypedDataUint32ArrayCid:
873 UNIMPLEMENTED(); 873 UNIMPLEMENTED();
874 break; 874 break;
875 case kTypedDataFloat32ArrayCid: 875 case kTypedDataFloat32ArrayCid:
876 // Load single precision float and promote to double. 876 // Load single precision float and promote to double.
877 __ lwc1(STMP1, element_address); 877 __ lwc1(STMP1, element_address);
878 __ cvtds(result, STMP1); 878 __ cvtds(result, STMP1);
879 break; 879 break;
880 case kTypedDataFloat64ArrayCid: 880 case kTypedDataFloat64ArrayCid:
881 __ LoadDFromOffset(result, index.reg(), 881 __ LoadDFromOffset(result, index.reg(),
882 FlowGraphCompiler::DataOffsetFor(class_id()) - kHeapObjectTag); 882 FlowGraphCompiler::DataOffsetFor(class_id()) - kHeapObjectTag);
883 break; 883 break;
884 case kTypedDataUint32x4ArrayCid: 884 case kTypedDataInt32x4ArrayCid:
885 case kTypedDataFloat32x4ArrayCid: 885 case kTypedDataFloat32x4ArrayCid:
886 UNIMPLEMENTED(); 886 UNIMPLEMENTED();
887 break; 887 break;
888 } 888 }
889 return; 889 return;
890 } 890 }
891 891
892 Register result = locs()->out().reg(); 892 Register result = locs()->out().reg();
893 switch (class_id()) { 893 switch (class_id()) {
894 case kTypedDataInt8ArrayCid: 894 case kTypedDataInt8ArrayCid:
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
958 case kTypedDataUint16ArrayCid: 958 case kTypedDataUint16ArrayCid:
959 return kTagged; 959 return kTagged;
960 case kTypedDataInt32ArrayCid: 960 case kTypedDataInt32ArrayCid:
961 case kTypedDataUint32ArrayCid: 961 case kTypedDataUint32ArrayCid:
962 return value()->IsSmiValue() ? kTagged : kUnboxedMint; 962 return value()->IsSmiValue() ? kTagged : kUnboxedMint;
963 case kTypedDataFloat32ArrayCid: 963 case kTypedDataFloat32ArrayCid:
964 case kTypedDataFloat64ArrayCid: 964 case kTypedDataFloat64ArrayCid:
965 return kUnboxedDouble; 965 return kUnboxedDouble;
966 case kTypedDataFloat32x4ArrayCid: 966 case kTypedDataFloat32x4ArrayCid:
967 return kUnboxedFloat32x4; 967 return kUnboxedFloat32x4;
968 case kTypedDataUint32x4ArrayCid: 968 case kTypedDataInt32x4ArrayCid:
969 return kUnboxedUint32x4; 969 return kUnboxedInt32x4;
970 default: 970 default:
971 UNIMPLEMENTED(); 971 UNIMPLEMENTED();
972 return kTagged; 972 return kTagged;
973 } 973 }
974 } 974 }
975 975
976 976
977 LocationSummary* StoreIndexedInstr::MakeLocationSummary() const { 977 LocationSummary* StoreIndexedInstr::MakeLocationSummary() const {
978 const intptr_t kNumInputs = 3; 978 const intptr_t kNumInputs = 3;
979 const intptr_t kNumTemps = 0; 979 const intptr_t kNumTemps = 0;
(...skipping 21 matching lines...) Expand all
1001 case kTypedDataInt32ArrayCid: 1001 case kTypedDataInt32ArrayCid:
1002 case kTypedDataUint32ArrayCid: 1002 case kTypedDataUint32ArrayCid:
1003 locs->set_in(2, Location::WritableRegister()); 1003 locs->set_in(2, Location::WritableRegister());
1004 break; 1004 break;
1005 case kTypedDataFloat32ArrayCid: 1005 case kTypedDataFloat32ArrayCid:
1006 // TODO(regis): Verify. 1006 // TODO(regis): Verify.
1007 // Need temp register for float-to-double conversion. 1007 // Need temp register for float-to-double conversion.
1008 locs->AddTemp(Location::RequiresFpuRegister()); 1008 locs->AddTemp(Location::RequiresFpuRegister());
1009 // Fall through. 1009 // Fall through.
1010 case kTypedDataFloat64ArrayCid: // TODO(srdjan): Support Float64 constants. 1010 case kTypedDataFloat64ArrayCid: // TODO(srdjan): Support Float64 constants.
1011 case kTypedDataUint32x4ArrayCid: 1011 case kTypedDataInt32x4ArrayCid:
1012 case kTypedDataFloat32x4ArrayCid: 1012 case kTypedDataFloat32x4ArrayCid:
1013 locs->set_in(2, Location::RequiresFpuRegister()); 1013 locs->set_in(2, Location::RequiresFpuRegister());
1014 break; 1014 break;
1015 default: 1015 default:
1016 UNREACHABLE(); 1016 UNREACHABLE();
1017 return NULL; 1017 return NULL;
1018 } 1018 }
1019 return locs; 1019 return locs;
1020 } 1020 }
1021 1021
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1141 case kTypedDataFloat32ArrayCid: 1141 case kTypedDataFloat32ArrayCid:
1142 // Convert to single precision. 1142 // Convert to single precision.
1143 __ cvtsd(STMP1, locs()->in(2).fpu_reg()); 1143 __ cvtsd(STMP1, locs()->in(2).fpu_reg());
1144 // Store. 1144 // Store.
1145 __ swc1(STMP1, element_address); 1145 __ swc1(STMP1, element_address);
1146 break; 1146 break;
1147 case kTypedDataFloat64ArrayCid: 1147 case kTypedDataFloat64ArrayCid:
1148 __ StoreDToOffset(locs()->in(2).fpu_reg(), index.reg(), 1148 __ StoreDToOffset(locs()->in(2).fpu_reg(), index.reg(),
1149 FlowGraphCompiler::DataOffsetFor(class_id()) - kHeapObjectTag); 1149 FlowGraphCompiler::DataOffsetFor(class_id()) - kHeapObjectTag);
1150 break; 1150 break;
1151 case kTypedDataUint32x4ArrayCid: 1151 case kTypedDataInt32x4ArrayCid:
1152 case kTypedDataFloat32x4ArrayCid: 1152 case kTypedDataFloat32x4ArrayCid:
1153 UNIMPLEMENTED(); 1153 UNIMPLEMENTED();
1154 break; 1154 break;
1155 default: 1155 default:
1156 UNREACHABLE(); 1156 UNREACHABLE();
1157 } 1157 }
1158 } 1158 }
1159 1159
1160 1160
1161 LocationSummary* GuardFieldInstr::MakeLocationSummary() const { 1161 LocationSummary* GuardFieldInstr::MakeLocationSummary() const {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
1269 // list length here, without this check the list length could change 1269 // list length here, without this check the list length could change
1270 // without triggering a deoptimization. 1270 // without triggering a deoptimization.
1271 Label check_array, length_compared, no_fixed_length; 1271 Label check_array, length_compared, no_fixed_length;
1272 // If length is negative the length guard is either disabled or 1272 // If length is negative the length guard is either disabled or
1273 // has not been initialized, either way it is safe to skip the 1273 // has not been initialized, either way it is safe to skip the
1274 // length check. 1274 // length check.
1275 __ lw(CMPRES1, field_length_operand); 1275 __ lw(CMPRES1, field_length_operand);
1276 __ BranchSignedLess(CMPRES1, 0, &skip_length_check); 1276 __ BranchSignedLess(CMPRES1, 0, &skip_length_check);
1277 __ BranchEqual(value_cid_reg, kNullCid, &no_fixed_length); 1277 __ BranchEqual(value_cid_reg, kNullCid, &no_fixed_length);
1278 // Check for typed data array. 1278 // Check for typed data array.
1279 __ BranchSignedGreater(value_cid_reg, kTypedDataUint32x4ArrayCid, 1279 __ BranchSignedGreater(value_cid_reg, kTypedDataInt32x4ArrayCid,
1280 &no_fixed_length); 1280 &no_fixed_length);
1281 __ BranchSignedLess(value_cid_reg, kTypedDataInt8ArrayCid, 1281 __ BranchSignedLess(value_cid_reg, kTypedDataInt8ArrayCid,
1282 &check_array); 1282 &check_array);
1283 __ lw(TMP, FieldAddress(value_reg, TypedData::length_offset())); 1283 __ lw(TMP, FieldAddress(value_reg, TypedData::length_offset()));
1284 __ lw(CMPRES1, field_length_operand); 1284 __ lw(CMPRES1, field_length_operand);
1285 __ subu(CMPRES1, TMP, CMPRES1); 1285 __ subu(CMPRES1, TMP, CMPRES1);
1286 __ b(&length_compared); 1286 __ b(&length_compared);
1287 // Check for regular array. 1287 // Check for regular array.
1288 __ Bind(&check_array); 1288 __ Bind(&check_array);
1289 __ BranchSignedGreater(value_cid_reg, kImmutableArrayCid, 1289 __ BranchSignedGreater(value_cid_reg, kImmutableArrayCid,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1345 __ lw(CMPRES1, field_cid_operand); 1345 __ lw(CMPRES1, field_cid_operand);
1346 __ BranchNotEqual(CMPRES1, kIllegalCid, fail); 1346 __ BranchNotEqual(CMPRES1, kIllegalCid, fail);
1347 1347
1348 if (value_cid == kDynamicCid) { 1348 if (value_cid == kDynamicCid) {
1349 __ sw(value_cid_reg, field_cid_operand); 1349 __ sw(value_cid_reg, field_cid_operand);
1350 __ sw(value_cid_reg, field_nullability_operand); 1350 __ sw(value_cid_reg, field_nullability_operand);
1351 if (field_has_length) { 1351 if (field_has_length) {
1352 Label check_array, length_set, no_fixed_length; 1352 Label check_array, length_set, no_fixed_length;
1353 __ BranchEqual(value_cid_reg, kNullCid, &no_fixed_length); 1353 __ BranchEqual(value_cid_reg, kNullCid, &no_fixed_length);
1354 // Check for typed data array. 1354 // Check for typed data array.
1355 __ BranchSignedGreater(value_cid_reg, kTypedDataUint32x4ArrayCid, 1355 __ BranchSignedGreater(value_cid_reg, kTypedDataInt32x4ArrayCid,
1356 &no_fixed_length); 1356 &no_fixed_length);
1357 __ BranchSignedLess(value_cid_reg, kTypedDataInt8ArrayCid, 1357 __ BranchSignedLess(value_cid_reg, kTypedDataInt8ArrayCid,
1358 &check_array); 1358 &check_array);
1359 // Destroy value_cid_reg (safe because we are finished with it). 1359 // Destroy value_cid_reg (safe because we are finished with it).
1360 __ lw(value_cid_reg, 1360 __ lw(value_cid_reg,
1361 FieldAddress(value_reg, TypedData::length_offset())); 1361 FieldAddress(value_reg, TypedData::length_offset()));
1362 __ sw(value_cid_reg, field_length_operand); 1362 __ sw(value_cid_reg, field_length_operand);
1363 // Updated field length typed data array. 1363 // Updated field length typed data array.
1364 __ b(&length_set); 1364 __ b(&length_set);
1365 // Check for regular array. 1365 // Check for regular array.
(...skipping 1227 matching lines...) Expand 10 before | Expand all | Expand 10 after
2593 UNIMPLEMENTED(); 2593 UNIMPLEMENTED();
2594 return NULL; 2594 return NULL;
2595 } 2595 }
2596 2596
2597 2597
2598 void UnboxFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { 2598 void UnboxFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
2599 UNIMPLEMENTED(); 2599 UNIMPLEMENTED();
2600 } 2600 }
2601 2601
2602 2602
2603 LocationSummary* BoxUint32x4Instr::MakeLocationSummary() const { 2603 LocationSummary* BoxInt32x4Instr::MakeLocationSummary() const {
2604 UNIMPLEMENTED(); 2604 UNIMPLEMENTED();
2605 return NULL; 2605 return NULL;
2606 } 2606 }
2607 2607
2608 2608
2609 void BoxUint32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { 2609 void BoxInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
2610 UNIMPLEMENTED(); 2610 UNIMPLEMENTED();
2611 } 2611 }
2612 2612
2613 2613
2614 LocationSummary* UnboxUint32x4Instr::MakeLocationSummary() const { 2614 LocationSummary* UnboxInt32x4Instr::MakeLocationSummary() const {
2615 UNIMPLEMENTED(); 2615 UNIMPLEMENTED();
2616 return NULL; 2616 return NULL;
2617 } 2617 }
2618 2618
2619 2619
2620 void UnboxUint32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { 2620 void UnboxInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
2621 UNIMPLEMENTED(); 2621 UNIMPLEMENTED();
2622 } 2622 }
2623 2623
2624 2624
2625 LocationSummary* BinaryDoubleOpInstr::MakeLocationSummary() const { 2625 LocationSummary* BinaryDoubleOpInstr::MakeLocationSummary() const {
2626 const intptr_t kNumInputs = 2; 2626 const intptr_t kNumInputs = 2;
2627 const intptr_t kNumTemps = 0; 2627 const intptr_t kNumTemps = 0;
2628 LocationSummary* summary = 2628 LocationSummary* summary =
2629 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); 2629 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
2630 summary->set_in(0, Location::RequiresFpuRegister()); 2630 summary->set_in(0, Location::RequiresFpuRegister());
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
2785 UNIMPLEMENTED(); 2785 UNIMPLEMENTED();
2786 return NULL; 2786 return NULL;
2787 } 2787 }
2788 2788
2789 2789
2790 void Float32x4WithInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 2790 void Float32x4WithInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
2791 UNIMPLEMENTED(); 2791 UNIMPLEMENTED();
2792 } 2792 }
2793 2793
2794 2794
2795 LocationSummary* Float32x4ToUint32x4Instr::MakeLocationSummary() const { 2795 LocationSummary* Float32x4ToInt32x4Instr::MakeLocationSummary() const {
2796 UNIMPLEMENTED(); 2796 UNIMPLEMENTED();
2797 return NULL; 2797 return NULL;
2798 } 2798 }
2799 2799
2800 2800
2801 void Float32x4ToUint32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { 2801 void Float32x4ToInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
2802 UNIMPLEMENTED(); 2802 UNIMPLEMENTED();
2803 } 2803 }
2804 2804
2805 2805
2806 LocationSummary* Uint32x4BoolConstructorInstr::MakeLocationSummary() const { 2806 LocationSummary* Int32x4BoolConstructorInstr::MakeLocationSummary() const {
2807 UNIMPLEMENTED(); 2807 UNIMPLEMENTED();
2808 return NULL; 2808 return NULL;
2809 } 2809 }
2810 2810
2811 2811
2812 void Uint32x4BoolConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 2812 void Int32x4BoolConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
2813 UNIMPLEMENTED(); 2813 UNIMPLEMENTED();
2814 } 2814 }
2815 2815
2816 2816
2817 LocationSummary* Uint32x4GetFlagInstr::MakeLocationSummary() const { 2817 LocationSummary* Int32x4GetFlagInstr::MakeLocationSummary() const {
2818 UNIMPLEMENTED(); 2818 UNIMPLEMENTED();
2819 return NULL; 2819 return NULL;
2820 } 2820 }
2821 2821
2822 2822
2823 void Uint32x4GetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 2823 void Int32x4GetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
2824 UNIMPLEMENTED(); 2824 UNIMPLEMENTED();
2825 } 2825 }
2826 2826
2827 2827
2828 LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary() const { 2828 LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary() const {
2829 UNIMPLEMENTED(); 2829 UNIMPLEMENTED();
2830 return NULL; 2830 return NULL;
2831 } 2831 }
2832 2832
2833 2833
2834 void Simd32x4GetSignMaskInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 2834 void Simd32x4GetSignMaskInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
2835 UNIMPLEMENTED(); 2835 UNIMPLEMENTED();
2836 } 2836 }
2837 2837
2838 2838
2839 LocationSummary* Uint32x4SelectInstr::MakeLocationSummary() const { 2839 LocationSummary* Int32x4SelectInstr::MakeLocationSummary() const {
2840 UNIMPLEMENTED(); 2840 UNIMPLEMENTED();
2841 return NULL; 2841 return NULL;
2842 } 2842 }
2843 2843
2844 2844
2845 void Uint32x4SelectInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 2845 void Int32x4SelectInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
2846 UNIMPLEMENTED(); 2846 UNIMPLEMENTED();
2847 } 2847 }
2848 2848
2849 2849
2850 LocationSummary* Uint32x4SetFlagInstr::MakeLocationSummary() const { 2850 LocationSummary* Int32x4SetFlagInstr::MakeLocationSummary() const {
2851 UNIMPLEMENTED(); 2851 UNIMPLEMENTED();
2852 return NULL; 2852 return NULL;
2853 } 2853 }
2854 2854
2855 2855
2856 void Uint32x4SetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 2856 void Int32x4SetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
2857 UNIMPLEMENTED(); 2857 UNIMPLEMENTED();
2858 } 2858 }
2859 2859
2860 2860
2861 LocationSummary* Uint32x4ToFloat32x4Instr::MakeLocationSummary() const { 2861 LocationSummary* Int32x4ToFloat32x4Instr::MakeLocationSummary() const {
2862 UNIMPLEMENTED(); 2862 UNIMPLEMENTED();
2863 return NULL; 2863 return NULL;
2864 } 2864 }
2865 2865
2866 2866
2867 void Uint32x4ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { 2867 void Int32x4ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
2868 UNIMPLEMENTED(); 2868 UNIMPLEMENTED();
2869 } 2869 }
2870 2870
2871 2871
2872 LocationSummary* BinaryUint32x4OpInstr::MakeLocationSummary() const { 2872 LocationSummary* BinaryInt32x4OpInstr::MakeLocationSummary() const {
2873 UNIMPLEMENTED(); 2873 UNIMPLEMENTED();
2874 return NULL; 2874 return NULL;
2875 } 2875 }
2876 2876
2877 2877
2878 void BinaryUint32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 2878 void BinaryInt32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
2879 UNIMPLEMENTED(); 2879 UNIMPLEMENTED();
2880 } 2880 }
2881 2881
2882 2882
2883 LocationSummary* MathUnaryInstr::MakeLocationSummary() const { 2883 LocationSummary* MathUnaryInstr::MakeLocationSummary() const {
2884 if ((kind() == MethodRecognizer::kMathSin) || 2884 if ((kind() == MethodRecognizer::kMathSin) ||
2885 (kind() == MethodRecognizer::kMathCos)) { 2885 (kind() == MethodRecognizer::kMathCos)) {
2886 const intptr_t kNumInputs = 1; 2886 const intptr_t kNumInputs = 1;
2887 const intptr_t kNumTemps = 0; 2887 const intptr_t kNumTemps = 0;
2888 LocationSummary* summary = 2888 LocationSummary* summary =
(...skipping 891 matching lines...) Expand 10 before | Expand all | Expand 10 after
3780 compiler->GenerateCall(token_pos(), 3780 compiler->GenerateCall(token_pos(),
3781 &label, 3781 &label,
3782 PcDescriptors::kOther, 3782 PcDescriptors::kOther,
3783 locs()); 3783 locs());
3784 __ Drop(2); // Discard type arguments and receiver. 3784 __ Drop(2); // Discard type arguments and receiver.
3785 } 3785 }
3786 3786
3787 } // namespace dart 3787 } // namespace dart
3788 3788
3789 #endif // defined TARGET_ARCH_MIPS 3789 #endif // defined TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « runtime/vm/intermediate_language_ia32.cc ('k') | runtime/vm/intermediate_language_x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698