Index: runtime/vm/intermediate_language_dbc.cc |
diff --git a/runtime/vm/intermediate_language_dbc.cc b/runtime/vm/intermediate_language_dbc.cc |
index c3a2ac839c06958fb441b4b69970849de427906c..f4a252f130cc1e8770032b5081b6df4df0b66e00 100644 |
--- a/runtime/vm/intermediate_language_dbc.cc |
+++ b/runtime/vm/intermediate_language_dbc.cc |
@@ -186,7 +186,7 @@ DEFINE_UNIMPLEMENTED_EMIT_BRANCH_CODE(CheckedSmiComparison) |
EMIT_NATIVE_CODE(InstanceOf, |
- 2, |
+ 3, |
Location::SameAsFirstInput(), |
LocationSummary::kCall) { |
SubtypeTestCache& test_cache = SubtypeTestCache::Handle(); |
@@ -197,6 +197,7 @@ EMIT_NATIVE_CODE(InstanceOf, |
if (compiler->is_optimizing()) { |
__ Push(locs()->in(0).reg()); // Value. |
__ Push(locs()->in(1).reg()); // Instantiator type arguments. |
+ __ Push(locs()->in(2).reg()); // Function type arguments. |
} |
__ PushConstant(type()); |
@@ -212,7 +213,7 @@ EMIT_NATIVE_CODE(InstanceOf, |
DEFINE_MAKE_LOCATION_SUMMARY(AssertAssignable, |
- 2, |
+ 3, |
Location::SameAsFirstInput(), |
LocationSummary::kCall); |
@@ -1272,11 +1273,12 @@ EMIT_NATIVE_CODE(ReThrow, 0, Location::NoLocation(), LocationSummary::kCall) { |
} |
EMIT_NATIVE_CODE(InstantiateType, |
- 1, |
+ 2, |
Location::RequiresRegister(), |
LocationSummary::kCall) { |
if (compiler->is_optimizing()) { |
- __ Push(locs()->in(0).reg()); |
+ __ Push(locs()->in(0).reg()); // Instantiator type arguments. |
+ __ Push(locs()->in(1).reg()); // Function type arguments. |
} |
__ InstantiateType(__ AddConstant(type())); |
compiler->RecordSafepoint(locs()); |
@@ -1288,14 +1290,15 @@ EMIT_NATIVE_CODE(InstantiateType, |
} |
EMIT_NATIVE_CODE(InstantiateTypeArguments, |
- 1, |
+ 2, |
Location::RequiresRegister(), |
LocationSummary::kCall) { |
if (compiler->is_optimizing()) { |
- __ Push(locs()->in(0).reg()); |
+ __ Push(locs()->in(0).reg()); // Instantiator type arguments. |
+ __ Push(locs()->in(1).reg()); // Function type arguments. |
} |
__ InstantiateTypeArgumentsTOS( |
- type_arguments().IsRawInstantiatedRaw(type_arguments().Length()), |
+ type_arguments().IsRawWhenInstantiatedFromRaw(type_arguments().Length()), |
__ AddConstant(type_arguments())); |
compiler->RecordSafepoint(locs()); |
compiler->AddCurrentDescriptor(RawPcDescriptors::kOther, deopt_id(), |