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 956 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
967 Emit(kArm64Clz32, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0))); | 967 Emit(kArm64Clz32, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0))); |
968 } | 968 } |
969 | 969 |
970 | 970 |
971 void InstructionSelector::VisitWord32Ctz(Node* node) { UNREACHABLE(); } | 971 void InstructionSelector::VisitWord32Ctz(Node* node) { UNREACHABLE(); } |
972 | 972 |
973 | 973 |
974 void InstructionSelector::VisitWord64Ctz(Node* node) { UNREACHABLE(); } | 974 void InstructionSelector::VisitWord64Ctz(Node* node) { UNREACHABLE(); } |
975 | 975 |
976 | 976 |
| 977 void InstructionSelector::VisitWord32ReverseBits(Node* node) { |
| 978 VisitRR(this, kArm64Rbit32, node); |
| 979 } |
| 980 |
| 981 |
| 982 void InstructionSelector::VisitWord64ReverseBits(Node* node) { |
| 983 VisitRR(this, kArm64Rbit, node); |
| 984 } |
| 985 |
| 986 |
977 void InstructionSelector::VisitWord32Popcnt(Node* node) { UNREACHABLE(); } | 987 void InstructionSelector::VisitWord32Popcnt(Node* node) { UNREACHABLE(); } |
978 | 988 |
979 | 989 |
980 void InstructionSelector::VisitWord64Popcnt(Node* node) { UNREACHABLE(); } | 990 void InstructionSelector::VisitWord64Popcnt(Node* node) { UNREACHABLE(); } |
981 | 991 |
982 | 992 |
983 void InstructionSelector::VisitInt32Add(Node* node) { | 993 void InstructionSelector::VisitInt32Add(Node* node) { |
984 Arm64OperandGenerator g(this); | 994 Arm64OperandGenerator g(this); |
985 Int32BinopMatcher m(node); | 995 Int32BinopMatcher m(node); |
986 // Select Madd(x, y, z) for Add(Mul(x, y), z). | 996 // Select Madd(x, y, z) for Add(Mul(x, y), z). |
(...skipping 1225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2212 MachineOperatorBuilder::kFloat64RoundDown | | 2222 MachineOperatorBuilder::kFloat64RoundDown | |
2213 MachineOperatorBuilder::kFloat32RoundUp | | 2223 MachineOperatorBuilder::kFloat32RoundUp | |
2214 MachineOperatorBuilder::kFloat64RoundUp | | 2224 MachineOperatorBuilder::kFloat64RoundUp | |
2215 MachineOperatorBuilder::kFloat32RoundTruncate | | 2225 MachineOperatorBuilder::kFloat32RoundTruncate | |
2216 MachineOperatorBuilder::kFloat64RoundTruncate | | 2226 MachineOperatorBuilder::kFloat64RoundTruncate | |
2217 MachineOperatorBuilder::kFloat64RoundTiesAway | | 2227 MachineOperatorBuilder::kFloat64RoundTiesAway | |
2218 MachineOperatorBuilder::kFloat32RoundTiesEven | | 2228 MachineOperatorBuilder::kFloat32RoundTiesEven | |
2219 MachineOperatorBuilder::kFloat64RoundTiesEven | | 2229 MachineOperatorBuilder::kFloat64RoundTiesEven | |
2220 MachineOperatorBuilder::kWord32ShiftIsSafe | | 2230 MachineOperatorBuilder::kWord32ShiftIsSafe | |
2221 MachineOperatorBuilder::kInt32DivIsSafe | | 2231 MachineOperatorBuilder::kInt32DivIsSafe | |
2222 MachineOperatorBuilder::kUint32DivIsSafe; | 2232 MachineOperatorBuilder::kUint32DivIsSafe | |
| 2233 MachineOperatorBuilder::kWord32ReverseBits | |
| 2234 MachineOperatorBuilder::kWord64ReverseBits; |
2223 } | 2235 } |
2224 | 2236 |
2225 } // namespace compiler | 2237 } // namespace compiler |
2226 } // namespace internal | 2238 } // namespace internal |
2227 } // namespace v8 | 2239 } // namespace v8 |
OLD | NEW |