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 918 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
929 | 929 |
930 void InstructionSelector::VisitWord32Clz(Node* node) { | 930 void InstructionSelector::VisitWord32Clz(Node* node) { |
931 Arm64OperandGenerator g(this); | 931 Arm64OperandGenerator g(this); |
932 Emit(kArm64Clz32, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0))); | 932 Emit(kArm64Clz32, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0))); |
933 } | 933 } |
934 | 934 |
935 | 935 |
936 void InstructionSelector::VisitWord32Ctz(Node* node) { UNREACHABLE(); } | 936 void InstructionSelector::VisitWord32Ctz(Node* node) { UNREACHABLE(); } |
937 | 937 |
938 | 938 |
| 939 void InstructionSelector::VisitWord64Ctz(Node* node) { UNREACHABLE(); } |
| 940 |
| 941 |
939 void InstructionSelector::VisitWord32Popcnt(Node* node) { UNREACHABLE(); } | 942 void InstructionSelector::VisitWord32Popcnt(Node* node) { UNREACHABLE(); } |
940 | 943 |
941 | 944 |
942 void InstructionSelector::VisitInt32Add(Node* node) { | 945 void InstructionSelector::VisitInt32Add(Node* node) { |
943 Arm64OperandGenerator g(this); | 946 Arm64OperandGenerator g(this); |
944 Int32BinopMatcher m(node); | 947 Int32BinopMatcher m(node); |
945 // Select Madd(x, y, z) for Add(Mul(x, y), z). | 948 // Select Madd(x, y, z) for Add(Mul(x, y), z). |
946 if (m.left().IsInt32Mul() && CanCover(node, m.left().node())) { | 949 if (m.left().IsInt32Mul() && CanCover(node, m.left().node())) { |
947 Int32BinopMatcher mleft(m.left().node()); | 950 Int32BinopMatcher mleft(m.left().node()); |
948 // Check multiply can't be later reduced to addition with shift. | 951 // Check multiply can't be later reduced to addition with shift. |
(...skipping 1057 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2006 MachineOperatorBuilder::kFloat64RoundTruncate | | 2009 MachineOperatorBuilder::kFloat64RoundTruncate | |
2007 MachineOperatorBuilder::kFloat64RoundTiesAway | | 2010 MachineOperatorBuilder::kFloat64RoundTiesAway | |
2008 MachineOperatorBuilder::kWord32ShiftIsSafe | | 2011 MachineOperatorBuilder::kWord32ShiftIsSafe | |
2009 MachineOperatorBuilder::kInt32DivIsSafe | | 2012 MachineOperatorBuilder::kInt32DivIsSafe | |
2010 MachineOperatorBuilder::kUint32DivIsSafe; | 2013 MachineOperatorBuilder::kUint32DivIsSafe; |
2011 } | 2014 } |
2012 | 2015 |
2013 } // namespace compiler | 2016 } // namespace compiler |
2014 } // namespace internal | 2017 } // namespace internal |
2015 } // namespace v8 | 2018 } // namespace v8 |
OLD | NEW |