VAESKF1.VI 是否总能带 v0.t 掩码?
不能。该类 element-group 密码指令没有 vm 操作数;不要把普通 RVV 掩码语法套到页面示例中。
AES-128 向量前向 key schedule,按 uimm 选择轮常量;SEW=32,无 vm 操作数。
vd、vs2 选择向量寄存器 v0–v31;uimm 是 0–31 的 5 位无符号立即数。没有 v0.t 掩码操作数,v0 作为普通数据寄存器可写。
32 位 OP-VE:funct6=100010,vm=1,vs2[24:20],uimm[4:0][19:15],funct3=010,vd[11:7],opcode=1110111。
要求启用 Zvkned 与向量状态,SEW=32、EGW=128、EGS=4。vs2 提供当前密钥,vd 接收下一密钥;有效轮号 1–10。忽略 uimm[4],低 4 位为 0 或 11–15 时翻转 bit3,映射为 8 或 3–7。
从组 vstart/4 处理至 vl/4−1;vl 或 vstart 不是 4 的倍数、或 SEW≠32 时编码保留。LMUL*VLEN<128 时即使 vl=0 也引发非法指令异常。寄存器组须满足 V 扩展对齐规则;执行延迟必须与操作数据无关。
VAESKF1.VI 使用 opcode 1110111(0x77)、funct3 010。32 位 OP-VE:funct6=100010,vm=1,vs2[24:20],uimm[4:0][19:15],funct3=010,vd[11:7],opcode=1110111。
vaeskf1.vi 是 Zvkned 的 AES-128 前向 key schedule 指令。它以 128 位 element group 为单位读取 vs2 中的当前轮密钥,按 uimm 指定的轮数生成下一轮 AES-128 round key,并写入 vd。SEW 必须为 32。
AES-128 向量前向 key schedule,按 uimm 选择轮常量;SEW=32,无 vm 操作数。
vd、vs2 选择向量寄存器 v0–v31;uimm 是 0–31 的 5 位无符号立即数。没有 v0.t 掩码操作数,v0 作为普通数据寄存器可写。
32 位 OP-VE:funct6=100010,vm=1,vs2[24:20],uimm[4:0][19:15],funct3=010,vd[11:7],opcode=1110111。
要求启用 Zvkned 与向量状态,SEW=32、EGW=128、EGS=4。vs2 提供当前密钥,vd 接收下一密钥;有效轮号 1–10。忽略 uimm[4],低 4 位为 0 或 11–15 时翻转 bit3,映射为 8 或 3–7。
从组 vstart/4 处理至 vl/4−1;vl 或 vstart 不是 4 的倍数、或 SEW≠32 时编码保留。LMUL*VLEN<128 时即使 vl=0 也引发非法指令异常。寄存器组须满足 V 扩展对齐规则;执行延迟必须与操作数据无关。
启用 Zvkned 与向量状态,VLEN=128、LMUL=1、SEW=32、vl=4、vstart=0;v8 与 v16 的输入元素组均为零。按基础示例的轮号与本页规则计算,得到 v8=0x63636362636363626363636263636362。
启用 Zvkned 与向量状态,VLEN=128、LMUL=1、SEW=32、vl=4、vstart=0;v8 与 v16 的输入元素组均为零。按基础示例的轮号与本页规则计算,得到 v8=0x63636362636363626363636263636362。
不能。该类 element-group 密码指令没有 vm 操作数;不要把普通 RVV 掩码语法套到页面示例中。
仅定义 SEW=32,以 EGW=128、EGS=4 的元素组执行。其它 SEW、非 4 倍数的 vl 或 vstart 均为保留编码;LMUL*VLEN<128 时,即使 vl=0 也引发非法指令异常。
uimm 是 0–31 的 5 位无符号立即数;忽略 uimm[4]。低 4 位为 0 或 11–15 时翻转 bit3:0→8,11–15→3–7;有效轮号为 1–10。