| 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 232 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   243       node = InsertConversion(node, op, use_node); |   243       node = InsertConversion(node, op, use_node); | 
|   244       if (SmiValuesAre32Bits()) { |   244       if (SmiValuesAre32Bits()) { | 
|   245         op = simplified()->ChangeInt32ToTagged(); |   245         op = simplified()->ChangeInt32ToTagged(); | 
|   246       } else { |   246       } else { | 
|   247         op = simplified()->CheckedInt32ToTaggedSigned(); |   247         op = simplified()->CheckedInt32ToTaggedSigned(); | 
|   248       } |   248       } | 
|   249     } else { |   249     } else { | 
|   250       return TypeError(node, output_rep, output_type, |   250       return TypeError(node, output_rep, output_type, | 
|   251                        MachineRepresentation::kTaggedSigned); |   251                        MachineRepresentation::kTaggedSigned); | 
|   252     } |   252     } | 
 |   253   } else if (output_rep == MachineRepresentation::kFloat32) { | 
 |   254     if (use_info.type_check() == TypeCheckKind::kSignedSmall) { | 
 |   255       op = machine()->ChangeFloat32ToFloat64(); | 
 |   256       node = InsertConversion(node, op, use_node); | 
 |   257       op = simplified()->CheckedFloat64ToInt32( | 
 |   258           output_type->Maybe(Type::MinusZero()) | 
 |   259               ? CheckForMinusZeroMode::kCheckForMinusZero | 
 |   260               : CheckForMinusZeroMode::kDontCheckForMinusZero); | 
 |   261       node = InsertConversion(node, op, use_node); | 
 |   262       if (SmiValuesAre32Bits()) { | 
 |   263         op = simplified()->ChangeInt32ToTagged(); | 
 |   264       } else { | 
 |   265         op = simplified()->CheckedInt32ToTaggedSigned(); | 
 |   266       } | 
 |   267     } else { | 
 |   268       return TypeError(node, output_rep, output_type, | 
 |   269                        MachineRepresentation::kTaggedSigned); | 
 |   270     } | 
|   253   } else if (CanBeTaggedPointer(output_rep) && |   271   } else if (CanBeTaggedPointer(output_rep) && | 
|   254              use_info.type_check() == TypeCheckKind::kSignedSmall) { |   272              use_info.type_check() == TypeCheckKind::kSignedSmall) { | 
|   255     op = simplified()->CheckedTaggedToTaggedSigned(); |   273     op = simplified()->CheckedTaggedToTaggedSigned(); | 
|   256   } else if (output_rep == MachineRepresentation::kBit && |   274   } else if (output_rep == MachineRepresentation::kBit && | 
|   257              use_info.type_check() == TypeCheckKind::kSignedSmall) { |   275              use_info.type_check() == TypeCheckKind::kSignedSmall) { | 
|   258     // TODO(turbofan): Consider adding a Bailout operator that just deopts. |   276     // TODO(turbofan): Consider adding a Bailout operator that just deopts. | 
|   259     // Also use that for MachineRepresentation::kPointer case above. |   277     // Also use that for MachineRepresentation::kPointer case above. | 
|   260     node = InsertChangeBitToTagged(node); |   278     node = InsertChangeBitToTagged(node); | 
|   261     op = simplified()->CheckedTaggedToTaggedSigned(); |   279     op = simplified()->CheckedTaggedToTaggedSigned(); | 
|   262   } else { |   280   } else { | 
| (...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   984 } |  1002 } | 
|   985  |  1003  | 
|   986 Node* RepresentationChanger::InsertChangeTaggedToFloat64(Node* node) { |  1004 Node* RepresentationChanger::InsertChangeTaggedToFloat64(Node* node) { | 
|   987   return jsgraph()->graph()->NewNode(simplified()->ChangeTaggedToFloat64(), |  1005   return jsgraph()->graph()->NewNode(simplified()->ChangeTaggedToFloat64(), | 
|   988                                      node); |  1006                                      node); | 
|   989 } |  1007 } | 
|   990  |  1008  | 
|   991 }  // namespace compiler |  1009 }  // namespace compiler | 
|   992 }  // namespace internal |  1010 }  // namespace internal | 
|   993 }  // namespace v8 |  1011 }  // namespace v8 | 
| OLD | NEW |