================ ---------------- QuantumSegfault wrote:
Any shortcomings with `__indirect_function_table` are unrelated. This is/was simply a mismatch between how table symbols (from IR globals) are emitted, vs how they are parsed from `.s`. When emitted, nothing ever specifies 32 vs 64 bit, and it defaults to 32 bit (except for the special handling of `__indirect_function_table`, where it has been explicitly marked). So tables are always emitted 32-bit (default). And this is reflected in direct object emission. Never is `IS_64` flag set by `llc` when creating Wasm tables from IR globals. However when AsmParser sees a table declaration, it decides that on Wasm64 the default is to treat as a 64-bit table (setting the appropriate flag on the MCSymbol). So if one does `llc` => `.s` => `llvm-mc` => `.wasm/.o`, it kind of works already (which actually breaks other assumptions that instructions make...) and treats all tables as 64-bit. https://github.com/llvm/llvm-project/pull/180649 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
