| 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/intermediate_language.h" | 5 #include "vm/intermediate_language.h" |
| 6 | 6 |
| 7 #include "vm/bit_vector.h" | 7 #include "vm/bit_vector.h" |
| 8 #include "vm/dart_entry.h" | 8 #include "vm/dart_entry.h" |
| 9 #include "vm/flow_graph_allocator.h" | 9 #include "vm/flow_graph_allocator.h" |
| 10 #include "vm/flow_graph_builder.h" | 10 #include "vm/flow_graph_builder.h" |
| (...skipping 1041 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1052 intptr_t BinaryMintOpInstr::ResultCid() const { | 1052 intptr_t BinaryMintOpInstr::ResultCid() const { |
| 1053 return kMintCid; | 1053 return kMintCid; |
| 1054 } | 1054 } |
| 1055 | 1055 |
| 1056 | 1056 |
| 1057 RawAbstractType* UnboxedDoubleBinaryOpInstr::CompileType() const { | 1057 RawAbstractType* UnboxedDoubleBinaryOpInstr::CompileType() const { |
| 1058 return Type::Double(); | 1058 return Type::Double(); |
| 1059 } | 1059 } |
| 1060 | 1060 |
| 1061 | 1061 |
| 1062 RawAbstractType* MathSqrtInstr::CompileType() const { |
| 1063 return Type::Double(); |
| 1064 } |
| 1065 |
| 1066 |
| 1062 RawAbstractType* UnboxDoubleInstr::CompileType() const { | 1067 RawAbstractType* UnboxDoubleInstr::CompileType() const { |
| 1063 return Type::null(); | 1068 return Type::null(); |
| 1064 } | 1069 } |
| 1065 | 1070 |
| 1066 | 1071 |
| 1067 intptr_t BoxDoubleInstr::ResultCid() const { | 1072 intptr_t BoxDoubleInstr::ResultCid() const { |
| 1068 return kDoubleCid; | 1073 return kDoubleCid; |
| 1069 } | 1074 } |
| 1070 | 1075 |
| 1071 | 1076 |
| (...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1461 locs()); | 1466 locs()); |
| 1462 } | 1467 } |
| 1463 | 1468 |
| 1464 | 1469 |
| 1465 LocationSummary* StaticCallInstr::MakeLocationSummary() const { | 1470 LocationSummary* StaticCallInstr::MakeLocationSummary() const { |
| 1466 return MakeCallSummary(); | 1471 return MakeCallSummary(); |
| 1467 } | 1472 } |
| 1468 | 1473 |
| 1469 | 1474 |
| 1470 void StaticCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 1475 void StaticCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 1471 Label done; | |
| 1472 if (recognized() == MethodRecognizer::kMathSqrt) { | |
| 1473 compiler->GenerateInlinedMathSqrt(&done); | |
| 1474 // Falls through to static call when operand type is not double or smi. | |
| 1475 } | |
| 1476 compiler->GenerateStaticCall(deopt_id(), | 1476 compiler->GenerateStaticCall(deopt_id(), |
| 1477 token_pos(), | 1477 token_pos(), |
| 1478 function(), | 1478 function(), |
| 1479 ArgumentCount(), | 1479 ArgumentCount(), |
| 1480 argument_names(), | 1480 argument_names(), |
| 1481 locs()); | 1481 locs()); |
| 1482 __ Bind(&done); | |
| 1483 } | 1482 } |
| 1484 | 1483 |
| 1485 | 1484 |
| 1486 void AssertAssignableInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 1485 void AssertAssignableInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 1487 if (!is_eliminated()) { | 1486 if (!is_eliminated()) { |
| 1488 compiler->GenerateAssertAssignable(token_pos(), | 1487 compiler->GenerateAssertAssignable(token_pos(), |
| 1489 dst_type(), | 1488 dst_type(), |
| 1490 dst_name(), | 1489 dst_name(), |
| 1491 locs()); | 1490 locs()); |
| 1492 } | 1491 } |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1654 value->set_use_index(use_index++); | 1653 value->set_use_index(use_index++); |
| 1655 value->AddToEnvUseList(); | 1654 value->AddToEnvUseList(); |
| 1656 } | 1655 } |
| 1657 instr->set_env(copy); | 1656 instr->set_env(copy); |
| 1658 } | 1657 } |
| 1659 | 1658 |
| 1660 | 1659 |
| 1661 #undef __ | 1660 #undef __ |
| 1662 | 1661 |
| 1663 } // namespace dart | 1662 } // namespace dart |
| OLD | NEW |