OLD | NEW |
1 //===- subzero/src/IceTargetLoweringARM32.h - ARM32 lowering ----*- C++ -*-===// | 1 //===- subzero/src/IceTargetLoweringARM32.h - ARM32 lowering ----*- C++ -*-===// |
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 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 /// confusing, non-uniform) rules for data moves in ARM. | 275 /// confusing, non-uniform) rules for data moves in ARM. |
276 void _mov(Variable *Dest, Operand *Src0, | 276 void _mov(Variable *Dest, Operand *Src0, |
277 CondARM32::Cond Pred = CondARM32::AL) { | 277 CondARM32::Cond Pred = CondARM32::AL) { |
278 // _mov used to be unique in the sense that it would create a temporary | 278 // _mov used to be unique in the sense that it would create a temporary |
279 // automagically if Dest was nullptr. It won't do that anymore, so we keep | 279 // automagically if Dest was nullptr. It won't do that anymore, so we keep |
280 // an assert around just in case there is some untested code path where Dest | 280 // an assert around just in case there is some untested code path where Dest |
281 // is nullptr. | 281 // is nullptr. |
282 assert(Dest != nullptr); | 282 assert(Dest != nullptr); |
283 Context.insert(InstARM32Mov::create(Func, Dest, Src0, Pred)); | 283 Context.insert(InstARM32Mov::create(Func, Dest, Src0, Pred)); |
284 } | 284 } |
285 void _mov_nonkillable(Variable *Dest, Operand *Src0, | 285 void _mov_redefined(Variable *Dest, Operand *Src0, |
286 CondARM32::Cond Pred = CondARM32::AL) { | 286 CondARM32::Cond Pred = CondARM32::AL) { |
287 Inst *NewInst = InstARM32Mov::create(Func, Dest, Src0, Pred); | 287 Inst *NewInst = InstARM32Mov::create(Func, Dest, Src0, Pred); |
288 NewInst->setDestNonKillable(); | 288 NewInst->setDestRedefined(); |
289 Context.insert(NewInst); | 289 Context.insert(NewInst); |
290 } | 290 } |
291 /// The Operand can only be a 16-bit immediate or a ConstantRelocatable (with | 291 /// The Operand can only be a 16-bit immediate or a ConstantRelocatable (with |
292 /// an upper16 relocation). | 292 /// an upper16 relocation). |
293 void _movt(Variable *Dest, Operand *Src0, | 293 void _movt(Variable *Dest, Operand *Src0, |
294 CondARM32::Cond Pred = CondARM32::AL) { | 294 CondARM32::Cond Pred = CondARM32::AL) { |
295 Context.insert(InstARM32Movt::create(Func, Dest, Src0, Pred)); | 295 Context.insert(InstARM32Movt::create(Func, Dest, Src0, Pred)); |
296 } | 296 } |
297 void _movw(Variable *Dest, Operand *Src0, | 297 void _movw(Variable *Dest, Operand *Src0, |
298 CondARM32::Cond Pred = CondARM32::AL) { | 298 CondARM32::Cond Pred = CondARM32::AL) { |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
541 | 541 |
542 private: | 542 private: |
543 ~TargetHeaderARM32() = default; | 543 ~TargetHeaderARM32() = default; |
544 | 544 |
545 TargetARM32Features CPUFeatures; | 545 TargetARM32Features CPUFeatures; |
546 }; | 546 }; |
547 | 547 |
548 } // end of namespace Ice | 548 } // end of namespace Ice |
549 | 549 |
550 #endif // SUBZERO_SRC_ICETARGETLOWERINGARM32_H | 550 #endif // SUBZERO_SRC_ICETARGETLOWERINGARM32_H |
OLD | NEW |