请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:ARM-CGT 工具/软件:TI C/C++编译器
为了更好地理解此缺陷的含义、我希望获得更多信息、特别是测试案例的详细信息或有关此缺陷发生的确切时间的足够信息、以便我可以将测试案例放在一起。
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.
工具/软件:TI C/C++编译器
为了更好地理解此缺陷的含义、我希望获得更多信息、特别是测试案例的详细信息或有关此缺陷发生的确切时间的足够信息、以便我可以将测试案例放在一起。
使用 ARM 编译器版本16.9.7.LTS。
构建此代码...
#include typedef uint32_t array_t[16]; #define L 12 #define M 13 void fxn (array_t array、uint64_t count) { array[L]=(uint32_t) count; array[M]=(uint32_t)(count >> 32); }
(笑声) 使用此命令...
% armcl -o4 -s -mv7m3 file.c
检查生成的 file.asm 以查看以下行...
;** 8 -------------------- array[12]= count; ;** 9--------------- array[13]=count>>32;;** ------------ 返回; .dwpsn 文件"file.c"、第8行、第4列、IS_stmt、ISA 1. 结构 A4、[A1、#48] ;[DPU_3_PIPE]|8| .dwpsn 文件"file.c"、第9行、第4列、IS_stmt、ISA 1. MOV A2、A3 ;[DPU_3_PIPE]|9| 结构 A2、[A1、#52] ;[DPU_3_PIPE]|9|
此代码不正确。 但最好用...替换最后两条指令。
结构 A3、[A1、#52]
谢谢、此致、
乔治
[引用 user="PauloP"]如果指定了特定级别的优化、编译器是否仅插入此不必要的寄存器副本[/quot]
它仅在优化级别4发生。
[引用 user="PauloP"]即使没有请求优化,编译器也可以这样做吗?
当不使用优化(--opt_level=off)时,生成的代码会有很大的不同。 它更大且更慢。 因此、虽然编译器不提交该特定错误、但这是因为完全避免了提交该错误的机会。
谢谢、此致、
乔治