| OLD | NEW |
| 1 //===- subzero/src/IceInstARM32.h - ARM32 machine instructions --*- C++ -*-===// | 1 //===- subzero/src/IceInstARM32.h - ARM32 machine instructions --*- 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 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 204 | 204 |
| 205 /// Rotated immediate variant. | 205 /// Rotated immediate variant. |
| 206 class OperandARM32FlexImm : public OperandARM32Flex { | 206 class OperandARM32FlexImm : public OperandARM32Flex { |
| 207 OperandARM32FlexImm() = delete; | 207 OperandARM32FlexImm() = delete; |
| 208 OperandARM32FlexImm(const OperandARM32FlexImm &) = delete; | 208 OperandARM32FlexImm(const OperandARM32FlexImm &) = delete; |
| 209 OperandARM32FlexImm &operator=(const OperandARM32FlexImm &) = delete; | 209 OperandARM32FlexImm &operator=(const OperandARM32FlexImm &) = delete; |
| 210 | 210 |
| 211 public: | 211 public: |
| 212 /// Immed_8 rotated by an even number of bits (2 * RotateAmt). | 212 /// Immed_8 rotated by an even number of bits (2 * RotateAmt). |
| 213 static OperandARM32FlexImm *create(Cfg *Func, Type Ty, uint32_t Imm, | 213 static OperandARM32FlexImm *create(Cfg *Func, Type Ty, uint32_t Imm, |
| 214 uint32_t RotateAmt) { | 214 uint32_t RotateAmt); |
| 215 return new (Func->allocate<OperandARM32FlexImm>()) | |
| 216 OperandARM32FlexImm(Func, Ty, Imm, RotateAmt); | |
| 217 } | |
| 218 | 215 |
| 219 void emit(const Cfg *Func) const override; | 216 void emit(const Cfg *Func) const override; |
| 220 using OperandARM32::dump; | 217 using OperandARM32::dump; |
| 221 void dump(const Cfg *Func, Ostream &Str) const override; | 218 void dump(const Cfg *Func, Ostream &Str) const override; |
| 222 | 219 |
| 223 static bool classof(const Operand *Operand) { | 220 static bool classof(const Operand *Operand) { |
| 224 return Operand->getKind() == static_cast<OperandKind>(kFlexImm); | 221 return Operand->getKind() == static_cast<OperandKind>(kFlexImm); |
| 225 } | 222 } |
| 226 | 223 |
| 227 /// Return true if the Immediate can fit in the ARM flexible operand. Fills in | 224 /// Return true if the Immediate can fit in the ARM flexible operand. Fills in |
| (...skipping 1092 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1320 // default implementations. Without this, there is the possibility of ODR | 1317 // default implementations. Without this, there is the possibility of ODR |
| 1321 // violations and link errors. | 1318 // violations and link errors. |
| 1322 | 1319 |
| 1323 template <> void InstARM32Ldr::emit(const Cfg *Func) const; | 1320 template <> void InstARM32Ldr::emit(const Cfg *Func) const; |
| 1324 template <> void InstARM32Movw::emit(const Cfg *Func) const; | 1321 template <> void InstARM32Movw::emit(const Cfg *Func) const; |
| 1325 template <> void InstARM32Movt::emit(const Cfg *Func) const; | 1322 template <> void InstARM32Movt::emit(const Cfg *Func) const; |
| 1326 | 1323 |
| 1327 } // end of namespace Ice | 1324 } // end of namespace Ice |
| 1328 | 1325 |
| 1329 #endif // SUBZERO_SRC_ICEINSTARM32_H | 1326 #endif // SUBZERO_SRC_ICEINSTARM32_H |
| OLD | NEW |