| 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 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 Vadd, | 424 Vadd, |
| 425 Vand, | 425 Vand, |
| 426 Vcmp, | 426 Vcmp, |
| 427 Vcvt, | 427 Vcvt, |
| 428 Vdiv, | 428 Vdiv, |
| 429 Veor, | 429 Veor, |
| 430 Vmla, | 430 Vmla, |
| 431 Vmls, | 431 Vmls, |
| 432 Vmrs, | 432 Vmrs, |
| 433 Vmul, | 433 Vmul, |
| 434 Vorr, |
| 434 Vsqrt, | 435 Vsqrt, |
| 435 Vsub | 436 Vsub |
| 436 }; | 437 }; |
| 437 | 438 |
| 438 static constexpr size_t InstSize = sizeof(uint32_t); | 439 static constexpr size_t InstSize = sizeof(uint32_t); |
| 439 | 440 |
| 440 static const char *getWidthString(Type Ty); | 441 static const char *getWidthString(Type Ty); |
| 441 static const char *getVecWidthString(Type Ty); | 442 static const char *getVecWidthString(Type Ty); |
| 442 static CondARM32::Cond getOppositeCondition(CondARM32::Cond Cond); | 443 static CondARM32::Cond getOppositeCondition(CondARM32::Cond Cond); |
| 443 | 444 |
| (...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 918 using InstARM32Sdiv = InstARM32ThreeAddrGPR<InstARM32::Sdiv>; | 919 using InstARM32Sdiv = InstARM32ThreeAddrGPR<InstARM32::Sdiv>; |
| 919 using InstARM32Sub = InstARM32ThreeAddrGPR<InstARM32::Sub>; | 920 using InstARM32Sub = InstARM32ThreeAddrGPR<InstARM32::Sub>; |
| 920 using InstARM32Udiv = InstARM32ThreeAddrGPR<InstARM32::Udiv>; | 921 using InstARM32Udiv = InstARM32ThreeAddrGPR<InstARM32::Udiv>; |
| 921 using InstARM32Vadd = InstARM32ThreeAddrFP<InstARM32::Vadd>; | 922 using InstARM32Vadd = InstARM32ThreeAddrFP<InstARM32::Vadd>; |
| 922 using InstARM32Vand = InstARM32ThreeAddrFP<InstARM32::Vand>; | 923 using InstARM32Vand = InstARM32ThreeAddrFP<InstARM32::Vand>; |
| 923 using InstARM32Vdiv = InstARM32ThreeAddrFP<InstARM32::Vdiv>; | 924 using InstARM32Vdiv = InstARM32ThreeAddrFP<InstARM32::Vdiv>; |
| 924 using InstARM32Veor = InstARM32ThreeAddrFP<InstARM32::Veor>; | 925 using InstARM32Veor = InstARM32ThreeAddrFP<InstARM32::Veor>; |
| 925 using InstARM32Vmla = InstARM32FourAddrFP<InstARM32::Vmla>; | 926 using InstARM32Vmla = InstARM32FourAddrFP<InstARM32::Vmla>; |
| 926 using InstARM32Vmls = InstARM32FourAddrFP<InstARM32::Vmls>; | 927 using InstARM32Vmls = InstARM32FourAddrFP<InstARM32::Vmls>; |
| 927 using InstARM32Vmul = InstARM32ThreeAddrFP<InstARM32::Vmul>; | 928 using InstARM32Vmul = InstARM32ThreeAddrFP<InstARM32::Vmul>; |
| 929 using InstARM32Vorr = InstARM32ThreeAddrFP<InstARM32::Vorr>; |
| 928 using InstARM32Vsub = InstARM32ThreeAddrFP<InstARM32::Vsub>; | 930 using InstARM32Vsub = InstARM32ThreeAddrFP<InstARM32::Vsub>; |
| 929 using InstARM32Ldr = InstARM32LoadBase<InstARM32::Ldr>; | 931 using InstARM32Ldr = InstARM32LoadBase<InstARM32::Ldr>; |
| 930 using InstARM32Ldrex = InstARM32LoadBase<InstARM32::Ldrex>; | 932 using InstARM32Ldrex = InstARM32LoadBase<InstARM32::Ldrex>; |
| 931 /// MovT leaves the bottom bits alone so dest is also a source. This helps | 933 /// MovT leaves the bottom bits alone so dest is also a source. This helps |
| 932 /// indicate that a previous MovW setting dest is not dead code. | 934 /// indicate that a previous MovW setting dest is not dead code. |
| 933 using InstARM32Movt = InstARM32TwoAddrGPR<InstARM32::Movt>; | 935 using InstARM32Movt = InstARM32TwoAddrGPR<InstARM32::Movt>; |
| 934 using InstARM32Movw = InstARM32UnaryopGPR<InstARM32::Movw, false>; | 936 using InstARM32Movw = InstARM32UnaryopGPR<InstARM32::Movw, false>; |
| 935 using InstARM32Clz = InstARM32UnaryopGPR<InstARM32::Clz, false>; | 937 using InstARM32Clz = InstARM32UnaryopGPR<InstARM32::Clz, false>; |
| 936 using InstARM32Mvn = InstARM32UnaryopGPR<InstARM32::Mvn, false>; | 938 using InstARM32Mvn = InstARM32UnaryopGPR<InstARM32::Mvn, false>; |
| 937 using InstARM32Rbit = InstARM32UnaryopGPR<InstARM32::Rbit, false>; | 939 using InstARM32Rbit = InstARM32UnaryopGPR<InstARM32::Rbit, false>; |
| (...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1439 // violations and link errors. | 1441 // violations and link errors. |
| 1440 | 1442 |
| 1441 template <> void InstARM32Ldr::emit(const Cfg *Func) const; | 1443 template <> void InstARM32Ldr::emit(const Cfg *Func) const; |
| 1442 template <> void InstARM32Movw::emit(const Cfg *Func) const; | 1444 template <> void InstARM32Movw::emit(const Cfg *Func) const; |
| 1443 template <> void InstARM32Movt::emit(const Cfg *Func) const; | 1445 template <> void InstARM32Movt::emit(const Cfg *Func) const; |
| 1444 | 1446 |
| 1445 } // end of namespace ARM32 | 1447 } // end of namespace ARM32 |
| 1446 } // end of namespace Ice | 1448 } // end of namespace Ice |
| 1447 | 1449 |
| 1448 #endif // SUBZERO_SRC_ICEINSTARM32_H | 1450 #endif // SUBZERO_SRC_ICEINSTARM32_H |
| OLD | NEW |