OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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/globals.h" // Needed here to get TARGET_ARCH_ARM. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM. |
6 #if defined(TARGET_ARCH_ARM) | 6 #if defined(TARGET_ARCH_ARM) |
7 | 7 |
8 #include "vm/flow_graph_compiler.h" | 8 #include "vm/flow_graph_compiler.h" |
9 | 9 |
10 #include "vm/ast_printer.h" | 10 #include "vm/ast_printer.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 #include "vm/symbols.h" | 22 #include "vm/symbols.h" |
23 | 23 |
24 namespace dart { | 24 namespace dart { |
25 | 25 |
26 DEFINE_FLAG(bool, trap_on_deoptimization, false, "Trap on deoptimization."); | 26 DEFINE_FLAG(bool, trap_on_deoptimization, false, "Trap on deoptimization."); |
27 DEFINE_FLAG(bool, unbox_mints, true, "Optimize 64-bit integer arithmetic."); | 27 DEFINE_FLAG(bool, unbox_mints, true, "Optimize 64-bit integer arithmetic."); |
28 DEFINE_FLAG(bool, unbox_doubles, true, "Optimize double arithmetic."); | 28 DEFINE_FLAG(bool, unbox_doubles, true, "Optimize double arithmetic."); |
29 DECLARE_FLAG(bool, enable_simd_inline); | 29 DECLARE_FLAG(bool, enable_simd_inline); |
30 | 30 |
31 | 31 |
32 void MegamorphicSlowPath::EmitNativeCode(FlowGraphCompiler* compiler) { | |
33 Assembler* assembler = compiler->assembler(); | |
34 #define __ assembler-> | |
35 __ Bind(entry_label()); | |
36 __ Comment("MegamorphicSlowPath"); | |
37 compiler->EmitMegamorphicInstanceCall(ic_data_, argument_count_, deopt_id_, | |
38 token_pos_, locs_, try_index_); | |
39 __ b(exit_label()); | |
40 #undef __ | |
41 } | |
42 | |
43 | |
44 FlowGraphCompiler::~FlowGraphCompiler() { | 32 FlowGraphCompiler::~FlowGraphCompiler() { |
45 // BlockInfos are zone-allocated, so their destructors are not called. | 33 // BlockInfos are zone-allocated, so their destructors are not called. |
46 // Verify the labels explicitly here. | 34 // Verify the labels explicitly here. |
47 for (int i = 0; i < block_info_.length(); ++i) { | 35 for (int i = 0; i < block_info_.length(); ++i) { |
48 ASSERT(!block_info_[i]->jump_label()->IsLinked()); | 36 ASSERT(!block_info_[i]->jump_label()->IsLinked()); |
49 } | 37 } |
50 } | 38 } |
51 | 39 |
52 | 40 |
53 bool FlowGraphCompiler::SupportsUnboxedDoubles() { | 41 bool FlowGraphCompiler::SupportsUnboxedDoubles() { |
(...skipping 1942 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1996 DRegister dreg = EvenDRegisterOf(reg); | 1984 DRegister dreg = EvenDRegisterOf(reg); |
1997 __ vldrd(dreg, Address(SP, kDoubleSize, Address::PostIndex)); | 1985 __ vldrd(dreg, Address(SP, kDoubleSize, Address::PostIndex)); |
1998 } | 1986 } |
1999 | 1987 |
2000 | 1988 |
2001 #undef __ | 1989 #undef __ |
2002 | 1990 |
2003 } // namespace dart | 1991 } // namespace dart |
2004 | 1992 |
2005 #endif // defined TARGET_ARCH_ARM | 1993 #endif // defined TARGET_ARCH_ARM |
OLD | NEW |