跳转至

操作数与格式类

公共操作数

名称 作用
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 数和每次处理的元素宽度;
  • 有符号/无符号比较与移位;
  • 累加精度;
  • 转换方向、舍入与饱和;
  • 可接受的地址和配置字段。

因此必须把“助记符 + 完整后缀 + 操作数”作为一个整体交给汇编器验证。