Index: runtime/vm/instructions_dbc.cc |
diff --git a/runtime/vm/instructions_dbc.cc b/runtime/vm/instructions_dbc.cc |
index 3559fbfeb9caa6db7cffe129480b90124178744d..7667a5f2b6b56f2bc0e92ca08f05303c21be9cc8 100644 |
--- a/runtime/vm/instructions_dbc.cc |
+++ b/runtime/vm/instructions_dbc.cc |
@@ -168,6 +168,14 @@ void CallPattern::SetTargetCode(const Code& target_code) const { |
} |
+void CallPattern::InsertDeoptCallAt(uword pc) { |
+ const uint8_t argc = Bytecode::IsCallOpcode(Bytecode::At(pc)) |
+ ? Bytecode::DecodeArgc(Bytecode::At(pc)) |
+ : 0; |
+ *reinterpret_cast<Instr*>(pc) = Bytecode::Encode(Bytecode::kDeopt, argc, 0); |
+} |
+ |
+ |
SwitchableCallPattern::SwitchableCallPattern(uword pc, const Code& code) |
: object_pool_(ObjectPool::Handle(code.GetObjectPool())), |
data_pool_index_(-1), |