OLD | NEW |
1 //===- subzero/src/IceInstARM32.cpp - ARM32 instruction implementation ----===// | 1 //===- subzero/src/IceInstARM32.cpp - ARM32 instruction implementation ----===// |
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 1692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1703 if (!BuildDefs::dump()) | 1703 if (!BuildDefs::dump()) |
1704 return; | 1704 return; |
1705 Ostream &Str = Func->getContext()->getStrEmit(); | 1705 Ostream &Str = Func->getContext()->getStrEmit(); |
1706 assert(getSrcSize() == 0); | 1706 assert(getSrcSize() == 0); |
1707 Str << "\t" | 1707 Str << "\t" |
1708 "dmb" | 1708 "dmb" |
1709 "\t" | 1709 "\t" |
1710 "sy"; | 1710 "sy"; |
1711 } | 1711 } |
1712 | 1712 |
| 1713 void InstARM32Dmb::emitIAS(const Cfg *Func) const { |
| 1714 assert(getSrcSize() == 0); |
| 1715 auto *Asm = Func->getAssembler<ARM32::AssemblerARM32>(); |
| 1716 constexpr ARM32::IValueT SyOption = 0xF; // i.e. 1111 |
| 1717 Asm->dmb(SyOption); |
| 1718 if (Asm->needsTextFixup()) |
| 1719 emitUsingTextFixup(Func); |
| 1720 } |
| 1721 |
1713 void InstARM32Dmb::dump(const Cfg *Func) const { | 1722 void InstARM32Dmb::dump(const Cfg *Func) const { |
1714 if (!BuildDefs::dump()) | 1723 if (!BuildDefs::dump()) |
1715 return; | 1724 return; |
1716 Func->getContext()->getStrDump() << "dmb\tsy"; | 1725 Func->getContext()->getStrDump() << "dmb\tsy"; |
1717 } | 1726 } |
1718 | 1727 |
1719 void OperandARM32Mem::emit(const Cfg *Func) const { | 1728 void OperandARM32Mem::emit(const Cfg *Func) const { |
1720 if (!BuildDefs::dump()) | 1729 if (!BuildDefs::dump()) |
1721 return; | 1730 return; |
1722 Ostream &Str = Func->getContext()->getStrEmit(); | 1731 Ostream &Str = Func->getContext()->getStrEmit(); |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1941 template class InstARM32UnaryopFP<InstARM32::Vsqrt>; | 1950 template class InstARM32UnaryopFP<InstARM32::Vsqrt>; |
1942 | 1951 |
1943 template class InstARM32FourAddrGPR<InstARM32::Mla>; | 1952 template class InstARM32FourAddrGPR<InstARM32::Mla>; |
1944 template class InstARM32FourAddrGPR<InstARM32::Mls>; | 1953 template class InstARM32FourAddrGPR<InstARM32::Mls>; |
1945 | 1954 |
1946 template class InstARM32CmpLike<InstARM32::Cmn>; | 1955 template class InstARM32CmpLike<InstARM32::Cmn>; |
1947 template class InstARM32CmpLike<InstARM32::Cmp>; | 1956 template class InstARM32CmpLike<InstARM32::Cmp>; |
1948 template class InstARM32CmpLike<InstARM32::Tst>; | 1957 template class InstARM32CmpLike<InstARM32::Tst>; |
1949 | 1958 |
1950 } // end of namespace Ice | 1959 } // end of namespace Ice |
OLD | NEW |