帮QQ技术支持群的同学发技术咨询,提问:
请教大家一个问题 为什么 我写的一个并行指令 如:MNOP || [I0++]=R4 || R5 = [P5++]; 编译都没问题 但我通过仿真器在硬件BF533上总是一运行到这就报异常 是不是仿真器不支持并行指令执行?
分开写吧,汇编指令最多每个内核时钟可执行4条,但有个条件,必须是同一类的赋值指令才可以。你使用并行,可能是希望在同一个时钟内执行完成,但编译器仍然会将你的指令重新分配。如果你的指令是同一类的赋值指令,只要两条指令在一起,不需要增加并行符号,编译器仍然会一次性执行。
具体你可以看一下编译代码后,右边出现的汇编窗口的指令,那个是编译器要执行的目标文件,看编译器将你的指令做了什么修改。
好像debug的汇编指令里面并行语句没有优化