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.

[参考译文] 编译器/TMS320F2.8377万S:浮点与零比较时,编译器输出错误代码

Guru**** 2484615 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/667066/compiler-tms320f28377s-compiler-output-wrong-code-when-float-point-compare-to-zero

部件号:TMS320F2.8377万S

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

来源如下:

浮子A,B;

内部主(无效)

如果(A >= 0) B = 0;

返回0;

}

我使用编译器18.1 G.1.LTS并得到如下错误结果:

MOV32    R0H,@_A

MOVB     AL,#0

MINF32   R0H,#0

MOV32    @_B,R0H

...

如果我使用6.4 编译器6.11.12,我得到了正确的结果:

MOV32    R0H,@_A

CMPF32   R0H,#0

MOVST0   ZF,NF

BF       $C$L1,LT

零     R0H

MOV32    @_B,R0H

$C$L1:    

MOVB     AL,#0

...

为什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,这看起来像一个虫子。 我已提交CodeGen-4517进行分析。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在C2000 CGT_16_C2000 16.9 中遇到了一个类似的错误,在该错误中,两个浮点之间的比较总是导致执行真实的情况。

    是否已在16.9 7或更高版本中解决了CodeGen-4517?

    论坛页面显示“TI认为解决了”

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

    结果发现CodeGen-4517被标记为 CodeGen-4518的副本,因此您应该跟踪该副本。   

    Jonathan Leehey 说:
    是否已在16.9 7或更高版本中解决CodeGen-4517?[/QUOT]

    否。 目前,它在任何版本中都没有固定。

    谢谢,此致,

    -George