mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-19 10:56:44 +00:00
[WebAssembly,MC] Replace getSymA()->getSymbol() with getAddSym. NFC
We will replace the MCSymbolRefExpr member in MCValue with MCSymbol. This change reduces dependence on MCSymbolRefExpr.
This commit is contained in:
parent
7e62715e0c
commit
acca419685
@ -65,36 +65,32 @@ static const MCSection *getTargetSection(const MCExpr *Expr) {
|
||||
unsigned WebAssemblyWasmObjectWriter::getRelocType(
|
||||
const MCValue &Target, const MCFixup &Fixup,
|
||||
const MCSectionWasm &FixupSection, bool IsLocRel) const {
|
||||
const MCSymbolRefExpr *RefA = Target.getSymA();
|
||||
assert(RefA);
|
||||
auto& SymA = cast<MCSymbolWasm>(RefA->getSymbol());
|
||||
|
||||
auto Modifier = Target.getAccessVariant();
|
||||
|
||||
switch (Modifier) {
|
||||
case MCSymbolRefExpr::VK_GOT:
|
||||
case MCSymbolRefExpr::VK_WASM_GOT_TLS:
|
||||
return wasm::R_WASM_GLOBAL_INDEX_LEB;
|
||||
case MCSymbolRefExpr::VK_WASM_TBREL:
|
||||
assert(SymA.isFunction());
|
||||
return is64Bit() ? wasm::R_WASM_TABLE_INDEX_REL_SLEB64
|
||||
: wasm::R_WASM_TABLE_INDEX_REL_SLEB;
|
||||
case MCSymbolRefExpr::VK_WASM_TLSREL:
|
||||
return is64Bit() ? wasm::R_WASM_MEMORY_ADDR_TLS_SLEB64
|
||||
: wasm::R_WASM_MEMORY_ADDR_TLS_SLEB;
|
||||
case MCSymbolRefExpr::VK_WASM_MBREL:
|
||||
assert(SymA.isData());
|
||||
return is64Bit() ? wasm::R_WASM_MEMORY_ADDR_REL_SLEB64
|
||||
: wasm::R_WASM_MEMORY_ADDR_REL_SLEB;
|
||||
case MCSymbolRefExpr::VK_WASM_TYPEINDEX:
|
||||
return wasm::R_WASM_TYPE_INDEX_LEB;
|
||||
case MCSymbolRefExpr::VK_None:
|
||||
break;
|
||||
case MCSymbolRefExpr::VK_WASM_FUNCINDEX:
|
||||
return wasm::R_WASM_FUNCTION_INDEX_I32;
|
||||
default:
|
||||
report_fatal_error("unknown VariantKind");
|
||||
break;
|
||||
auto &SymA = cast<MCSymbolWasm>(*Target.getAddSym());
|
||||
auto Spec = Target.getSymSpecifier();
|
||||
switch (Spec) {
|
||||
case MCSymbolRefExpr::VK_GOT:
|
||||
case MCSymbolRefExpr::VK_WASM_GOT_TLS:
|
||||
return wasm::R_WASM_GLOBAL_INDEX_LEB;
|
||||
case MCSymbolRefExpr::VK_WASM_TBREL:
|
||||
assert(SymA.isFunction());
|
||||
return is64Bit() ? wasm::R_WASM_TABLE_INDEX_REL_SLEB64
|
||||
: wasm::R_WASM_TABLE_INDEX_REL_SLEB;
|
||||
case MCSymbolRefExpr::VK_WASM_TLSREL:
|
||||
return is64Bit() ? wasm::R_WASM_MEMORY_ADDR_TLS_SLEB64
|
||||
: wasm::R_WASM_MEMORY_ADDR_TLS_SLEB;
|
||||
case MCSymbolRefExpr::VK_WASM_MBREL:
|
||||
assert(SymA.isData());
|
||||
return is64Bit() ? wasm::R_WASM_MEMORY_ADDR_REL_SLEB64
|
||||
: wasm::R_WASM_MEMORY_ADDR_REL_SLEB;
|
||||
case MCSymbolRefExpr::VK_WASM_TYPEINDEX:
|
||||
return wasm::R_WASM_TYPE_INDEX_LEB;
|
||||
case MCSymbolRefExpr::VK_None:
|
||||
break;
|
||||
case MCSymbolRefExpr::VK_WASM_FUNCINDEX:
|
||||
return wasm::R_WASM_FUNCTION_INDEX_I32;
|
||||
default:
|
||||
report_fatal_error("unknown VariantKind");
|
||||
break;
|
||||
}
|
||||
|
||||
switch (unsigned(Fixup.getKind())) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user