Skip to content

Commit f7b2c9a

Browse files
committed
Sparc: Modernize getSpecifierName. NFC
Make the style similar to LoongArch/RISCV. Remove comment "FIXME: use %got22/%got10, if system assembler supports them." %got22/%got10 are not available in gas.
1 parent de7e23f commit f7b2c9a

File tree

3 files changed

+52
-54
lines changed

3 files changed

+52
-54
lines changed

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

Lines changed: 47 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -30,62 +30,59 @@ const SparcMCExpr *SparcMCExpr::create(Specifier S, const MCExpr *Expr,
3030
}
3131

3232
void SparcMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
33-
34-
bool closeParen = printSpecifier(OS, specifier);
35-
36-
const MCExpr *Expr = getSubExpr();
37-
Expr->print(OS, MAI);
38-
39-
if (closeParen)
33+
StringRef S = getSpecifierName(specifier);
34+
if (!S.empty())
35+
OS << '%' << S << '(';
36+
getSubExpr()->print(OS, MAI);
37+
if (!S.empty())
4038
OS << ')';
4139
}
4240

43-
bool SparcMCExpr::printSpecifier(raw_ostream &OS, Specifier S) {
41+
StringRef SparcMCExpr::getSpecifierName(SparcMCExpr::Specifier S) {
4442
// clang-format off
4543
switch (S) {
46-
case VK_None: return false;
47-
case VK_LO: OS << "%lo("; return true;
48-
case VK_HI: OS << "%hi("; return true;
49-
case VK_H44: OS << "%h44("; return true;
50-
case VK_M44: OS << "%m44("; return true;
51-
case VK_L44: OS << "%l44("; return true;
52-
case VK_HH: OS << "%hh("; return true;
53-
case VK_HM: OS << "%hm("; return true;
54-
case VK_LM: OS << "%lm("; return true;
44+
case VK_None: return {};
45+
case VK_LO: return "lo";
46+
case VK_HI: return "hi";
47+
case VK_H44: return "h44";
48+
case VK_M44: return "m44";
49+
case VK_L44: return "l44";
50+
case VK_HH: return "hh";
51+
case VK_HM: return "hm";
52+
case VK_LM: return "lm";
5553
// FIXME: use %pc22/%pc10, if system assembler supports them.
56-
case VK_PC22: OS << "%hi("; return true;
57-
case VK_PC10: OS << "%lo("; return true;
58-
// FIXME: use %got22/%got10, if system assembler supports them.
59-
case VK_GOT22: OS << "%hi("; return true;
60-
case VK_GOT10: OS << "%lo("; return true;
61-
case VK_GOT13: return false;
62-
case VK_13: return false;
63-
case VK_WDISP30: return false;
64-
case VK_WPLT30: return false;
65-
case VK_R_DISP32: OS << "%r_disp32("; return true;
66-
case VK_TLS_GD_HI22: OS << "%tgd_hi22("; return true;
67-
case VK_TLS_GD_LO10: OS << "%tgd_lo10("; return true;
68-
case VK_TLS_GD_ADD: OS << "%tgd_add("; return true;
69-
case VK_TLS_GD_CALL: OS << "%tgd_call("; return true;
70-
case VK_TLS_LDM_HI22: OS << "%tldm_hi22("; return true;
71-
case VK_TLS_LDM_LO10: OS << "%tldm_lo10("; return true;
72-
case VK_TLS_LDM_ADD: OS << "%tldm_add("; return true;
73-
case VK_TLS_LDM_CALL: OS << "%tldm_call("; return true;
74-
case VK_TLS_LDO_HIX22: OS << "%tldo_hix22("; return true;
75-
case VK_TLS_LDO_LOX10: OS << "%tldo_lox10("; return true;
76-
case VK_TLS_LDO_ADD: OS << "%tldo_add("; return true;
77-
case VK_TLS_IE_HI22: OS << "%tie_hi22("; return true;
78-
case VK_TLS_IE_LO10: OS << "%tie_lo10("; return true;
79-
case VK_TLS_IE_LD: OS << "%tie_ld("; return true;
80-
case VK_TLS_IE_LDX: OS << "%tie_ldx("; return true;
81-
case VK_TLS_IE_ADD: OS << "%tie_add("; return true;
82-
case VK_TLS_LE_HIX22: OS << "%tle_hix22("; return true;
83-
case VK_TLS_LE_LOX10: OS << "%tle_lox10("; return true;
84-
case VK_HIX22: OS << "%hix("; return true;
85-
case VK_LOX10: OS << "%lox("; return true;
86-
case VK_GOTDATA_HIX22: OS << "%gdop_hix22("; return true;
87-
case VK_GOTDATA_LOX10: OS << "%gdop_lox10("; return true;
88-
case VK_GOTDATA_OP: OS << "%gdop("; return true;
54+
case VK_PC22: return "hi";
55+
case VK_PC10: return "lo";
56+
case VK_GOT22: return "hi";
57+
case VK_GOT10: return "lo";
58+
case VK_GOT13: return {};
59+
case VK_13: return {};
60+
case VK_WDISP30: return {};
61+
case VK_WPLT30: return {};
62+
case VK_R_DISP32: return "r_disp32";
63+
case VK_TLS_GD_HI22: return "tgd_hi22";
64+
case VK_TLS_GD_LO10: return "tgd_lo10";
65+
case VK_TLS_GD_ADD: return "tgd_add";
66+
case VK_TLS_GD_CALL: return "tgd_call";
67+
case VK_TLS_LDM_HI22: return "tldm_hi22";
68+
case VK_TLS_LDM_LO10: return "tldm_lo10";
69+
case VK_TLS_LDM_ADD: return "tldm_add";
70+
case VK_TLS_LDM_CALL: return "tldm_call";
71+
case VK_TLS_LDO_HIX22: return "tldo_hix22";
72+
case VK_TLS_LDO_LOX10: return "tldo_lox10";
73+
case VK_TLS_LDO_ADD: return "tldo_add";
74+
case VK_TLS_IE_HI22: return "tie_hi22";
75+
case VK_TLS_IE_LO10: return "tie_lo10";
76+
case VK_TLS_IE_LD: return "tie_ld";
77+
case VK_TLS_IE_LDX: return "tie_ldx";
78+
case VK_TLS_IE_ADD: return "tie_add";
79+
case VK_TLS_LE_HIX22: return "tle_hix22";
80+
case VK_TLS_LE_LOX10: return "tle_lox10";
81+
case VK_HIX22: return "hix";
82+
case VK_LOX10: return "lox";
83+
case VK_GOTDATA_HIX22: return "gdop_hix22";
84+
case VK_GOTDATA_LOX10: return "gdop_lox10";
85+
case VK_GOTDATA_OP: return "gdop";
8986
}
9087
// clang-format on
9188
llvm_unreachable("Unhandled SparcMCExpr::Specifier");

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class SparcMCExpr : public MCTargetExpr {
101101
}
102102

103103
static Specifier parseSpecifier(StringRef name);
104-
static bool printSpecifier(raw_ostream &OS, Specifier Kind);
104+
static StringRef getSpecifierName(Specifier S);
105105
};
106106

107107
} // end namespace llvm.

llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,8 @@ void SparcAsmPrinter::printOperand(const MachineInstr *MI, int opNum,
307307
const MachineOperand &MO = MI->getOperand (opNum);
308308
SparcMCExpr::Specifier TF = (SparcMCExpr::Specifier)MO.getTargetFlags();
309309

310-
bool CloseParen = SparcMCExpr::printSpecifier(O, TF);
311-
310+
StringRef Spec = SparcMCExpr::getSpecifierName(TF);
311+
O << Spec;
312312
switch (MO.getType()) {
313313
case MachineOperand::MO_Register:
314314
O << "%" << StringRef(getRegisterName(MO.getReg())).lower();
@@ -339,7 +339,8 @@ void SparcAsmPrinter::printOperand(const MachineInstr *MI, int opNum,
339339
default:
340340
llvm_unreachable("<unknown operand type>");
341341
}
342-
if (CloseParen) O << ")";
342+
if (!Spec.empty())
343+
O << ")";
343344
}
344345

345346
void SparcAsmPrinter::printMemOperand(const MachineInstr *MI, int opNum,

0 commit comments

Comments
 (0)