请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:RM57L843 工具与软件:
int myfunc(int num) { int x,i; for(i=0; i<10; i++) { x= (num*num)+i; } return x; }
对于上面的示例代码、我使用 ARM GCC 10.2.1。 当我使用优化级别-O1时、会生成以下汇编代码:
myfunc: mov r3, r0 mul r3, r0, r3 add r0, r3, #9 bx lr
当我使用-og 时、将生成以下程序集:
myfunc: mov r3, #0 b .L2 .L3: mla r2, r0, r0, r3 add r3, r3, #1 .L2: cmp r3, #9 ble .L3 mov r0, r2 bx lr
有人能告诉我在使用-og 时导致生成 MLA 指令的标志是什么吗? 显然-og 使用-O1使用的所有标志、但干扰调试的标志除外。 我手动检查了所有 O1标记、但无法重现-og 生成的结果。 我的目标是确定启用该指令的特定标志。 谢谢