| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a | 
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "vm/flow_graph_builder.h" | 5 #include "vm/flow_graph_builder.h" | 
| 6 | 6 | 
| 7 #include "lib/invocation_mirror.h" | 7 #include "lib/invocation_mirror.h" | 
| 8 #include "vm/ast_printer.h" | 8 #include "vm/ast_printer.h" | 
| 9 #include "vm/bit_vector.h" | 9 #include "vm/bit_vector.h" | 
| 10 #include "vm/compiler.h" | 10 #include "vm/compiler.h" | 
| (...skipping 3481 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3492       case MethodRecognizer::kGrowableArrayLength: | 3492       case MethodRecognizer::kGrowableArrayLength: | 
| 3493       case MethodRecognizer::kObjectArrayLength: | 3493       case MethodRecognizer::kObjectArrayLength: | 
| 3494       case MethodRecognizer::kImmutableArrayLength: | 3494       case MethodRecognizer::kImmutableArrayLength: | 
| 3495       case MethodRecognizer::kTypedDataLength: { | 3495       case MethodRecognizer::kTypedDataLength: { | 
| 3496         LoadFieldInstr* load = BuildNativeGetter( | 3496         LoadFieldInstr* load = BuildNativeGetter( | 
| 3497             node, kind, OffsetForLengthGetter(kind), | 3497             node, kind, OffsetForLengthGetter(kind), | 
| 3498             Type::ZoneHandle(Z, Type::SmiType()), kSmiCid); | 3498             Type::ZoneHandle(Z, Type::SmiType()), kSmiCid); | 
| 3499         load->set_is_immutable(kind != MethodRecognizer::kGrowableArrayLength); | 3499         load->set_is_immutable(kind != MethodRecognizer::kGrowableArrayLength); | 
| 3500         return ReturnDefinition(load); | 3500         return ReturnDefinition(load); | 
| 3501       } | 3501       } | 
|  | 3502 #if !defined(TARGET_ARCH_DBC) | 
|  | 3503       // TODO(vegorov) add bytecode to support this method. | 
| 3502       case MethodRecognizer::kClassIDgetID: { | 3504       case MethodRecognizer::kClassIDgetID: { | 
| 3503         LocalVariable* value_var = | 3505         LocalVariable* value_var = | 
| 3504             node->scope()->LookupVariable(Symbols::Value(), true); | 3506             node->scope()->LookupVariable(Symbols::Value(), true); | 
| 3505         Value* value = Bind(new(Z) LoadLocalInstr(*value_var, token_pos)); | 3507         Value* value = Bind(new(Z) LoadLocalInstr(*value_var, token_pos)); | 
| 3506         LoadClassIdInstr* load = new(Z) LoadClassIdInstr(value); | 3508         LoadClassIdInstr* load = new(Z) LoadClassIdInstr(value); | 
| 3507         return ReturnDefinition(load); | 3509         return ReturnDefinition(load); | 
| 3508       } | 3510       } | 
|  | 3511 #endif | 
| 3509       case MethodRecognizer::kGrowableArrayCapacity: { | 3512       case MethodRecognizer::kGrowableArrayCapacity: { | 
| 3510         Value* receiver = Bind(BuildLoadThisVar(node->scope(), token_pos)); | 3513         Value* receiver = Bind(BuildLoadThisVar(node->scope(), token_pos)); | 
| 3511         LoadFieldInstr* data_load = new(Z) LoadFieldInstr( | 3514         LoadFieldInstr* data_load = new(Z) LoadFieldInstr( | 
| 3512             receiver, | 3515             receiver, | 
| 3513             Array::data_offset(), | 3516             Array::data_offset(), | 
| 3514             Object::dynamic_type(), | 3517             Object::dynamic_type(), | 
| 3515             node->token_pos()); | 3518             node->token_pos()); | 
| 3516         data_load->set_result_cid(kArrayCid); | 3519         data_load->set_result_cid(kArrayCid); | 
| 3517         Value* data = Bind(data_load); | 3520         Value* data = Bind(data_load); | 
| 3518         LoadFieldInstr* length_load = new(Z) LoadFieldInstr( | 3521         LoadFieldInstr* length_load = new(Z) LoadFieldInstr( | 
| (...skipping 1145 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4664                    Script::Handle(function.script()), | 4667                    Script::Handle(function.script()), | 
| 4665                    function.token_pos(), | 4668                    function.token_pos(), | 
| 4666                    Report::AtLocation, | 4669                    Report::AtLocation, | 
| 4667                    "FlowGraphBuilder Bailout: %s %s", | 4670                    "FlowGraphBuilder Bailout: %s %s", | 
| 4668                    String::Handle(function.name()).ToCString(), | 4671                    String::Handle(function.name()).ToCString(), | 
| 4669                    reason); | 4672                    reason); | 
| 4670   UNREACHABLE(); | 4673   UNREACHABLE(); | 
| 4671 } | 4674 } | 
| 4672 | 4675 | 
| 4673 }  // namespace dart | 4676 }  // namespace dart | 
| OLD | NEW | 
|---|