1. 首页
  2. 考试认证
  3. 其它
  4. benchmark x86 flags 基准x86标记Saverestore

benchmark x86 flags 基准x86标记Saverestore

上传者: 2024-10-16 15:10:42上传 ZIP文件 11.47KB 热度 3次

基准x86标志保存/恢复

作者:JF巴斯蒂安

背景:LLVM对x86标志的处理不是很高效,目前使用PUSHF和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上的结果显示,每次调用的运行时间为毫秒级别。

用户评论