@@ -65,36 +65,32 @@ static const MCSection *getTargetSection(const MCExpr *Expr) {
65
65
unsigned WebAssemblyWasmObjectWriter::getRelocType (
66
66
const MCValue &Target, const MCFixup &Fixup,
67
67
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 ;
98
94
}
99
95
100
96
switch (unsigned (Fixup.getKind ())) {
0 commit comments