我正在尝试使用 pin 工具计算由 GCC 为来自 poly bench 基准测试的 30 个不同程序创建的二进制文件中 CPU 执行的动态浮点指令的数量。根据 x86 编码器-解码器 (XED) 文档,x86 中的所有浮动指令都属于 X87_ALU 类别。
出于某种原因,我将所有程序的它都设为零,这与二进制、加载、存储、nop 等所有其他指令类别不同。我使用 objdump 对二进制文件进行了反汇编,并且看不到带有操作码开始的单行从 f.
此外,我使用 emscripten (emcc) 为所有程序生成了 Web 程序集 (.wasm) 二进制文件,然后将 .wasm 二进制文件转换为反汇编的 .wat 文件。在这些文件中,我也没有看到任何浮点指令。
PS:从我一直在做的谷歌搜索中,我了解到 x86 对这些具有完全不同的浮点单元和基于堆栈的处理。也许我在这方面遗漏了一些东西?
关于如何查看反汇编二进制文件中的浮点指令的任何线索?