@@ -87,7 +87,9 @@ void MCExpr::print(raw_ostream &OS, const MCAsmInfo *MAI, bool InParens) const {
87
87
const MCSymbolRefExpr::VariantKind Kind = SRE.getKind ();
88
88
if (Kind != MCSymbolRefExpr::VK_None) {
89
89
if (MAI && MAI->useParensForSymbolVariant ()) // ARM
90
- OS << ' (' << MCSymbolRefExpr::getVariantKindName (Kind) << ' )' ;
90
+ OS << ' (' << MAI->getVariantKindName (Kind) << ' )' ;
91
+ else if (MAI)
92
+ OS << ' @' << MAI->getVariantKindName (Kind);
91
93
else
92
94
OS << ' @' << MCSymbolRefExpr::getVariantKindName (Kind);
93
95
}
@@ -246,11 +248,11 @@ const MCSymbolRefExpr *MCSymbolRefExpr::create(StringRef Name, VariantKind Kind,
246
248
return create (Ctx.getOrCreateSymbol (Name), Kind, Ctx);
247
249
}
248
250
249
- // TODO: Move target-specific Kinds to lib/Target/.
251
+ // TODO: Move target-specific Kinds to lib/Target/*/MCTargetDesc/*AsmInfo.cpp .
250
252
StringRef MCSymbolRefExpr::getVariantKindName (VariantKind Kind) {
251
253
switch (Kind) {
252
254
// clang-format off
253
- case VK_Invalid: return " <<invalid>>" ;
255
+ case VK_Invalid: default : return " <<invalid>>" ;
254
256
case VK_None: return " <<none>>" ;
255
257
256
258
case VK_DTPOFF: return " DTPOFF" ;
@@ -261,18 +263,14 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
261
263
case VK_GOTREL: return " GOTREL" ;
262
264
case VK_PCREL: return " PCREL" ;
263
265
case VK_GOTPCREL: return " GOTPCREL" ;
264
- case VK_GOTPCREL_NORELAX: return " GOTPCREL_NORELAX" ;
265
266
case VK_GOTTPOFF: return " GOTTPOFF" ;
266
- case VK_GOTTPOFF_FDPIC: return " gottpoff_fdpic" ;
267
267
case VK_INDNTPOFF: return " INDNTPOFF" ;
268
268
case VK_NTPOFF: return " NTPOFF" ;
269
269
case VK_GOTNTPOFF: return " GOTNTPOFF" ;
270
270
case VK_PLT: return " PLT" ;
271
271
case VK_TLSGD: return " TLSGD" ;
272
- case VK_TLSGD_FDPIC: return " tlsgd_fdpic" ;
273
272
case VK_TLSLD: return " TLSLD" ;
274
273
case VK_TLSLDM: return " TLSLDM" ;
275
- case VK_TLSLDM_FDPIC: return " tlsldm_fdpic" ;
276
274
case VK_TPOFF: return " TPOFF" ;
277
275
case VK_TPREL: return " TPREL" ;
278
276
case VK_TLSCALL: return " tlscall" ;
@@ -285,148 +283,8 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
285
283
case VK_GOTPAGE: return " GOTPAGE" ;
286
284
case VK_GOTPAGEOFF: return " GOTPAGEOFF" ;
287
285
case VK_SECREL: return " SECREL32" ;
288
- case VK_SIZE: return " SIZE" ;
289
286
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>>" ;
393
287
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" ;
430
288
// clang-format on
431
289
}
432
290
llvm_unreachable (" Invalid variant kind" );
0 commit comments