Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(221)

Side by Side Diff: src/compiler/arm64/instruction-selector-arm64.cc

Issue 1698483002: [arm][arm64] Improve CountTrailingZero implementation. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: comments addressed Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « src/compiler/arm64/instruction-scheduler-arm64.cc ('k') | src/compiler/ia32/instruction-selector-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698