Skip to content

Commit acca419

Browse files
committed
[WebAssembly,MC] Replace getSymA()->getSymbol() with getAddSym. NFC
We will replace the MCSymbolRefExpr member in MCValue with MCSymbol. This change reduces dependence on MCSymbolRefExpr.
1 parent 7e62715 commit acca419

File tree

1 file changed

+26
-30
lines changed

1 file changed

+26
-30
lines changed

llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -65,36 +65,32 @@ static const MCSection *getTargetSection(const MCExpr *Expr) {
6565
unsigned WebAssemblyWasmObjectWriter::getRelocType(
6666
const MCValue &Target, const MCFixup &Fixup,
6767
const MCSectionWasm &FixupSection, bool IsLocRel) const {
68-
const MCSymbolRefExpr *RefA = Target.getSymA();
69-
assert(RefA);
70-
auto& SymA = cast<MCSymbolWasm>(RefA->getSymbol());
71-
72-
auto Modifier = Target.getAccessVariant();
73-
74-
switch (Modifier) {
75-
case MCSymbolRefExpr::VK_GOT:
76-
case MCSymbolRefExpr::VK_WASM_GOT_TLS:
77-
return wasm::R_WASM_GLOBAL_INDEX_LEB;
78-
case MCSymbolRefExpr::VK_WASM_TBREL:
79-
assert(SymA.isFunction());
80-
return is64Bit() ? wasm::R_WASM_TABLE_INDEX_REL_SLEB64
81-
: wasm::R_WASM_TABLE_INDEX_REL_SLEB;
82-
case MCSymbolRefExpr::VK_WASM_TLSREL:
83-
return is64Bit() ? wasm::R_WASM_MEMORY_ADDR_TLS_SLEB64
84-
: wasm::R_WASM_MEMORY_ADDR_TLS_SLEB;
85-
case MCSymbolRefExpr::VK_WASM_MBREL:
86-
assert(SymA.isData());
87-
return is64Bit() ? wasm::R_WASM_MEMORY_ADDR_REL_SLEB64
88-
: wasm::R_WASM_MEMORY_ADDR_REL_SLEB;
89-
case MCSymbolRefExpr::VK_WASM_TYPEINDEX:
90-
return wasm::R_WASM_TYPE_INDEX_LEB;
91-
case MCSymbolRefExpr::VK_None:
92-
break;
93-
case MCSymbolRefExpr::VK_WASM_FUNCINDEX:
94-
return wasm::R_WASM_FUNCTION_INDEX_I32;
95-
default:
96-
report_fatal_error("unknown VariantKind");
97-
break;
68+
auto &SymA = cast<MCSymbolWasm>(*Target.getAddSym());
69+
auto Spec = Target.getSymSpecifier();
70+
switch (Spec) {
71+
case MCSymbolRefExpr::VK_GOT:
72+
case MCSymbolRefExpr::VK_WASM_GOT_TLS:
73+
return wasm::R_WASM_GLOBAL_INDEX_LEB;
74+
case MCSymbolRefExpr::VK_WASM_TBREL:
75+
assert(SymA.isFunction());
76+
return is64Bit() ? wasm::R_WASM_TABLE_INDEX_REL_SLEB64
77+
: wasm::R_WASM_TABLE_INDEX_REL_SLEB;
78+
case MCSymbolRefExpr::VK_WASM_TLSREL:
79+
return is64Bit() ? wasm::R_WASM_MEMORY_ADDR_TLS_SLEB64
80+
: wasm::R_WASM_MEMORY_ADDR_TLS_SLEB;
81+
case MCSymbolRefExpr::VK_WASM_MBREL:
82+
assert(SymA.isData());
83+
return is64Bit() ? wasm::R_WASM_MEMORY_ADDR_REL_SLEB64
84+
: wasm::R_WASM_MEMORY_ADDR_REL_SLEB;
85+
case MCSymbolRefExpr::VK_WASM_TYPEINDEX:
86+
return wasm::R_WASM_TYPE_INDEX_LEB;
87+
case MCSymbolRefExpr::VK_None:
88+
break;
89+
case MCSymbolRefExpr::VK_WASM_FUNCINDEX:
90+
return wasm::R_WASM_FUNCTION_INDEX_I32;
91+
default:
92+
report_fatal_error("unknown VariantKind");
93+
break;
9894
}
9995

10096
switch (unsigned(Fixup.getKind())) {

0 commit comments

Comments
 (0)