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 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
693 void InstructionSelector::VisitChangeFloat32ToFloat64(Node* node) { | 693 void InstructionSelector::VisitChangeFloat32ToFloat64(Node* node) { |
694 VisitRO(this, node, kSSEFloat32ToFloat64); | 694 VisitRO(this, node, kSSEFloat32ToFloat64); |
695 } | 695 } |
696 | 696 |
697 | 697 |
698 void InstructionSelector::VisitRoundInt32ToFloat32(Node* node) { | 698 void InstructionSelector::VisitRoundInt32ToFloat32(Node* node) { |
699 VisitRO(this, node, kSSEInt32ToFloat32); | 699 VisitRO(this, node, kSSEInt32ToFloat32); |
700 } | 700 } |
701 | 701 |
702 | 702 |
| 703 void InstructionSelector::VisitRoundUint32ToFloat32(Node* node) { |
| 704 IA32OperandGenerator g(this); |
| 705 InstructionOperand temps[] = {g.TempRegister(), g.TempRegister()}; |
| 706 Emit(kSSEUint32ToFloat32, g.DefineAsRegister(node), g.Use(node->InputAt(0)), |
| 707 arraysize(temps), temps); |
| 708 } |
| 709 |
| 710 |
703 void InstructionSelector::VisitChangeInt32ToFloat64(Node* node) { | 711 void InstructionSelector::VisitChangeInt32ToFloat64(Node* node) { |
704 VisitRO(this, node, kSSEInt32ToFloat64); | 712 VisitRO(this, node, kSSEInt32ToFloat64); |
705 } | 713 } |
706 | 714 |
707 | 715 |
708 void InstructionSelector::VisitChangeUint32ToFloat64(Node* node) { | 716 void InstructionSelector::VisitChangeUint32ToFloat64(Node* node) { |
709 VisitRO(this, node, kSSEUint32ToFloat64); | 717 VisitRO(this, node, kSSEUint32ToFloat64); |
710 } | 718 } |
711 | 719 |
712 | 720 |
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1336 MachineOperatorBuilder::kFloat64RoundTruncate | | 1344 MachineOperatorBuilder::kFloat64RoundTruncate | |
1337 MachineOperatorBuilder::kFloat32RoundTiesEven | | 1345 MachineOperatorBuilder::kFloat32RoundTiesEven | |
1338 MachineOperatorBuilder::kFloat64RoundTiesEven; | 1346 MachineOperatorBuilder::kFloat64RoundTiesEven; |
1339 } | 1347 } |
1340 return flags; | 1348 return flags; |
1341 } | 1349 } |
1342 | 1350 |
1343 } // namespace compiler | 1351 } // namespace compiler |
1344 } // namespace internal | 1352 } // namespace internal |
1345 } // namespace v8 | 1353 } // namespace v8 |
OLD | NEW |