Lines Matching refs:streamer

63 static void EmitUnwindCode(MCStreamer &streamer, const MCSymbol *begin,  in EmitUnwindCode()  argument
72 EmitAbsDifference(streamer, inst.Label, begin); in EmitUnwindCode()
74 streamer.emitInt8(b2); in EmitUnwindCode()
77 EmitAbsDifference(streamer, inst.Label, begin); in EmitUnwindCode()
80 streamer.emitInt8(b2); in EmitUnwindCode()
82 streamer.emitInt16(w); in EmitUnwindCode()
85 streamer.emitInt8(b2); in EmitUnwindCode()
88 streamer.emitInt16(w); in EmitUnwindCode()
92 EmitAbsDifference(streamer, inst.Label, begin); in EmitUnwindCode()
93 streamer.emitInt8(b2); in EmitUnwindCode()
96 EmitAbsDifference(streamer, inst.Label, begin); in EmitUnwindCode()
97 streamer.emitInt8(b2); in EmitUnwindCode()
102 EmitAbsDifference(streamer, inst.Label, begin); in EmitUnwindCode()
103 streamer.emitInt8(b2); in EmitUnwindCode()
107 streamer.emitInt16(w); in EmitUnwindCode()
112 EmitAbsDifference(streamer, inst.Label, begin); in EmitUnwindCode()
113 streamer.emitInt8(b2); in EmitUnwindCode()
118 streamer.emitInt16(w); in EmitUnwindCode()
120 streamer.emitInt16(w); in EmitUnwindCode()
125 EmitAbsDifference(streamer, inst.Label, begin); in EmitUnwindCode()
126 streamer.emitInt8(b2); in EmitUnwindCode()
131 static void EmitSymbolRefWithOfs(MCStreamer &streamer, in EmitSymbolRefWithOfs() argument
134 MCContext &Context = streamer.getContext(); in EmitSymbolRefWithOfs()
141 streamer.emitValue(MCBinaryExpr::createAdd(BaseRefRel, Ofs, Context), 4); in EmitSymbolRefWithOfs()
144 static void EmitRuntimeFunction(MCStreamer &streamer, in EmitRuntimeFunction() argument
146 MCContext &context = streamer.getContext(); in EmitRuntimeFunction()
148 streamer.emitValueToAlignment(4); in EmitRuntimeFunction()
149 EmitSymbolRefWithOfs(streamer, info->Begin, info->Begin); in EmitRuntimeFunction()
150 EmitSymbolRefWithOfs(streamer, info->Begin, info->End); in EmitRuntimeFunction()
151 streamer.emitValue(MCSymbolRefExpr::create(info->Symbol, in EmitRuntimeFunction()
156 static void EmitUnwindInfo(MCStreamer &streamer, WinEH::FrameInfo *info) { in EmitUnwindInfo() argument
161 MCContext &context = streamer.getContext(); in EmitUnwindInfo()
164 streamer.emitValueToAlignment(4); in EmitUnwindInfo()
165 streamer.emitLabel(Label); in EmitUnwindInfo()
178 streamer.emitInt8(flags); in EmitUnwindInfo()
181 EmitAbsDifference(streamer, info->PrologEnd, info->Begin); in EmitUnwindInfo()
183 streamer.emitInt8(0); in EmitUnwindInfo()
186 streamer.emitInt8(numCodes); in EmitUnwindInfo()
194 streamer.emitInt8(frame); in EmitUnwindInfo()
201 EmitUnwindCode(streamer, info->Begin, inst); in EmitUnwindInfo()
209 streamer.emitInt16(0); in EmitUnwindInfo()
213 EmitRuntimeFunction(streamer, info->ChainedParent); in EmitUnwindInfo()
216 streamer.emitValue(MCSymbolRefExpr::create(info->ExceptionHandler, in EmitUnwindInfo()
223 streamer.emitInt32(0); in EmitUnwindInfo()
376 static void ARM64EmitUnwindCode(MCStreamer &streamer, in ARM64EmitUnwindCode() argument
384 streamer.emitInt8(b); in ARM64EmitUnwindCode()
390 streamer.emitInt8(b); in ARM64EmitUnwindCode()
392 streamer.emitInt8(b); in ARM64EmitUnwindCode()
398 streamer.emitInt8(b); in ARM64EmitUnwindCode()
401 streamer.emitInt8(b); in ARM64EmitUnwindCode()
403 streamer.emitInt8(b); in ARM64EmitUnwindCode()
405 streamer.emitInt8(b); in ARM64EmitUnwindCode()
410 streamer.emitInt8(b); in ARM64EmitUnwindCode()
414 streamer.emitInt8(b); in ARM64EmitUnwindCode()
416 streamer.emitInt8(b); in ARM64EmitUnwindCode()
420 streamer.emitInt8(b); in ARM64EmitUnwindCode()
425 streamer.emitInt8(b); in ARM64EmitUnwindCode()
430 streamer.emitInt8(b); in ARM64EmitUnwindCode()
435 streamer.emitInt8(b); in ARM64EmitUnwindCode()
441 streamer.emitInt8(b); in ARM64EmitUnwindCode()
443 streamer.emitInt8(b); in ARM64EmitUnwindCode()
449 streamer.emitInt8(b); in ARM64EmitUnwindCode()
451 streamer.emitInt8(b); in ARM64EmitUnwindCode()
457 streamer.emitInt8(b); in ARM64EmitUnwindCode()
459 streamer.emitInt8(b); in ARM64EmitUnwindCode()
465 streamer.emitInt8(b); in ARM64EmitUnwindCode()
467 streamer.emitInt8(b); in ARM64EmitUnwindCode()
475 streamer.emitInt8(b); in ARM64EmitUnwindCode()
477 streamer.emitInt8(b); in ARM64EmitUnwindCode()
483 streamer.emitInt8(b); in ARM64EmitUnwindCode()
485 streamer.emitInt8(b); in ARM64EmitUnwindCode()
491 streamer.emitInt8(b); in ARM64EmitUnwindCode()
493 streamer.emitInt8(b); in ARM64EmitUnwindCode()
499 streamer.emitInt8(b); in ARM64EmitUnwindCode()
501 streamer.emitInt8(b); in ARM64EmitUnwindCode()
507 streamer.emitInt8(b); in ARM64EmitUnwindCode()
509 streamer.emitInt8(b); in ARM64EmitUnwindCode()
513 streamer.emitInt8(b); in ARM64EmitUnwindCode()
517 streamer.emitInt8(b); in ARM64EmitUnwindCode()
521 streamer.emitInt8(b); in ARM64EmitUnwindCode()
525 streamer.emitInt8(b); in ARM64EmitUnwindCode()
529 streamer.emitInt8(b); in ARM64EmitUnwindCode()
533 streamer.emitInt8(b); in ARM64EmitUnwindCode()
652 static int checkARM64PackedEpilog(MCStreamer &streamer, WinEH::FrameInfo *info, in checkARM64PackedEpilog() argument
664 streamer, info->FuncletOrFuncEnd, info->EpilogMap.begin()->first); in checkARM64PackedEpilog()
928 static void ARM64EmitUnwindInfo(MCStreamer &streamer, WinEH::FrameInfo *info, in ARM64EmitUnwindInfo() argument
947 streamer.getContext().reportError( in ARM64EmitUnwindInfo()
959 MCContext &context = streamer.getContext(); in ARM64EmitUnwindInfo()
962 streamer.emitValueToAlignment(4); in ARM64EmitUnwindInfo()
963 streamer.emitLabel(Label); in ARM64EmitUnwindInfo()
996 RawFuncLength = GetAbsDifference(streamer, info->FuncletOrFuncEnd, in ARM64EmitUnwindInfo()
1006 checkARM64PackedEpilog(streamer, info, PrologCodeBytes); in ARM64EmitUnwindInfo()
1074 streamer.emitInt32(row1); in ARM64EmitUnwindInfo()
1084 streamer.emitInt32(row2); in ARM64EmitUnwindInfo()
1093 (uint32_t)GetAbsDifference(streamer, EpilogStart, info->Begin); in ARM64EmitUnwindInfo()
1098 streamer.emitInt32(row3); in ARM64EmitUnwindInfo()
1107 ARM64EmitUnwindCode(streamer, inst); in ARM64EmitUnwindInfo()
1114 ARM64EmitUnwindCode(streamer, inst); in ARM64EmitUnwindInfo()
1120 streamer.emitInt8(0xE3); in ARM64EmitUnwindInfo()
1123 streamer.emitValue( in ARM64EmitUnwindInfo()
1297 static void ARMEmitUnwindCode(MCStreamer &streamer, in ARMEmitUnwindCode() argument
1307 streamer.emitInt8(inst.Offset / 4); in ARMEmitUnwindCode()
1313 streamer.emitInt8((w >> 8) & 0xff); in ARMEmitUnwindCode()
1314 streamer.emitInt8((w >> 0) & 0xff); in ARMEmitUnwindCode()
1318 streamer.emitInt8(0xc0 | inst.Register); in ARMEmitUnwindCode()
1323 streamer.emitInt8(0xd0 | (inst.Register - 4) | (inst.Offset << 2)); in ARMEmitUnwindCode()
1328 streamer.emitInt8(0xd8 | (inst.Register - 8) | (inst.Offset << 2)); in ARMEmitUnwindCode()
1332 streamer.emitInt8(0xe0 | (inst.Register - 8)); in ARMEmitUnwindCode()
1338 streamer.emitInt8((w >> 8) & 0xff); in ARMEmitUnwindCode()
1339 streamer.emitInt8((w >> 0) & 0xff); in ARMEmitUnwindCode()
1345 streamer.emitInt8((w >> 8) & 0xff); in ARMEmitUnwindCode()
1346 streamer.emitInt8((w >> 0) & 0xff); in ARMEmitUnwindCode()
1351 streamer.emitInt8(0xef); in ARMEmitUnwindCode()
1352 streamer.emitInt8(inst.Offset / 4); in ARMEmitUnwindCode()
1358 streamer.emitInt8(0xf5); in ARMEmitUnwindCode()
1359 streamer.emitInt8((inst.Register << 4) | inst.Offset); in ARMEmitUnwindCode()
1365 streamer.emitInt8(0xf6); in ARMEmitUnwindCode()
1366 streamer.emitInt8(((inst.Register - 16) << 4) | (inst.Offset - 16)); in ARMEmitUnwindCode()
1372 streamer.emitInt8(0xf7); in ARMEmitUnwindCode()
1373 streamer.emitInt8((w >> 8) & 0xff); in ARMEmitUnwindCode()
1374 streamer.emitInt8((w >> 0) & 0xff); in ARMEmitUnwindCode()
1380 streamer.emitInt8(0xf8); in ARMEmitUnwindCode()
1381 streamer.emitInt8((w >> 16) & 0xff); in ARMEmitUnwindCode()
1382 streamer.emitInt8((w >> 8) & 0xff); in ARMEmitUnwindCode()
1383 streamer.emitInt8((w >> 0) & 0xff); in ARMEmitUnwindCode()
1389 streamer.emitInt8(0xf9); in ARMEmitUnwindCode()
1390 streamer.emitInt8((w >> 8) & 0xff); in ARMEmitUnwindCode()
1391 streamer.emitInt8((w >> 0) & 0xff); in ARMEmitUnwindCode()
1397 streamer.emitInt8(0xfa); in ARMEmitUnwindCode()
1398 streamer.emitInt8((w >> 16) & 0xff); in ARMEmitUnwindCode()
1399 streamer.emitInt8((w >> 8) & 0xff); in ARMEmitUnwindCode()
1400 streamer.emitInt8((w >> 0) & 0xff); in ARMEmitUnwindCode()
1403 streamer.emitInt8(0xfb); in ARMEmitUnwindCode()
1406 streamer.emitInt8(0xfc); in ARMEmitUnwindCode()
1409 streamer.emitInt8(0xfd); in ARMEmitUnwindCode()
1412 streamer.emitInt8(0xfe); in ARMEmitUnwindCode()
1415 streamer.emitInt8(0xff); in ARMEmitUnwindCode()
1422 streamer.emitInt8((inst.Offset >> (8 * i)) & 0xff); in ARMEmitUnwindCode()
1469 static int checkARMPackedEpilog(MCStreamer &streamer, WinEH::FrameInfo *info, in checkARMPackedEpilog() argument
1488 streamer, info->FuncletOrFuncEnd, info->EpilogMap.begin()->first); in checkARMPackedEpilog()
1566 static bool tryARMPackedUnwind(MCStreamer &streamer, WinEH::FrameInfo *info, in tryARMPackedUnwind() argument
1714 streamer, info->FuncletOrFuncEnd, info->EpilogMap.begin()->first); in tryARMPackedUnwind()
1968 static void ARMEmitUnwindInfo(MCStreamer &streamer, WinEH::FrameInfo *info, in ARMEmitUnwindInfo() argument
1987 streamer.getContext().reportError( in ARMEmitUnwindInfo()
1995 MCContext &context = streamer.getContext(); in ARMEmitUnwindInfo()
1998 streamer.emitValueToAlignment(4); in ARMEmitUnwindInfo()
1999 streamer.emitLabel(Label); in ARMEmitUnwindInfo()
2003 streamer.getContext().reportError(SMLoc(), "Prologue in " + in ARMEmitUnwindInfo()
2008 checkARMInstructions(streamer, info->Instructions, info->Begin, in ARMEmitUnwindInfo()
2014 checkARMInstructions(streamer, Epilog.Instructions, EpilogStart, Epilog.End, in ARMEmitUnwindInfo()
2018 streamer.getContext().reportError( in ARMEmitUnwindInfo()
2037 GetOptionalAbsDifference(streamer, info->FuncletOrFuncEnd, info->Begin); in ARMEmitUnwindInfo()
2040 GetSubDivExpr(streamer, info->FuncletOrFuncEnd, info->Begin, 2); in ARMEmitUnwindInfo()
2060 if (tryARMPackedUnwind(streamer, info, FuncLength)) in ARMEmitUnwindInfo()
2065 checkARMPackedEpilog(streamer, info, PrologCodeBytes); in ARMEmitUnwindInfo()
2129 streamer.emitInt32(row1); in ARMEmitUnwindInfo()
2131 streamer.emitValue( in ARMEmitUnwindInfo()
2144 streamer.emitInt32(row2); in ARMEmitUnwindInfo()
2154 GetOptionalAbsDifference(streamer, EpilogStart, info->Begin); in ARMEmitUnwindInfo()
2160 OffsetExpr = GetSubDivExpr(streamer, EpilogStart, info->Begin, 2); in ARMEmitUnwindInfo()
2170 streamer.emitInt32(row3); in ARMEmitUnwindInfo()
2172 streamer.emitValue( in ARMEmitUnwindInfo()
2184 ARMEmitUnwindCode(streamer, inst); in ARMEmitUnwindInfo()
2192 ARMEmitUnwindCode(streamer, inst); in ARMEmitUnwindInfo()
2199 streamer.emitInt8(0xFB); in ARMEmitUnwindInfo()
2202 streamer.emitValue( in ARMEmitUnwindInfo()
2208 static void ARMEmitRuntimeFunction(MCStreamer &streamer, in ARMEmitRuntimeFunction() argument
2210 MCContext &context = streamer.getContext(); in ARMEmitRuntimeFunction()
2212 streamer.emitValueToAlignment(4); in ARMEmitRuntimeFunction()
2213 EmitSymbolRefWithOfs(streamer, info->Begin, info->Begin); in ARMEmitRuntimeFunction()
2215 streamer.emitInt32(info->PackedInfo); in ARMEmitRuntimeFunction()
2217 streamer.emitValue( in ARMEmitRuntimeFunction()