OLD | NEW |
1 //===- subzero/src/IceInstX8664.cpp - X86-64 instruction implementation ---===// | 1 //===- subzero/src/IceInstX8664.cpp - X86-64 instruction implementation ---===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 /// | 9 /// |
10 /// \file | 10 /// \file |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 SizeT I = 0; | 82 SizeT I = 0; |
83 if (Base) | 83 if (Base) |
84 Vars[I++] = Base; | 84 Vars[I++] = Base; |
85 if (Index) | 85 if (Index) |
86 Vars[I++] = Index; | 86 Vars[I++] = Index; |
87 assert(I == NumVars); | 87 assert(I == NumVars); |
88 } | 88 } |
89 } | 89 } |
90 | 90 |
91 namespace { | 91 namespace { |
92 static int32_t | 92 int32_t getRematerializableOffset(Variable *Var, |
93 getRematerializableOffset(Variable *Var, | 93 const ::Ice::X8664::TargetX8664 *Target) { |
94 const ::Ice::X8664::TargetX8664 *Target) { | |
95 int32_t Disp = Var->getStackOffset(); | 94 int32_t Disp = Var->getStackOffset(); |
96 SizeT RegNum = static_cast<SizeT>(Var->getRegNum()); | 95 auto RegNum = Var->getRegNum(); |
97 if (RegNum == Target->getFrameReg()) { | 96 if (RegNum == Target->getFrameReg()) { |
98 Disp += Target->getFrameFixedAllocaOffset(); | 97 Disp += Target->getFrameFixedAllocaOffset(); |
99 } else if (RegNum != Target->getStackReg()) { | 98 } else if (RegNum != Target->getStackReg()) { |
100 llvm::report_fatal_error("Unexpected rematerializable register type"); | 99 llvm::report_fatal_error("Unexpected rematerializable register type"); |
101 } | 100 } |
102 return Disp; | 101 return Disp; |
103 } | 102 } |
104 } // end of anonymous namespace | 103 } // end of anonymous namespace |
105 | 104 |
106 void TargetX8664Traits::X86OperandMem::emit(const Cfg *Func) const { | 105 void TargetX8664Traits::X86OperandMem::emit(const Cfg *Func) const { |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 Var->dump(Func); | 356 Var->dump(Func); |
358 else | 357 else |
359 Var->dump(Str); | 358 Var->dump(Str); |
360 Str << ")"; | 359 Str << ")"; |
361 } | 360 } |
362 | 361 |
363 } // namespace X8664 | 362 } // namespace X8664 |
364 } // end of namespace Ice | 363 } // end of namespace Ice |
365 | 364 |
366 X86INSTS_DEFINE_STATIC_DATA(X8664, X8664::Traits) | 365 X86INSTS_DEFINE_STATIC_DATA(X8664, X8664::Traits) |
OLD | NEW |