2010-05-24 58 views

回答

5

尝试section 8.6 of Gough's Introduction to GCC,它演示了x86 FLDCW指令。但是,如果您告诉我们为什么需要它,它会有所帮助 - 如果您希望双打是IEEE-754 64位双打,最简单的方法是使用-msse -mfpmath = sse进行编译。

1

你控制着什么精密元件?

根据Microsoft's Website

_control87函数获取和设置浮点控制字。浮点控制字允许程序更改浮点数学包中的精度,舍入和无穷大模式。您还可以使用_control87来屏蔽或取消屏蔽浮点异常。如果掩码的值等于0,则_control87将获得浮点控制字。如果掩码非零,则设置控制字的新值:对于掩码中的任何位(等于1),新位中的对应位用于更新控制字。换句话说,fpcntrl = ((fpcntrl & ~mask) | (new & mask))其中fpcntrl是浮点控制字。

请注意关键字“库”。此功能正在操纵Mac上可能不存在的Microsoft库。

我建议如下:

  1. 控制上 浮点芯片的Mac自己
  2. 或者使用微软的编译器为Mac
  3. 或者找移动 浮点控制的方法更多 通用点在您的程序中。

我可以给出的最好建议是尽可能多地将与标准和平台或库特定问题保持一致的代码降到最低。对于那些涉及平台特定功能的功能,请将它们移动到它们自己的源文件/翻译单元中。创建这些功能的副本,每个平台一个。让链接器决定使用哪个。

祝你好运。