OLD | NEW |
---|---|
(Empty) | |
1 //===- subzero/src/IceInstARM32.cpp - ARM32 instruction implementation ----===// | |
Jim Stichnoth
2015/06/12 18:03:14
MIPS
| |
2 // | |
3 // The Subzero Code Generator | |
4 // | |
5 // This file is distributed under the University of Illinois Open Source | |
6 // License. See LICENSE.TXT for details. | |
7 // | |
8 //===----------------------------------------------------------------------===// | |
9 // | |
10 // This file implements the InstARM32 and OperandARM32 classes, | |
Jim Stichnoth
2015/06/12 18:03:14
MIPS
| |
11 // primarily the constructors and the dump()/emit() methods. | |
12 // | |
13 //===----------------------------------------------------------------------===// | |
14 | |
15 #include "IceAssemblerMIPS32.h" | |
16 #include "IceCfg.h" | |
17 #include "IceCfgNode.h" | |
18 #include "IceInst.h" | |
19 #include "IceInstMIPS32.h" | |
20 #include "IceOperand.h" | |
21 #include "IceRegistersMIPS32.h" | |
22 #include "IceTargetLoweringMIPS32.h" | |
23 | |
24 namespace Ice { | |
25 | |
26 namespace {} | |
Jim Stichnoth
2015/06/12 18:03:14
remove this?
| |
27 | |
28 InstMIPS32Ret::InstMIPS32Ret(Cfg *Func, Variable *LR, Variable *Source) | |
jvoung (off chromium)
2015/06/12 19:39:12
s/LR/RA/
| |
29 : InstMIPS32(Func, InstMIPS32::Ret, Source ? 2 : 1, nullptr) { | |
30 addSource(LR); | |
31 if (Source) | |
32 addSource(Source); | |
33 } | |
34 | |
35 void InstMIPS32Ret::emit(const Cfg *Func) const { | |
36 if (!ALLOW_DUMP) | |
37 return; | |
38 assert(getSrcSize() > 0); | |
39 Variable *LR = llvm::cast<Variable>(getSrc(0)); | |
jvoung (off chromium)
2015/06/12 19:39:12
s/LR/RA/
| |
40 assert(LR->hasReg()); | |
41 assert(LR->getRegNum() == RegMIPS32::Reg_RA); | |
42 Ostream &Str = Func->getContext()->getStrEmit(); | |
43 Str << "\t" | |
44 << "jr $ra" | |
45 << "\t"; | |
46 LR->emit(Func); | |
47 } | |
48 | |
49 void InstMIPS32Ret::emitIAS(const Cfg *Func) const { | |
50 (void)Func; | |
51 llvm_unreachable("Not yet implemented"); | |
52 } | |
53 | |
54 void InstMIPS32Ret::dump(const Cfg *Func) const { | |
55 if (!ALLOW_DUMP) | |
56 return; | |
57 Ostream &Str = Func->getContext()->getStrDump(); | |
58 Type Ty = (getSrcSize() == 1 ? IceType_void : getSrc(0)->getType()); | |
59 Str << "ret." << Ty << " "; | |
60 dumpSources(Func); | |
61 } | |
62 } | |
Jim Stichnoth
2015/06/12 18:03:14
// end of namespace Ice
(maybe an extra blank line
| |
OLD | NEW |