RISC-V中检测乘法是否溢出的方法

 RISC-V有四种乘法指令分别是:

   mul:乘

   mulh:乘后取高位

   mulhu:无符号数乘法取高位, 64bit * 64bit其128bit结果中的前64bit的值

   mulhsu: 有符号和无符号数乘法取高位

如果想得到比如128位积中的高64位,且两个操作数都是有符号的,则应使用mulh。mulhu和mulhsu则各自对应各自定义中的操作数。

  所以软件上可以采用乘法取高位的方法来测试是否出现溢出:

   如果mulhu的结果为0,那么必然是没有发生溢出。

   如果mulh的结果都是mul结果的符号位的复制,那么显然也没有发生溢出。

Comments

Popular posts from this blog

托福 TPO词汇题汇总

浮点数

缓存