Home | History | Annotate | Download | only in MC

Lines Matching refs:streamer

53 static void EmitAbsDifference(MCStreamer &streamer, MCSymbol *lhs,
55 MCContext &context = streamer.getContext();
61 streamer.EmitAbsValue(diff, 1);
65 static void EmitUnwindCode(MCStreamer &streamer, MCSymbol *begin,
72 EmitAbsDifference(streamer, inst.getLabel(), begin);
74 streamer.EmitIntValue(b2, 1);
77 EmitAbsDifference(streamer, inst.getLabel(), begin);
80 streamer.EmitIntValue(b2, 1);
82 streamer.EmitIntValue(w, 2);
85 streamer.EmitIntValue(b2, 1);
88 streamer.EmitIntValue(w, 2);
92 EmitAbsDifference(streamer, inst.getLabel(), begin);
93 streamer.EmitIntValue(b2, 1);
97 streamer.EmitIntValue(b1, 1);
98 streamer.EmitIntValue(b2, 1);
103 EmitAbsDifference(streamer, inst.getLabel(), begin);
104 streamer.EmitIntValue(b2, 1);
108 streamer.EmitIntValue(w, 2);
113 EmitAbsDifference(streamer, inst.getLabel(), begin);
114 streamer.EmitIntValue(b2, 1);
119 streamer.EmitIntValue(w, 2);
121 streamer.EmitIntValue(w, 2);
126 EmitAbsDifference(streamer, inst.getLabel(), begin);
127 streamer.EmitIntValue(b2, 1);
132 static void EmitRuntimeFunction(MCStreamer &streamer,
134 MCContext &context = streamer.getContext();
136 streamer.EmitValueToAlignment(4);
137 streamer.EmitValue(MCSymbolRefExpr::Create(info->Begin, context), 4);
138 streamer.EmitValue(MCSymbolRefExpr::Create(info->End, context), 4);
139 streamer.EmitValue(MCSymbolRefExpr::Create(info->Symbol, context), 4);
142 static void EmitUnwindInfo(MCStreamer &streamer, MCWin64EHUnwindInfo *info) {
146 MCContext &context = streamer.getContext();
147 streamer.EmitValueToAlignment(4);
151 streamer.EmitLabel(info->Symbol);
161 streamer.EmitIntValue(flags, 1);
164 EmitAbsDifference(streamer, info->PrologEnd, info->Begin);
166 streamer.EmitIntValue(0, 1);
169 streamer.EmitIntValue(numCodes, 1);
178 streamer.EmitIntValue(frame, 1);
185 EmitUnwindCode(streamer, info->Begin, inst);
189 EmitRuntimeFunction(streamer, info->ChainedParent);
192 streamer.EmitValue(MCSymbolRefExpr::Create(info->ExceptionHandler, context),
199 streamer.EmitIntValue(0, 2);
201 streamer.EmitIntValue(0, 4);
245 void MCWin64EHUnwindEmitter::EmitUnwindInfo(MCStreamer &streamer,
249 MCContext &context = streamer.getContext();
252 streamer.SwitchSection(xdataSect);
254 llvm::EmitUnwindInfo(streamer, info);
257 void MCWin64EHUnwindEmitter::Emit(MCStreamer &streamer) {
258 MCContext &context = streamer.getContext();
260 for (unsigned i = 0; i < streamer.getNumW64UnwindInfos(); ++i) {
261 MCWin64EHUnwindInfo &info = streamer.getW64UnwindInfo(i);
264 streamer.SwitchSection(xdataSect);
265 llvm::EmitUnwindInfo(streamer, &info);
268 for (unsigned i = 0; i < streamer.getNumW64UnwindInfos(); ++i) {
269 MCWin64EHUnwindInfo &info = streamer.getW64UnwindInfo(i);
272 streamer.SwitchSection(pdataSect);
273 EmitRuntimeFunction(streamer, &info);