| 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/common-operator.h" |     5 #include "src/compiler/common-operator.h" | 
|     6 #include "src/compiler/graph.h" |     6 #include "src/compiler/graph.h" | 
|     7 #include "src/compiler/instruction.h" |     7 #include "src/compiler/instruction.h" | 
|     8 #include "src/compiler/schedule.h" |     8 #include "src/compiler/schedule.h" | 
|     9 #include "src/compiler/state-values-utils.h" |     9 #include "src/compiler/state-values-utils.h" | 
|    10  |    10  | 
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|    54     case kNotOverflow: |    54     case kNotOverflow: | 
|    55     case kUnorderedEqual: |    55     case kUnorderedEqual: | 
|    56     case kUnorderedNotEqual: |    56     case kUnorderedNotEqual: | 
|    57       return condition; |    57       return condition; | 
|    58   } |    58   } | 
|    59   UNREACHABLE(); |    59   UNREACHABLE(); | 
|    60   return condition; |    60   return condition; | 
|    61 } |    61 } | 
|    62  |    62  | 
|    63 bool InstructionOperand::InterferesWith(const InstructionOperand& that) const { |    63 bool InstructionOperand::InterferesWith(const InstructionOperand& that) const { | 
|    64   if (!IsFPRegister() || !that.IsFPRegister()) return EqualsCanonicalized(that); |    64   if (!IsFPRegister() || !that.IsFPRegister() || kSimpleFPAliasing) | 
|    65  |    65     return EqualsCanonicalized(that); | 
 |    66   // Both operands are fp registers and aliasing is non-simple. | 
|    66   const LocationOperand& loc1 = *LocationOperand::cast(this); |    67   const LocationOperand& loc1 = *LocationOperand::cast(this); | 
|    67   const LocationOperand& loc2 = LocationOperand::cast(that); |    68   const LocationOperand& loc2 = LocationOperand::cast(that); | 
|    68   const RegisterConfiguration* config = GetRegConfig(); |    69   return GetRegConfig()->AreAliases(loc1.representation(), loc1.register_code(), | 
|    69   if (config->fp_aliasing_kind() != RegisterConfiguration::COMBINE) |    70                                     loc2.representation(), | 
|    70     return loc1.register_code() == loc2.register_code(); |    71                                     loc2.register_code()); | 
|    71  |  | 
|    72   return config->AreAliases(loc1.representation(), loc1.register_code(), |  | 
|    73                             loc2.representation(), loc2.register_code()); |  | 
|    74 } |    72 } | 
|    75  |    73  | 
|    76 void InstructionOperand::Print(const RegisterConfiguration* config) const { |    74 void InstructionOperand::Print(const RegisterConfiguration* config) const { | 
|    77   OFStream os(stdout); |    75   OFStream os(stdout); | 
|    78   PrintableInstructionOperand wrapper; |    76   PrintableInstructionOperand wrapper; | 
|    79   wrapper.register_configuration_ = config; |    77   wrapper.register_configuration_ = config; | 
|    80   wrapper.op_ = *this; |    78   wrapper.op_ = *this; | 
|    81   os << wrapper << std::endl; |    79   os << wrapper << std::endl; | 
|    82 } |    80 } | 
|    83  |    81  | 
| (...skipping 936 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1020   } |  1018   } | 
|  1021   for (int i = 0; i < code.InstructionBlockCount(); i++) { |  1019   for (int i = 0; i < code.InstructionBlockCount(); i++) { | 
|  1022     printable.sequence_->PrintBlock(printable.register_configuration_, i); |  1020     printable.sequence_->PrintBlock(printable.register_configuration_, i); | 
|  1023   } |  1021   } | 
|  1024   return os; |  1022   return os; | 
|  1025 } |  1023 } | 
|  1026  |  1024  | 
|  1027 }  // namespace compiler |  1025 }  // namespace compiler | 
|  1028 }  // namespace internal |  1026 }  // namespace internal | 
|  1029 }  // namespace v8 |  1027 }  // namespace v8 | 
| OLD | NEW |