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 774 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
785 InstARM32Label &operator=(const InstARM32Label &) = delete; | 785 InstARM32Label &operator=(const InstARM32Label &) = delete; |
786 | 786 |
787 public: | 787 public: |
788 static InstARM32Label *create(Cfg *Func, TargetARM32 *Target) { | 788 static InstARM32Label *create(Cfg *Func, TargetARM32 *Target) { |
789 return new (Func->allocate<InstARM32Label>()) InstARM32Label(Func, Target); | 789 return new (Func->allocate<InstARM32Label>()) InstARM32Label(Func, Target); |
790 } | 790 } |
791 uint32_t getEmitInstCount() const override { return 0; } | 791 uint32_t getEmitInstCount() const override { return 0; } |
792 IceString getName(const Cfg *Func) const; | 792 IceString getName(const Cfg *Func) const; |
793 SizeT getNumber() const { return Number; } | 793 SizeT getNumber() const { return Number; } |
794 void emit(const Cfg *Func) const override; | 794 void emit(const Cfg *Func) const override; |
| 795 void emitIAS(const Cfg *Func) const override; |
795 void dump(const Cfg *Func) const override; | 796 void dump(const Cfg *Func) const override; |
796 | 797 |
797 private: | 798 private: |
798 InstARM32Label(Cfg *Func, TargetARM32 *Target); | 799 InstARM32Label(Cfg *Func, TargetARM32 *Target); |
799 | 800 |
800 SizeT Number; // used for unique label generation. | 801 SizeT Number; // used for unique label generation. |
801 }; | 802 }; |
802 | 803 |
803 /// Direct branch instruction. | 804 /// Direct branch instruction. |
804 class InstARM32Br : public InstARM32Pred { | 805 class InstARM32Br : public InstARM32Pred { |
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1227 // default implementations. Without this, there is the possibility of ODR | 1228 // default implementations. Without this, there is the possibility of ODR |
1228 // violations and link errors. | 1229 // violations and link errors. |
1229 | 1230 |
1230 template <> void InstARM32Ldr::emit(const Cfg *Func) const; | 1231 template <> void InstARM32Ldr::emit(const Cfg *Func) const; |
1231 template <> void InstARM32Movw::emit(const Cfg *Func) const; | 1232 template <> void InstARM32Movw::emit(const Cfg *Func) const; |
1232 template <> void InstARM32Movt::emit(const Cfg *Func) const; | 1233 template <> void InstARM32Movt::emit(const Cfg *Func) const; |
1233 | 1234 |
1234 } // end of namespace Ice | 1235 } // end of namespace Ice |
1235 | 1236 |
1236 #endif // SUBZERO_SRC_ICEINSTARM32_H | 1237 #endif // SUBZERO_SRC_ICEINSTARM32_H |
OLD | NEW |