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 1356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1367 << "umull" << getPredicate() << "\t"; | 1367 << "umull" << getPredicate() << "\t"; |
1368 getDest()->emit(Func); | 1368 getDest()->emit(Func); |
1369 Str << ", "; | 1369 Str << ", "; |
1370 DestHi->emit(Func); | 1370 DestHi->emit(Func); |
1371 Str << ", "; | 1371 Str << ", "; |
1372 getSrc(0)->emit(Func); | 1372 getSrc(0)->emit(Func); |
1373 Str << ", "; | 1373 Str << ", "; |
1374 getSrc(1)->emit(Func); | 1374 getSrc(1)->emit(Func); |
1375 } | 1375 } |
1376 | 1376 |
| 1377 void InstARM32Umull::emitIAS(const Cfg *Func) const { |
| 1378 assert(getSrcSize() == 2); |
| 1379 auto *Asm = Func->getAssembler<ARM32::AssemblerARM32>(); |
| 1380 Asm->umull(getDest(), DestHi, getSrc(0), getSrc(1), getPredicate()); |
| 1381 if (Asm->needsTextFixup()) |
| 1382 emitUsingTextFixup(Func); |
| 1383 } |
| 1384 |
1377 void InstARM32Umull::dump(const Cfg *Func) const { | 1385 void InstARM32Umull::dump(const Cfg *Func) const { |
1378 if (!BuildDefs::dump()) | 1386 if (!BuildDefs::dump()) |
1379 return; | 1387 return; |
1380 Ostream &Str = Func->getContext()->getStrDump(); | 1388 Ostream &Str = Func->getContext()->getStrDump(); |
1381 dumpDest(Func); | 1389 dumpDest(Func); |
1382 Str << " = "; | 1390 Str << " = "; |
1383 dumpOpcodePred(Str, "umull", getDest()->getType()); | 1391 dumpOpcodePred(Str, "umull", getDest()->getType()); |
1384 Str << " "; | 1392 Str << " "; |
1385 dumpSources(Func); | 1393 dumpSources(Func); |
1386 } | 1394 } |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1670 template class InstARM32UnaryopGPR<InstARM32::Uxt, true>; | 1678 template class InstARM32UnaryopGPR<InstARM32::Uxt, true>; |
1671 template class InstARM32UnaryopFP<InstARM32::Vsqrt>; | 1679 template class InstARM32UnaryopFP<InstARM32::Vsqrt>; |
1672 | 1680 |
1673 template class InstARM32FourAddrGPR<InstARM32::Mla>; | 1681 template class InstARM32FourAddrGPR<InstARM32::Mla>; |
1674 template class InstARM32FourAddrGPR<InstARM32::Mls>; | 1682 template class InstARM32FourAddrGPR<InstARM32::Mls>; |
1675 | 1683 |
1676 template class InstARM32CmpLike<InstARM32::Cmp>; | 1684 template class InstARM32CmpLike<InstARM32::Cmp>; |
1677 template class InstARM32CmpLike<InstARM32::Tst>; | 1685 template class InstARM32CmpLike<InstARM32::Tst>; |
1678 | 1686 |
1679 } // end of namespace Ice | 1687 } // end of namespace Ice |
OLD | NEW |