benchmark-x86-flags:基准 x86 标记 Saverestore

时间:2021-07-06 01:44:26
【文件属性】:
文件名称:benchmark-x86-flags:基准 x86 标记 Saverestore
文件大小:11KB
文件格式:ZIP
更新时间:2021-07-06 01:44:26
Assembly 基准 x86 标志保存/恢复 作者: JF巴斯蒂安 背景 LLVM 对 x86 标志不是很聪明,从和它发出和 POPF 来保存和恢复 EFLAGS 中的所有用户模式标志。 更优化的方法是将 LAHF 和 SAHF(用于 CF、PF、AF、ZF、SF)与 SETO 和 ADDB(用于 OF)结合使用。 更佳的方法是将 EFLAGS 中的每个标志都视为子寄存器,并且仅在单个标志有效时才使用正确的 SETcc 指令,例如当只有 ZF 实际有效时使用 SETO 和 TEST。 验证器不允许 PUSHF 和 POPF 指令,因为它们一直是安全漏洞的来源。 尝试解决此问题并可能使 LLVM 更高效。 该基准测试旨在确定 LLVM 应该采用哪种方法。 结果 在 2.9GHz 的 Intel Haswell E5-2690 CPU 上的结果是: 每次通话时间(毫秒) 运行时间(毫秒) 基准 0
【文件预览】:
benchmark-x86-flags-master
----.gitignore(242B)
----sete.x86-64-fast.S(373B)
----bench.sh(1KB)
----lahf-sahf.i386-fast.S(615B)
----sete.x86-64.S(373B)
----LICENSE(11KB)
----lahf-sahf.i386.S(566B)
----lahf-sahf.x86-64-fast.S(386B)
----bench.cc(855B)
----sete.i386.S(553B)
----pushf-popf.i386.S(510B)
----README.rst(3KB)
----pushf-popf.x86-64-fast.S(328B)
----pushf-popf.i386-fast.S(510B)
----pushf-popf.x86-64.S(328B)
----sete.i386-fast.S(602B)
----lahf-sahf.x86-64.S(386B)

网友评论