Index: runtime/vm/intermediate_language_mips.cc |
diff --git a/runtime/vm/intermediate_language_mips.cc b/runtime/vm/intermediate_language_mips.cc |
index 7bbfb552f7563eb588d89a8ba90245d71e9cb535..b1b078fe991af39f8067f7353af9214aa33abdbc 100644 |
--- a/runtime/vm/intermediate_language_mips.cc |
+++ b/runtime/vm/intermediate_language_mips.cc |
@@ -1019,8 +1019,8 @@ void NativeCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
-LocationSummary* StringFromCharCodeInstr::MakeLocationSummary(Zone* zone, |
- bool opt) const { |
+LocationSummary* OneByteStringFromCharCodeInstr::MakeLocationSummary( |
+ Zone* zone, bool opt) const { |
const intptr_t kNumInputs = 1; |
// TODO(fschneider): Allow immediate operands for the char code. |
return LocationSummary::Make(zone, |
@@ -1030,13 +1030,12 @@ LocationSummary* StringFromCharCodeInstr::MakeLocationSummary(Zone* zone, |
} |
-void StringFromCharCodeInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
+void OneByteStringFromCharCodeInstr::EmitNativeCode( |
+ FlowGraphCompiler* compiler) { |
ASSERT(compiler->is_optimizing()); |
Register char_code = locs()->in(0).reg(); |
Register result = locs()->out(0).reg(); |
- __ Comment("StringFromCharCodeInstr"); |
- |
__ lw(result, Address(THR, Thread::predefined_symbols_address_offset())); |
__ AddImmediate(result, Symbols::kNullCharCodeSymbolOffset * kWordSize); |
__ sll(TMP, char_code, 1); // Char code is a smi. |
@@ -1169,6 +1168,8 @@ CompileType LoadIndexedInstr::ComputeType() const { |
case kTypedDataUint16ArrayCid: |
case kOneByteStringCid: |
case kTwoByteStringCid: |
+ case kExternalOneByteStringCid: |
+ case kExternalTwoByteStringCid: |
return CompileType::FromCid(kSmiCid); |
case kTypedDataInt32ArrayCid: |
@@ -1195,6 +1196,8 @@ Representation LoadIndexedInstr::representation() const { |
case kTypedDataUint16ArrayCid: |
case kOneByteStringCid: |
case kTwoByteStringCid: |
+ case kExternalOneByteStringCid: |
+ case kExternalTwoByteStringCid: |
return kTagged; |
case kTypedDataInt32ArrayCid: |
return kUnboxedInt32; |
@@ -1321,6 +1324,7 @@ void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
case kExternalTypedDataUint8ArrayCid: |
case kExternalTypedDataUint8ClampedArrayCid: |
case kOneByteStringCid: |
+ case kExternalOneByteStringCid: |
ASSERT(index_scale() == 1); |
__ lbu(result, element_address); |
__ SmiTag(result); |
@@ -1331,6 +1335,7 @@ void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
break; |
case kTypedDataUint16ArrayCid: |
case kTwoByteStringCid: |
+ case kExternalTwoByteStringCid: |
__ lhu(result, element_address); |
__ SmiTag(result); |
break; |