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 1380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1391 << "umull" << getPredicate() << "\t"; | 1391 << "umull" << getPredicate() << "\t"; |
1392 getDest()->emit(Func); | 1392 getDest()->emit(Func); |
1393 Str << ", "; | 1393 Str << ", "; |
1394 DestHi->emit(Func); | 1394 DestHi->emit(Func); |
1395 Str << ", "; | 1395 Str << ", "; |
1396 getSrc(0)->emit(Func); | 1396 getSrc(0)->emit(Func); |
1397 Str << ", "; | 1397 Str << ", "; |
1398 getSrc(1)->emit(Func); | 1398 getSrc(1)->emit(Func); |
1399 } | 1399 } |
1400 | 1400 |
| 1401 void InstARM32Umull::emitIAS(const Cfg *Func) const { |
| 1402 assert(getSrcSize() == 2); |
| 1403 auto *Asm = Func->getAssembler<ARM32::AssemblerARM32>(); |
| 1404 Asm->umull(getDest(), DestHi, getSrc(0), getSrc(1), getPredicate()); |
| 1405 if (Asm->needsTextFixup()) |
| 1406 emitUsingTextFixup(Func); |
| 1407 } |
| 1408 |
1401 void InstARM32Umull::dump(const Cfg *Func) const { | 1409 void InstARM32Umull::dump(const Cfg *Func) const { |
1402 if (!BuildDefs::dump()) | 1410 if (!BuildDefs::dump()) |
1403 return; | 1411 return; |
1404 Ostream &Str = Func->getContext()->getStrDump(); | 1412 Ostream &Str = Func->getContext()->getStrDump(); |
1405 dumpDest(Func); | 1413 dumpDest(Func); |
1406 Str << " = "; | 1414 Str << " = "; |
1407 dumpOpcodePred(Str, "umull", getDest()->getType()); | 1415 dumpOpcodePred(Str, "umull", getDest()->getType()); |
1408 Str << " "; | 1416 Str << " "; |
1409 dumpSources(Func); | 1417 dumpSources(Func); |
1410 } | 1418 } |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1694 template class InstARM32UnaryopGPR<InstARM32::Uxt, true>; | 1702 template class InstARM32UnaryopGPR<InstARM32::Uxt, true>; |
1695 template class InstARM32UnaryopFP<InstARM32::Vsqrt>; | 1703 template class InstARM32UnaryopFP<InstARM32::Vsqrt>; |
1696 | 1704 |
1697 template class InstARM32FourAddrGPR<InstARM32::Mla>; | 1705 template class InstARM32FourAddrGPR<InstARM32::Mla>; |
1698 template class InstARM32FourAddrGPR<InstARM32::Mls>; | 1706 template class InstARM32FourAddrGPR<InstARM32::Mls>; |
1699 | 1707 |
1700 template class InstARM32CmpLike<InstARM32::Cmp>; | 1708 template class InstARM32CmpLike<InstARM32::Cmp>; |
1701 template class InstARM32CmpLike<InstARM32::Tst>; | 1709 template class InstARM32CmpLike<InstARM32::Tst>; |
1702 | 1710 |
1703 } // end of namespace Ice | 1711 } // end of namespace Ice |
OLD | NEW |