提问人:Cecil Ward 提问时间:5/30/2023 最后编辑:Peter CordesCecil Ward 更新时间:11/1/2023 访问量:52
使用 x86-64 指令时,在不消除其全部性能优势的情况下检查其可用性的最佳方法是什么
When using x86-64 instructions what is the best way to check for their availability without wiping out their entire performance benefit
问:
我正在使用内联 asm 围绕各种x86_64指令编写一些简单的 D (DLang) 包装例程。这运行良好,但是如果我想为缺少任何指令的旧处理器提供替代路径,那么检查和分支的开销将完全消除操作码可用的好处。我甚至在预主的一次性初始化例程中实现了对 cpuid 指令测试结果的缓存,以设置 cpuid 查询缓存/记忆。
我不知道其他人是怎么做到的,也许是修复可执行文件或共享库?这可能吗?除了 main() 的一个选择操作外,如何在可用与不可用的指令之间切换,开销为零?
否则,我将不得不给出两个版本的库例程,一个用于较旧的机器,一个用于较新的机器,并希望用户选择导入正确的模块。
答: 暂无答案
评论