Lines Matching refs:O
37 void EmitCallingConv(Record *CC, raw_ostream &O);
38 void EmitAction(Record *Action, unsigned Indent, raw_ostream &O);
39 void EmitArgRegisterLists(raw_ostream &O);
43 void CallingConvEmitter::run(raw_ostream &O) { in run() argument
49 O << "#ifndef GET_CC_REGISTER_LISTS\n\n"; in run()
54 O << "bool llvm::"; in run()
57 O << "static bool "; in run()
60 O << CC->getName() << "(unsigned ValNo, MVT ValVT,\n" in run()
71 EmitCallingConv(CC, O); in run()
75 EmitArgRegisterLists(O); in run()
77 O << "\n#endif // CC_REGISTER_LIST\n"; in run()
80 void CallingConvEmitter::EmitCallingConv(Record *CC, raw_ostream &O) { in EmitCallingConv() argument
90 O << "\n\n"; in EmitCallingConv()
93 O << "bool llvm::"; in EmitCallingConv()
96 O << "static bool "; in EmitCallingConv()
99 O << CurrentAction << "(unsigned ValNo, MVT ValVT,\n" in EmitCallingConv()
112 O << "\n"; in EmitCallingConv()
113 EmitAction(Action, 2, O); in EmitCallingConv()
116 O << "\n return true; // CC didn't match.\n"; in EmitCallingConv()
117 O << "}\n"; in EmitCallingConv()
121 unsigned Indent, raw_ostream &O) { in EmitAction() argument
125 O << IndentStr << "if ("; in EmitAction()
131 if (i != 0) O << " ||\n " << IndentStr; in EmitAction()
132 O << "LocVT == " << getEnumName(getValueType(VT)); in EmitAction()
136 O << Action->getValueAsString("Predicate"); in EmitAction()
142 O << ") {\n"; in EmitAction()
143 EmitAction(Action->getValueAsDef("SubAction"), Indent+2, O); in EmitAction()
144 O << IndentStr << "}\n"; in EmitAction()
148 O << IndentStr << "if (!" << CC->getName() in EmitAction()
157 O << IndentStr << "if (unsigned Reg = State.AllocateReg(" << Name in EmitAction()
164 O << IndentStr << "static const MCPhysReg RegList" << ++Counter in EmitAction()
166 O << IndentStr << " "; in EmitAction()
174 O << LS << Name; in EmitAction()
176 O << "\n" << IndentStr << "};\n"; in EmitAction()
177 O << IndentStr << "if (unsigned Reg = State.AllocateReg(RegList" in EmitAction()
180 O << IndentStr << " State.addLoc(CCValAssign::getReg(ValNo, ValVT, " in EmitAction()
185 O << IndentStr << " (void)State.AllocateStack("; in EmitAction()
187 O << Size << ", "; in EmitAction()
189 O << "\n" in EmitAction()
195 O << "Align(" << Align << ")"; in EmitAction()
197 O << "\n" in EmitAction()
202 O << ");\n"; in EmitAction()
204 O << IndentStr << " return false;\n"; in EmitAction()
205 O << IndentStr << "}\n"; in EmitAction()
214 O << IndentStr << "if (unsigned Reg = State.AllocateReg("; in EmitAction()
215 O << getQualifiedName(RegList->getElementAsRecord(0)); in EmitAction()
216 O << ", " << getQualifiedName(ShadowRegList->getElementAsRecord(0)); in EmitAction()
217 O << ")) {\n"; in EmitAction()
222 O << IndentStr << "static const MCPhysReg RegList" << RegListNumber in EmitAction()
224 O << IndentStr << " "; in EmitAction()
227 O << LS << getQualifiedName(RegList->getElementAsRecord(i)); in EmitAction()
228 O << "\n" << IndentStr << "};\n"; in EmitAction()
230 O << IndentStr << "static const MCPhysReg RegList" in EmitAction()
232 O << IndentStr << " "; in EmitAction()
235 O << LSS << getQualifiedName(ShadowRegList->getElementAsRecord(i)); in EmitAction()
236 O << "\n" << IndentStr << "};\n"; in EmitAction()
238 O << IndentStr << "if (unsigned Reg = State.AllocateReg(RegList" in EmitAction()
242 O << IndentStr << " State.addLoc(CCValAssign::getReg(ValNo, ValVT, " in EmitAction()
244 O << IndentStr << " return false;\n"; in EmitAction()
245 O << IndentStr << "}\n"; in EmitAction()
250 O << IndentStr << "unsigned Offset" << ++Counter in EmitAction()
253 O << Size << ", "; in EmitAction()
255 O << "\n" << IndentStr in EmitAction()
260 O << "Align(" << Align << ")"; in EmitAction()
262 O << "\n" in EmitAction()
267 O << ");\n" << IndentStr in EmitAction()
270 O << IndentStr << "return false;\n"; in EmitAction()
278 O << IndentStr << "static const MCPhysReg ShadowRegList" in EmitAction()
280 O << IndentStr << " "; in EmitAction()
283 O << LS << getQualifiedName(ShadowRegList->getElementAsRecord(i)); in EmitAction()
284 O << "\n" << IndentStr << "};\n"; in EmitAction()
286 O << IndentStr << "unsigned Offset" << ++Counter in EmitAction()
289 O << IndentStr << "State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset" in EmitAction()
291 O << IndentStr << "return false;\n"; in EmitAction()
295 O << IndentStr << "LocVT = " << getEnumName(DestVT) <<";\n"; in EmitAction()
297 O << IndentStr << "LocInfo = CCValAssign::FPExt;\n"; in EmitAction()
299 O << IndentStr << "if (ArgFlags.isSExt())\n" in EmitAction()
309 O << IndentStr << "LocVT = " << getEnumName(DestVT) << ";\n"; in EmitAction()
315 O << IndentStr << "if (ArgFlags.isSExt())\n" in EmitAction()
324 O << IndentStr << "LocVT = " << getEnumName(getValueType(DestTy)) <<";\n"; in EmitAction()
325 O << IndentStr << "LocInfo = CCValAssign::BCvt;\n"; in EmitAction()
328 O << IndentStr << "LocVT = " << getEnumName(getValueType(DestTy)) <<";\n"; in EmitAction()
329 O << IndentStr << "LocInfo = CCValAssign::Trunc;\n"; in EmitAction()
332 O << IndentStr << "LocVT = " << getEnumName(getValueType(DestTy)) <<";\n"; in EmitAction()
333 O << IndentStr << "LocInfo = CCValAssign::Indirect;\n"; in EmitAction()
337 O << IndentStr << "State.HandleByVal(ValNo, ValVT, LocVT, LocInfo, " in EmitAction()
339 O << IndentStr << "return false;\n"; in EmitAction()
341 O << IndentStr in EmitAction()
344 O << IndentStr << " return false;\n"; in EmitAction()
352 void CallingConvEmitter::EmitArgRegisterLists(raw_ostream &O) { in EmitArgRegisterLists() argument
389 O << "\n#else\n\n"; in EmitArgRegisterLists()
398 O << "const MCRegister " << Entry.first << "_ArgRegs[] = { "; in EmitArgRegisterLists()
401 O << "0"; in EmitArgRegisterLists()
405 O << LS << Reg; in EmitArgRegisterLists()
408 O << " };\n"; in EmitArgRegisterLists()
414 O << "\n// Registers used by Swift.\n"; in EmitArgRegisterLists()
419 O << "const MCRegister " << RegName << "_Swift_ArgRegs[] = { "; in EmitArgRegisterLists()
423 O << LS << Reg; in EmitArgRegisterLists()
425 O << " };\n"; in EmitArgRegisterLists()