引言¶
本目錄包含 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>。關於“您的模擬器安裝後此程式無法正常工作”的一般性報告有助於確定錯誤仍然存在;但在嘗試隔離問題時幾乎沒用。請報告它們,但不要期望快速處理。錯誤仍然存在。問題仍然在於隔離哪條指令包含錯誤。說明特定問題的小程式是天賜之物。
法律宣告¶
NetWinder 浮點模擬器是自由軟體。Rebel.com 編寫的所有內容均根據 GNU GPL 提供。複製條件請參閱 COPYING 檔案。SoftFloat 程式碼不在此列。John Hauser 對 SoftFloat 的法律宣告包含在下面。
SoftFloat 法律宣告
SoftFloat 由 John R. Hauser 編寫。這項工作部分得益於國際計算機科學研究所 (International Computer Science Institute),該研究所位於 1947 Center Street, Suite 600, Berkeley, California 94704。部分資金由國家科學基金會根據 MIP-9311980 撥款提供。此程式碼的原始版本是與加州大學伯克利分校合作構建定點向量處理器專案的一部分,由 Nelson Morgan 教授和 John Wawrzynek 教授監督。
本軟體按原樣免費分發。儘管已盡合理努力避免,但本軟體可能包含有時會導致不正確行為的缺陷。本軟體的使用僅限於能夠並願意對因其使用而產生的任何及所有損失、成本或其他問題承擔全部責任的個人和組織。-------------------------------------------------------------------------------