| 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 #ifndef V8_COMPILER_INSTRUCTION_SCHEDULER_H_ |    5 #ifndef V8_COMPILER_INSTRUCTION_SCHEDULER_H_ | 
|    6 #define V8_COMPILER_INSTRUCTION_SCHEDULER_H_ |    6 #define V8_COMPILER_INSTRUCTION_SCHEDULER_H_ | 
|    7  |    7  | 
|    8 #include "src/compiler/instruction.h" |    8 #include "src/compiler/instruction.h" | 
|    9 #include "src/zone-containers.h" |    9 #include "src/zone-containers.h" | 
|   10  |   10  | 
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  173   bool IsLoadOperation(const Instruction* instr) const { |  173   bool IsLoadOperation(const Instruction* instr) const { | 
|  174     return GetInstructionFlags(instr) & kIsLoadOperation; |  174     return GetInstructionFlags(instr) & kIsLoadOperation; | 
|  175   } |  175   } | 
|  176  |  176  | 
|  177   // Identify nops used as a definition point for live-in registers at |  177   // Identify nops used as a definition point for live-in registers at | 
|  178   // function entry. |  178   // function entry. | 
|  179   bool IsFixedRegisterParameter(const Instruction* instr) const { |  179   bool IsFixedRegisterParameter(const Instruction* instr) const { | 
|  180     return (instr->arch_opcode() == kArchNop) && |  180     return (instr->arch_opcode() == kArchNop) && | 
|  181       (instr->OutputCount() == 1) && |  181       (instr->OutputCount() == 1) && | 
|  182       (instr->OutputAt(0)->IsUnallocated()) && |  182       (instr->OutputAt(0)->IsUnallocated()) && | 
|  183       UnallocatedOperand::cast(instr->OutputAt(0))->HasFixedRegisterPolicy(); |  183       (UnallocatedOperand::cast(instr->OutputAt(0))->HasFixedRegisterPolicy() || | 
 |  184        UnallocatedOperand::cast( | 
 |  185            instr->OutputAt(0))->HasFixedDoubleRegisterPolicy()); | 
|  184   } |  186   } | 
|  185  |  187  | 
|  186   void ComputeTotalLatencies(); |  188   void ComputeTotalLatencies(); | 
|  187  |  189  | 
|  188   static int GetInstructionLatency(const Instruction* instr); |  190   static int GetInstructionLatency(const Instruction* instr); | 
|  189  |  191  | 
|  190   Zone* zone() { return zone_; } |  192   Zone* zone() { return zone_; } | 
|  191   InstructionSequence* sequence() { return sequence_; } |  193   InstructionSequence* sequence() { return sequence_; } | 
|  192   Isolate* isolate() { return sequence()->isolate(); } |  194   Isolate* isolate() { return sequence()->isolate(); } | 
|  193  |  195  | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
|  209   // All these nops are chained together and added as a predecessor of every |  211   // All these nops are chained together and added as a predecessor of every | 
|  210   // other instructions in the basic block. |  212   // other instructions in the basic block. | 
|  211   ScheduleGraphNode* last_live_in_reg_marker_; |  213   ScheduleGraphNode* last_live_in_reg_marker_; | 
|  212 }; |  214 }; | 
|  213  |  215  | 
|  214 }  // namespace compiler |  216 }  // namespace compiler | 
|  215 }  // namespace internal |  217 }  // namespace internal | 
|  216 }  // namespace v8 |  218 }  // namespace v8 | 
|  217  |  219  | 
|  218 #endif  // V8_COMPILER_INSTRUCTION_SCHEDULER_H_ |  220 #endif  // V8_COMPILER_INSTRUCTION_SCHEDULER_H_ | 
| OLD | NEW |