@@ -24,9 +24,9 @@ using namespace llvm;
24
24
25
25
#define DEBUG_TYPE " sparcmcexpr"
26
26
27
- const SparcMCExpr *SparcMCExpr::create (Specifier S, const MCExpr *Expr,
27
+ const SparcMCExpr *SparcMCExpr::create (uint16_t S, const MCExpr *Expr,
28
28
MCContext &Ctx) {
29
- return new (Ctx) SparcMCExpr (S , Expr);
29
+ return new (Ctx) SparcMCExpr (Specifier (S) , Expr);
30
30
}
31
31
32
32
void SparcMCExpr::printImpl (raw_ostream &OS, const MCAsmInfo *MAI) const {
@@ -47,36 +47,36 @@ StringRef SparcMCExpr::getSpecifierName(SparcMCExpr::Specifier S) {
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" ;
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" ;
53
53
// FIXME: use %pc22/%pc10, if system assembler supports them.
54
54
case ELF::R_SPARC_PC22: return " hi" ;
55
55
case ELF::R_SPARC_PC10: return " lo" ;
56
56
case ELF::R_SPARC_GOT22: return " hi" ;
57
57
case ELF::R_SPARC_GOT10: return " lo" ;
58
58
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" ;
80
80
case ELF::R_SPARC_GOTDATA_OP_HIX22: return " gdop_hix22" ;
81
81
case ELF::R_SPARC_GOTDATA_OP_LOX10: return " gdop_lox10" ;
82
82
case ELF::R_SPARC_GOTDATA_OP: return " gdop" ;
@@ -92,37 +92,39 @@ SparcMCExpr::Specifier SparcMCExpr::parseSpecifier(StringRef name) {
92
92
.Case (" h44" , (SparcMCExpr::Specifier)ELF::R_SPARC_H44)
93
93
.Case (" m44" , (SparcMCExpr::Specifier)ELF::R_SPARC_M44)
94
94
.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)
100
102
.Case (" pc22" , (SparcMCExpr::Specifier)ELF::R_SPARC_PC22)
101
103
.Case (" pc10" , (SparcMCExpr::Specifier)ELF::R_SPARC_PC10)
102
104
.Case (" got22" , (SparcMCExpr::Specifier)ELF::R_SPARC_GOT22)
103
105
.Case (" got10" , (SparcMCExpr::Specifier)ELF::R_SPARC_GOT10)
104
106
.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 )
126
128
.Case (" gdop_hix22" , (SparcMCExpr::Specifier)ELF::R_SPARC_GOTDATA_OP_HIX22)
127
129
.Case (" gdop_lox10" , (SparcMCExpr::Specifier)ELF::R_SPARC_GOTDATA_OP_LOX10)
128
130
.Case (" gdop" , (SparcMCExpr::Specifier)ELF::R_SPARC_GOTDATA_OP)
@@ -137,29 +139,6 @@ uint16_t SparcMCExpr::getFixupKind() const {
137
139
return specifier;
138
140
case VK_LO: return ELF::R_SPARC_LO10;
139
141
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;
163
142
}
164
143
// clang-format on
165
144
}
0 commit comments