| 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 <algorithm> | 5 #include <algorithm> |
| 6 | 6 |
| 7 #include "src/base/adapters.h" | 7 #include "src/base/adapters.h" |
| 8 #include "src/compiler/instruction-selector-impl.h" | 8 #include "src/compiler/instruction-selector-impl.h" |
| 9 #include "src/compiler/node-matchers.h" | 9 #include "src/compiler/node-matchers.h" |
| 10 #include "src/compiler/node-properties.h" | 10 #include "src/compiler/node-properties.h" |
| (...skipping 1234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1245 X64OperandGenerator g(this); | 1245 X64OperandGenerator g(this); |
| 1246 Float32BinopMatcher m(node); | 1246 Float32BinopMatcher m(node); |
| 1247 if (m.left().IsMinusZero()) { | 1247 if (m.left().IsMinusZero()) { |
| 1248 VisitFloatUnop(this, node, m.right().node(), kAVXFloat32Neg, | 1248 VisitFloatUnop(this, node, m.right().node(), kAVXFloat32Neg, |
| 1249 kSSEFloat32Neg); | 1249 kSSEFloat32Neg); |
| 1250 return; | 1250 return; |
| 1251 } | 1251 } |
| 1252 VisitFloatBinop(this, node, kAVXFloat32Sub, kSSEFloat32Sub); | 1252 VisitFloatBinop(this, node, kAVXFloat32Sub, kSSEFloat32Sub); |
| 1253 } | 1253 } |
| 1254 | 1254 |
| 1255 void InstructionSelector::VisitFloat32SubPreserveNan(Node* node) { |
| 1256 VisitFloatBinop(this, node, kAVXFloat32Sub, kSSEFloat32Sub); |
| 1257 } |
| 1255 | 1258 |
| 1256 void InstructionSelector::VisitFloat32Mul(Node* node) { | 1259 void InstructionSelector::VisitFloat32Mul(Node* node) { |
| 1257 VisitFloatBinop(this, node, kAVXFloat32Mul, kSSEFloat32Mul); | 1260 VisitFloatBinop(this, node, kAVXFloat32Mul, kSSEFloat32Mul); |
| 1258 } | 1261 } |
| 1259 | 1262 |
| 1260 | 1263 |
| 1261 void InstructionSelector::VisitFloat32Div(Node* node) { | 1264 void InstructionSelector::VisitFloat32Div(Node* node) { |
| 1262 VisitFloatBinop(this, node, kAVXFloat32Div, kSSEFloat32Div); | 1265 VisitFloatBinop(this, node, kAVXFloat32Div, kSSEFloat32Div); |
| 1263 } | 1266 } |
| 1264 | 1267 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1304 } | 1307 } |
| 1305 } | 1308 } |
| 1306 } | 1309 } |
| 1307 VisitFloatUnop(this, node, m.right().node(), kAVXFloat64Neg, | 1310 VisitFloatUnop(this, node, m.right().node(), kAVXFloat64Neg, |
| 1308 kSSEFloat64Neg); | 1311 kSSEFloat64Neg); |
| 1309 return; | 1312 return; |
| 1310 } | 1313 } |
| 1311 VisitFloatBinop(this, node, kAVXFloat64Sub, kSSEFloat64Sub); | 1314 VisitFloatBinop(this, node, kAVXFloat64Sub, kSSEFloat64Sub); |
| 1312 } | 1315 } |
| 1313 | 1316 |
| 1317 void InstructionSelector::VisitFloat64SubPreserveNan(Node* node) { |
| 1318 VisitFloatBinop(this, node, kAVXFloat64Sub, kSSEFloat64Sub); |
| 1319 } |
| 1314 | 1320 |
| 1315 void InstructionSelector::VisitFloat64Mul(Node* node) { | 1321 void InstructionSelector::VisitFloat64Mul(Node* node) { |
| 1316 VisitFloatBinop(this, node, kAVXFloat64Mul, kSSEFloat64Mul); | 1322 VisitFloatBinop(this, node, kAVXFloat64Mul, kSSEFloat64Mul); |
| 1317 } | 1323 } |
| 1318 | 1324 |
| 1319 | 1325 |
| 1320 void InstructionSelector::VisitFloat64Div(Node* node) { | 1326 void InstructionSelector::VisitFloat64Div(Node* node) { |
| 1321 VisitFloatBinop(this, node, kAVXFloat64Div, kSSEFloat64Div); | 1327 VisitFloatBinop(this, node, kAVXFloat64Div, kSSEFloat64Div); |
| 1322 } | 1328 } |
| 1323 | 1329 |
| (...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2146 MachineOperatorBuilder::kFloat64RoundTruncate | | 2152 MachineOperatorBuilder::kFloat64RoundTruncate | |
| 2147 MachineOperatorBuilder::kFloat32RoundTiesEven | | 2153 MachineOperatorBuilder::kFloat32RoundTiesEven | |
| 2148 MachineOperatorBuilder::kFloat64RoundTiesEven; | 2154 MachineOperatorBuilder::kFloat64RoundTiesEven; |
| 2149 } | 2155 } |
| 2150 return flags; | 2156 return flags; |
| 2151 } | 2157 } |
| 2152 | 2158 |
| 2153 } // namespace compiler | 2159 } // namespace compiler |
| 2154 } // namespace internal | 2160 } // namespace internal |
| 2155 } // namespace v8 | 2161 } // namespace v8 |
| OLD | NEW |