| 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_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 1038 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1049     case kExternalTypedDataUint8ArrayCid: |  1049     case kExternalTypedDataUint8ArrayCid: | 
|  1050     case kExternalTypedDataUint8ClampedArrayCid: |  1050     case kExternalTypedDataUint8ClampedArrayCid: | 
|  1051     case kTypedDataInt16ArrayCid: |  1051     case kTypedDataInt16ArrayCid: | 
|  1052     case kTypedDataUint16ArrayCid: |  1052     case kTypedDataUint16ArrayCid: | 
|  1053     case kOneByteStringCid: |  1053     case kOneByteStringCid: | 
|  1054     case kTwoByteStringCid: |  1054     case kTwoByteStringCid: | 
|  1055       return CompileType::FromCid(kSmiCid); |  1055       return CompileType::FromCid(kSmiCid); | 
|  1056  |  1056  | 
|  1057     case kTypedDataInt32ArrayCid: |  1057     case kTypedDataInt32ArrayCid: | 
|  1058     case kTypedDataUint32ArrayCid: |  1058     case kTypedDataUint32ArrayCid: | 
|  1059       // Result can be Smi or Mint when boxed. |  1059       return Typed32BitIsSmi()() ? CompileType::FromCid(kSmiCid) | 
|  1060       // Instruction can deoptimize if we optimistically assumed that the result |  1060                                  : CompileType::FromCid(kMintCid); | 
|  1061       // fits into Smi. |  | 
|  1062       return CanDeoptimize() ? CompileType::FromCid(kSmiCid) |  | 
|  1063                              : CompileType::Int(); |  | 
|  1064  |  1061  | 
|  1065     default: |  1062     default: | 
|  1066       UNIMPLEMENTED(); |  1063       UNIMPLEMENTED(); | 
|  1067       return CompileType::Dynamic(); |  1064       return CompileType::Dynamic(); | 
|  1068   } |  1065   } | 
|  1069 } |  1066 } | 
|  1070  |  1067  | 
|  1071  |  1068  | 
|  1072 Representation LoadIndexedInstr::representation() const { |  1069 Representation LoadIndexedInstr::representation() const { | 
|  1073   switch (class_id_) { |  1070   switch (class_id_) { | 
|  1074     case kArrayCid: |  1071     case kArrayCid: | 
|  1075     case kImmutableArrayCid: |  1072     case kImmutableArrayCid: | 
|  1076     case kTypedDataInt8ArrayCid: |  1073     case kTypedDataInt8ArrayCid: | 
|  1077     case kTypedDataUint8ArrayCid: |  1074     case kTypedDataUint8ArrayCid: | 
|  1078     case kTypedDataUint8ClampedArrayCid: |  1075     case kTypedDataUint8ClampedArrayCid: | 
|  1079     case kExternalTypedDataUint8ArrayCid: |  1076     case kExternalTypedDataUint8ArrayCid: | 
|  1080     case kExternalTypedDataUint8ClampedArrayCid: |  1077     case kExternalTypedDataUint8ClampedArrayCid: | 
|  1081     case kTypedDataInt16ArrayCid: |  1078     case kTypedDataInt16ArrayCid: | 
|  1082     case kTypedDataUint16ArrayCid: |  1079     case kTypedDataUint16ArrayCid: | 
|  1083     case kOneByteStringCid: |  1080     case kOneByteStringCid: | 
|  1084     case kTwoByteStringCid: |  1081     case kTwoByteStringCid: | 
|  1085       return kTagged; |  1082       return kTagged; | 
|  1086     case kTypedDataInt32ArrayCid: |  1083     case kTypedDataInt32ArrayCid: | 
|  1087     case kTypedDataUint32ArrayCid: |  1084     case kTypedDataUint32ArrayCid: | 
|  1088       // Instruction can deoptimize if we optimistically assumed that the result |  1085       return Typed32BitIsSmi() ? kTagged : kUnboxedMint; | 
|  1089       // fits into Smi. |  | 
|  1090       return CanDeoptimize() ? kTagged : kUnboxedMint; |  | 
|  1091     case kTypedDataFloat32ArrayCid: |  1086     case kTypedDataFloat32ArrayCid: | 
|  1092     case kTypedDataFloat64ArrayCid: |  1087     case kTypedDataFloat64ArrayCid: | 
|  1093       return kUnboxedDouble; |  1088       return kUnboxedDouble; | 
|  1094     case kTypedDataInt32x4ArrayCid: |  1089     case kTypedDataInt32x4ArrayCid: | 
|  1095       return kUnboxedInt32x4; |  1090       return kUnboxedInt32x4; | 
|  1096     case kTypedDataFloat32x4ArrayCid: |  1091     case kTypedDataFloat32x4ArrayCid: | 
|  1097       return kUnboxedFloat32x4; |  1092       return kUnboxedFloat32x4; | 
|  1098     default: |  1093     default: | 
|  1099       UNIMPLEMENTED(); |  1094       UNIMPLEMENTED(); | 
|  1100       return kTagged; |  1095       return kTagged; | 
| (...skipping 3679 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  4780   compiler->GenerateCall(token_pos(), &label, stub_kind_, locs()); |  4775   compiler->GenerateCall(token_pos(), &label, stub_kind_, locs()); | 
|  4781 #if defined(DEBUG) |  4776 #if defined(DEBUG) | 
|  4782   __ LoadImmediate(S4, kInvalidObjectPointer); |  4777   __ LoadImmediate(S4, kInvalidObjectPointer); | 
|  4783   __ LoadImmediate(S5, kInvalidObjectPointer); |  4778   __ LoadImmediate(S5, kInvalidObjectPointer); | 
|  4784 #endif |  4779 #endif | 
|  4785 } |  4780 } | 
|  4786  |  4781  | 
|  4787 }  // namespace dart |  4782 }  // namespace dart | 
|  4788  |  4783  | 
|  4789 #endif  // defined TARGET_ARCH_MIPS |  4784 #endif  // defined TARGET_ARCH_MIPS | 
| OLD | NEW |