本帖最后由 pattywu 于 2021-4-16 21:08 编辑
RISC-V的立即数处理,是分2条指令,分2次处理的。
32位立即数,由编译器把它拆分20位+12位的形式,分别存放在前后2条指令里。
反正32位的立即数占用了32位,处理指令本身也要占空间,这样也算合理。
比如:加载32位立即数寄存器,可以分为:
1、把低12位+0寄存器,结果存放在待加载的寄存器;
2、高20位+待加载寄存器,结果存放待加载寄存器。
跟直接加载32位数据到寄存器,无论结果,还是指令数、代码长度以及指令执行时间,二者没什么区别。
|
|