Lines Matching refs:O

40   void EmitCallingConv(Record *CC, raw_ostream &O);
41 void EmitAction(Record *Action, unsigned Indent, raw_ostream &O);
42 void EmitArgRegisterLists(raw_ostream &O);
46 void CallingConvEmitter::run(raw_ostream &O) { in run() argument
47 emitSourceFileHeader("Calling Convention Implementation Fragment", O); in run()
54 O << "#ifndef GET_CC_REGISTER_LISTS\n\n"; in run()
59 O << "bool llvm::"; in run()
62 O << "static bool "; in run()
65 O << CC->getName() << "(unsigned ValNo, MVT ValVT,\n" in run()
76 EmitCallingConv(CC, O); in run()
80 EmitArgRegisterLists(O); in run()
82 O << "\n#endif // CC_REGISTER_LIST\n"; in run()
85 void CallingConvEmitter::EmitCallingConv(Record *CC, raw_ostream &O) { in EmitCallingConv() argument
95 O << "\n\n"; in EmitCallingConv()
98 O << "bool llvm::"; in EmitCallingConv()
101 O << "static bool "; in EmitCallingConv()
104 O << CurrentAction << "(unsigned ValNo, MVT ValVT,\n" in EmitCallingConv()
117 O << "\n"; in EmitCallingConv()
118 EmitAction(Action, 2, O); in EmitCallingConv()
121 O << "\n return true; // CC didn't match.\n"; in EmitCallingConv()
122 O << "}\n"; in EmitCallingConv()
126 raw_ostream &O) { in EmitAction() argument
130 O << IndentStr << "if ("; in EmitAction()
137 O << " ||\n " << IndentStr; in EmitAction()
138 O << "LocVT == " << getEnumName(getValueType(VT)); in EmitAction()
142 O << Action->getValueAsString("Predicate"); in EmitAction()
148 O << ") {\n"; in EmitAction()
149 EmitAction(Action->getValueAsDef("SubAction"), Indent + 2, O); in EmitAction()
150 O << IndentStr << "}\n"; in EmitAction()
154 O << IndentStr << "if (!" << CC->getName() in EmitAction()
163 O << IndentStr << "if (unsigned Reg = State.AllocateReg(" << Name in EmitAction()
170 O << IndentStr << "static const MCPhysReg RegList" << ++Counter in EmitAction()
172 O << IndentStr << " "; in EmitAction()
180 O << LS << Name; in EmitAction()
182 O << "\n" << IndentStr << "};\n"; in EmitAction()
183 O << IndentStr << "if (unsigned Reg = State.AllocateReg(RegList" in EmitAction()
186 O << IndentStr << " State.addLoc(CCValAssign::getReg(ValNo, ValVT, " in EmitAction()
191 O << IndentStr << " (void)State.AllocateStack("; in EmitAction()
193 O << Size << ", "; in EmitAction()
195 O << "\n" in EmitAction()
201 O << "Align(" << Align << ")"; in EmitAction()
203 O << "\n" in EmitAction()
208 O << ");\n"; in EmitAction()
210 O << IndentStr << " return false;\n"; in EmitAction()
211 O << IndentStr << "}\n"; in EmitAction()
220 O << IndentStr << "if (unsigned Reg = State.AllocateReg("; in EmitAction()
221 O << getQualifiedName(RegList->getElementAsRecord(0)); in EmitAction()
222 O << ", " << getQualifiedName(ShadowRegList->getElementAsRecord(0)); in EmitAction()
223 O << ")) {\n"; in EmitAction()
228 O << IndentStr << "static const MCPhysReg RegList" << RegListNumber in EmitAction()
230 O << IndentStr << " "; in EmitAction()
233 O << LS << getQualifiedName(RegList->getElementAsRecord(i)); in EmitAction()
234 O << "\n" << IndentStr << "};\n"; in EmitAction()
236 O << IndentStr << "static const MCPhysReg RegList" in EmitAction()
238 O << IndentStr << " "; in EmitAction()
241 O << LSS << getQualifiedName(ShadowRegList->getElementAsRecord(i)); in EmitAction()
242 O << "\n" << IndentStr << "};\n"; in EmitAction()
244 O << IndentStr << "if (unsigned Reg = State.AllocateReg(RegList" in EmitAction()
248 O << IndentStr << " State.addLoc(CCValAssign::getReg(ValNo, ValVT, " in EmitAction()
250 O << IndentStr << " return false;\n"; in EmitAction()
251 O << IndentStr << "}\n"; in EmitAction()
256 O << IndentStr << "int64_t Offset" << ++Counter in EmitAction()
259 O << Size << ", "; in EmitAction()
261 O << "\n" in EmitAction()
267 O << "Align(" << Align << ")"; in EmitAction()
269 O << "\n" in EmitAction()
274 O << ");\n" in EmitAction()
277 O << IndentStr << "return false;\n"; in EmitAction()
285 O << IndentStr << "static const MCPhysReg ShadowRegList" in EmitAction()
287 O << IndentStr << " "; in EmitAction()
290 O << LS << getQualifiedName(ShadowRegList->getElementAsRecord(i)); in EmitAction()
291 O << "\n" << IndentStr << "};\n"; in EmitAction()
293 O << IndentStr << "int64_t Offset" << ++Counter in EmitAction()
296 O << IndentStr << "State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset" in EmitAction()
298 O << IndentStr << "return false;\n"; in EmitAction()
302 O << IndentStr << "LocVT = " << getEnumName(DestVT) << ";\n"; in EmitAction()
304 O << IndentStr << "LocInfo = CCValAssign::FPExt;\n"; in EmitAction()
306 O << IndentStr << "if (ArgFlags.isSExt())\n" in EmitAction()
316 O << IndentStr << "LocVT = " << getEnumName(DestVT) << ";\n"; in EmitAction()
322 O << IndentStr << "if (ArgFlags.isSExt())\n" in EmitAction()
331 O << IndentStr << "LocVT = " << getEnumName(getValueType(DestTy)) in EmitAction()
333 O << IndentStr << "LocInfo = CCValAssign::BCvt;\n"; in EmitAction()
336 O << IndentStr << "LocVT = " << getEnumName(getValueType(DestTy)) in EmitAction()
338 O << IndentStr << "LocInfo = CCValAssign::Trunc;\n"; in EmitAction()
341 O << IndentStr << "LocVT = " << getEnumName(getValueType(DestTy)) in EmitAction()
343 O << IndentStr << "LocInfo = CCValAssign::Indirect;\n"; in EmitAction()
347 O << IndentStr << "State.HandleByVal(ValNo, ValVT, LocVT, LocInfo, " in EmitAction()
349 O << IndentStr << "return false;\n"; in EmitAction()
351 O << IndentStr << "if (" << Action->getValueAsString("FuncName") in EmitAction()
354 O << IndentStr << " return false;\n"; in EmitAction()
362 void CallingConvEmitter::EmitArgRegisterLists(raw_ostream &O) { in EmitArgRegisterLists() argument
398 O << "\n#else\n\n"; in EmitArgRegisterLists()
407 O << "const MCRegister " << Entry.first << "_ArgRegs[] = { "; in EmitArgRegisterLists()
410 O << "0"; in EmitArgRegisterLists()
414 O << LS << Reg; in EmitArgRegisterLists()
417 O << " };\n"; in EmitArgRegisterLists()
423 O << "\n// Registers used by Swift.\n"; in EmitArgRegisterLists()
428 O << "const MCRegister " << RegName << "_Swift_ArgRegs[] = { "; in EmitArgRegisterLists()
432 O << LS << Reg; in EmitArgRegisterLists()
434 O << " };\n"; in EmitArgRegisterLists()