gpt4 book ai didi

visual-studio - 各种版本的Visual Studio的最低 objective-c PU体系结构是什么?

转载 作者:行者123 更新时间:2023-12-03 17:35:45 27 4
gpt4 key购买 nike

每个版本的Visual Studio 2008、2010和2012支持的最低目标处理器体系结构(用_M_IX86预定义宏指示)是什么?

例如,MSVS 2012仅支持Pentium Pro和更高版本。

最佳答案

为此的经典开关是/G。对于不同版本的编译器,可用选项有所不同(新版本会删除旧选项,尽管出于兼容性原因会继续接受它们)。这是您得到的:


已为386处理器优化的/G3内置代码(_M_IX86设置为300)
486处理器的/G4_M_IX86设置为400)
为奔腾优化的/G5内置代码(_M_IX86设置为500)
为奔腾Pro,II和III优化的/G6内置代码(_M_IX86设置为600)
/G7构建的代码已针对Pentium 4或AMD Athlon进行了优化(_M_IX86设置为700)
/GB指定了“混合”模式或发布该版本编译器时合理的最低公分母。如果未指定其他选项,则这是默认选项。


当然,要明确指出,设置此选项以针对较新的处理器体系结构进行优化并不会阻止您的代码在较旧的处理器体系结构上运行。它只是没有针对该架构进行优化,并且可能会运行得更慢。

但是,如果在a current version of the documentation中查找此编译器选项,则不会提及任何内容。您所看到的只是关于Itanium处理器(我们将放在一边)。这是因为the compiler shipping with VC++ 2005 dropped the /G3/G7 compiler options altogether


[The] /G3/G4/G5/G6/G7/GB编译器选项已被删除。编译器现在使用“混合模型”,该模型尝试为所有体系结构创建最佳输出文件。


因此,尽管我们中的许多人都从VC ++ 6牢记这一点,但是即使在VC ++ 2008之前,该代码生成设置还是有历史的好奇心。因此,我不确定您会从哪里得到VS 2012仅支持Pentium Pro的印象。我在官方文档的任何地方或在线其他地方都找不到提到的内容。编译器版本2012的限制因素不是处理器体系结构,而是操作系统版本。如果您已经修补了编译器,库和所有其他附件,以支持针对Windows XP,那么您将能够在原始的Pentium-233上运行应用程序,并在其上自发地尝试了Windows XP。

_M_IX86宏的用途实际上只是一个指标,表明您所针对的是Intel IA-32处理器家族(通常称为旧的32位x86),与其他受支持的目标体系结构(如< cc>用于64位x86。您现在应该只将其视为已定义/未定义的值。

是的,_M_AMD64的旧值表仍显示在the latest version of the preprocessor documentation中,但已经完全过时了。您会注意到那里也出现了其他过时的符号,例如_M_IX86:PowerPC编译器随附的MSVC ++的最新版本是什么? 4.2?



但这只是故事的一部分。还有其他一些编译器选项可以控制有关目标体系结构的代码生成。

例如,_M_PPC开关。在the latest version of the documentation中,您可以使用以下选项:


/arch本质上设置最低的公分母,使用x87表示浮点数
/arch:IA32开启SSE指令
/arch:SSE开启SSE2指令(x86的默认设置)
/arch:SSE2启用英特尔高级矢量扩展
/arch:AVX启用英特尔高级矢量扩展2

如果您阅读“备注”部分,您还将看到这些选项不仅意味着指定的指令集,还意味着更多。例如,由于所有支持SSE指令的处理器也都支持/arch:AVX2指令,所以当指定CMOV或更高版本时,将生成CMOV指令。 /arch:SSE指令与SSE无关。实际上,SSE是在Pentium III中引入的,而CMOV是在Pentium Pro中引入的。但是,可以保证任何支持SSE的体系结构都可以支持它。


其他相关选项由CMOV开关控制。这是从VC ++ 2008开始的新功能,大概是旧/favor/G3选项的替代品。正如the documentation所说:


/G7是默认设置,并且生成没有独特优化的代码
/favor:blend生成特定于英特尔x86-64实现的代码
/favor:INTEL64生成特定于AMD x86-64实现的代码
/favor:AMD64生成特定于英特尔Atom处理器的代码

关于visual-studio - 各种版本的Visual Studio的最低 objective-c PU体系结构是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23259531/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com