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 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 auto *Instr = Context.insert<InstARM32Mov>(Dest, Src0, Pred); | 411 auto *Instr = Context.insert<InstARM32Mov>(Dest, Src0, Pred); |
412 Instr->setDestRedefined(); | 412 Instr->setDestRedefined(); |
413 if (Instr->isMultiDest()) { | 413 if (Instr->isMultiDest()) { |
414 // If Instr is multi-dest, then Dest must be a Variable64On32. We add a | 414 // If Instr is multi-dest, then Dest must be a Variable64On32. We add a |
415 // fake-def for Instr.DestHi here. | 415 // fake-def for Instr.DestHi here. |
416 assert(llvm::isa<Variable64On32>(Dest)); | 416 assert(llvm::isa<Variable64On32>(Dest)); |
417 Context.insert<InstFakeDef>(Instr->getDestHi()); | 417 Context.insert<InstFakeDef>(Instr->getDestHi()); |
418 } | 418 } |
419 } | 419 } |
420 | 420 |
| 421 void _nop() { Context.insert<InstARM32Nop>(); } |
| 422 |
421 // Generates a vmov instruction to extract the given index from a vector | 423 // Generates a vmov instruction to extract the given index from a vector |
422 // register. | 424 // register. |
423 void _extractelement(Variable *Dest, Variable *Src0, uint32_t Index, | 425 void _extractelement(Variable *Dest, Variable *Src0, uint32_t Index, |
424 CondARM32::Cond Pred = CondARM32::AL) { | 426 CondARM32::Cond Pred = CondARM32::AL) { |
425 Context.insert<InstARM32Extract>(Dest, Src0, Index, Pred); | 427 Context.insert<InstARM32Extract>(Dest, Src0, Index, Pred); |
426 } | 428 } |
427 | 429 |
428 // Generates a vmov instruction to insert a value into the given index of a | 430 // Generates a vmov instruction to insert a value into the given index of a |
429 // vector register. | 431 // vector register. |
430 void _insertelement(Variable *Dest, Variable *Src0, uint32_t Index, | 432 void _insertelement(Variable *Dest, Variable *Src0, uint32_t Index, |
(...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1236 private: | 1238 private: |
1237 ~TargetHeaderARM32() = default; | 1239 ~TargetHeaderARM32() = default; |
1238 | 1240 |
1239 TargetARM32Features CPUFeatures; | 1241 TargetARM32Features CPUFeatures; |
1240 }; | 1242 }; |
1241 | 1243 |
1242 } // end of namespace ARM32 | 1244 } // end of namespace ARM32 |
1243 } // end of namespace Ice | 1245 } // end of namespace Ice |
1244 | 1246 |
1245 #endif // SUBZERO_SRC_ICETARGETLOWERINGARM32_H | 1247 #endif // SUBZERO_SRC_ICETARGETLOWERINGARM32_H |
OLD | NEW |