// Returns size of the emitted symbol reference public int EmitSymbolReference(ISymbolNode target, int delta, RelocType relocType) { _sb.Clear(); AppendExternCPrefix(_sb); target.AppendMangledName(_nodeFactory.NameMangler, _sb); return(EmitSymbolRef(_sb, relocType, delta)); }
public static string GetMangledName(this ISymbolNode symbolNode, NameMangler nameMangler) { Utf8StringBuilder sb = s_cachedUtf8StringBuilder; if (sb == null) { sb = new Utf8StringBuilder(); } symbolNode.AppendMangledName(nameMangler, sb); string ret = sb.ToString(); sb.Clear(); s_cachedUtf8StringBuilder = sb; return(ret); }
public void AppendMangledName(NameMangler nameMangler, Utf8StringBuilder sb) { sb.Append("RVAFieldNode->"); _sectionStartNode.AppendMangledName(nameMangler, sb); sb.Append($":{_sectionRelativeOffset:X4}"); }
public void AppendMangledName(NameMangler nameMangler, Utf8StringBuilder sb) { sb.Append("__indirection"); _indirectedNode.AppendMangledName(nameMangler, sb); }
// Returns size of the emitted symbol reference public int EmitSymbolReference(ISymbolNode target, int delta, RelocType relocType) { _sb.Clear(); AppendExternCPrefix(_sb); target.AppendMangledName(NodeFactory.NameMangler, _sb); return EmitSymbolRef(_sb, relocType, delta); }