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