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/simplified-lowering.h" | 5 #include "src/compiler/simplified-lowering.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "src/address-map.h" | 9 #include "src/address-map.h" |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 1778 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1789 case IrOpcode::kFloat64Min: | 1789 case IrOpcode::kFloat64Min: |
1790 return VisitFloat64Binop(node); | 1790 return VisitFloat64Binop(node); |
1791 case IrOpcode::kFloat64Abs: | 1791 case IrOpcode::kFloat64Abs: |
1792 case IrOpcode::kFloat64Sqrt: | 1792 case IrOpcode::kFloat64Sqrt: |
1793 case IrOpcode::kFloat64RoundDown: | 1793 case IrOpcode::kFloat64RoundDown: |
1794 case IrOpcode::kFloat64RoundTruncate: | 1794 case IrOpcode::kFloat64RoundTruncate: |
1795 case IrOpcode::kFloat64RoundTiesAway: | 1795 case IrOpcode::kFloat64RoundTiesAway: |
1796 case IrOpcode::kFloat64RoundUp: | 1796 case IrOpcode::kFloat64RoundUp: |
1797 return VisitUnop(node, UseInfo::TruncatingFloat64(), | 1797 return VisitUnop(node, UseInfo::TruncatingFloat64(), |
1798 MachineRepresentation::kFloat64); | 1798 MachineRepresentation::kFloat64); |
| 1799 case IrOpcode::kFloat64SilenceNaN: |
| 1800 return VisitUnop(node, UseInfo::TruncatingFloat64(), |
| 1801 MachineRepresentation::kFloat64); |
1799 case IrOpcode::kFloat64Equal: | 1802 case IrOpcode::kFloat64Equal: |
1800 case IrOpcode::kFloat64LessThan: | 1803 case IrOpcode::kFloat64LessThan: |
1801 case IrOpcode::kFloat64LessThanOrEqual: | 1804 case IrOpcode::kFloat64LessThanOrEqual: |
1802 return VisitFloat64Cmp(node); | 1805 return VisitFloat64Cmp(node); |
1803 case IrOpcode::kFloat64ExtractLowWord32: | 1806 case IrOpcode::kFloat64ExtractLowWord32: |
1804 case IrOpcode::kFloat64ExtractHighWord32: | 1807 case IrOpcode::kFloat64ExtractHighWord32: |
1805 return VisitUnop(node, UseInfo::TruncatingFloat64(), | 1808 return VisitUnop(node, UseInfo::TruncatingFloat64(), |
1806 MachineRepresentation::kWord32); | 1809 MachineRepresentation::kWord32); |
1807 case IrOpcode::kFloat64InsertLowWord32: | 1810 case IrOpcode::kFloat64InsertLowWord32: |
1808 case IrOpcode::kFloat64InsertHighWord32: | 1811 case IrOpcode::kFloat64InsertHighWord32: |
1809 return VisitBinop(node, UseInfo::TruncatingFloat64(), | 1812 return VisitBinop(node, UseInfo::TruncatingFloat64(), |
1810 UseInfo::TruncatingWord32(), | 1813 UseInfo::TruncatingWord32(), |
1811 MachineRepresentation::kFloat64); | 1814 MachineRepresentation::kFloat64); |
| 1815 case IrOpcode::kNumberSilenceNaN: |
| 1816 VisitUnop(node, UseInfo::TruncatingFloat64(), |
| 1817 MachineRepresentation::kFloat64); |
| 1818 if (lower()) NodeProperties::ChangeOp(node, Float64Op(node)); |
| 1819 return; |
1812 case IrOpcode::kLoadStackPointer: | 1820 case IrOpcode::kLoadStackPointer: |
1813 case IrOpcode::kLoadFramePointer: | 1821 case IrOpcode::kLoadFramePointer: |
1814 case IrOpcode::kLoadParentFramePointer: | 1822 case IrOpcode::kLoadParentFramePointer: |
1815 return VisitLeaf(node, MachineType::PointerRepresentation()); | 1823 return VisitLeaf(node, MachineType::PointerRepresentation()); |
1816 case IrOpcode::kStateValues: | 1824 case IrOpcode::kStateValues: |
1817 return VisitStateValues(node); | 1825 return VisitStateValues(node); |
1818 | 1826 |
1819 // The following opcodes are not produced before representation | 1827 // The following opcodes are not produced before representation |
1820 // inference runs, so we do not have any real test coverage. | 1828 // inference runs, so we do not have any real test coverage. |
1821 // Simply fail here. | 1829 // Simply fail here. |
(...skipping 1018 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2840 isolate(), graph()->zone(), callable.descriptor(), 0, flags, | 2848 isolate(), graph()->zone(), callable.descriptor(), 0, flags, |
2841 Operator::kNoProperties); | 2849 Operator::kNoProperties); |
2842 to_number_operator_.set(common()->Call(desc)); | 2850 to_number_operator_.set(common()->Call(desc)); |
2843 } | 2851 } |
2844 return to_number_operator_.get(); | 2852 return to_number_operator_.get(); |
2845 } | 2853 } |
2846 | 2854 |
2847 } // namespace compiler | 2855 } // namespace compiler |
2848 } // namespace internal | 2856 } // namespace internal |
2849 } // namespace v8 | 2857 } // namespace v8 |
OLD | NEW |