Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Side by Side Diff: src/IceInstARM32.cpp

Issue 1507873004: Add DMB instruction to the ARM integrated assembler. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698