引言

本目錄包含 NetWinder 浮點模擬器 0.92 測試版。

大部分程式碼由我,Scott Bambrough 編寫。它用 C 語言編寫,只在需要時有少量例程使用內聯彙編。編寫速度很快,目標是首先實現編譯器發出的所有浮點指令的可用版本。我已盡力做到最最佳化,但仍有很大的改進空間。

我已盡力使模擬器儘可能地可移植。其中一個問題是核心符號上的前導下劃線。Elf 核心沒有前導下劃線,a.out 編譯的核心有。我已嘗試在可能重要的地方使用 C_SYMBOL_NAME 宏。

我做出的另一個選擇是檔案結構。我已嘗試將所有作業系統特定程式碼包含在一個模組 (fpmodule.*) 中。所有其他檔案包含模擬器特定程式碼。這應該能讓其他人相對容易地將模擬器移植到例如 NetBSD。

浮點操作基於 John Hauser 的 SoftFloat Release 2。SoftFloat 是浮點數的軟體實現,符合 IEC/IEEE 二進位制浮點算術標準。它支援多達四種格式:單精度、雙精度、擴充套件雙精度和四精度。除了十進位制轉換外,標準要求的所有操作都已實現。我們只使用單精度、雙精度和擴充套件雙精度格式。SoftFloat 到 ARM 的移植由 Phil Blundell 完成,基於 Neil Carson 為 NetBSD/arm32 早期移植的 SoftFloat 版本 1。

檔案 README.FPE 包含模擬器目前已實現功能的描述。檔案 TODO 包含關於待完成工作和模擬器其他想法的資訊。

錯誤報告、評論、建議請直接傳送至 <scottb@netwinder.org>。關於“您的模擬器安裝後此程式無法正常工作”的一般性報告有助於確定錯誤仍然存在;但在嘗試隔離問題時幾乎沒用。請報告它們,但不要期望快速處理。錯誤仍然存在。問題仍然在於隔離哪條指令包含錯誤。說明特定問題的小程式是天賜之物。