| Index: runtime/vm/intermediate_language.cc
|
| diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc
|
| index ce6092afed4789b100a15d61c894a1700ec73bdd..5834dc13953c2f2a2f7ef16ba88b4b9b38163dd7 100644
|
| --- a/runtime/vm/intermediate_language.cc
|
| +++ b/runtime/vm/intermediate_language.cc
|
| @@ -17,6 +17,7 @@
|
| #include "vm/object.h"
|
| #include "vm/object_store.h"
|
| #include "vm/os.h"
|
| +#include "vm/regexp_assembler.h"
|
| #include "vm/resolver.h"
|
| #include "vm/scopes.h"
|
| #include "vm/stub_code.h"
|
| @@ -371,6 +372,14 @@ bool LoadIndexedInstr::AttributesEqual(Instruction* other) const {
|
| }
|
|
|
|
|
| +bool LoadCodeUnitsInstr::AttributesEqual(Instruction* other) const {
|
| + LoadCodeUnitsInstr* other_load = other->AsLoadCodeUnits();
|
| + ASSERT(other_load != NULL);
|
| + return (class_id() == other_load->class_id() &&
|
| + element_count() == other_load->element_count());
|
| +}
|
| +
|
| +
|
| ConstantInstr::ConstantInstr(const Object& value) : value_(value) {
|
| // Check that the value is not an incorrect Integer representation.
|
| ASSERT(!value.IsBigint() || !Bigint::Cast(value).FitsIntoSmi());
|
| @@ -461,6 +470,7 @@ GraphEntryInstr::GraphEntryInstr(const ParsedFunction* parsed_function,
|
| parsed_function_(parsed_function),
|
| normal_entry_(normal_entry),
|
| catch_entries_(),
|
| + indirect_entries_(),
|
| initial_definitions_(),
|
| osr_id_(osr_id),
|
| entry_count_(0),
|
| @@ -2530,6 +2540,17 @@ void TargetEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
|
|
|
|
| +LocationSummary* IndirectEntryInstr::MakeLocationSummary(
|
| + Isolate* isolate, bool optimizing) const {
|
| + return JoinEntryInstr::MakeLocationSummary(isolate, optimizing);
|
| +}
|
| +
|
| +
|
| +void IndirectEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| + JoinEntryInstr::EmitNativeCode(compiler);
|
| +}
|
| +
|
| +
|
| LocationSummary* PhiInstr::MakeLocationSummary(Isolate* isolate,
|
| bool optimizing) const {
|
| UNREACHABLE();
|
| @@ -3326,6 +3347,23 @@ const char* MathUnaryInstr::KindToCString(MathUnaryKind kind) {
|
| return "";
|
| }
|
|
|
| +typedef RawBool* (*CaseInsensitiveCompareUC16Function) (
|
| + RawString* string_raw,
|
| + RawSmi* lhs_index_raw,
|
| + RawSmi* rhs_index_raw,
|
| + RawSmi* length_raw);
|
| +
|
| +
|
| +extern const RuntimeEntry kCaseInsensitiveCompareUC16RuntimeEntry(
|
| + "CaseInsensitiveCompareUC16", reinterpret_cast<RuntimeFunction>(
|
| + static_cast<CaseInsensitiveCompareUC16Function>(
|
| + &IRRegExpMacroAssembler::CaseInsensitiveCompareUC16)), 4, true, false);
|
| +
|
| +
|
| +const RuntimeEntry& CaseInsensitiveCompareUC16Instr::TargetFunction() const {
|
| + return kCaseInsensitiveCompareUC16RuntimeEntry;
|
| +}
|
| +
|
|
|
| MergedMathInstr::MergedMathInstr(ZoneGrowableArray<Value*>* inputs,
|
| intptr_t original_deopt_id,
|
|
|