| 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/intermediate_language.h" | 5 #include "vm/intermediate_language.h" |
| 6 | 6 |
| 7 #include "vm/bit_vector.h" | 7 #include "vm/bit_vector.h" |
| 8 #include "vm/dart_entry.h" | 8 #include "vm/dart_entry.h" |
| 9 #include "vm/flow_graph_allocator.h" | 9 #include "vm/flow_graph_allocator.h" |
| 10 #include "vm/flow_graph_builder.h" | 10 #include "vm/flow_graph_builder.h" |
| (...skipping 1968 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1979 RangeBoundary::FromConstant(String::kMaxElements)); | 1979 RangeBoundary::FromConstant(String::kMaxElements)); |
| 1980 return; | 1980 return; |
| 1981 } | 1981 } |
| 1982 Definition::InferRange(); | 1982 Definition::InferRange(); |
| 1983 } | 1983 } |
| 1984 | 1984 |
| 1985 | 1985 |
| 1986 | 1986 |
| 1987 void LoadIndexedInstr::InferRange() { | 1987 void LoadIndexedInstr::InferRange() { |
| 1988 switch (class_id()) { | 1988 switch (class_id()) { |
| 1989 case kInt8ArrayCid: | |
| 1990 case kTypedDataInt8ArrayCid: | 1989 case kTypedDataInt8ArrayCid: |
| 1991 range_ = new Range(RangeBoundary::FromConstant(-128), | 1990 range_ = new Range(RangeBoundary::FromConstant(-128), |
| 1992 RangeBoundary::FromConstant(127)); | 1991 RangeBoundary::FromConstant(127)); |
| 1993 break; | 1992 break; |
| 1994 case kUint8ArrayCid: | |
| 1995 case kUint8ClampedArrayCid: | |
| 1996 case kExternalUint8ArrayCid: | |
| 1997 case kExternalUint8ClampedArrayCid: | |
| 1998 case kTypedDataUint8ArrayCid: | 1993 case kTypedDataUint8ArrayCid: |
| 1999 case kTypedDataUint8ClampedArrayCid: | 1994 case kTypedDataUint8ClampedArrayCid: |
| 2000 case kExternalTypedDataUint8ArrayCid: | 1995 case kExternalTypedDataUint8ArrayCid: |
| 2001 case kExternalTypedDataUint8ClampedArrayCid: | 1996 case kExternalTypedDataUint8ClampedArrayCid: |
| 2002 range_ = new Range(RangeBoundary::FromConstant(0), | 1997 range_ = new Range(RangeBoundary::FromConstant(0), |
| 2003 RangeBoundary::FromConstant(255)); | 1998 RangeBoundary::FromConstant(255)); |
| 2004 break; | 1999 break; |
| 2005 case kInt16ArrayCid: | |
| 2006 case kTypedDataInt16ArrayCid: | 2000 case kTypedDataInt16ArrayCid: |
| 2007 range_ = new Range(RangeBoundary::FromConstant(-32768), | 2001 range_ = new Range(RangeBoundary::FromConstant(-32768), |
| 2008 RangeBoundary::FromConstant(32767)); | 2002 RangeBoundary::FromConstant(32767)); |
| 2009 break; | 2003 break; |
| 2010 case kUint16ArrayCid: | |
| 2011 case kTypedDataUint16ArrayCid: | 2004 case kTypedDataUint16ArrayCid: |
| 2012 range_ = new Range(RangeBoundary::FromConstant(0), | 2005 range_ = new Range(RangeBoundary::FromConstant(0), |
| 2013 RangeBoundary::FromConstant(65535)); | 2006 RangeBoundary::FromConstant(65535)); |
| 2014 break; | 2007 break; |
| 2015 case kOneByteStringCid: | 2008 case kOneByteStringCid: |
| 2016 range_ = new Range(RangeBoundary::FromConstant(0), | 2009 range_ = new Range(RangeBoundary::FromConstant(0), |
| 2017 RangeBoundary::FromConstant(0xFF)); | 2010 RangeBoundary::FromConstant(0xFF)); |
| 2018 break; | 2011 break; |
| 2019 case kTwoByteStringCid: | 2012 case kTwoByteStringCid: |
| 2020 range_ = new Range(RangeBoundary::FromConstant(0), | 2013 range_ = new Range(RangeBoundary::FromConstant(0), |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2250 } | 2243 } |
| 2251 switch (class_id) { | 2244 switch (class_id) { |
| 2252 case kGrowableObjectArrayCid: | 2245 case kGrowableObjectArrayCid: |
| 2253 return GrowableObjectArray::length_offset(); | 2246 return GrowableObjectArray::length_offset(); |
| 2254 case kOneByteStringCid: | 2247 case kOneByteStringCid: |
| 2255 case kTwoByteStringCid: | 2248 case kTwoByteStringCid: |
| 2256 return String::length_offset(); | 2249 return String::length_offset(); |
| 2257 case kArrayCid: | 2250 case kArrayCid: |
| 2258 case kImmutableArrayCid: | 2251 case kImmutableArrayCid: |
| 2259 return Array::length_offset(); | 2252 return Array::length_offset(); |
| 2260 case kInt8ArrayCid: | |
| 2261 case kUint8ArrayCid: | |
| 2262 case kUint8ClampedArrayCid: | |
| 2263 case kInt16ArrayCid: | |
| 2264 case kUint16ArrayCid: | |
| 2265 case kInt32ArrayCid: | |
| 2266 case kUint32ArrayCid: | |
| 2267 case kInt64ArrayCid: | |
| 2268 case kUint64ArrayCid: | |
| 2269 case kFloat64ArrayCid: | |
| 2270 case kFloat32ArrayCid: | |
| 2271 case kExternalUint8ArrayCid: | |
| 2272 case kExternalUint8ClampedArrayCid: | |
| 2273 return ByteArray::length_offset(); | |
| 2274 default: | 2253 default: |
| 2275 UNREACHABLE(); | 2254 UNREACHABLE(); |
| 2276 return -1; | 2255 return -1; |
| 2277 } | 2256 } |
| 2278 } | 2257 } |
| 2279 | 2258 |
| 2280 | 2259 |
| 2281 InvokeMathCFunctionInstr::InvokeMathCFunctionInstr( | 2260 InvokeMathCFunctionInstr::InvokeMathCFunctionInstr( |
| 2282 ZoneGrowableArray<Value*>* inputs, | 2261 ZoneGrowableArray<Value*>* inputs, |
| 2283 InstanceCallInstr* instance_call, | 2262 InstanceCallInstr* instance_call, |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2361 default: | 2340 default: |
| 2362 UNREACHABLE(); | 2341 UNREACHABLE(); |
| 2363 } | 2342 } |
| 2364 return kPowRuntimeEntry; | 2343 return kPowRuntimeEntry; |
| 2365 } | 2344 } |
| 2366 | 2345 |
| 2367 | 2346 |
| 2368 #undef __ | 2347 #undef __ |
| 2369 | 2348 |
| 2370 } // namespace dart | 2349 } // namespace dart |
| OLD | NEW |