我正在尝试使用该指令mula.dd.ll.ldinc m3 , a5 , m0 ,m1
在我的汇编代码中 在具有 xtensa LX6 处理器的 ESP32 上。
它不会为其他指令产生错误,但对于此特定指令,它会产生register number out of range
。
我正在使用 a2-a4 来接收汇编代码中的参数,并使用其他寄存器来实现我的目的。xtensa LX6处理器具有16个(AR,32位)通用寄存器
我还尝试减少传递给汇编函数的参数编号并使用
mula.dd.ll.ldinc m3 , a3 , m0 ,m1
但它提供了相同的错误
此语法与指令集中使用的语法完全相同。
mula.dd.ll.ldinc m3 , a3 , m0 ,m1 // the instruction multiplies m0 * m1 and adds it to the accumulator and then loads data at a3+4 into m3 ( +4 is because of auto increment )
此语法与指令集中使用的语法完全相同。
mula.dd.ll.ldinc m3 , a3 , m0 ,m1
不,不完全是。此操作码的 ISA 书籍章节如下所述:
MULA.DD.*.LDINC mw, as, mx, my
The mx operand can designate either MAC16 register m0 or m1.
The my operand can designate either MAC16 register m2 or m3.
因此,不能将 M1 作为最后一个寄存器参数。