Skip to content

Commit 1fc8b1b

Browse files
committed
Sparc: Remove specifiers for HH22/HM10/LM22, TLS, and DISP32
1 parent dcb4330 commit 1fc8b1b

8 files changed

+129
-174
lines changed

llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp

+30-30
Original file line numberDiff line numberDiff line change
@@ -847,16 +847,16 @@ bool SparcAsmParser::expandSETX(MCInst &Inst, SMLoc IDLoc,
847847
// merge it with the lower half that has just been generated above.
848848

849849
// sethi %hh(val), tmp
850-
Instructions.push_back(
851-
MCInstBuilder(SP::SETHIi)
852-
.addReg(MCTmpOp.getReg())
853-
.addExpr(adjustPICRelocation(SparcMCExpr::VK_HH, ValExpr)));
850+
Instructions.push_back(MCInstBuilder(SP::SETHIi)
851+
.addReg(MCTmpOp.getReg())
852+
.addExpr(SparcMCExpr::create(
853+
ELF::R_SPARC_HH22, ValExpr, getContext())));
854854
// or tmp, %hm(val), tmp
855-
Instructions.push_back(
856-
MCInstBuilder(SP::ORri)
857-
.addReg(MCTmpOp.getReg())
858-
.addReg(MCTmpOp.getReg())
859-
.addExpr(adjustPICRelocation(SparcMCExpr::VK_HM, ValExpr)));
855+
Instructions.push_back(MCInstBuilder(SP::ORri)
856+
.addReg(MCTmpOp.getReg())
857+
.addReg(MCTmpOp.getReg())
858+
.addExpr(SparcMCExpr::create(
859+
ELF::R_SPARC_HM10, ValExpr, getContext())));
860860
// sllx tmp, 32, tmp
861861
Instructions.push_back(MCInstBuilder(SP::SLLXri)
862862
.addReg(MCTmpOp.getReg())
@@ -1114,40 +1114,40 @@ ParseStatus SparcAsmParser::parseTailRelocSym(OperandVector &Operands) {
11141114
SMLoc S = getLoc();
11151115
SMLoc E = SMLoc::getFromPointer(S.getPointer() - 1);
11161116

1117-
auto MatchesKind = [](SparcMCExpr::Specifier VK) -> bool {
1117+
auto MatchesKind = [](uint16_t RelType) -> bool {
11181118
switch (Kind) {
11191119
case TailRelocKind::Load_GOT:
11201120
// Non-TLS relocations on ld (or ldx).
11211121
// ld [%rr + %rr], %rr, %rel(sym)
1122-
return VK == ELF::R_SPARC_GOTDATA_OP;
1122+
return RelType == ELF::R_SPARC_GOTDATA_OP;
11231123
case TailRelocKind::Add_TLS:
11241124
// TLS relocations on add.
11251125
// add %rr, %rr, %rr, %rel(sym)
1126-
switch (VK) {
1127-
case SparcMCExpr::VK_TLS_GD_ADD:
1128-
case SparcMCExpr::VK_TLS_IE_ADD:
1129-
case SparcMCExpr::VK_TLS_LDM_ADD:
1130-
case SparcMCExpr::VK_TLS_LDO_ADD:
1126+
switch (RelType) {
1127+
case ELF::R_SPARC_TLS_GD_ADD:
1128+
case ELF::R_SPARC_TLS_IE_ADD:
1129+
case ELF::R_SPARC_TLS_LDM_ADD:
1130+
case ELF::R_SPARC_TLS_LDO_ADD:
11311131
return true;
11321132
default:
11331133
return false;
11341134
}
11351135
case TailRelocKind::Load_TLS:
11361136
// TLS relocations on ld (or ldx).
11371137
// ld[x] %addr, %rr, %rel(sym)
1138-
switch (VK) {
1139-
case SparcMCExpr::VK_TLS_IE_LD:
1140-
case SparcMCExpr::VK_TLS_IE_LDX:
1138+
switch (RelType) {
1139+
case ELF::R_SPARC_TLS_IE_LD:
1140+
case ELF::R_SPARC_TLS_IE_LDX:
11411141
return true;
11421142
default:
11431143
return false;
11441144
}
11451145
case TailRelocKind::Call_TLS:
11461146
// TLS relocations on call.
11471147
// call sym, %rel(sym)
1148-
switch (VK) {
1149-
case SparcMCExpr::VK_TLS_GD_CALL:
1150-
case SparcMCExpr::VK_TLS_LDM_CALL:
1148+
switch (RelType) {
1149+
case ELF::R_SPARC_TLS_GD_CALL:
1150+
case ELF::R_SPARC_TLS_LDM_CALL:
11511151
return true;
11521152
default:
11531153
return false;
@@ -1706,14 +1706,14 @@ bool SparcAsmParser::matchSparcAsmModifiers(const MCExpr *&EVal,
17061706
return false;
17071707

17081708
case ELF::R_SPARC_GOTDATA_OP:
1709-
case SparcMCExpr::VK_TLS_GD_ADD:
1710-
case SparcMCExpr::VK_TLS_GD_CALL:
1711-
case SparcMCExpr::VK_TLS_IE_ADD:
1712-
case SparcMCExpr::VK_TLS_IE_LD:
1713-
case SparcMCExpr::VK_TLS_IE_LDX:
1714-
case SparcMCExpr::VK_TLS_LDM_ADD:
1715-
case SparcMCExpr::VK_TLS_LDM_CALL:
1716-
case SparcMCExpr::VK_TLS_LDO_ADD:
1709+
case ELF::R_SPARC_TLS_GD_ADD:
1710+
case ELF::R_SPARC_TLS_GD_CALL:
1711+
case ELF::R_SPARC_TLS_IE_ADD:
1712+
case ELF::R_SPARC_TLS_IE_LD:
1713+
case ELF::R_SPARC_TLS_IE_LDX:
1714+
case ELF::R_SPARC_TLS_LDM_ADD:
1715+
case ELF::R_SPARC_TLS_LDM_CALL:
1716+
case ELF::R_SPARC_TLS_LDO_ADD:
17171717
// These are special-cased at tablegen level.
17181718
return false;
17191719

llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp

+17-17
Original file line numberDiff line numberDiff line change
@@ -45,22 +45,22 @@ unsigned SparcELFObjectWriter::getRelocType(MCContext &Ctx,
4545
const MCFixup &Fixup,
4646
bool IsPCRel) const {
4747
switch (Target.getSpecifier()) {
48-
case SparcMCExpr::VK_TLS_GD_HI22:
49-
case SparcMCExpr::VK_TLS_GD_LO10:
50-
case SparcMCExpr::VK_TLS_GD_ADD:
51-
case SparcMCExpr::VK_TLS_LDM_HI22:
52-
case SparcMCExpr::VK_TLS_LDM_LO10:
53-
case SparcMCExpr::VK_TLS_LDM_ADD:
54-
case SparcMCExpr::VK_TLS_LDO_HIX22:
55-
case SparcMCExpr::VK_TLS_LDO_LOX10:
56-
case SparcMCExpr::VK_TLS_LDO_ADD:
57-
case SparcMCExpr::VK_TLS_IE_HI22:
58-
case SparcMCExpr::VK_TLS_IE_LO10:
59-
case SparcMCExpr::VK_TLS_IE_LD:
60-
case SparcMCExpr::VK_TLS_IE_LDX:
61-
case SparcMCExpr::VK_TLS_IE_ADD:
62-
case SparcMCExpr::VK_TLS_LE_HIX22:
63-
case SparcMCExpr::VK_TLS_LE_LOX10:
48+
case ELF::R_SPARC_TLS_GD_HI22:
49+
case ELF::R_SPARC_TLS_GD_LO10:
50+
case ELF::R_SPARC_TLS_GD_ADD:
51+
case ELF::R_SPARC_TLS_LDM_HI22:
52+
case ELF::R_SPARC_TLS_LDM_LO10:
53+
case ELF::R_SPARC_TLS_LDM_ADD:
54+
case ELF::R_SPARC_TLS_LDO_HIX22:
55+
case ELF::R_SPARC_TLS_LDO_LOX10:
56+
case ELF::R_SPARC_TLS_LDO_ADD:
57+
case ELF::R_SPARC_TLS_IE_HI22:
58+
case ELF::R_SPARC_TLS_IE_LO10:
59+
case ELF::R_SPARC_TLS_IE_LD:
60+
case ELF::R_SPARC_TLS_IE_LDX:
61+
case ELF::R_SPARC_TLS_IE_ADD:
62+
case ELF::R_SPARC_TLS_LE_HIX22:
63+
case ELF::R_SPARC_TLS_LE_LOX10:
6464
if (auto *SA = Target.getAddSym())
6565
cast<MCSymbolELF>(SA)->setType(ELF::STT_TLS);
6666
break;
@@ -75,7 +75,7 @@ unsigned SparcELFObjectWriter::getRelocType(MCContext &Ctx,
7575
return Kind;
7676

7777
if (const SparcMCExpr *SExpr = dyn_cast<SparcMCExpr>(Fixup.getValue())) {
78-
if (SExpr->getSpecifier() == SparcMCExpr::VK_R_DISP32)
78+
if (SExpr->getSpecifier() == ELF::R_SPARC_DISP32)
7979
return ELF::R_SPARC_DISP32;
8080
}
8181

llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "SparcMCAsmInfo.h"
1414
#include "SparcMCExpr.h"
1515
#include "llvm/BinaryFormat/Dwarf.h"
16+
#include "llvm/BinaryFormat/ELF.h"
1617
#include "llvm/MC/MCExpr.h"
1718
#include "llvm/MC/MCStreamer.h"
1819
#include "llvm/MC/MCTargetOptions.h"
@@ -49,7 +50,7 @@ SparcELFMCAsmInfo::getExprForPersonalitySymbol(const MCSymbol *Sym,
4950
MCStreamer &Streamer) const {
5051
if (Encoding & dwarf::DW_EH_PE_pcrel) {
5152
MCContext &Ctx = Streamer.getContext();
52-
return SparcMCExpr::create(SparcMCExpr::VK_R_DISP32,
53+
return SparcMCExpr::create(ELF::R_SPARC_DISP32,
5354
MCSymbolRefExpr::create(Sym, Ctx), Ctx);
5455
}
5556

@@ -62,7 +63,7 @@ SparcELFMCAsmInfo::getExprForFDESymbol(const MCSymbol *Sym,
6263
MCStreamer &Streamer) const {
6364
if (Encoding & dwarf::DW_EH_PE_pcrel) {
6465
MCContext &Ctx = Streamer.getContext();
65-
return SparcMCExpr::create(SparcMCExpr::VK_R_DISP32,
66+
return SparcMCExpr::create(ELF::R_SPARC_DISP32,
6667
MCSymbolRefExpr::create(Sym, Ctx), Ctx);
6768
}
6869
return MCAsmInfo::getExprForFDESymbol(Sym, Encoding, Streamer);

llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp

+54-75
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ using namespace llvm;
2424

2525
#define DEBUG_TYPE "sparcmcexpr"
2626

27-
const SparcMCExpr *SparcMCExpr::create(Specifier S, const MCExpr *Expr,
27+
const SparcMCExpr *SparcMCExpr::create(uint16_t S, const MCExpr *Expr,
2828
MCContext &Ctx) {
29-
return new (Ctx) SparcMCExpr(S, Expr);
29+
return new (Ctx) SparcMCExpr(Specifier(S), Expr);
3030
}
3131

3232
void SparcMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
@@ -47,36 +47,36 @@ StringRef SparcMCExpr::getSpecifierName(SparcMCExpr::Specifier S) {
4747
case ELF::R_SPARC_H44: return "h44";
4848
case ELF::R_SPARC_M44: return "m44";
4949
case ELF::R_SPARC_L44: return "l44";
50-
case VK_HH: return "hh";
51-
case VK_HM: return "hm";
52-
case VK_LM: return "lm";
50+
case ELF::R_SPARC_HH22: return "hh";
51+
case ELF::R_SPARC_HM10: return "hm";
52+
case ELF::R_SPARC_LM22: return "lm";
5353
// FIXME: use %pc22/%pc10, if system assembler supports them.
5454
case ELF::R_SPARC_PC22: return "hi";
5555
case ELF::R_SPARC_PC10: return "lo";
5656
case ELF::R_SPARC_GOT22: return "hi";
5757
case ELF::R_SPARC_GOT10: return "lo";
5858
case ELF::R_SPARC_GOT13: return {};
59-
case VK_R_DISP32: return "r_disp32";
60-
case VK_TLS_GD_HI22: return "tgd_hi22";
61-
case VK_TLS_GD_LO10: return "tgd_lo10";
62-
case VK_TLS_GD_ADD: return "tgd_add";
63-
case VK_TLS_GD_CALL: return "tgd_call";
64-
case VK_TLS_LDM_HI22: return "tldm_hi22";
65-
case VK_TLS_LDM_LO10: return "tldm_lo10";
66-
case VK_TLS_LDM_ADD: return "tldm_add";
67-
case VK_TLS_LDM_CALL: return "tldm_call";
68-
case VK_TLS_LDO_HIX22: return "tldo_hix22";
69-
case VK_TLS_LDO_LOX10: return "tldo_lox10";
70-
case VK_TLS_LDO_ADD: return "tldo_add";
71-
case VK_TLS_IE_HI22: return "tie_hi22";
72-
case VK_TLS_IE_LO10: return "tie_lo10";
73-
case VK_TLS_IE_LD: return "tie_ld";
74-
case VK_TLS_IE_LDX: return "tie_ldx";
75-
case VK_TLS_IE_ADD: return "tie_add";
76-
case VK_TLS_LE_HIX22: return "tle_hix22";
77-
case VK_TLS_LE_LOX10: return "tle_lox10";
78-
case VK_HIX22: return "hix";
79-
case VK_LOX10: return "lox";
59+
case ELF::R_SPARC_DISP32: return "r_disp32";
60+
case ELF::R_SPARC_TLS_GD_HI22: return "tgd_hi22";
61+
case ELF::R_SPARC_TLS_GD_LO10: return "tgd_lo10";
62+
case ELF::R_SPARC_TLS_GD_ADD: return "tgd_add";
63+
case ELF::R_SPARC_TLS_GD_CALL: return "tgd_call";
64+
case ELF::R_SPARC_TLS_LDM_HI22: return "tldm_hi22";
65+
case ELF::R_SPARC_TLS_LDM_LO10: return "tldm_lo10";
66+
case ELF::R_SPARC_TLS_LDM_ADD: return "tldm_add";
67+
case ELF::R_SPARC_TLS_LDM_CALL: return "tldm_call";
68+
case ELF::R_SPARC_TLS_LDO_HIX22: return "tldo_hix22";
69+
case ELF::R_SPARC_TLS_LDO_LOX10: return "tldo_lox10";
70+
case ELF::R_SPARC_TLS_LDO_ADD: return "tldo_add";
71+
case ELF::R_SPARC_TLS_IE_HI22: return "tie_hi22";
72+
case ELF::R_SPARC_TLS_IE_LO10: return "tie_lo10";
73+
case ELF::R_SPARC_TLS_IE_LD: return "tie_ld";
74+
case ELF::R_SPARC_TLS_IE_LDX: return "tie_ldx";
75+
case ELF::R_SPARC_TLS_IE_ADD: return "tie_add";
76+
case ELF::R_SPARC_TLS_LE_HIX22: return "tle_hix22";
77+
case ELF::R_SPARC_TLS_LE_LOX10: return "tle_lox10";
78+
case ELF::R_SPARC_HIX22: return "hix";
79+
case ELF::R_SPARC_LOX10: return "lox";
8080
case ELF::R_SPARC_GOTDATA_OP_HIX22: return "gdop_hix22";
8181
case ELF::R_SPARC_GOTDATA_OP_LOX10: return "gdop_lox10";
8282
case ELF::R_SPARC_GOTDATA_OP: return "gdop";
@@ -92,37 +92,39 @@ SparcMCExpr::Specifier SparcMCExpr::parseSpecifier(StringRef name) {
9292
.Case("h44", (SparcMCExpr::Specifier)ELF::R_SPARC_H44)
9393
.Case("m44", (SparcMCExpr::Specifier)ELF::R_SPARC_M44)
9494
.Case("l44", (SparcMCExpr::Specifier)ELF::R_SPARC_L44)
95-
.Case("hh", VK_HH)
96-
.Case("uhi", VK_HH) // Nonstandard GNU extension
97-
.Case("hm", VK_HM)
98-
.Case("ulo", VK_HM) // Nonstandard GNU extension
99-
.Case("lm", VK_LM)
95+
.Case("hh", (SparcMCExpr::Specifier)ELF::R_SPARC_HH22)
96+
// Nonstandard GNU extension
97+
.Case("uhi", (SparcMCExpr::Specifier)ELF::R_SPARC_HH22)
98+
.Case("hm", (SparcMCExpr::Specifier)ELF::R_SPARC_HM10)
99+
// Nonstandard GNU extension
100+
.Case("ulo", (SparcMCExpr::Specifier)ELF::R_SPARC_HM10)
101+
.Case("lm", (SparcMCExpr::Specifier)ELF::R_SPARC_LM22)
100102
.Case("pc22", (SparcMCExpr::Specifier)ELF::R_SPARC_PC22)
101103
.Case("pc10", (SparcMCExpr::Specifier)ELF::R_SPARC_PC10)
102104
.Case("got22", (SparcMCExpr::Specifier)ELF::R_SPARC_GOT22)
103105
.Case("got10", (SparcMCExpr::Specifier)ELF::R_SPARC_GOT10)
104106
.Case("got13", (SparcMCExpr::Specifier)ELF::R_SPARC_GOT13)
105-
.Case("r_disp32", VK_R_DISP32)
106-
.Case("tgd_hi22", VK_TLS_GD_HI22)
107-
.Case("tgd_lo10", VK_TLS_GD_LO10)
108-
.Case("tgd_add", VK_TLS_GD_ADD)
109-
.Case("tgd_call", VK_TLS_GD_CALL)
110-
.Case("tldm_hi22", VK_TLS_LDM_HI22)
111-
.Case("tldm_lo10", VK_TLS_LDM_LO10)
112-
.Case("tldm_add", VK_TLS_LDM_ADD)
113-
.Case("tldm_call", VK_TLS_LDM_CALL)
114-
.Case("tldo_hix22", VK_TLS_LDO_HIX22)
115-
.Case("tldo_lox10", VK_TLS_LDO_LOX10)
116-
.Case("tldo_add", VK_TLS_LDO_ADD)
117-
.Case("tie_hi22", VK_TLS_IE_HI22)
118-
.Case("tie_lo10", VK_TLS_IE_LO10)
119-
.Case("tie_ld", VK_TLS_IE_LD)
120-
.Case("tie_ldx", VK_TLS_IE_LDX)
121-
.Case("tie_add", VK_TLS_IE_ADD)
122-
.Case("tle_hix22", VK_TLS_LE_HIX22)
123-
.Case("tle_lox10", VK_TLS_LE_LOX10)
124-
.Case("hix", VK_HIX22)
125-
.Case("lox", VK_LOX10)
107+
.Case("r_disp32", (SparcMCExpr::Specifier)ELF::R_SPARC_DISP32)
108+
.Case("tgd_hi22", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_GD_HI22)
109+
.Case("tgd_lo10", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_GD_LO10)
110+
.Case("tgd_add", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_GD_ADD)
111+
.Case("tgd_call", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_GD_CALL)
112+
.Case("tldm_hi22", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_LDM_HI22)
113+
.Case("tldm_lo10", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_LDM_LO10)
114+
.Case("tldm_add", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_LDM_ADD)
115+
.Case("tldm_call", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_LDM_CALL)
116+
.Case("tldo_hix22", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_LDO_HIX22)
117+
.Case("tldo_lox10", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_LDO_LOX10)
118+
.Case("tldo_add", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_LDO_ADD)
119+
.Case("tie_hi22", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_IE_HI22)
120+
.Case("tie_lo10", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_IE_LO10)
121+
.Case("tie_ld", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_IE_LD)
122+
.Case("tie_ldx", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_IE_LDX)
123+
.Case("tie_add", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_IE_ADD)
124+
.Case("tle_hix22", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_LE_HIX22)
125+
.Case("tle_lox10", (SparcMCExpr::Specifier)ELF::R_SPARC_TLS_LE_LOX10)
126+
.Case("hix", (SparcMCExpr::Specifier)ELF::R_SPARC_HIX22)
127+
.Case("lox", (SparcMCExpr::Specifier)ELF::R_SPARC_LOX10)
126128
.Case("gdop_hix22", (SparcMCExpr::Specifier)ELF::R_SPARC_GOTDATA_OP_HIX22)
127129
.Case("gdop_lox10", (SparcMCExpr::Specifier)ELF::R_SPARC_GOTDATA_OP_LOX10)
128130
.Case("gdop", (SparcMCExpr::Specifier)ELF::R_SPARC_GOTDATA_OP)
@@ -137,29 +139,6 @@ uint16_t SparcMCExpr::getFixupKind() const {
137139
return specifier;
138140
case VK_LO: return ELF::R_SPARC_LO10;
139141
case VK_HI: return ELF::R_SPARC_HI22;
140-
case VK_HH: return ELF::R_SPARC_HH22;
141-
case VK_HM: return ELF::R_SPARC_HM10;
142-
case VK_LM: return ELF::R_SPARC_LM22;
143-
case VK_TLS_GD_HI22: return ELF::R_SPARC_TLS_GD_HI22;
144-
case VK_TLS_GD_LO10: return ELF::R_SPARC_TLS_GD_LO10;
145-
case VK_TLS_GD_ADD: return ELF::R_SPARC_TLS_GD_ADD;
146-
case VK_TLS_GD_CALL: return ELF::R_SPARC_TLS_GD_CALL;
147-
case VK_TLS_LDM_HI22: return ELF::R_SPARC_TLS_LDM_HI22;
148-
case VK_TLS_LDM_LO10: return ELF::R_SPARC_TLS_LDM_LO10;
149-
case VK_TLS_LDM_ADD: return ELF::R_SPARC_TLS_LDM_ADD;
150-
case VK_TLS_LDM_CALL: return ELF::R_SPARC_TLS_LDM_CALL;
151-
case VK_TLS_LDO_HIX22: return ELF::R_SPARC_TLS_LDO_HIX22;
152-
case VK_TLS_LDO_LOX10: return ELF::R_SPARC_TLS_LDO_LOX10;
153-
case VK_TLS_LDO_ADD: return ELF::R_SPARC_TLS_LDO_ADD;
154-
case VK_TLS_IE_HI22: return ELF::R_SPARC_TLS_IE_HI22;
155-
case VK_TLS_IE_LO10: return ELF::R_SPARC_TLS_IE_LO10;
156-
case VK_TLS_IE_LD: return ELF::R_SPARC_TLS_IE_LD;
157-
case VK_TLS_IE_LDX: return ELF::R_SPARC_TLS_IE_LDX;
158-
case VK_TLS_IE_ADD: return ELF::R_SPARC_TLS_IE_ADD;
159-
case VK_TLS_LE_HIX22: return ELF::R_SPARC_TLS_LE_HIX22;
160-
case VK_TLS_LE_LOX10: return ELF::R_SPARC_TLS_LE_LOX10;
161-
case VK_HIX22: return ELF::R_SPARC_HIX22;
162-
case VK_LOX10: return ELF::R_SPARC_LOX10;
163142
}
164143
// clang-format on
165144
}

llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h

+1-25
Original file line numberDiff line numberDiff line change
@@ -26,30 +26,6 @@ class SparcMCExpr : public MCTargetExpr {
2626
VK_None,
2727
VK_LO = 200, // larger than any relocation type
2828
VK_HI,
29-
VK_HH,
30-
VK_HM,
31-
VK_LM,
32-
VK_R_DISP32,
33-
VK_TLS_GD_HI22,
34-
VK_TLS_GD_LO10,
35-
VK_TLS_GD_ADD,
36-
VK_TLS_GD_CALL,
37-
VK_TLS_LDM_HI22,
38-
VK_TLS_LDM_LO10,
39-
VK_TLS_LDM_ADD,
40-
VK_TLS_LDM_CALL,
41-
VK_TLS_LDO_HIX22,
42-
VK_TLS_LDO_LOX10,
43-
VK_TLS_LDO_ADD,
44-
VK_TLS_IE_HI22,
45-
VK_TLS_IE_LO10,
46-
VK_TLS_IE_LD,
47-
VK_TLS_IE_LDX,
48-
VK_TLS_IE_ADD,
49-
VK_TLS_LE_HIX22,
50-
VK_TLS_LE_LOX10,
51-
VK_HIX22,
52-
VK_LOX10,
5329
};
5430

5531
private:
@@ -63,7 +39,7 @@ class SparcMCExpr : public MCTargetExpr {
6339
/// @name Construction
6440
/// @{
6541

66-
static const SparcMCExpr *create(Specifier S, const MCExpr *Expr,
42+
static const SparcMCExpr *create(uint16_t S, const MCExpr *Expr,
6743
MCContext &Ctx);
6844
/// @}
6945
/// @name Accessors

llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ void SparcAsmPrinter::LowerGETPCXAndEmitMCInsts(const MachineInstr *MI,
207207
break;
208208
}
209209
case CodeModel::Large: {
210-
EmitHiLo(*OutStreamer, GOTLabel, SparcMCExpr::VK_HH, SparcMCExpr::VK_HM,
210+
EmitHiLo(*OutStreamer, GOTLabel, ELF::R_SPARC_HH22, ELF::R_SPARC_HM10,
211211
MCRegOP, OutContext, STI);
212212
MCOperand imm = MCOperand::createExpr(MCConstantExpr::create(32,
213213
OutContext));

0 commit comments

Comments
 (0)