This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TMS570LS3137:ARM 5.1 ™︎5.

Guru**** 2563960 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/592923/compiler-tms570ls3137-arm-5-1-5

部件号:TMS570LS3137

工具/软件:TI C/C++编译器

我正在尝试测试5.1 在我强制出错时是否调用了\ti\ccsv5\tools\compiler\arm_Feraise .5\lib\src\xferaise .c中的_Feraise操作。

我曾尝试过将浮点除以零,但我发现没有调用Feraise操作。

请告诉我这种行为是否是意料之中的?

我还会尝试使用溢出,下溢和减号的平方根。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dave,您好!

    我将把这个问题移到我们的C/C++编译器论坛,以便我们的编译器专家能够对其进行讨论。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我发现在尝试计算负数的平方根时调用了_Feraise。
    我曾试图强制溢出,但这不会导致叫费尔泰。 将两个数字相乘得出一个大于32位浮点最大值的结果,似乎被固定为一个高但有效的值。
    我试图通过将两个数字除以小于32位浮点最小值的数字来强制下溢,但这也不会导致调用_Feraise。 结果数字被设置为0。
    这种行为是否为预期行为?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    哈比森和斯泰尔:
    "浮点溢流和下溢通常以机器支持的任何方便方式进行处理。"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    C语言内置的浮点运算(加法,除法,比较等)由在汇编代码中实现的RTS中的一组例程处理。  例如,在源文件fd_div*.asm中,使用名为__aeabi_ddiv的例程执行double类型的除法。  (Thumb,ARM和Thumb-2指令集有多种版本。)  检测到错误时,这些例程不调用_Feraise。  例如,在除法例程的注释中,您会看到...

    ;* o除以零返回零 

    更高级别的浮点运算(如sin,cos,sqrt等 )由C中实现的例程处理。检测到错误时,这些例程调用_Feraise。

    谢谢,此致,

    -George