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/base/adapters.h" | 5 #include "src/base/adapters.h" |
6 #include "src/compiler/instruction-selector-impl.h" | 6 #include "src/compiler/instruction-selector-impl.h" |
7 #include "src/compiler/node-matchers.h" | 7 #include "src/compiler/node-matchers.h" |
8 #include "src/compiler/node-properties.h" | 8 #include "src/compiler/node-properties.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 1611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1622 | 1622 |
1623 | 1623 |
1624 void InstructionSelector::VisitFloat64InsertHighWord32(Node* node) { | 1624 void InstructionSelector::VisitFloat64InsertHighWord32(Node* node) { |
1625 X87OperandGenerator g(this); | 1625 X87OperandGenerator g(this); |
1626 Node* left = node->InputAt(0); | 1626 Node* left = node->InputAt(0); |
1627 Node* right = node->InputAt(1); | 1627 Node* right = node->InputAt(1); |
1628 Emit(kX87Float64InsertHighWord32, g.UseFixed(node, stX_0), | 1628 Emit(kX87Float64InsertHighWord32, g.UseFixed(node, stX_0), |
1629 g.UseRegister(left), g.UseRegister(right)); | 1629 g.UseRegister(left), g.UseRegister(right)); |
1630 } | 1630 } |
1631 | 1631 |
| 1632 void InstructionSelector::VisitFloat64SilenceNaN(Node* node) { |
| 1633 X87OperandGenerator g(this); |
| 1634 Emit(kX87PushFloat64, g.NoOutput(), g.Use(node->InputAt(0))); |
| 1635 Emit(kX87Float64SilenceNaN, g.DefineAsFixed(node, stX_0), 0, nullptr); |
| 1636 } |
| 1637 |
1632 void InstructionSelector::VisitAtomicLoad(Node* node) { | 1638 void InstructionSelector::VisitAtomicLoad(Node* node) { |
1633 LoadRepresentation load_rep = LoadRepresentationOf(node->op()); | 1639 LoadRepresentation load_rep = LoadRepresentationOf(node->op()); |
1634 DCHECK(load_rep.representation() == MachineRepresentation::kWord8 || | 1640 DCHECK(load_rep.representation() == MachineRepresentation::kWord8 || |
1635 load_rep.representation() == MachineRepresentation::kWord16 || | 1641 load_rep.representation() == MachineRepresentation::kWord16 || |
1636 load_rep.representation() == MachineRepresentation::kWord32); | 1642 load_rep.representation() == MachineRepresentation::kWord32); |
1637 USE(load_rep); | 1643 USE(load_rep); |
1638 VisitLoad(node); | 1644 VisitLoad(node); |
1639 } | 1645 } |
1640 | 1646 |
1641 void InstructionSelector::VisitAtomicStore(Node* node) { | 1647 void InstructionSelector::VisitAtomicStore(Node* node) { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1703 // static | 1709 // static |
1704 MachineOperatorBuilder::AlignmentRequirements | 1710 MachineOperatorBuilder::AlignmentRequirements |
1705 InstructionSelector::AlignmentRequirements() { | 1711 InstructionSelector::AlignmentRequirements() { |
1706 return MachineOperatorBuilder::AlignmentRequirements:: | 1712 return MachineOperatorBuilder::AlignmentRequirements:: |
1707 FullUnalignedAccessSupport(); | 1713 FullUnalignedAccessSupport(); |
1708 } | 1714 } |
1709 | 1715 |
1710 } // namespace compiler | 1716 } // namespace compiler |
1711 } // namespace internal | 1717 } // namespace internal |
1712 } // namespace v8 | 1718 } // namespace v8 |
OLD | NEW |