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 1785 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1796 case IrOpcode::kFloat64Min: | 1796 case IrOpcode::kFloat64Min: |
1797 return VisitFloat64Binop(node); | 1797 return VisitFloat64Binop(node); |
1798 case IrOpcode::kFloat64Abs: | 1798 case IrOpcode::kFloat64Abs: |
1799 case IrOpcode::kFloat64Sqrt: | 1799 case IrOpcode::kFloat64Sqrt: |
1800 case IrOpcode::kFloat64RoundDown: | 1800 case IrOpcode::kFloat64RoundDown: |
1801 case IrOpcode::kFloat64RoundTruncate: | 1801 case IrOpcode::kFloat64RoundTruncate: |
1802 case IrOpcode::kFloat64RoundTiesAway: | 1802 case IrOpcode::kFloat64RoundTiesAway: |
1803 case IrOpcode::kFloat64RoundUp: | 1803 case IrOpcode::kFloat64RoundUp: |
1804 return VisitUnop(node, UseInfo::TruncatingFloat64(), | 1804 return VisitUnop(node, UseInfo::TruncatingFloat64(), |
1805 MachineRepresentation::kFloat64); | 1805 MachineRepresentation::kFloat64); |
| 1806 case IrOpcode::kFloat64SilenceNaN: |
| 1807 return VisitUnop(node, UseInfo::TruncatingFloat64(), |
| 1808 MachineRepresentation::kFloat64); |
1806 case IrOpcode::kFloat64Equal: | 1809 case IrOpcode::kFloat64Equal: |
1807 case IrOpcode::kFloat64LessThan: | 1810 case IrOpcode::kFloat64LessThan: |
1808 case IrOpcode::kFloat64LessThanOrEqual: | 1811 case IrOpcode::kFloat64LessThanOrEqual: |
1809 return VisitFloat64Cmp(node); | 1812 return VisitFloat64Cmp(node); |
1810 case IrOpcode::kFloat64ExtractLowWord32: | 1813 case IrOpcode::kFloat64ExtractLowWord32: |
1811 case IrOpcode::kFloat64ExtractHighWord32: | 1814 case IrOpcode::kFloat64ExtractHighWord32: |
1812 return VisitUnop(node, UseInfo::TruncatingFloat64(), | 1815 return VisitUnop(node, UseInfo::TruncatingFloat64(), |
1813 MachineRepresentation::kWord32); | 1816 MachineRepresentation::kWord32); |
1814 case IrOpcode::kFloat64InsertLowWord32: | 1817 case IrOpcode::kFloat64InsertLowWord32: |
1815 case IrOpcode::kFloat64InsertHighWord32: | 1818 case IrOpcode::kFloat64InsertHighWord32: |
1816 return VisitBinop(node, UseInfo::TruncatingFloat64(), | 1819 return VisitBinop(node, UseInfo::TruncatingFloat64(), |
1817 UseInfo::TruncatingWord32(), | 1820 UseInfo::TruncatingWord32(), |
1818 MachineRepresentation::kFloat64); | 1821 MachineRepresentation::kFloat64); |
| 1822 case IrOpcode::kNumberSilenceNaN: |
| 1823 VisitUnop(node, UseInfo::TruncatingFloat64(), |
| 1824 MachineRepresentation::kFloat64); |
| 1825 if (lower()) NodeProperties::ChangeOp(node, Float64Op(node)); |
| 1826 return; |
1819 case IrOpcode::kLoadStackPointer: | 1827 case IrOpcode::kLoadStackPointer: |
1820 case IrOpcode::kLoadFramePointer: | 1828 case IrOpcode::kLoadFramePointer: |
1821 case IrOpcode::kLoadParentFramePointer: | 1829 case IrOpcode::kLoadParentFramePointer: |
1822 return VisitLeaf(node, MachineType::PointerRepresentation()); | 1830 return VisitLeaf(node, MachineType::PointerRepresentation()); |
1823 case IrOpcode::kStateValues: | 1831 case IrOpcode::kStateValues: |
1824 return VisitStateValues(node); | 1832 return VisitStateValues(node); |
1825 | 1833 |
1826 // The following opcodes are not produced before representation | 1834 // The following opcodes are not produced before representation |
1827 // inference runs, so we do not have any real test coverage. | 1835 // inference runs, so we do not have any real test coverage. |
1828 // Simply fail here. | 1836 // Simply fail here. |
(...skipping 1018 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2847 isolate(), graph()->zone(), callable.descriptor(), 0, flags, | 2855 isolate(), graph()->zone(), callable.descriptor(), 0, flags, |
2848 Operator::kNoProperties); | 2856 Operator::kNoProperties); |
2849 to_number_operator_.set(common()->Call(desc)); | 2857 to_number_operator_.set(common()->Call(desc)); |
2850 } | 2858 } |
2851 return to_number_operator_.get(); | 2859 return to_number_operator_.get(); |
2852 } | 2860 } |
2853 | 2861 |
2854 } // namespace compiler | 2862 } // namespace compiler |
2855 } // namespace internal | 2863 } // namespace internal |
2856 } // namespace v8 | 2864 } // namespace v8 |
OLD | NEW |