OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/representation-change.h" | 5 #include "src/compiler/representation-change.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 if (IsWord(use_info.representation()) && IsWord(output_rep)) { | 134 if (IsWord(use_info.representation()) && IsWord(output_rep)) { |
135 // Both are words less than or equal to 32-bits. | 135 // Both are words less than or equal to 32-bits. |
136 // Since loads of integers from memory implicitly sign or zero extend the | 136 // Since loads of integers from memory implicitly sign or zero extend the |
137 // value to the full machine word size and stores implicitly truncate, | 137 // value to the full machine word size and stores implicitly truncate, |
138 // no representation change is necessary. | 138 // no representation change is necessary. |
139 return node; | 139 return node; |
140 } | 140 } |
141 } | 141 } |
142 | 142 |
143 switch (use_info.representation()) { | 143 switch (use_info.representation()) { |
| 144 case MachineRepresentation::kTaggedSigned: |
| 145 case MachineRepresentation::kTaggedPointer: |
144 case MachineRepresentation::kTagged: | 146 case MachineRepresentation::kTagged: |
145 DCHECK(use_info.type_check() == TypeCheckKind::kNone); | 147 DCHECK(use_info.type_check() == TypeCheckKind::kNone); |
146 return GetTaggedRepresentationFor(node, output_rep, output_type); | 148 return GetTaggedRepresentationFor(node, output_rep, output_type); |
147 case MachineRepresentation::kFloat32: | 149 case MachineRepresentation::kFloat32: |
148 DCHECK(use_info.type_check() == TypeCheckKind::kNone); | 150 DCHECK(use_info.type_check() == TypeCheckKind::kNone); |
149 return GetFloat32RepresentationFor(node, output_rep, output_type, | 151 return GetFloat32RepresentationFor(node, output_rep, output_type, |
150 use_info.truncation()); | 152 use_info.truncation()); |
151 case MachineRepresentation::kFloat64: | 153 case MachineRepresentation::kFloat64: |
152 return GetFloat64RepresentationFor(node, output_rep, output_type, | 154 return GetFloat64RepresentationFor(node, output_rep, output_type, |
153 use_node, use_info); | 155 use_node, use_info); |
(...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
819 } | 821 } |
820 | 822 |
821 Node* RepresentationChanger::InsertChangeTaggedToFloat64(Node* node) { | 823 Node* RepresentationChanger::InsertChangeTaggedToFloat64(Node* node) { |
822 return jsgraph()->graph()->NewNode(simplified()->ChangeTaggedToFloat64(), | 824 return jsgraph()->graph()->NewNode(simplified()->ChangeTaggedToFloat64(), |
823 node); | 825 node); |
824 } | 826 } |
825 | 827 |
826 } // namespace compiler | 828 } // namespace compiler |
827 } // namespace internal | 829 } // namespace internal |
828 } // namespace v8 | 830 } // namespace v8 |
OLD | NEW |