| 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 |