X86 是否有任何理由不删除对奔腾FDIV缺陷的检查?

X86 是否有任何理由不删除对奔腾FDIV缺陷的检查?,x86,vb6,compiler-optimization,cpu-architecture,X86,Vb6,Compiler Optimization,Cpu Architecture,请参见“项目属性/编译/高级优化”中VB6 IDE中出现的最后一个复选框: 这与大约25年前有缺陷的硬件有关(),但我很难想象任何当前的CPU仍然会有这个问题 然而,我不确定这张支票是否有值得保留的副作用?或者移除的不良影响 我看到这是针对Delphi的,但我找不到任何针对VB6的内容 从这些问题中,我得到的印象是,这不再是德尔福真正关心的问题 这是为了什么的摘要: 删除安全奔腾FDIV检查 这是另一个浮点值 优化。英特尔早期的一些奔腾芯片有一个bug 影响某些浮点除法计算。默认情况

请参见“项目属性/编译/高级优化”中VB6 IDE中出现的最后一个复选框:

这与大约25年前有缺陷的硬件有关(),但我很难想象任何当前的CPU仍然会有这个问题

然而,我不确定这张支票是否有值得保留的副作用?或者移除的不良影响

我看到这是针对Delphi的,但我找不到任何针对VB6的内容

从这些问题中,我得到的印象是,这不再是德尔福真正关心的问题


这是为了什么的摘要:

删除安全奔腾FDIV检查

这是另一个浮点值 优化。英特尔早期的一些奔腾芯片有一个bug 影响某些浮点除法计算。默认情况下, VB的数学例程可以防止奔腾错误,但是 VB代码中的数学运算比让处理器芯片来做要慢 为你。如果您确信您的程序不会在计算机上运行 带有Pentium FDIV错误的计算机,您可能需要激活此程序 优化

()


一些用于检查坏硬件的代码,这说明了问题本身:

如果CPU出现FDIV错误,则返回True 函数IsBuggedPentium()为布尔值 IsBuggedPentium=(1/3221224323)*3221224323)1 端函数 请注意,在运行的VB应用程序中,此代码始终返回False 作为p代码或使用标准编译选项编译。到 如果要检测到bug,必须在 使用“删除安全奔腾(tm)FDIV检查”编译的应用程序, 在“项目属性-高级优化”对话框中


()

删除检查可以提高性能。现代处理器没有FDIV缺陷,只有那些早期的奔腾。所以,除非你知道你将使用一个古老的奔腾处理器,否则就不会有任何风险。如果你的应用程序可以在这样的老处理器上运行,那么你就必须考虑它。这一检查的任何不希望的副作用,可能意味着它的价值是否就位?也许你的意思是说检查有令人满意的副作用?明显的不良副作用是性能降低。大概数值结果是一样的。@PeterCordes是的,你是按照我的意思读的。感谢删除复选框,然后从支持的处理器列表中删除奔腾。然后向您的客户收取额外的0.0001美元,以补偿2020年仍在使用奔腾的两位潜在买家的损失:)
' return True if the CPU suffers from the FDIV bug

Function IsBuggedPentium() As Boolean
    IsBuggedPentium = ((1 / 3221224323) * 3221224323) <> 1 
End Function