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_MIPS. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS. |
6 #if defined(TARGET_ARCH_MIPS) | 6 #if defined(TARGET_ARCH_MIPS) |
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 1339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1350 intptr_t token_pos, | 1350 intptr_t token_pos, |
1351 LocationSummary* locs) { | 1351 LocationSummary* locs) { |
1352 StubCode* stub_code = isolate()->stub_code(); | 1352 StubCode* stub_code = isolate()->stub_code(); |
1353 __ Comment("StaticCall"); | 1353 __ Comment("StaticCall"); |
1354 __ LoadObject(S4, arguments_descriptor); | 1354 __ LoadObject(S4, arguments_descriptor); |
1355 // Do not use the code from the function, but let the code be patched so that | 1355 // Do not use the code from the function, but let the code be patched so that |
1356 // we can record the outgoing edges to other code. | 1356 // we can record the outgoing edges to other code. |
1357 GenerateDartCall(deopt_id, | 1357 GenerateDartCall(deopt_id, |
1358 token_pos, | 1358 token_pos, |
1359 &stub_code->CallStaticFunctionLabel(), | 1359 &stub_code->CallStaticFunctionLabel(), |
1360 RawPcDescriptors::kOptStaticCall, | 1360 RawPcDescriptors::kOther, |
1361 locs); | 1361 locs); |
1362 AddStaticCallTarget(function); | 1362 AddStaticCallTarget(function); |
1363 __ Drop(argument_count); | 1363 __ Drop(argument_count); |
1364 } | 1364 } |
1365 | 1365 |
1366 | 1366 |
1367 Condition FlowGraphCompiler::EmitEqualityRegConstCompare( | 1367 Condition FlowGraphCompiler::EmitEqualityRegConstCompare( |
1368 Register reg, | 1368 Register reg, |
1369 const Object& obj, | 1369 const Object& obj, |
1370 bool needs_number_check, | 1370 bool needs_number_check, |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1567 if (is_last_check) { | 1567 if (is_last_check) { |
1568 __ BranchNotEqual(class_id_reg, Immediate(sorted[i].cid), deopt); | 1568 __ BranchNotEqual(class_id_reg, Immediate(sorted[i].cid), deopt); |
1569 } else { | 1569 } else { |
1570 __ BranchNotEqual(class_id_reg, Immediate(sorted[i].cid), &next_test); | 1570 __ BranchNotEqual(class_id_reg, Immediate(sorted[i].cid), &next_test); |
1571 } | 1571 } |
1572 // Do not use the code from the function, but let the code be patched so | 1572 // Do not use the code from the function, but let the code be patched so |
1573 // that we can record the outgoing edges to other code. | 1573 // that we can record the outgoing edges to other code. |
1574 GenerateDartCall(deopt_id, | 1574 GenerateDartCall(deopt_id, |
1575 token_index, | 1575 token_index, |
1576 &stub_code->CallStaticFunctionLabel(), | 1576 &stub_code->CallStaticFunctionLabel(), |
1577 RawPcDescriptors::kOptStaticCall, | 1577 RawPcDescriptors::kOther, |
1578 locs); | 1578 locs); |
1579 const Function& function = *sorted[i].target; | 1579 const Function& function = *sorted[i].target; |
1580 AddStaticCallTarget(function); | 1580 AddStaticCallTarget(function); |
1581 __ Drop(argument_count); | 1581 __ Drop(argument_count); |
1582 if (!is_last_check) { | 1582 if (!is_last_check) { |
1583 __ b(&match_found); | 1583 __ b(&match_found); |
1584 } | 1584 } |
1585 __ Bind(&next_test); | 1585 __ Bind(&next_test); |
1586 } | 1586 } |
1587 __ Bind(&match_found); | 1587 __ Bind(&match_found); |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1826 __ AddImmediate(SP, kDoubleSize); | 1826 __ AddImmediate(SP, kDoubleSize); |
1827 } | 1827 } |
1828 | 1828 |
1829 | 1829 |
1830 #undef __ | 1830 #undef __ |
1831 | 1831 |
1832 | 1832 |
1833 } // namespace dart | 1833 } // namespace dart |
1834 | 1834 |
1835 #endif // defined TARGET_ARCH_MIPS | 1835 #endif // defined TARGET_ARCH_MIPS |
OLD | NEW |