Index: runtime/vm/intermediate_language.h |
diff --git a/runtime/vm/intermediate_language.h b/runtime/vm/intermediate_language.h |
index ea0ef6131d73f645b93c42bca1c6bcd36fa95a65..248ec36ef63cbfb998ac1dd8e5c573a779e87d51 100644 |
--- a/runtime/vm/intermediate_language.h |
+++ b/runtime/vm/intermediate_language.h |
@@ -3695,7 +3695,7 @@ class LoadCodeUnitsInstr : public TemplateDefinition<2, NoThrow> { |
element_count_(element_count), |
representation_(kTagged) { |
ASSERT(element_count == 1 || element_count == 2 || element_count == 4); |
- ASSERT(class_id == kOneByteStringCid || class_id == kTwoByteStringCid); |
+ ASSERT(RawObject::IsStringClassId(class_id)); |
SetInputAt(0, str); |
SetInputAt(1, index); |
} |
@@ -4213,6 +4213,12 @@ class LoadUntaggedInstr : public TemplateDefinition<1, NoThrow> { |
DECLARE_INSTRUCTION(LoadUntagged) |
virtual CompileType ComputeType() const; |
+ virtual Representation RequiredInputRepresentation(intptr_t idx) const { |
+ ASSERT(idx == 0); |
+ // The object may be tagged or untagged (for external objects). |
+ return kNoRepresentation; |
+ } |
+ |
Value* object() const { return inputs_[0]; } |
intptr_t offset() const { return offset_; } |