我想知道 glibc 库中的哪些代码和文件在启用陷阱时负责为浮点异常生成陷阱。
目前,RISC-V 的 GCC 不捕获浮点异常。我有兴趣添加此功能。因此,我正在研究如何在 GCC for x86 中实现此功能。
我知道我们可以按照 [question] ( Trapping floating-point overflow in C ) 中的描述捕获信号,但我想了解有关它如何工作的更多详细信息。
我浏览了 glibc/math 中的文件,据我所知,这些文件以某种形式负责生成陷阱,例如
fenv.h
feenablxcpt.c
fegetexpect.c
feupdateenv.c
以及许多其他以 . 开头的文件fe
。
所有这些文件也存在于 RISC-V 的 glibc 中。我无法弄清楚 x86 的 glibc 如何生成陷阱。