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 |