Home | History | Annotate | Download | only in MC

Lines Matching full:streamer

49 static void EmitAbsDifference(MCStreamer &streamer, MCSymbol *lhs,
51 MCContext &context = streamer.getContext();
57 streamer.EmitAbsValue(diff, 1);
61 static void EmitUnwindCode(MCStreamer &streamer, MCSymbol *begin,
68 EmitAbsDifference(streamer, inst.getLabel(), begin);
70 streamer.EmitIntValue(b2, 1);
73 EmitAbsDifference(streamer, inst.getLabel(), begin);
76 streamer.EmitIntValue(b2, 1);
78 streamer.EmitIntValue(w, 2);
81 streamer.EmitIntValue(b2, 1);
84 streamer.EmitIntValue(w, 2);
88 EmitAbsDifference(streamer, inst.getLabel(), begin);
89 streamer.EmitIntValue(b2, 1);
92 EmitAbsDifference(streamer, inst.getLabel(), begin);
93 streamer.EmitIntValue(b2, 1);
98 EmitAbsDifference(streamer, inst.getLabel(), begin);
99 streamer.EmitIntValue(b2, 1);
103 streamer.EmitIntValue(w, 2);
108 EmitAbsDifference(streamer, inst.getLabel(), begin);
109 streamer.EmitIntValue(b2, 1);
114 streamer.EmitIntValue(w, 2);
116 streamer.EmitIntValue(w, 2);
121 EmitAbsDifference(streamer, inst.getLabel(), begin);
122 streamer.EmitIntValue(b2, 1);
127 static void EmitSymbolRefWithOfs(MCStreamer &streamer,
130 MCContext &Context = streamer.getContext();
137 streamer.EmitValue(MCBinaryExpr::CreateAdd(BaseRefRel, Ofs, Context), 4);
140 static void EmitRuntimeFunction(MCStreamer &streamer,
142 MCContext &context = streamer.getContext();
144 streamer.EmitValueToAlignment(4);
145 EmitSymbolRefWithOfs(streamer, info->Function, info->Begin);
146 EmitSymbolRefWithOfs(streamer, info->Function, info->End);
147 streamer.EmitValue(MCSymbolRefExpr::Create(info->Symbol,
152 static void EmitUnwindInfo(MCStreamer &streamer, MCWin64EHUnwindInfo *info) {
156 MCContext &context = streamer.getContext();
157 streamer.EmitValueToAlignment(4);
159 streamer.EmitLabel(info->Symbol);
171 streamer.EmitIntValue(flags, 1);
174 EmitAbsDifference(streamer, info->PrologEnd, info->Begin);
176 streamer.EmitIntValue(0, 1);
179 streamer.EmitIntValue(numCodes, 1);
188 streamer.EmitIntValue(frame, 1);
195 EmitUnwindCode(streamer, info->Begin, inst);
203 streamer.EmitIntValue(0, 2);
207 EmitRuntimeFunction(streamer, info->ChainedParent);
210 streamer.EmitValue(MCSymbolRefExpr::Create(info->ExceptionHandler,
217 streamer.EmitIntValue(0, 4);
261 void MCWin64EHUnwindEmitter::EmitUnwindInfo(MCStreamer &streamer,
265 MCContext &context = streamer.getContext();
268 streamer.SwitchSection(xdataSect);
270 llvm::EmitUnwindInfo(streamer, info);
273 void MCWin64EHUnwindEmitter::Emit(MCStreamer &Streamer) {
274 MCContext &Context = Streamer.getContext();
277 for (const auto &CFI : Streamer.getW64UnwindInfos()) {
280 Streamer.SwitchSection(XData);
281 EmitUnwindInfo(Streamer, CFI);
285 for (const auto &CFI : Streamer.getW64UnwindInfos()) {
288 Streamer.SwitchSection(PData);
289 EmitRuntimeFunction(Streamer, CFI);