| Index: runtime/vm/intermediate_language_dbc.cc
|
| diff --git a/runtime/vm/intermediate_language_dbc.cc b/runtime/vm/intermediate_language_dbc.cc
|
| index 293d2395550e75960a99b242cab4984f6554a64f..7c87f8eeee622b3e76e7a1824240af0d6a9e634c 100644
|
| --- a/runtime/vm/intermediate_language_dbc.cc
|
| +++ b/runtime/vm/intermediate_language_dbc.cc
|
| @@ -108,15 +108,15 @@ DECLARE_FLAG(int, optimization_counter_threshold);
|
| M(UnboxInteger32) \
|
| M(CheckedSmiOp) \
|
| M(CheckArrayBound) \
|
| - M(CheckSmi) \
|
| - M(LoadClassId) \
|
| - M(CheckClassId) \
|
| - M(CheckClass) \
|
| - M(BinarySmiOp) \
|
| - M(TestSmi) \
|
| - M(RelationalOp) \
|
| - M(EqualityCompare) \
|
| - M(LoadIndexed) \
|
| + M(CheckSmi) \
|
| + M(CheckClassId) \
|
| + M(CheckClass) \
|
| + M(BinarySmiOp) \
|
| + M(TestSmi) \
|
| + M(RelationalOp) \
|
| + M(EqualityCompare) \
|
| + M(LoadIndexed)
|
| +
|
| // Location summaries actually are not used by the unoptimizing DBC compiler
|
| // because we don't allocate any registers.
|
| static LocationSummary* CreateLocationSummary(Zone* zone,
|
| @@ -238,6 +238,15 @@ EMIT_NATIVE_CODE(StoreLocal, 0, false) {
|
| }
|
|
|
|
|
| +EMIT_NATIVE_CODE(LoadClassId, 1, true) {
|
| + if (compiler->is_optimizing()) {
|
| + __ LoadClassId(locs()->out(0).reg(), locs()->in(0).reg());
|
| + } else {
|
| + __ LoadClassIdTOS();
|
| + }
|
| +}
|
| +
|
| +
|
| EMIT_NATIVE_CODE(Constant, 0, true) {
|
| const intptr_t kidx = __ AddConstant(value());
|
| if (compiler->is_optimizing()) {
|
|
|