Chromium Code Reviews| Index: runtime/vm/flow_graph_compiler_x64.cc |
| =================================================================== |
| --- runtime/vm/flow_graph_compiler_x64.cc (revision 15552) |
| +++ runtime/vm/flow_graph_compiler_x64.cc (working copy) |
| @@ -131,13 +131,11 @@ |
| type_arguments.IsRaw(type_arguments.Length()); |
| if (is_raw_type) { |
| const Register kClassIdReg = R10; |
| - // dynamic type argument, check only classes. |
| - // List is a very common case. |
| + // dynamic type argument. |
|
srdjan
2012/11/29 23:52:12
ditto.
regis
2012/11/30 00:24:30
Done.
|
| __ LoadClassId(kClassIdReg, kInstanceReg); |
| - if (!type_class.is_interface()) { |
| - __ cmpl(kClassIdReg, Immediate(type_class.id())); |
| - __ j(EQUAL, is_instance_lbl); |
| - } |
| + __ cmpl(kClassIdReg, Immediate(type_class.id())); |
| + __ j(EQUAL, is_instance_lbl); |
| + // List is a very common case. |
| if (type_class.IsListClass()) { |
| GenerateListTypeCheck(kClassIdReg, is_instance_lbl); |
| } |
| @@ -216,11 +214,8 @@ |
| __ Bind(&compare_classes); |
| const Register kClassIdReg = R10; |
| __ LoadClassId(kClassIdReg, kInstanceReg); |
| - // If type is an interface, we can skip the class equality check. |
| - if (!type_class.is_interface()) { |
| - __ cmpl(kClassIdReg, Immediate(type_class.id())); |
| - __ j(EQUAL, is_instance_lbl); |
| - } |
| + __ cmpl(kClassIdReg, Immediate(type_class.id())); |
| + __ j(EQUAL, is_instance_lbl); |
| // Bool interface can be implemented only by core class Bool. |
| // (see ClassFinalizer::ResolveInterfaces for list of restricted interfaces). |
| if (type.IsBoolType()) { |