我有一个应用程序,它通过SSE4.1内部函数充分利用了MMX寄存器(SS4)。
我正在运行Win64,并且有一个朋友,他的x86-64 CPU支持SSE4.1,但他的操作系统是Win32。他没有编译器,所以我通过-m32选项(加上-msse4.1启用代码生成)为他生成32位二进制文件。
窥视为-m32生成的代码,结果表明仅使用了8个MMX寄存器。这并不意外,-m32可以理解为假定目标CPU也是32位。
是否可以告诉gcc目标操作系统是Win32,但CPU是64位?
如果没有,是否有任何实际原因导致这种选择不起作用?