| 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 // This file declares the InstARM32 and OperandARM32 classes and | 10 // This file declares the InstARM32 and OperandARM32 classes and |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 InstARM32() = delete; | 245 InstARM32() = delete; |
| 246 InstARM32(const InstARM32 &) = delete; | 246 InstARM32(const InstARM32 &) = delete; |
| 247 InstARM32 &operator=(const InstARM32 &) = delete; | 247 InstARM32 &operator=(const InstARM32 &) = delete; |
| 248 | 248 |
| 249 public: | 249 public: |
| 250 enum InstKindARM32 { | 250 enum InstKindARM32 { |
| 251 k__Start = Inst::Target, | 251 k__Start = Inst::Target, |
| 252 Adc, | 252 Adc, |
| 253 Add, | 253 Add, |
| 254 And, | 254 And, |
| 255 Bic, |
| 255 Br, | 256 Br, |
| 256 Call, | 257 Call, |
| 257 Cmp, | 258 Cmp, |
| 258 Eor, | 259 Eor, |
| 259 Ldr, | 260 Ldr, |
| 260 Lsl, | 261 Lsl, |
| 261 Mla, | 262 Mla, |
| 262 Mov, | 263 Mov, |
| 263 Movt, | 264 Movt, |
| 264 Movw, | 265 Movw, |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 addSource(Src2); | 504 addSource(Src2); |
| 504 } | 505 } |
| 505 ~InstARM32ThreeAddrGPR() override {} | 506 ~InstARM32ThreeAddrGPR() override {} |
| 506 static const char *Opcode; | 507 static const char *Opcode; |
| 507 bool SetFlags; | 508 bool SetFlags; |
| 508 }; | 509 }; |
| 509 | 510 |
| 510 typedef InstARM32ThreeAddrGPR<InstARM32::Adc> InstARM32Adc; | 511 typedef InstARM32ThreeAddrGPR<InstARM32::Adc> InstARM32Adc; |
| 511 typedef InstARM32ThreeAddrGPR<InstARM32::Add> InstARM32Add; | 512 typedef InstARM32ThreeAddrGPR<InstARM32::Add> InstARM32Add; |
| 512 typedef InstARM32ThreeAddrGPR<InstARM32::And> InstARM32And; | 513 typedef InstARM32ThreeAddrGPR<InstARM32::And> InstARM32And; |
| 514 typedef InstARM32ThreeAddrGPR<InstARM32::Bic> InstARM32Bic; |
| 513 typedef InstARM32ThreeAddrGPR<InstARM32::Eor> InstARM32Eor; | 515 typedef InstARM32ThreeAddrGPR<InstARM32::Eor> InstARM32Eor; |
| 514 typedef InstARM32ThreeAddrGPR<InstARM32::Lsl> InstARM32Lsl; | 516 typedef InstARM32ThreeAddrGPR<InstARM32::Lsl> InstARM32Lsl; |
| 515 typedef InstARM32ThreeAddrGPR<InstARM32::Mul> InstARM32Mul; | 517 typedef InstARM32ThreeAddrGPR<InstARM32::Mul> InstARM32Mul; |
| 516 typedef InstARM32ThreeAddrGPR<InstARM32::Orr> InstARM32Orr; | 518 typedef InstARM32ThreeAddrGPR<InstARM32::Orr> InstARM32Orr; |
| 517 typedef InstARM32ThreeAddrGPR<InstARM32::Sbc> InstARM32Sbc; | 519 typedef InstARM32ThreeAddrGPR<InstARM32::Sbc> InstARM32Sbc; |
| 518 typedef InstARM32ThreeAddrGPR<InstARM32::Sub> InstARM32Sub; | 520 typedef InstARM32ThreeAddrGPR<InstARM32::Sub> InstARM32Sub; |
| 519 // Move instruction (variable <- flex). This is more of a pseudo-inst. | 521 // Move instruction (variable <- flex). This is more of a pseudo-inst. |
| 520 // If var is a register, then we use "mov". If var is stack, then we use | 522 // If var is a register, then we use "mov". If var is stack, then we use |
| 521 // "str" to store to the stack. | 523 // "str" to store to the stack. |
| 522 typedef InstARM32Movlike<InstARM32::Mov> InstARM32Mov; | 524 typedef InstARM32Movlike<InstARM32::Mov> InstARM32Mov; |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 738 // Declare partial template specializations of emit() methods that | 740 // Declare partial template specializations of emit() methods that |
| 739 // already have default implementations. Without this, there is the | 741 // already have default implementations. Without this, there is the |
| 740 // possibility of ODR violations and link errors. | 742 // possibility of ODR violations and link errors. |
| 741 | 743 |
| 742 template <> void InstARM32Movw::emit(const Cfg *Func) const; | 744 template <> void InstARM32Movw::emit(const Cfg *Func) const; |
| 743 template <> void InstARM32Movt::emit(const Cfg *Func) const; | 745 template <> void InstARM32Movt::emit(const Cfg *Func) const; |
| 744 | 746 |
| 745 } // end of namespace Ice | 747 } // end of namespace Ice |
| 746 | 748 |
| 747 #endif // SUBZERO_SRC_ICEINSTARM32_H | 749 #endif // SUBZERO_SRC_ICEINSTARM32_H |
| OLD | NEW |