@@ -26,7 +26,7 @@ using namespace llvm;
26
26
27
27
const SparcMCExpr *SparcMCExpr::create (uint16_t S, const MCExpr *Expr,
28
28
MCContext &Ctx) {
29
- return new (Ctx) SparcMCExpr (Specifier (S) , Expr);
29
+ return new (Ctx) SparcMCExpr (S , Expr);
30
30
}
31
31
32
32
void SparcMCExpr::printImpl (raw_ostream &OS, const MCAsmInfo *MAI) const {
@@ -38,12 +38,12 @@ void SparcMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
38
38
OS << ' )' ;
39
39
}
40
40
41
- StringRef SparcMCExpr::getSpecifierName (SparcMCExpr::Specifier S) {
41
+ StringRef SparcMCExpr::getSpecifierName (uint16_t S) {
42
42
// clang-format off
43
43
switch (uint16_t (S)) {
44
- case VK_None: return {};
45
- case VK_LO: return " lo" ;
46
- case VK_HI: return " hi" ;
44
+ case 0 : return {};
45
+ case ELF::R_SPARC_LO10: return " lo" ;
46
+ case ELF::R_SPARC_HI22: return " hi" ;
47
47
case ELF::R_SPARC_H44: return " h44" ;
48
48
case ELF::R_SPARC_M44: return " m44" ;
49
49
case ELF::R_SPARC_L44: return " l44" ;
@@ -85,62 +85,55 @@ StringRef SparcMCExpr::getSpecifierName(SparcMCExpr::Specifier S) {
85
85
llvm_unreachable (" Unhandled SparcMCExpr::Specifier" );
86
86
}
87
87
88
- SparcMCExpr::Specifier SparcMCExpr::parseSpecifier (StringRef name) {
89
- return StringSwitch<SparcMCExpr::Specifier >(name)
90
- .Case (" lo" , VK_LO )
91
- .Case (" hi" , VK_HI )
92
- .Case (" h44" , (SparcMCExpr::Specifier) ELF::R_SPARC_H44)
93
- .Case (" m44" , (SparcMCExpr::Specifier) ELF::R_SPARC_M44)
94
- .Case (" l44" , (SparcMCExpr::Specifier) ELF::R_SPARC_L44)
95
- .Case (" hh" , (SparcMCExpr::Specifier) ELF::R_SPARC_HH22)
88
+ uint16_t SparcMCExpr::parseSpecifier (StringRef name) {
89
+ return StringSwitch<uint16_t >(name)
90
+ .Case (" lo" , ELF::R_SPARC_LO10 )
91
+ .Case (" hi" , ELF::R_SPARC_HI22 )
92
+ .Case (" h44" , ELF::R_SPARC_H44)
93
+ .Case (" m44" , ELF::R_SPARC_M44)
94
+ .Case (" l44" , ELF::R_SPARC_L44)
95
+ .Case (" hh" , ELF::R_SPARC_HH22)
96
96
// Nonstandard GNU extension
97
- .Case (" uhi" , (SparcMCExpr::Specifier) ELF::R_SPARC_HH22)
98
- .Case (" hm" , (SparcMCExpr::Specifier) ELF::R_SPARC_HM10)
97
+ .Case (" uhi" , ELF::R_SPARC_HH22)
98
+ .Case (" hm" , ELF::R_SPARC_HM10)
99
99
// Nonstandard GNU extension
100
- .Case (" ulo" , (SparcMCExpr::Specifier) ELF::R_SPARC_HM10)
101
- .Case (" lm" , (SparcMCExpr::Specifier) ELF::R_SPARC_LM22)
102
- .Case (" pc22" , (SparcMCExpr::Specifier) ELF::R_SPARC_PC22)
103
- .Case (" pc10" , (SparcMCExpr::Specifier) ELF::R_SPARC_PC10)
104
- .Case (" got22" , (SparcMCExpr::Specifier) ELF::R_SPARC_GOT22)
105
- .Case (" got10" , (SparcMCExpr::Specifier) ELF::R_SPARC_GOT10)
106
- .Case (" got13" , (SparcMCExpr::Specifier) ELF::R_SPARC_GOT13)
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)
128
- .Case (" gdop_hix22" , (SparcMCExpr::Specifier) ELF::R_SPARC_GOTDATA_OP_HIX22)
129
- .Case (" gdop_lox10" , (SparcMCExpr::Specifier) ELF::R_SPARC_GOTDATA_OP_LOX10)
130
- .Case (" gdop" , (SparcMCExpr::Specifier) ELF::R_SPARC_GOTDATA_OP)
131
- .Default (VK_None );
100
+ .Case (" ulo" , ELF::R_SPARC_HM10)
101
+ .Case (" lm" , ELF::R_SPARC_LM22)
102
+ .Case (" pc22" , ELF::R_SPARC_PC22)
103
+ .Case (" pc10" , ELF::R_SPARC_PC10)
104
+ .Case (" got22" , ELF::R_SPARC_GOT22)
105
+ .Case (" got10" , ELF::R_SPARC_GOT10)
106
+ .Case (" got13" , ELF::R_SPARC_GOT13)
107
+ .Case (" r_disp32" , ELF::R_SPARC_DISP32)
108
+ .Case (" tgd_hi22" , ELF::R_SPARC_TLS_GD_HI22)
109
+ .Case (" tgd_lo10" , ELF::R_SPARC_TLS_GD_LO10)
110
+ .Case (" tgd_add" , ELF::R_SPARC_TLS_GD_ADD)
111
+ .Case (" tgd_call" , ELF::R_SPARC_TLS_GD_CALL)
112
+ .Case (" tldm_hi22" , ELF::R_SPARC_TLS_LDM_HI22)
113
+ .Case (" tldm_lo10" , ELF::R_SPARC_TLS_LDM_LO10)
114
+ .Case (" tldm_add" , ELF::R_SPARC_TLS_LDM_ADD)
115
+ .Case (" tldm_call" , ELF::R_SPARC_TLS_LDM_CALL)
116
+ .Case (" tldo_hix22" , ELF::R_SPARC_TLS_LDO_HIX22)
117
+ .Case (" tldo_lox10" , ELF::R_SPARC_TLS_LDO_LOX10)
118
+ .Case (" tldo_add" , ELF::R_SPARC_TLS_LDO_ADD)
119
+ .Case (" tie_hi22" , ELF::R_SPARC_TLS_IE_HI22)
120
+ .Case (" tie_lo10" , ELF::R_SPARC_TLS_IE_LO10)
121
+ .Case (" tie_ld" , ELF::R_SPARC_TLS_IE_LD)
122
+ .Case (" tie_ldx" , ELF::R_SPARC_TLS_IE_LDX)
123
+ .Case (" tie_add" , ELF::R_SPARC_TLS_IE_ADD)
124
+ .Case (" tle_hix22" , ELF::R_SPARC_TLS_LE_HIX22)
125
+ .Case (" tle_lox10" , ELF::R_SPARC_TLS_LE_LOX10)
126
+ .Case (" hix" , ELF::R_SPARC_HIX22)
127
+ .Case (" lox" , ELF::R_SPARC_LOX10)
128
+ .Case (" gdop_hix22" , ELF::R_SPARC_GOTDATA_OP_HIX22)
129
+ .Case (" gdop_lox10" , ELF::R_SPARC_GOTDATA_OP_LOX10)
130
+ .Case (" gdop" , ELF::R_SPARC_GOTDATA_OP)
131
+ .Default (0 );
132
132
}
133
133
134
134
uint16_t SparcMCExpr::getFixupKind () const {
135
- // clang-format off
136
- switch (specifier) {
137
- default :
138
- assert (uint16_t (specifier) < FirstTargetFixupKind);
139
- return specifier;
140
- case VK_LO: return ELF::R_SPARC_LO10;
141
- case VK_HI: return ELF::R_SPARC_HI22;
142
- }
143
- // clang-format on
135
+ assert (uint16_t (specifier) < FirstTargetFixupKind);
136
+ return specifier;
144
137
}
145
138
146
139
bool SparcMCExpr::evaluateAsRelocatableImpl (MCValue &Res,
0 commit comments