2010-05-24 63 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. 或者找移動 浮點控制的方法更多 通用點在您的程序中。

我可以給出的最好建議是儘可能多地將與標準和平臺或庫特定問題保持一致的代碼降到最低。對於那些涉及平臺特定功能的功能,請將它們移動到它們自己的源文件/翻譯單元中。創建這些功能的副本,每個平臺一個。讓鏈接器決定使用哪個。

祝你好運。