只用低半部分很常见。
int a, b, c;
c = a * b;
编译器只需要生成低32-bit的指令就行
【 在 quene 的大作中提到: 】
: 看了一下 LonngISA 的指令描述,一般来说,两个寄存器相乘,乘积结果是双倍寄存器宽度,同然用一对寄存器来存放结果。比如 MIPS 乘法结果放入 hi, lo 两个寄存器,传统x86 乘法结果放入 eax, edx 两个寄存器。原本以为龙芯也是类似,一条乘法指令结果放入一对相邻寄存器,比如: mul r4, r3, r2, 把两个寄存器 r3, r2 的乘积放入r4 和r5(偶数号寄存器连同其后紧邻的一个寄存器),这样似乎非常自然。
: 然而 LoongISA 却不这样,非得用两条乘法指令才行:
: mul r4, r3, r2;
: ...................
--
FROM 45.32.65.*