1 介绍
SoftFloat是一个开源的、跨平台的、高效实现IEEE 754单精度和双精度浮点数运算的C代码库。
该项目由John L. Hennessy教授领导的斯坦福大学计算机系统实验室开发。它提供了完整的API接口,可以方便地集成到各种应用中。
官网:http://www.jhauser.us/arithmetic/SoftFloat.html
目前最新版是,2018.1月发布的softfloat 3e。
如果未来,官网失效,可以从这里下载源码:
https://pan.baidu.com/s/1eGZJGpTbtRa2eRSfN8TDPQ,提取码:1rfz
2 使用
-
编译
以X86平台Linux环境为例,只需要进入SoftFloat-3e\build\Linux-x86_64-GCC目录,执行make,就可以编译源码,然后在此目录下,生成softfloat.a静态库。 -
调用
在SoftFloat-3e\source\include目录下,有一些头文件,include后,可调用相关库函数。最后链接时,需要通过-l
指定链接此静态库。
对于,需要软件来模拟实现浮点运算的场景,这个库很实用,直接调用库函数即可,使用很简单。
此外,在NEMU模拟器(RISC-V)中,也使用了SoftFloat,有兴趣,可以下载NEMU源码来研究研究。