我试图在mxcsr控制寄存器中设置位。我知道如何使用gcc(fesetenv
)来做到这一点,但我还没有能够使用这个有效的MSVC。我考虑过的可能性是:
_controlfp
函数,似乎并不是一对一匹配(请注意,我可能完全误解了这个函数,但所有这些都没有详细记录)。具体来说,我想设置these bits:
关于我如何做到这一点的任何想法?
答案 0 :(得分:0)
_controlfp
例程是一个适用于ARM,x86和x64的通用例程 - 没有理由期望它使用实际硬件寄存器使用的相同位。
从文章_controlfp可以看出,_controlfp
不允许单独控制输入和输出非正规数,而是将它们组合在一起。
要将x64 SSE2设置为将非正规操作数和输出刷新为零,请使用
_controlfp(_DN_FLUSH, _MCW_DN);