@@ -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
3232void 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}
0 commit comments