Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1036)

Unified Diff: runtime/vm/intermediate_language.h

Issue 3001883002: [vm] Read interface_target_reference from kernel binaries (Closed)
Patch Set: Add assertion Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/flag_list.h ('k') | runtime/vm/kernel_binary_flowgraph.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intermediate_language.h
diff --git a/runtime/vm/intermediate_language.h b/runtime/vm/intermediate_language.h
index ed66e9519a8cb93bce3806c4b4b96033296dce29..67a340dbe31882301232f5e511e82a37145857cd 100644
--- a/runtime/vm/intermediate_language.h
+++ b/runtime/vm/intermediate_language.h
@@ -2854,15 +2854,17 @@ class ClosureCallInstr : public TemplateDartCall<1> {
class InstanceCallInstr : public TemplateDartCall<0> {
public:
- InstanceCallInstr(TokenPosition token_pos,
- const String& function_name,
- Token::Kind token_kind,
- ZoneGrowableArray<PushArgumentInstr*>* arguments,
- intptr_t type_args_len,
- const Array& argument_names,
- intptr_t checked_argument_count,
- const ZoneGrowableArray<const ICData*>& ic_data_array,
- intptr_t deopt_id)
+ InstanceCallInstr(
+ TokenPosition token_pos,
+ const String& function_name,
+ Token::Kind token_kind,
+ ZoneGrowableArray<PushArgumentInstr*>* arguments,
+ intptr_t type_args_len,
+ const Array& argument_names,
+ intptr_t checked_argument_count,
+ const ZoneGrowableArray<const ICData*>& ic_data_array,
+ intptr_t deopt_id,
+ const Function& interface_target = Function::null_function())
: TemplateDartCall(deopt_id,
type_args_len,
argument_names,
@@ -2872,9 +2874,11 @@ class InstanceCallInstr : public TemplateDartCall<0> {
function_name_(function_name),
token_kind_(token_kind),
checked_argument_count_(checked_argument_count),
+ interface_target_(interface_target),
has_unique_selector_(false) {
ic_data_ = GetICData(ic_data_array);
ASSERT(function_name.IsNotTemporaryScopedHandle());
+ ASSERT(interface_target_.IsNotTemporaryScopedHandle());
ASSERT(!arguments->is_empty());
ASSERT(Token::IsBinaryOperator(token_kind) ||
Token::IsEqualityOperator(token_kind) ||
@@ -2897,6 +2901,7 @@ class InstanceCallInstr : public TemplateDartCall<0> {
const String& function_name() const { return function_name_; }
Token::Kind token_kind() const { return token_kind_; }
intptr_t checked_argument_count() const { return checked_argument_count_; }
+ const Function& interface_target() const { return interface_target_; }
bool has_unique_selector() const { return has_unique_selector_; }
void set_has_unique_selector(bool b) { has_unique_selector_ = b; }
@@ -2932,6 +2937,7 @@ class InstanceCallInstr : public TemplateDartCall<0> {
const String& function_name_;
const Token::Kind token_kind_; // Binary op, unary op, kGET or kILLEGAL.
const intptr_t checked_argument_count_;
+ const Function& interface_target_;
bool has_unique_selector_;
DISALLOW_COPY_AND_ASSIGN(InstanceCallInstr);
« no previous file with comments | « runtime/vm/flag_list.h ('k') | runtime/vm/kernel_binary_flowgraph.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698