为 WebAssembly 创建程序集数据部分

create assembly data section for WebAssembly

我有一个程序集数据部分,我想将其编译为 WebAssembly。数据部分是自动生成的,布局必须在输出中完全匹配。这是部分数据在 GAS 程序集中的样子:

sym_00497658_11353_5752:
.quad sym_0020ad70_3404_1468903
.quad sym_0020ada0_3404_1468951
.quad sym_00208480_3404_1458423
.byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
.quad sym_004a1de0_11353_48640
.global sym_00497680_11353_5792
sym_00497680_11353_5792:
.quad sym_00209e90_3404_1465095
.quad sym_0020a590_3404_1466887
.byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
.quad sym_004a1df0_11353_48656
.global sym_004976a0_11353_5824
...

有没有办法为 WebAssembly 生成这样的数据部分?我考虑过使用 LLVM IR,但我不确定如何确保布局正确。

这是将可执行文件重新编译为 WebAssembly 的一部分,这就是部分布局必须匹配的原因。

clang 支持从 .S(预处理)或 .s(未预处理)汇编文件生成 wasm 对象。我必须查看程序集解析器或 LLVM 的源代码才能理解语法选项...