@@ -87,7 +87,9 @@ void MCExpr::print(raw_ostream &OS, const MCAsmInfo *MAI, bool InParens) const {
8787 const MCSymbolRefExpr::VariantKind Kind = SRE.getKind ();
8888 if (Kind != MCSymbolRefExpr::VK_None) {
8989 if (MAI && MAI->useParensForSymbolVariant ()) // ARM
90- OS << ' (' << MCSymbolRefExpr::getVariantKindName (Kind) << ' )' ;
90+ OS << ' (' << MAI->getVariantKindName (Kind) << ' )' ;
91+ else if (MAI)
92+ OS << ' @' << MAI->getVariantKindName (Kind);
9193 else
9294 OS << ' @' << MCSymbolRefExpr::getVariantKindName (Kind);
9395 }
@@ -246,11 +248,11 @@ const MCSymbolRefExpr *MCSymbolRefExpr::create(StringRef Name, VariantKind Kind,
246248 return create (Ctx.getOrCreateSymbol (Name), Kind, Ctx);
247249}
248250
249- // TODO: Move target-specific Kinds to lib/Target/.
251+ // TODO: Move target-specific Kinds to lib/Target/*/MCTargetDesc/*AsmInfo.cpp .
250252StringRef MCSymbolRefExpr::getVariantKindName (VariantKind Kind) {
251253 switch (Kind) {
252254 // clang-format off
253- case VK_Invalid: return " <<invalid>>" ;
255+ case VK_Invalid: default : return " <<invalid>>" ;
254256 case VK_None: return " <<none>>" ;
255257
256258 case VK_DTPOFF: return " DTPOFF" ;
@@ -261,18 +263,14 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
261263 case VK_GOTREL: return " GOTREL" ;
262264 case VK_PCREL: return " PCREL" ;
263265 case VK_GOTPCREL: return " GOTPCREL" ;
264- case VK_GOTPCREL_NORELAX: return " GOTPCREL_NORELAX" ;
265266 case VK_GOTTPOFF: return " GOTTPOFF" ;
266- case VK_GOTTPOFF_FDPIC: return " gottpoff_fdpic" ;
267267 case VK_INDNTPOFF: return " INDNTPOFF" ;
268268 case VK_NTPOFF: return " NTPOFF" ;
269269 case VK_GOTNTPOFF: return " GOTNTPOFF" ;
270270 case VK_PLT: return " PLT" ;
271271 case VK_TLSGD: return " TLSGD" ;
272- case VK_TLSGD_FDPIC: return " tlsgd_fdpic" ;
273272 case VK_TLSLD: return " TLSLD" ;
274273 case VK_TLSLDM: return " TLSLDM" ;
275- case VK_TLSLDM_FDPIC: return " tlsldm_fdpic" ;
276274 case VK_TPOFF: return " TPOFF" ;
277275 case VK_TPREL: return " TPREL" ;
278276 case VK_TLSCALL: return " tlscall" ;
@@ -285,148 +283,8 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
285283 case VK_GOTPAGE: return " GOTPAGE" ;
286284 case VK_GOTPAGEOFF: return " GOTPAGEOFF" ;
287285 case VK_SECREL: return " SECREL32" ;
288- case VK_SIZE: return " SIZE" ;
289286 case VK_WEAKREF: return " WEAKREF" ;
290- case VK_FUNCDESC: return " FUNCDESC" ;
291- case VK_GOTFUNCDESC: return " GOTFUNCDESC" ;
292- case VK_GOTOFFFUNCDESC: return " GOTOFFFUNCDESC" ;
293- case VK_X86_ABS8: return " ABS8" ;
294- case VK_X86_PLTOFF: return " PLTOFF" ;
295- case VK_ARM_NONE: return " none" ;
296- case VK_ARM_GOT_PREL: return " GOT_PREL" ;
297- case VK_ARM_TARGET1: return " target1" ;
298- case VK_ARM_TARGET2: return " target2" ;
299- case VK_ARM_PREL31: return " prel31" ;
300- case VK_ARM_SBREL: return " sbrel" ;
301- case VK_ARM_TLSLDO: return " tlsldo" ;
302- case VK_ARM_TLSDESCSEQ: return " tlsdescseq" ;
303- case VK_AVR_NONE: return " none" ;
304- case VK_AVR_LO8: return " lo8" ;
305- case VK_AVR_HI8: return " hi8" ;
306- case VK_AVR_HLO8: return " hlo8" ;
307- case VK_AVR_DIFF8: return " diff8" ;
308- case VK_AVR_DIFF16: return " diff16" ;
309- case VK_AVR_DIFF32: return " diff32" ;
310- case VK_AVR_PM: return " pm" ;
311- case VK_PPC_LO: return " l" ;
312- case VK_PPC_HI: return " h" ;
313- case VK_PPC_HA: return " ha" ;
314- case VK_PPC_HIGH: return " high" ;
315- case VK_PPC_HIGHA: return " higha" ;
316- case VK_PPC_HIGHER: return " higher" ;
317- case VK_PPC_HIGHERA: return " highera" ;
318- case VK_PPC_HIGHEST: return " highest" ;
319- case VK_PPC_HIGHESTA: return " highesta" ;
320- case VK_PPC_GOT_LO: return " got@l" ;
321- case VK_PPC_GOT_HI: return " got@h" ;
322- case VK_PPC_GOT_HA: return " got@ha" ;
323- case VK_PPC_TOCBASE: return " tocbase" ;
324- case VK_PPC_TOC: return " toc" ;
325- case VK_PPC_TOC_LO: return " toc@l" ;
326- case VK_PPC_TOC_HI: return " toc@h" ;
327- case VK_PPC_TOC_HA: return " toc@ha" ;
328- case VK_PPC_U: return " u" ;
329- case VK_PPC_L: return " l" ;
330- case VK_PPC_DTPMOD: return " dtpmod" ;
331- case VK_PPC_TPREL_LO: return " tprel@l" ;
332- case VK_PPC_TPREL_HI: return " tprel@h" ;
333- case VK_PPC_TPREL_HA: return " tprel@ha" ;
334- case VK_PPC_TPREL_HIGH: return " tprel@high" ;
335- case VK_PPC_TPREL_HIGHA: return " tprel@higha" ;
336- case VK_PPC_TPREL_HIGHER: return " tprel@higher" ;
337- case VK_PPC_TPREL_HIGHERA: return " tprel@highera" ;
338- case VK_PPC_TPREL_HIGHEST: return " tprel@highest" ;
339- case VK_PPC_TPREL_HIGHESTA: return " tprel@highesta" ;
340- case VK_PPC_DTPREL_LO: return " dtprel@l" ;
341- case VK_PPC_DTPREL_HI: return " dtprel@h" ;
342- case VK_PPC_DTPREL_HA: return " dtprel@ha" ;
343- case VK_PPC_DTPREL_HIGH: return " dtprel@high" ;
344- case VK_PPC_DTPREL_HIGHA: return " dtprel@higha" ;
345- case VK_PPC_DTPREL_HIGHER: return " dtprel@higher" ;
346- case VK_PPC_DTPREL_HIGHERA: return " dtprel@highera" ;
347- case VK_PPC_DTPREL_HIGHEST: return " dtprel@highest" ;
348- case VK_PPC_DTPREL_HIGHESTA: return " dtprel@highesta" ;
349- case VK_PPC_GOT_TPREL: return " got@tprel" ;
350- case VK_PPC_GOT_TPREL_LO: return " got@tprel@l" ;
351- case VK_PPC_GOT_TPREL_HI: return " got@tprel@h" ;
352- case VK_PPC_GOT_TPREL_HA: return " got@tprel@ha" ;
353- case VK_PPC_GOT_DTPREL: return " got@dtprel" ;
354- case VK_PPC_GOT_DTPREL_LO: return " got@dtprel@l" ;
355- case VK_PPC_GOT_DTPREL_HI: return " got@dtprel@h" ;
356- case VK_PPC_GOT_DTPREL_HA: return " got@dtprel@ha" ;
357- case VK_PPC_TLS: return " tls" ;
358- case VK_PPC_GOT_TLSGD: return " got@tlsgd" ;
359- case VK_PPC_GOT_TLSGD_LO: return " got@tlsgd@l" ;
360- case VK_PPC_GOT_TLSGD_HI: return " got@tlsgd@h" ;
361- case VK_PPC_GOT_TLSGD_HA: return " got@tlsgd@ha" ;
362- case VK_PPC_TLSGD: return " tlsgd" ;
363- case VK_PPC_AIX_TLSGD:
364- return " gd" ;
365- case VK_PPC_AIX_TLSGDM:
366- return " m" ;
367- case VK_PPC_AIX_TLSIE:
368- return " ie" ;
369- case VK_PPC_AIX_TLSLE:
370- return " le" ;
371- case VK_PPC_AIX_TLSLD:
372- return " ld" ;
373- case VK_PPC_AIX_TLSML:
374- return " ml" ;
375- case VK_PPC_GOT_TLSLD: return " got@tlsld" ;
376- case VK_PPC_GOT_TLSLD_LO: return " got@tlsld@l" ;
377- case VK_PPC_GOT_TLSLD_HI: return " got@tlsld@h" ;
378- case VK_PPC_GOT_TLSLD_HA: return " got@tlsld@ha" ;
379- case VK_PPC_GOT_PCREL:
380- return " got@pcrel" ;
381- case VK_PPC_GOT_TLSGD_PCREL:
382- return " got@tlsgd@pcrel" ;
383- case VK_PPC_GOT_TLSLD_PCREL:
384- return " got@tlsld@pcrel" ;
385- case VK_PPC_GOT_TPREL_PCREL:
386- return " got@tprel@pcrel" ;
387- case VK_PPC_TLS_PCREL:
388- return " tls@pcrel" ;
389- case VK_PPC_TLSLD: return " tlsld" ;
390- case VK_PPC_LOCAL: return " local" ;
391- case VK_PPC_NOTOC: return " notoc" ;
392- case VK_PPC_PCREL_OPT: return " <<invalid>>" ;
393287 case VK_COFF_IMGREL32: return " IMGREL" ;
394- case VK_Hexagon_LO16: return " LO16" ;
395- case VK_Hexagon_HI16: return " HI16" ;
396- case VK_Hexagon_GPREL: return " GPREL" ;
397- case VK_Hexagon_GD_GOT: return " GDGOT" ;
398- case VK_Hexagon_LD_GOT: return " LDGOT" ;
399- case VK_Hexagon_GD_PLT: return " GDPLT" ;
400- case VK_Hexagon_LD_PLT: return " LDPLT" ;
401- case VK_Hexagon_IE: return " IE" ;
402- case VK_Hexagon_IE_GOT: return " IEGOT" ;
403- case VK_WASM_TYPEINDEX: return " TYPEINDEX" ;
404- case VK_WASM_MBREL: return " MBREL" ;
405- case VK_WASM_TLSREL: return " TLSREL" ;
406- case VK_WASM_TBREL: return " TBREL" ;
407- case VK_WASM_GOT_TLS: return " GOT@TLS" ;
408- case VK_WASM_FUNCINDEX: return " FUNCINDEX" ;
409- case VK_AMDGPU_GOTPCREL32_LO: return " gotpcrel32@lo" ;
410- case VK_AMDGPU_GOTPCREL32_HI: return " gotpcrel32@hi" ;
411- case VK_AMDGPU_REL32_LO: return " rel32@lo" ;
412- case VK_AMDGPU_REL32_HI: return " rel32@hi" ;
413- case VK_AMDGPU_REL64: return " rel64" ;
414- case VK_AMDGPU_ABS32_LO: return " abs32@lo" ;
415- case VK_AMDGPU_ABS32_HI: return " abs32@hi" ;
416- case VK_VE_HI32: return " hi" ;
417- case VK_VE_LO32: return " lo" ;
418- case VK_VE_PC_HI32: return " pc_hi" ;
419- case VK_VE_PC_LO32: return " pc_lo" ;
420- case VK_VE_GOT_HI32: return " got_hi" ;
421- case VK_VE_GOT_LO32: return " got_lo" ;
422- case VK_VE_GOTOFF_HI32: return " gotoff_hi" ;
423- case VK_VE_GOTOFF_LO32: return " gotoff_lo" ;
424- case VK_VE_PLT_HI32: return " plt_hi" ;
425- case VK_VE_PLT_LO32: return " plt_lo" ;
426- case VK_VE_TLS_GD_HI32: return " tls_gd_hi" ;
427- case VK_VE_TLS_GD_LO32: return " tls_gd_lo" ;
428- case VK_VE_TPOFF_HI32: return " tpoff_hi" ;
429- case VK_VE_TPOFF_LO32: return " tpoff_lo" ;
430288 // clang-format on
431289 }
432290 llvm_unreachable (" Invalid variant kind" );
0 commit comments