| Index: runtime/vm/simulator_dbc.cc
|
| diff --git a/runtime/vm/simulator_dbc.cc b/runtime/vm/simulator_dbc.cc
|
| index a85f26d7cf5f3f0078645e224c7cf2c80d91cec7..ad18d4e1356d2abfc89f06aa93f2544a3a1b9018 100644
|
| --- a/runtime/vm/simulator_dbc.cc
|
| +++ b/runtime/vm/simulator_dbc.cc
|
| @@ -3254,6 +3254,18 @@ RawObject* Simulator::Call(const Code& code,
|
| }
|
|
|
| {
|
| + BYTECODE(CheckClassIdRange, A_D);
|
| + const intptr_t actual_cid =
|
| + reinterpret_cast<intptr_t>(FP[rA]) >> kSmiTagSize;
|
| + const uintptr_t cid_start = rD;
|
| + const uintptr_t cid_range = Bytecode::DecodeD(*pc);
|
| + // Unsigned comparison. Skip either just the nop or both the nop and the
|
| + // following instruction.
|
| + pc += (actual_cid - cid_start <= cid_range) ? 2 : 1;
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| BYTECODE(CheckBitTest, A_D);
|
| const intptr_t raw_value = reinterpret_cast<intptr_t>(FP[rA]);
|
| const bool is_smi = ((raw_value & kSmiTagMask) == kSmiTag);
|
|
|