引言¶
本目录包含 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 教授监督。
本软件按原样免费分发。尽管已尽合理努力避免,但本软件可能包含有时会导致不正确行为的缺陷。本软件的使用仅限于能够并愿意对因其使用而产生的任何及所有损失、成本或其他问题承担全部责任的个人和组织。-------------------------------------------------------------------------------