操作数与格式类
公共操作数
| 名称 |
作用 |
Xd |
目标标量、目标地址或目标描述 |
Xn |
第一源标量或源地址 |
Xm |
第二源、索引、偏移或搬运配置 |
Xs |
Vector repeat/stride 配置或 Cube shape 控制 |
Xi/Xj |
成对访存的两个标量寄存器 |
VA<n> |
Vector 地址/索引描述 |
MASK |
Vector lane 执行掩码 |
CMPMASK |
Vector 比较结果掩码 |
SPR |
以名称访问的特殊寄存器 |
#imm |
编码在机器字中的立即数 |
#event |
同步事件槽编号 |
#target |
跳转、调用或循环目标/偏移 |
Scalar 格式
| 格式类 |
语法通式 |
参数与作用 |
S-RRR |
OP.<dtype> Xd, Xn, Xm |
Xd 目标;Xn/Xm 两个源;dtype 控制解释方式 |
S-RR |
OP.<dtype> Xd, Xn |
一元运算或转换 |
S-RI |
OP Xd, #imm |
构造或移动立即数 |
S-RRI |
OP.<dtype> Xd, Xn, #imm |
寄存器与立即数算术 |
S-CMP-RR |
CMP.<cond>.<dtype> Xn, Xm |
比较两个寄存器并更新隐式条件 |
S-CMP-RI |
CMP.<cond>.<dtype> Xn, #imm |
寄存器与立即数比较 |
S-LDST-R |
LD/ST.<dtype> Xd, [Xn], Xm |
基址加寄存器偏移的标量访存 |
S-LDST-I |
LD/ST.<dtype> Xd, [Xn], #imm |
基址加立即数偏移的标量访存 |
S-PAIR |
LDP/STP.<dtype> Xi, Xj, [Xn] |
成对加载或存储 |
S-SPR |
MOV Xd, SPR / MOV SPR, Xn/#imm |
特殊寄存器读写 |
S-BIT |
OP Xd, Xn, <bit/width> |
位域插入、抽取或重排 |
S-SPECIAL |
专用 |
原子、设备或索引存储等专用参数 |
标量 ST 语法中的第一个 X 操作数是待写数据;表格沿用统一名称 Xd,不表示它在语义上是目标寄存器。
Flow 格式
| 格式类 |
语法通式 |
参数与作用 |
F-PC |
JUMP/CALL #target |
PC 相对控制流 |
F-REG |
JUMPR/CALLR Xn |
寄存器间接控制流 |
F-NONE |
RET / NOP / END |
无显式操作数 |
F-LOOP |
LOOP #target |
建立硬件循环范围 |
F-CMP |
JUMPCMP... |
比较与跳转融合格式 |
F-SYNC |
OP.<src>.<dst> #event |
事件、等待或屏障参数 |
F-SPECIAL |
专用 |
缓存维护、预取、地址生成等格式 |
MTE 格式
| 格式类 |
语法通式 |
参数与作用 |
M-MOVE3 |
MOV_<SRC>_TO_<DST> [Xd], [Xn], Xm |
目标地址、源地址、burst/stride 等打包参数 |
M-2D3D |
LOAD/SET_<mode> [Xd], [Xn], Xm |
2D/3D/Winograd/transpose 描述 |
M-CODEC |
COMPRESS/DECOMPRESS... [Xd], [Xn], Xm |
压缩流、头和索引参数 |
M-IMAGE |
LOAD_IMAGE [Xd], [Xn], Xm |
图像加载/AIPP 描述 |
M-SPECIAL |
专用 |
广播、块复制或其他专用搬运 |
MTE 的 Xm 往往是打包描述,而不是普通字节长度。除非已经掌握字段布局,应从对应 builtin 生成它。
Vector 格式
| 格式类 |
语法通式 |
参数与作用 |
V-UNARY |
OP.<dtype> [Xd], [Xn], Xs, MASK |
一源逐 lane 运算;VLRELU 另带标量斜率 Xm |
V-BINARY |
OP.<dtype> [Xd], [Xn], [Xm], Xs, MASK |
两源逐 lane 运算 |
V-SCALAR |
OP.<dtype> [Xd], [Xn], Xm, Xs, MASK |
向量与标量运算 |
V-CONV |
VCONV.<src2dst> [Xd], [Xn], Xs, MASK |
独立转换使用一个向量源;融合转换使用 Xn/Xm 两个向量源 |
V-CMP |
VCMP.<cond>.<dtype> ... |
产生比较掩码或向量结果 |
V-REDUCE |
OP.<dtype> [Xd], [Xn], Xs, MASK |
常规归约使用一个源;VREDUCE/VREDUCEV2 使用 Xn/Xm 两个向量源 |
V-MOVE |
专用地址/VA 操作数 |
搬移、gather/scatter、通道和布局重排 |
V-SPECIAL |
专用 |
锁、索引、RPN、排序等专用操作 |
Xs 通常打包 repeat、block stride、repeat stride 和模式位。MASK 的有效 lane 数随 dtype 改变。
Cube 与 Fixpipe
| 格式类 |
语法通式 |
参数与作用 |
C-MMAD |
MMAD[_SP].<dtype> [Xd], [Xn], [Xm], Xs |
L0C、L0A、L0B 地址及 shape/累加配置 |
X-FIX |
内部 Fixpipe 格式 |
L0C 结果转换、量化和搬出相关参数 |
R |
无公共语法 |
内部/保留条目 |
后缀不是独立参数
.s16、.f32、.f162f32、.EQ 等后缀参与机器码选择,并可能同时改变:
- lane 数和每次处理的元素宽度;
- 有符号/无符号比较与移位;
- 累加精度;
- 转换方向、舍入与饱和;
- 可接受的地址和配置字段。
因此必须把“助记符 + 完整后缀 + 操作数”作为一个整体交给汇编器验证。