在通过RISC-V规范时,我注意到64位版本与32位版本的不同之处在于,
这使得RV32代码不兼容RV64。但是,如果64位版本已经实施方式:
ADD/SUB/SHL/..到ADDW/SUBW/SHLW/..与标志让他们只能在32位操作系统上延伸。ADD/SUB/SHL/..或ADDD/SUBD/SHLD/..在全部64位行为这样,RV32程序也可以在RV64上运行。为了实现CPU,工作量将保持不变,因为在两种情况下都必须实现64位和32位指令,而只有64位和32位版本的操作码将被交换。符合规范。(除了乘法指令。)
那么,为什么RISC-V为什么决定将新的操作码分配给RV64中的32位操作而不是64位操作?