Skip to content

Commit a964f42

Browse files
MaskRayIanWood1
authored andcommitted
Sparc: Remove fixup kinds for HH22/HM10/LM22 / HI22/LO10/HIX22/LOX10
1 parent 253c947 commit a964f42

File tree

4 files changed

+36
-58
lines changed

4 files changed

+36
-58
lines changed

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

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -50,28 +50,27 @@ static unsigned adjustFixupValue(unsigned Kind, uint64_t Value) {
5050
return (d16hi << 20) | d16lo;
5151
}
5252

53-
case Sparc::fixup_sparc_hix22:
53+
case ELF::R_SPARC_HIX22:
5454
return (~Value >> 10) & 0x3fffff;
5555

5656
case ELF::R_SPARC_PC22:
57-
case Sparc::fixup_sparc_hi22:
58-
case Sparc::fixup_sparc_lm:
57+
case ELF::R_SPARC_HI22:
58+
case ELF::R_SPARC_LM22:
5959
return (Value >> 10) & 0x3fffff;
6060

6161
case Sparc::fixup_sparc_13:
6262
return Value & 0x1fff;
6363

64-
case Sparc::fixup_sparc_lox10:
64+
case ELF::R_SPARC_LOX10:
6565
return (Value & 0x3ff) | 0x1c00;
6666

6767
case ELF::R_SPARC_PC10:
68-
case Sparc::fixup_sparc_lo10:
68+
case ELF::R_SPARC_LO10:
6969
return Value & 0x3ff;
7070

71-
case Sparc::fixup_sparc_hh:
71+
case ELF::R_SPARC_HH22:
7272
return (Value >> 42) & 0x3fffff;
73-
74-
case Sparc::fixup_sparc_hm:
73+
case ELF::R_SPARC_HM10:
7574
return (Value >> 32) & 0x3ff;
7675
}
7776
}
@@ -128,26 +127,12 @@ namespace {
128127
// name offset bits flags
129128
{ "fixup_sparc_call30", 2, 30, MCFixupKindInfo::FKF_IsPCRel },
130129
{ "fixup_sparc_13", 19, 13, 0 },
131-
{ "fixup_sparc_hi22", 10, 22, 0 },
132-
{ "fixup_sparc_lo10", 22, 10, 0 },
133-
{ "fixup_sparc_hh", 10, 22, 0 },
134-
{ "fixup_sparc_hm", 22, 10, 0 },
135-
{ "fixup_sparc_lm", 10, 22, 0 },
136-
{ "fixup_sparc_hix22", 10, 22, 0 },
137-
{ "fixup_sparc_lox10", 19, 13, 0 },
138130
};
139131

140132
const static MCFixupKindInfo InfosLE[Sparc::NumTargetFixupKinds] = {
141133
// name offset bits flags
142134
{ "fixup_sparc_call30", 0, 30, MCFixupKindInfo::FKF_IsPCRel },
143135
{ "fixup_sparc_13", 0, 13, 0 },
144-
{ "fixup_sparc_hi22", 0, 22, 0 },
145-
{ "fixup_sparc_lo10", 0, 10, 0 },
146-
{ "fixup_sparc_hh", 0, 22, 0 },
147-
{ "fixup_sparc_hm", 0, 10, 0 },
148-
{ "fixup_sparc_lm", 0, 22, 0 },
149-
{ "fixup_sparc_hix22", 0, 22, 0 },
150-
{ "fixup_sparc_lox10", 0, 13, 0 },
151136
};
152137
// clang-format on
153138

@@ -180,6 +165,28 @@ namespace {
180165
case ELF::R_SPARC_WDISP22:
181166
Info = {"", 10, 22, MCFixupKindInfo::FKF_IsPCRel};
182167
break;
168+
169+
case ELF::R_SPARC_HI22:
170+
Info = {"", 10, 22, 0};
171+
break;
172+
case ELF::R_SPARC_LO10:
173+
Info = {"", 22, 10, 0};
174+
break;
175+
case ELF::R_SPARC_HH22:
176+
Info = {"", 10, 22, 0};
177+
break;
178+
case ELF::R_SPARC_HM10:
179+
Info = {"", 22, 10, 0};
180+
break;
181+
case ELF::R_SPARC_LM22:
182+
Info = {"", 10, 22, 0};
183+
break;
184+
case ELF::R_SPARC_HIX22:
185+
Info = {"", 10, 22, 0};
186+
break;
187+
case ELF::R_SPARC_LOX10:
188+
Info = {"", 19, 13, 0};
189+
break;
183190
}
184191
if (Endian == llvm::endianness::little)
185192
Info.TargetOffset = 32 - Info.TargetOffset - Info.TargetSize;

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,6 @@ unsigned SparcELFObjectWriter::getRelocType(MCContext &Ctx,
113113
if (Ctx.getObjectFileInfo()->isPositionIndependent())
114114
return ELF::R_SPARC_GOT13;
115115
return ELF::R_SPARC_13;
116-
117-
case Sparc::fixup_sparc_hi22: return ELF::R_SPARC_HI22;
118-
case Sparc::fixup_sparc_lo10: return ELF::R_SPARC_LO10;
119-
case Sparc::fixup_sparc_hh: return ELF::R_SPARC_HH22;
120-
case Sparc::fixup_sparc_hm: return ELF::R_SPARC_HM10;
121-
case Sparc::fixup_sparc_lm: return ELF::R_SPARC_LM22;
122-
case Sparc::fixup_sparc_hix22: return ELF::R_SPARC_HIX22;
123-
case Sparc::fixup_sparc_lox10: return ELF::R_SPARC_LOX10;
124116
}
125117
// clang-format on
126118

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

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,6 @@ namespace llvm {
2121
/// fixup_sparc_13 - 13-bit fixup
2222
fixup_sparc_13,
2323

24-
/// fixup_sparc_hi22 - 22-bit fixup corresponding to %hi(foo)
25-
/// for sethi
26-
fixup_sparc_hi22,
27-
28-
/// fixup_sparc_lo10 - 10-bit fixup corresponding to %lo(foo)
29-
fixup_sparc_lo10,
30-
31-
/// fixup_sparc_hh - 22-bit fixup corresponding to %hh(foo)
32-
fixup_sparc_hh,
33-
34-
/// fixup_sparc_hm - 10-bit fixup corresponding to %hm(foo)
35-
fixup_sparc_hm,
36-
37-
/// fixup_sparc_lm - 22-bit fixup corresponding to %lm(foo)
38-
fixup_sparc_lm,
39-
40-
/// 22-bit fixup corresponding to %hix(foo)
41-
fixup_sparc_hix22,
42-
/// 13-bit fixup corresponding to %lox(foo)
43-
fixup_sparc_lox10,
44-
4524
// Marker
4625
LastTargetFixupKind,
4726
NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,11 @@ uint16_t SparcMCExpr::getFixupKind() const {
135135
default:
136136
assert(uint16_t(specifier) < FirstTargetFixupKind);
137137
return specifier;
138-
case VK_LO: return Sparc::fixup_sparc_lo10;
139-
case VK_HI: return Sparc::fixup_sparc_hi22;
140-
case VK_HH: return Sparc::fixup_sparc_hh;
141-
case VK_HM: return Sparc::fixup_sparc_hm;
142-
case VK_LM: return Sparc::fixup_sparc_lm;
138+
case VK_LO: return ELF::R_SPARC_LO10;
139+
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;
143143
case VK_TLS_GD_HI22: return ELF::R_SPARC_TLS_GD_HI22;
144144
case VK_TLS_GD_LO10: return ELF::R_SPARC_TLS_GD_LO10;
145145
case VK_TLS_GD_ADD: return ELF::R_SPARC_TLS_GD_ADD;
@@ -158,8 +158,8 @@ uint16_t SparcMCExpr::getFixupKind() const {
158158
case VK_TLS_IE_ADD: return ELF::R_SPARC_TLS_IE_ADD;
159159
case VK_TLS_LE_HIX22: return ELF::R_SPARC_TLS_LE_HIX22;
160160
case VK_TLS_LE_LOX10: return ELF::R_SPARC_TLS_LE_LOX10;
161-
case VK_HIX22: return Sparc::fixup_sparc_hix22;
162-
case VK_LOX10: return Sparc::fixup_sparc_lox10;
161+
case VK_HIX22: return ELF::R_SPARC_HIX22;
162+
case VK_LOX10: return ELF::R_SPARC_LOX10;
163163
}
164164
// clang-format on
165165
}

0 commit comments

Comments
 (0)