在Xtensa程序集中执行以下操作的正确方法是什么:
a4=(1<<a5(
其中a4和a5是寄存器,a5可以包含值0到3(将来可能是0到7,但现在不太担心。(
我相信这一定很简单,但似乎很棘手。
根据Xtensa ISA,您必须使用ssl指令(设置左移量(将移位量加载到内部移位量寄存器(SAR(中。然后,您必须使用sll(逻辑左移(指令,该指令占用两个寄存器,目标寄存器和包含要移位值的寄存器。与汇编程序中的表达式a4 = ( 1 << a5 )
等效的是:
movi a4, 1
ssl a5
sll a4, a4