Page 332 - 《软件学报》2021年第12期
P. 332
3996 Journal of Software 软件学报 Vol.32, No.12, December 2021
Fig.2 Register status of RV32I/RV64I [11]
图 2 RISC-V 整数指令集(RV32I/RV64I)的寄存器状态 [11]
Table 2 The meaning of each x register in standard calling convention
表 2 标准调用约定下的各 x 寄存器含义
寄存器名 ABI 助记符 含义 是否跨调用保留
x0 zero 0 −(不可变)
x1 ra 返回地址 否
x2 sp 栈指针 是
x3 gp 全局指针 −(不允许)
x4 tp 线程指针 −(不允许)
x5~x7 t0~t2 临时寄存器 否
x8~x9 s0~s1 被调用者保存 是
x10~x17 a0~a7 参数寄存器 否
x18~x27 s2~s11 被调用者保存 是
x28~x31 t3~t6 临时寄存器 否
RV32I 有 4 种基础指令格式:R/I/S/U,指令集中的任何指令都可以根据操作数的数量、种类、规模以及
自身的功能需求,选用其中一种格式.所有这些指令格式都是 32 位固定长度,并且必须在内存中对齐到 4 字节
的边界.图 3 显示了这 4 种基础的指令格式.
Fig.3 Four basic instruction formats of RV32I [11]
图 3 RV32I 的 4 种基础指令格式 [11]
RV64I 采用与 RV32I 相同的指令格式,只是将整数寄存器和所支持的用户地址空间扩展到了 64 位,增加了
一些操作低 32 位的“*W”指令.例如,RV32I 中的 ADDI 指令可以将符号扩展的 12 位立即数加到寄存器中,并将