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 1390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1401 | 1401 |
1402 | 1402 |
1403 void InstructionSelector::VisitFloat64RoundTiesEven(Node* node) { | 1403 void InstructionSelector::VisitFloat64RoundTiesEven(Node* node) { |
1404 VisitRR(this, node, kSSEFloat64Round | MiscField::encode(kRoundToNearest)); | 1404 VisitRR(this, node, kSSEFloat64Round | MiscField::encode(kRoundToNearest)); |
1405 } | 1405 } |
1406 | 1406 |
1407 void InstructionSelector::VisitFloat32Neg(Node* node) { UNREACHABLE(); } | 1407 void InstructionSelector::VisitFloat32Neg(Node* node) { UNREACHABLE(); } |
1408 | 1408 |
1409 void InstructionSelector::VisitFloat64Neg(Node* node) { UNREACHABLE(); } | 1409 void InstructionSelector::VisitFloat64Neg(Node* node) { UNREACHABLE(); } |
1410 | 1410 |
| 1411 void InstructionSelector::VisitFloat64Ieee754Binop(Node* node, |
| 1412 InstructionCode opcode) { |
| 1413 X64OperandGenerator g(this); |
| 1414 Emit(opcode, g.DefineAsFixed(node, xmm0), g.UseFixed(node->InputAt(0), xmm0), |
| 1415 g.UseFixed(node->InputAt(1), xmm1)) |
| 1416 ->MarkAsCall(); |
| 1417 } |
| 1418 |
1411 void InstructionSelector::VisitFloat64Ieee754Unop(Node* node, | 1419 void InstructionSelector::VisitFloat64Ieee754Unop(Node* node, |
1412 InstructionCode opcode) { | 1420 InstructionCode opcode) { |
1413 X64OperandGenerator g(this); | 1421 X64OperandGenerator g(this); |
1414 Emit(opcode, g.DefineAsFixed(node, xmm0), g.UseFixed(node->InputAt(0), xmm0)) | 1422 Emit(opcode, g.DefineAsFixed(node, xmm0), g.UseFixed(node->InputAt(0), xmm0)) |
1415 ->MarkAsCall(); | 1423 ->MarkAsCall(); |
1416 } | 1424 } |
1417 | 1425 |
1418 void InstructionSelector::EmitPrepareArguments( | 1426 void InstructionSelector::EmitPrepareArguments( |
1419 ZoneVector<PushParameter>* arguments, const CallDescriptor* descriptor, | 1427 ZoneVector<PushParameter>* arguments, const CallDescriptor* descriptor, |
1420 Node* node) { | 1428 Node* node) { |
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2122 // static | 2130 // static |
2123 MachineOperatorBuilder::AlignmentRequirements | 2131 MachineOperatorBuilder::AlignmentRequirements |
2124 InstructionSelector::AlignmentRequirements() { | 2132 InstructionSelector::AlignmentRequirements() { |
2125 return MachineOperatorBuilder::AlignmentRequirements:: | 2133 return MachineOperatorBuilder::AlignmentRequirements:: |
2126 FullUnalignedAccessSupport(); | 2134 FullUnalignedAccessSupport(); |
2127 } | 2135 } |
2128 | 2136 |
2129 } // namespace compiler | 2137 } // namespace compiler |
2130 } // namespace internal | 2138 } // namespace internal |
2131 } // namespace v8 | 2139 } // namespace v8 |
OLD | NEW |