RISC-V 指令集在线查询手册

指令 · 寄存器 · CSR · ABI

RVOPcode 是面向开发者的 RISC-V 指令集在线查询手册。你可以按助记符、扩展、功能、场景快速查询指令语法、编码、示例,也可以查看通用寄存器、CSR、ABI 调用约定、伪指令展开和指令格式说明。

试试搜索:addi·jalr·mstatus·ra·call·I-type·函数调用
怎么使用搜索

可直接搜索助记符、ABI 名、CSR 名称或中文主题词。

指令寄存器CSR主题↑ ↓ 切换Enter 打开

当前搜索记录

还没有搜索记录

核心入口

多维度分类浏览

按格式
AMOAMO-typeB-typeCC-typeC2 (Zcmp CMPP)CA formatCA-formatCB-formatCBO MISC-MEM fixed fieldsCI formatCI-formatCJ formatCL-formatCR formatCS-formatCSS-formatI-typeI-type (OP-IMM)I-type (OP-IMM-32)I-type (OP-IMM-32, RV64)J-typeOP-32 (R-type)OP-FPOP-FP conversion fieldsOP-FP move fieldsOP-IMM (I-type)OP-VOP-V (OPFVF)OP-V (OPFVV)OP-V (OPIVV)OP-V / OPFVFOP-V / OPFVVOP-V / OPFVV VFUNARY1OP-V / OPIVIOP-V / OPIVVOP-V / OPIVXOP-V OPIVV (funct6=010101, funct3=000)OP-V OPIVX (funct6=010101, funct3=100)OP-V OPMVV (funct6=010010, vs1=01001, funct3=010)OP-V VXUNARY0 (funct3=010)OP-V vector configuration (immediate AVL)OP-V vector configuration (register vtype)OP-V vector-configuration formatOP-V vector-vector formOP-VE (32-bit)OP-VE OPMVV (funct6=101000, vm=1, vs1=10001, funct3=010)OP-VE OPMVV (funct6=101100, vm=1, funct3=010)OP-VE vector-scalar formOP-VE vector-vector formOPFVFOPFVVOPIVIOPIVI (OP-V)OPIVVOPIVV (OP-V)OPIVXOPIVX (OP-V)OPMVVOPMVV (OP-V)OPMVXOPMVX (OP-V)R-typeR-type (OP with bs in bits 31:30)R-type HINT (ADD x0, x0, x2)R-type HINT (ADD x0, x0, x3)R-type HINT (ADD x0, x0, x4)R-type HINT (ADD x0, x0, x5)R4-typeS-typeSHA2 OP-IMM fixed-selector fieldsSTORE-FPSYSTEM (MOP.R.28)SYSTEM (MOP.RR.7)SYSTEM (R-type encoding)SYSTEM (Zimop MOP.R)SYSTEM I-type fieldsSYSTEM R-typeSYSTEM R-type fieldsU-typeU-type (AUIPC HINT)V-typeV-type (OP-V / OPFVF)V-type (OP-V / OPFVV VFUNARY0)V-type (OP-V / OPFVV)V-type (OP-V / OPIVI)V-type (OP-V / OPIVV)V-type (OP-V / OPIVX)V-type (OP-VE / OPMVV)Vector OP-V (OPIVI)Vector OP-V (OPIVV)Vector OP-V (OPIVX)Vector OP-VE (OPMVV)Vector StoreZimop MOP.R SYSTEM fieldsZimop MOP.RR SYSTEM fields
按场景
地址与指针寄存器操作循环与迭代常量与立即数基础算术函数调用与返回分支与跳转数据加载数据存储比较与判断无符号边界检查寄存器差值取负位操作与掩码调试与监控系统与特权执行环境调用字节数据加载符号扩展零扩展半字数据加载无符号半字加载代码段对齐为内联代码修改预留空间置位掩码位字段合并字节数据存储半字数据存储位操作与移位有符号比较位操作类型转换逻辑运算内存排序设备与 IO并发同步RV64 的 32 位加法32 位结果符号扩展RV64I 或 RV32 Zilsd 双字加载基址加偏移寻址无符号数据加载双字数据存储RV32 Zilsd 寄存器对存储32 位逻辑左移位运算与掩码原子与同步CSR 访问自修改代码JIT编译动态代码生成乘法与除法XLEN位整数乘法有符号乘积高半多字有符号乘法无符号乘积高半RV64低32位整数乘法整数取余RV64 专用操作32 位原子操作边界值更新无符号比较无符号边界值原子位翻转LR/SC 条件更新原子读改写Zcmop May-Be-Operations扩展定义的行为无符号字索引地址生成无符号字零扩展与左移地址计算clz 前导零计数clzw 前导零计数cpop 置位计数cpopw 置位计数ctz 尾随零计数位计数整数比较整数最值字节零检测加密与安全网络与字节序循环右移逐位相等掩码异或结果取反低 16 位零扩展特定用途构造无分支条件选择序列扩展兼容性Zimop 默认写零扩展重定义Zimop 扩展兼容性原子操作与同步并发与多核节能优化浮点基本运算数值计算整数转浮点单精度浮点到有符号 32 位整数转换浮点到无符号整数转换浮点条件判断浮点融合运算浮点比较构造浮点位模式NaN payload 保留调试原始编码浮点位模式检查符号操作浮点位操作分类掩码NaN 分类正负零分类64 位数值转换RV64 浮点与64位整数转换双精度数值计算浮点格式转换整数到浮点转换双精度浮点到有符号 32 位整数转换双精度浮点到无符号 32 位整数转换双精度类别识别双精度位模式构造RV64 原始编码调试双精度位模式检查浮点算术浮点特殊值分类区分正负零与 NaN 类别浮点到整数转换浮点格式加宽整数到浮点的数值转换四精度浮点到有符号 32 位整数转换浮点访存数据加载与存储半精度浮点到有符号 32 位整数转换浮点位移动调试与位模式检查JavaScript整数模转换模2^32转换浮点常量RV32 双精度数据搬移浮点舍入数值格式处理浮点内存访问FP32 数据的 BF16 交换格式转换将 BF16 数据加宽为 FP32常数生成16 位空操作与零比较的条件分支间接跳转与返回压缩字加载栈访问位移操作栈分配对象的指针生成压缩代码中的地址计算RV64专用操作双字数据加载栈相对双字加载高位常量生成栈帧寄存器保存有符号整数缩放逻辑右移整数减法按位异或32 位和的符号扩展短距离跳转并链接数组与内存访问压缩与代码优化压缩位运算有符号字节值扩展有符号半字值扩展紧凑半字存储寄存器零扩展函数尾声函数序言影子栈返回地址校验成功匹配后弹出影子栈影子栈返回地址副本存储固定 x1 的压缩影子栈压入加密与密码向量化加速对活动向量元素执行向量-标量按位与非。对活动向量元素执行向量元素全位反转。对活动向量元素执行向量字节内位反转。对活动向量元素执行向量无进位乘法低位。对活动向量元素执行向量-标量无进位乘法低位。逐元素位运算示例SM4 四轮状态变换向量轮密钥拓宽逻辑左移零扩展位操作向量整数算术拓宽运算向量化循环定点平均运算向量数据处理RVV 掩码执行多字整数加法逐元素进位输入数组运算逐元素统一增加整数标量逐元素保留或清除位定点平均减与 vxrm 舍入稀疏数据压缩流式压缩向量化整数缩放批量求商科学计算DSP向量浮点运算数值分类NaN/无穷检测向量化数据清洗整数数据转浮点向量混合类型向量计算向量化数值准备浮点结果转整数向量截断型数值转换按 frm 舍入转换向量归一化按标量缩放逐元素浮点除法掩码首个置位查找活动匹配索引浮点融合累加掩码逐元素乘加覆写乘数的融合乘加逐元素浮点最大值下界裁剪条件赋值三元运算符逐元素浮点最小值上界裁剪融合乘减缩放增益调节向量浮点乘法逐元素乘法归约结果提取标量-向量接口归约初始化标量写入元素0向量初始化常数广播高精度浮点计算后压缩格式浮点向量存储前窄化宽有符号整数压缩为较窄浮点格式混合整数/浮点向量处理宽无符号整数压缩为较窄浮点格式向量数值格式转换多步浮点窄化避免二次舍入误差的中间步骤宽浮点截断为较窄有符号整数向量化格式转换需要截断语义的格式压缩宽浮点到较窄无符号整数宽浮点结果落地为较窄有符号整数转换后存储或整数后处理宽浮点结果落地为较窄无符号整数向量化格式压缩对乘积和另一项同时取负的融合运算负乘积融合运算倒数缩放除法优化Newton-Raphson向量归约极值查找最小值查找向量求和点积高性能归约常数减向量用标量符号控制向量向量 copysign逐元素符号复制逐 lane 复制符号位构造向量 copysign符号位教学演示用标量相反符号控制向量批量改变结果符号符号位取反逐 lane 注入相反符号构造向量负 copysign用标量符号条件翻转向量符号位 XOR按标量符号选择保留或翻转符号逐 lane 条件翻转符号向量绝对值/取反构造逐元素平方根向量范数差分高精度累加混合精度向宽浮点向量加入窄浮点向量混合精度加法binary32 向量提升到 binary64混合精度浮点计算入口扩宽后进行更高精度处理整数向量提升到 binary64 浮点混合精度向量计算入口保留 32-bit 整数精度的浮点路径浮点结果写入 64-bit 整数向量混合类型向量转换需要双倍宽度整数结果的数值路径SEW 浮点到 2*SEW 整数活动元素类型转换SEW 乘数与 2*SEW 宽加数活动元素融合乘加binary32 乘数与 binary64 旧目标融合运算binary32 乘数生成 binary64 乘积拓宽负融合乘加拓宽负融合乘减拓宽有序浮点求和拓宽无序浮点求和高精度差分序列生成循环计数器用作gather索引稀疏数据索引压缩辅助条件收集连续数组读取向量化内存访问数据依赖退出循环连续元素扫描可缩短 vl 的向量读取向量化字符串扫描探测连续内存边界恢复 packed mask 数据向量掩码保存/恢复掩码 spill/fill有顺序要求的间接读取设备或有副作用地址空间访问稀疏表读取结构体字段访问矩阵列或行跨距访问非连续向量读取稀疏数据读取无顺序要求的 gather 访问间接数组装载按无符号字节偏移收集数据无元素顺序保证的索引读取逐元素整数乘累加保留 SEW 位的乘加多精度加法大整数运算进位传递逐元素整数乘加逐元素最大值选择数据裁剪阈值处理掩码扩展生成谓词掩码NaN 检查向量化条件执行生成浮点比较掩码使用 v0.t 控制比较元素多精度减法循环终止条件数据依赖退出条件执行范围检查谓词掩码set-only-first 掩码通用乘法定点运算分数乘法设置元素 0向量常量初始化复制向量寄存器 body 元素广播整数标量读取向量元素 0提取向量标量结果编译器寄存器重排向量寄存器组重排复制完整向量寄存器组定点结果窄化向量 DSP 缩放输出需要饱和标志的宽到窄转换定点缩放与舍入输出向量整数乘积累减SEW 宽破坏性乘减向量标量整数乘积累减覆盖第一乘数的整数乘减SEW 模运算宽整数位域提取2*SEW 到 SEW 窄化宽源字段提取整数窄化设置特定位、合并位字段或组合逐元素数据位模式RVV 逐元素位操作循环条件判断掩码密度统计归约向量与初值的按位与归约向量与初值的有符号最大值归约向量与初值的无符号最大值归约向量与初值的有符号最小值单宽无符号最小值归约带初值的掩码归约单宽按位或归约单宽求和归约单宽按位异或归约逐元素有符号求余带掩码的向量求余逐元素无符号求余寄存器查表向量元素重排逐元素反向减法计算向量相反数连续数组写入循环stripmining向量长度配置上下文切换向量状态恢复向量整数扩展EEW 到 SEW 扩展V 标准向量扩展寄存器元素重排按标量偏移重排元素保留低索引目标元素向量运算乘以2的幂保存 packed mask 数据上下文切换中的掩码状态保存有符号定点分数相乘需要 vxrm 舍入的向量缩放通过 vxsat 检测饱和有顺序要求的间接写入设备或有副作用地址空间写入稀疏表更新有符号移位位域操作非连续向量写回定点缩放向量移位DSP 数据路径逐元素向量差值向量数据减法稀疏数据写入无顺序要求的 scatter 访问间接数组存储宽化加法拓宽乘加拓宽整数累加拓宽整数乘法有符号拓宽求和归约无符号拓宽求和统计聚合有符号拓宽减法无符号拓宽运算翻转特定位、组合奇偶位模式或逐元素差异掩码机器学习predicate 条件组合mask logical family 对比masked execution 前的掩码构造LR 保留集轮询共享状态等待有短超时的保留集轮询缓存与提示性能优化已修改缓存块的写传输相关非一致性代理的可见性非一致性代理间的数据可见性缓存块对应内存字节清零数据安全密钥调度SHA-256 σ0 变换SHA-256 σ1 变换SHA-256 Σ0 变换SHA-256 Σ1 变换SHA-512 σ0 变换SHA-512 哈希变换整数寄存器位运算哈希算法国密算法字节内位序重排逐字节 bit 反转前向CFI保护间接调用/跳转目标标记安全加固寄存器低半拼接密码位操作寄存器低位字段拼接影子栈切换影子栈检查点保存影子栈检查点维护影子栈检查与展开影子栈状态读取影子栈展开与切换位解交错RV32 SHA3 位交错表示寄存器内查表寄存器内位交错SHA3 位交错M模式中断/异常处理程序返回固件/SEE返回OS内核异常/中断返回空闲循环节能低功耗等待修改页表后同步TLBmunmap/mprotect后刷新地址空间切换调试器返回硬件断点恢复G-stage 页表同步VS-stage 页表同步Guest 字节访问虚拟机内存加载VS/VU 有效特权两阶段地址转换访客无符号字读取访客取指仿真访客内存写入Hypervisor设备仿真Guest内存访问虚拟化指令模拟RNMI 处理程序返回内存管理地址转换失效地址转换缓存失效Svinval 序列G-stage 失效序列VS-stage 失效序列代码优化

每日指令

寄存器ABI用途保存者
x0zero零值常量不可变
x1ra函数返回地址调用后不保持
x2sp栈指针调用后保持
x3gp全局指针;不可分配,标准 ABI 过程不应修改。不可分配
x4tp线程指针;不可分配,标准 ABI 过程不应修改。不可分配
x5t0临时变量/备用链接寄存器调用后不保持
x10a0参数/返回值调用后不保持
x11a1参数/返回值调用后不保持