| Index: runtime/vm/flow_graph_compiler_x64.h
|
| ===================================================================
|
| --- runtime/vm/flow_graph_compiler_x64.h (revision 8286)
|
| +++ runtime/vm/flow_graph_compiler_x64.h (working copy)
|
| @@ -78,14 +78,16 @@
|
| PcDescriptors::Kind kind);
|
|
|
| // Type checking helper methods.
|
| - void CheckClassIds(const GrowableArray<intptr_t>& class_ids,
|
| - Label* is_instance_lbl,
|
| - Label* is_not_instance_lbl);
|
| + virtual void CheckClassIds(Register class_id_reg,
|
| + const GrowableArray<intptr_t>& class_ids,
|
| + Label* is_instance_lbl,
|
| + Label* is_not_instance_lbl);
|
| +
|
| RawSubtypeTestCache* GenerateInlineInstanceof(intptr_t cid,
|
| intptr_t token_index,
|
| const AbstractType& type,
|
| - Label* is_instance,
|
| - Label* is_not_instance);
|
| + Label* is_instance_lbl,
|
| + Label* is_not_instance_lbl);
|
|
|
| RawSubtypeTestCache* GenerateInstantiatedTypeWithArgumentsTest(
|
| intptr_t cid,
|
| @@ -101,9 +103,9 @@
|
| Label* is_not_instance_lbl);
|
|
|
| RawSubtypeTestCache* GenerateUninstantiatedTypeTest(
|
| - const AbstractType& dst_type,
|
| intptr_t cid,
|
| intptr_t token_index,
|
| + const AbstractType& dst_type,
|
| Label* is_instance_lbl,
|
| Label* is_not_instance_label);
|
|
|
| @@ -126,6 +128,21 @@
|
| const AbstractType& type,
|
| bool negate_result);
|
|
|
| + enum TypeTestStubKind {
|
| + kTestTypeOneArg,
|
| + kTestTypeTwoArgs,
|
| + kTestTypeThreeArgs,
|
| + };
|
| +
|
| + RawSubtypeTestCache* GenerateCallSubtypeTestStub(TypeTestStubKind test_kind,
|
| + Register instance_reg,
|
| + Register type_arguments_reg,
|
| + Register temp_reg,
|
| + Label* is_instance_lbl,
|
| + Label* is_not_instance_lbl);
|
| +
|
| + void GenerateBoolToJump(Register bool_reg, Label* is_true, Label* is_false);
|
| +
|
| void CopyParameters();
|
|
|
| virtual void GenerateInlinedGetter(intptr_t offset);
|
|
|