| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/compiler/instruction-selector-impl.h" | 5 #include "src/compiler/instruction-selector-impl.h" |
| 6 #include "src/compiler/node-matchers.h" | 6 #include "src/compiler/node-matchers.h" |
| 7 #include "src/compiler/node-properties.h" | 7 #include "src/compiler/node-properties.h" |
| 8 | 8 |
| 9 namespace v8 { | 9 namespace v8 { |
| 10 namespace internal { | 10 namespace internal { |
| (...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1097 | 1097 |
| 1098 | 1098 |
| 1099 void InstructionSelector::VisitFloat64Mod(Node* node) { | 1099 void InstructionSelector::VisitFloat64Mod(Node* node) { |
| 1100 Arm64OperandGenerator g(this); | 1100 Arm64OperandGenerator g(this); |
| 1101 Emit(kArm64Float64Mod, g.DefineAsFixed(node, d0), | 1101 Emit(kArm64Float64Mod, g.DefineAsFixed(node, d0), |
| 1102 g.UseFixed(node->InputAt(0), d0), | 1102 g.UseFixed(node->InputAt(0), d0), |
| 1103 g.UseFixed(node->InputAt(1), d1))->MarkAsCall(); | 1103 g.UseFixed(node->InputAt(1), d1))->MarkAsCall(); |
| 1104 } | 1104 } |
| 1105 | 1105 |
| 1106 | 1106 |
| 1107 void InstructionSelector::VisitFloat64Max(Node* node) { UNREACHABLE(); } | 1107 void InstructionSelector::VisitFloat64Max(Node* node) { |
| 1108 Arm64OperandGenerator g(this); |
| 1109 Node* left = node->InputAt(0); |
| 1110 Node* right = node->InputAt(1); |
| 1111 Emit(kArm64Float64Max, g.DefineAsRegister(node), g.UseRegister(left), |
| 1112 g.UseRegister(right)); |
| 1113 } |
| 1108 | 1114 |
| 1109 | 1115 |
| 1110 void InstructionSelector::VisitFloat64Min(Node* node) { UNREACHABLE(); } | 1116 void InstructionSelector::VisitFloat64Min(Node* node) { |
| 1117 Arm64OperandGenerator g(this); |
| 1118 Node* left = node->InputAt(0); |
| 1119 Node* right = node->InputAt(1); |
| 1120 Emit(kArm64Float64Min, g.DefineAsRegister(node), g.UseRegister(left), |
| 1121 g.UseRegister(right)); |
| 1122 } |
| 1111 | 1123 |
| 1112 | 1124 |
| 1113 void InstructionSelector::VisitFloat64Sqrt(Node* node) { | 1125 void InstructionSelector::VisitFloat64Sqrt(Node* node) { |
| 1114 VisitRRFloat64(this, kArm64Float64Sqrt, node); | 1126 VisitRRFloat64(this, kArm64Float64Sqrt, node); |
| 1115 } | 1127 } |
| 1116 | 1128 |
| 1117 | 1129 |
| 1118 void InstructionSelector::VisitFloat64RoundDown(Node* node) { | 1130 void InstructionSelector::VisitFloat64RoundDown(Node* node) { |
| 1119 VisitRRFloat64(this, kArm64Float64RoundDown, node); | 1131 VisitRRFloat64(this, kArm64Float64RoundDown, node); |
| 1120 } | 1132 } |
| (...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1674 g.UseRegister(left), g.UseRegister(right)); | 1686 g.UseRegister(left), g.UseRegister(right)); |
| 1675 } | 1687 } |
| 1676 | 1688 |
| 1677 | 1689 |
| 1678 // static | 1690 // static |
| 1679 MachineOperatorBuilder::Flags | 1691 MachineOperatorBuilder::Flags |
| 1680 InstructionSelector::SupportedMachineOperatorFlags() { | 1692 InstructionSelector::SupportedMachineOperatorFlags() { |
| 1681 return MachineOperatorBuilder::kFloat64RoundDown | | 1693 return MachineOperatorBuilder::kFloat64RoundDown | |
| 1682 MachineOperatorBuilder::kFloat64RoundTruncate | | 1694 MachineOperatorBuilder::kFloat64RoundTruncate | |
| 1683 MachineOperatorBuilder::kFloat64RoundTiesAway | | 1695 MachineOperatorBuilder::kFloat64RoundTiesAway | |
| 1696 MachineOperatorBuilder::kFloat64Max | |
| 1697 MachineOperatorBuilder::kFloat64Min | |
| 1684 MachineOperatorBuilder::kWord32ShiftIsSafe | | 1698 MachineOperatorBuilder::kWord32ShiftIsSafe | |
| 1685 MachineOperatorBuilder::kInt32DivIsSafe | | 1699 MachineOperatorBuilder::kInt32DivIsSafe | |
| 1686 MachineOperatorBuilder::kUint32DivIsSafe; | 1700 MachineOperatorBuilder::kUint32DivIsSafe; |
| 1687 } | 1701 } |
| 1688 | 1702 |
| 1689 } // namespace compiler | 1703 } // namespace compiler |
| 1690 } // namespace internal | 1704 } // namespace internal |
| 1691 } // namespace v8 | 1705 } // namespace v8 |
| OLD | NEW |