| 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 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 } | 258 } |
| 259 | 259 |
| 260 void emit(const Cfg *Func) const override; | 260 void emit(const Cfg *Func) const override; |
| 261 using OperandARM32::dump; | 261 using OperandARM32::dump; |
| 262 void dump(const Cfg *Func, Ostream &Str) const override; | 262 void dump(const Cfg *Func, Ostream &Str) const override; |
| 263 | 263 |
| 264 static bool classof(const Operand *Operand) { | 264 static bool classof(const Operand *Operand) { |
| 265 return Operand->getKind() == static_cast<OperandKind>(kFlexFpImm); | 265 return Operand->getKind() == static_cast<OperandKind>(kFlexFpImm); |
| 266 } | 266 } |
| 267 | 267 |
| 268 static bool canHoldImm(Operand *C, uint32_t *ModifiedImm); | 268 static bool canHoldImm(const Operand *C, uint32_t *ModifiedImm); |
| 269 | 269 |
| 270 uint32_t getModifiedImm() const { return ModifiedImm; } | 270 uint32_t getModifiedImm() const { return ModifiedImm; } |
| 271 | 271 |
| 272 private: | 272 private: |
| 273 OperandARM32FlexFpImm(Cfg *Func, Type Ty, uint32_t ModifiedImm); | 273 OperandARM32FlexFpImm(Cfg *Func, Type Ty, uint32_t ModifiedImm); |
| 274 | 274 |
| 275 const uint32_t ModifiedImm; | 275 const uint32_t ModifiedImm; |
| 276 }; | 276 }; |
| 277 | 277 |
| 278 /// An operand for representing the 0.0 immediate in vcmp. | 278 /// An operand for representing the 0.0 immediate in vcmp. |
| (...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 966 public: | 966 public: |
| 967 static InstARM32Label *create(Cfg *Func, TargetARM32 *Target) { | 967 static InstARM32Label *create(Cfg *Func, TargetARM32 *Target) { |
| 968 return new (Func->allocate<InstARM32Label>()) InstARM32Label(Func, Target); | 968 return new (Func->allocate<InstARM32Label>()) InstARM32Label(Func, Target); |
| 969 } | 969 } |
| 970 uint32_t getEmitInstCount() const override { return 0; } | 970 uint32_t getEmitInstCount() const override { return 0; } |
| 971 IceString getName(const Cfg *Func) const; | 971 IceString getName(const Cfg *Func) const; |
| 972 SizeT getNumber() const { return Number; } | 972 SizeT getNumber() const { return Number; } |
| 973 void emit(const Cfg *Func) const override; | 973 void emit(const Cfg *Func) const override; |
| 974 void emitIAS(const Cfg *Func) const override; | 974 void emitIAS(const Cfg *Func) const override; |
| 975 void dump(const Cfg *Func) const override; | 975 void dump(const Cfg *Func) const override; |
| 976 void setRelocOffset(RelocOffset *Value) { OffsetReloc = Value; } |
| 976 | 977 |
| 977 private: | 978 private: |
| 978 InstARM32Label(Cfg *Func, TargetARM32 *Target); | 979 InstARM32Label(Cfg *Func, TargetARM32 *Target); |
| 979 | 980 |
| 981 RelocOffset *OffsetReloc = nullptr; |
| 982 |
| 980 SizeT Number; // used for unique label generation. | 983 SizeT Number; // used for unique label generation. |
| 981 }; | 984 }; |
| 982 | 985 |
| 983 /// Direct branch instruction. | 986 /// Direct branch instruction. |
| 984 class InstARM32Br : public InstARM32Pred { | 987 class InstARM32Br : public InstARM32Pred { |
| 985 InstARM32Br() = delete; | 988 InstARM32Br() = delete; |
| 986 InstARM32Br(const InstARM32Br &) = delete; | 989 InstARM32Br(const InstARM32Br &) = delete; |
| 987 InstARM32Br &operator=(const InstARM32Br &) = delete; | 990 InstARM32Br &operator=(const InstARM32Br &) = delete; |
| 988 | 991 |
| 989 public: | 992 public: |
| (...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1520 // violations and link errors. | 1523 // violations and link errors. |
| 1521 | 1524 |
| 1522 template <> void InstARM32Ldr::emit(const Cfg *Func) const; | 1525 template <> void InstARM32Ldr::emit(const Cfg *Func) const; |
| 1523 template <> void InstARM32Movw::emit(const Cfg *Func) const; | 1526 template <> void InstARM32Movw::emit(const Cfg *Func) const; |
| 1524 template <> void InstARM32Movt::emit(const Cfg *Func) const; | 1527 template <> void InstARM32Movt::emit(const Cfg *Func) const; |
| 1525 | 1528 |
| 1526 } // end of namespace ARM32 | 1529 } // end of namespace ARM32 |
| 1527 } // end of namespace Ice | 1530 } // end of namespace Ice |
| 1528 | 1531 |
| 1529 #endif // SUBZERO_SRC_ICEINSTARM32_H | 1532 #endif // SUBZERO_SRC_ICEINSTARM32_H |
| OLD | NEW |