A (minor) design flaw in RISC-V imo is the size of the floating point register file: 32 fregs is too many, 16 would have sufficed. We wouldn't need 4 major opcodes for fused multiply-add and it would be easier to find encoding space for non-ieee float insns (posits, packed simd).
-
-
Replying to @oe1cxw
I think it’s probably the other way around. Sixteen registers is usually plenty for integer code, but floating point code can often use all the registers you’ve got. (That might change if you have a vector unit)
2 replies 0 retweets 2 likes -
Replying to @BruceHoult
I believe that one can easily use all the fp regs available, but does it make a performance difference? (I don't have any data on this, so this is not a rethorical question. :) The cost in terms of instruction encoding space is big imo. Also the area cost of regs file for simd.
3 replies 0 retweets 1 like -
Replying to @oe1cxw @BruceHoult
One of the problems with 32 registers, floating point or otherwise, is that you still need to save them on any function call. If you are just going to stuff them on the stack anyway, you might find 16 is just as good.
2 replies 0 retweets 2 likes
At least for GPRs the risc-v ABI makes a distinction between caller-saved and callee-saved registers. Most small functions can be implemented and called without saving any registers.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.