| Index: runtime/vm/intermediate_language.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language.cc (revision 17219)
|
| +++ runtime/vm/intermediate_language.cc (working copy)
|
| @@ -156,13 +156,6 @@
|
| }
|
|
|
|
|
| -bool StringCharCodeAtInstr::AttributesEqual(Instruction* other) const {
|
| - StringCharCodeAtInstr* other_load = other->AsStringCharCodeAt();
|
| - ASSERT(other_load != NULL);
|
| - return class_id() == other_load->class_id();
|
| -}
|
| -
|
| -
|
| bool LoadIndexedInstr::AttributesEqual(Instruction* other) const {
|
| LoadIndexedInstr* other_load = other->AsLoadIndexed();
|
| ASSERT(other_load != NULL);
|
| @@ -1108,16 +1101,6 @@
|
| }
|
|
|
|
|
| -RawAbstractType* StringCharCodeAtInstr::CompileType() const {
|
| - return Type::IntType();
|
| -}
|
| -
|
| -
|
| -intptr_t StringCharCodeAtInstr::ResultCid() const {
|
| - return kSmiCid;
|
| -}
|
| -
|
| -
|
| RawAbstractType* StringFromCharCodeInstr::CompileType() const {
|
| return Type::StringType();
|
| }
|
| @@ -1137,6 +1120,8 @@
|
| case kExternalUint8ArrayCid:
|
| case kInt16ArrayCid:
|
| case kUint16ArrayCid:
|
| + case kOneByteStringCid:
|
| + case kTwoByteStringCid:
|
| return Type::IntType();
|
| default:
|
| UNIMPLEMENTED();
|
| @@ -1159,6 +1144,8 @@
|
| case kExternalUint8ArrayCid:
|
| case kInt16ArrayCid:
|
| case kUint16ArrayCid:
|
| + case kOneByteStringCid:
|
| + case kTwoByteStringCid:
|
| return kSmiCid;
|
| default:
|
| UNIMPLEMENTED();
|
| @@ -1177,6 +1164,8 @@
|
| case kExternalUint8ArrayCid:
|
| case kInt16ArrayCid:
|
| case kUint16ArrayCid:
|
| + case kOneByteStringCid:
|
| + case kTwoByteStringCid:
|
| return kTagged;
|
| case kFloat32ArrayCid :
|
| case kFloat64ArrayCid :
|
| @@ -2700,22 +2689,6 @@
|
|
|
|
|
|
|
| -void StringCharCodeAtInstr::InferRange() {
|
| - switch (class_id_) {
|
| - case kOneByteStringCid:
|
| - range_ = new Range(RangeBoundary::FromConstant(0),
|
| - RangeBoundary::FromConstant(0xFF));
|
| - break;
|
| - case kTwoByteStringCid:
|
| - range_ = new Range(RangeBoundary::FromConstant(0),
|
| - RangeBoundary::FromConstant(0xFFFF));
|
| - break;
|
| - default:
|
| - UNIMPLEMENTED();
|
| - }
|
| -}
|
| -
|
| -
|
| void LoadIndexedInstr::InferRange() {
|
| switch (class_id()) {
|
| case kInt8ArrayCid:
|
| @@ -2736,6 +2709,14 @@
|
| range_ = new Range(RangeBoundary::FromConstant(0),
|
| RangeBoundary::FromConstant(65535));
|
| break;
|
| + case kOneByteStringCid:
|
| + range_ = new Range(RangeBoundary::FromConstant(0),
|
| + RangeBoundary::FromConstant(0xFF));
|
| + break;
|
| + case kTwoByteStringCid:
|
| + range_ = new Range(RangeBoundary::FromConstant(0),
|
| + RangeBoundary::FromConstant(0xFFFF));
|
| + break;
|
| default:
|
| Definition::InferRange();
|
| break;
|
|
|