我正在尝试构建 VS2010 CRT 库的某些函数的稍微修改的版本,除了尝试访问可能保存指令集架构版本(ISA)的全局变量的部分外,一切都很好:
if (__isa_available > __ISA_AVAILABLE_SSE2)
{
// ...
}
else if (__isa_available == __ISA_AVAILABLE_SSE2)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
我在程序集文件中找到了它应该保存的值
__ISA_AVAILABLE_X86 equ 0
__ISA_AVAILABLE_SSE2 equ 1
__ISA_AVAILABLE_SSE42 equ 2
__ISA_AVAILABLE_AVX equ 3
Run Code Online (Sandbox Code Playgroud)
无法找到如何以及在何处__isa_available分配值(我已尝试在所有目录中查找文件......)
MSDN参考CPUID示例来确定指令集。问题是它使用了__asm块,而这些块在我的 x64 版本中是不允许的。
有谁知道如何快速分配正确的值__isa_available?
我有中等的业余技能,Python而且我是初学者,asm并且对C语言没有任何了解.
我知道python C-extensions必须遵循特定的接口才能正常工作.
是否可以Assembly使用正确的界面和完整功能编写纯粹的python扩展?第二个问题是,如果这样做的话,它是否足够有效?
谷歌搜索时,我没有找到任何关于这个问题的代码或一些文章或解决方案的例子.
这不是关于asm从内部运行代码的问题Python所以它不是关于SO的主题的重复.