From my limited understanding of the recoded floating point format we use, the
extra bit just removes the special case to handle subnormal numbers by having
enough state to just store them.
This might be wrong, though, as I don't really know anything about this. The
people who know this stuff read hw-...@lists.riscv.org, which I've added to the
thread.
Any implications of the encoding apart from it not being IEEE compatible ?Not that I particularly care, my only concern is the performance !
If a floating-point register holds a single-precision value, it is guaranteed that a FSD of that register will place a value into memory that when reloaded with a FLD will recreate the original single-precision value in a register. The data format that is stored in memory is undefined beyond having this property.
"User-level code might not know the current type of data stored in a floating-point register but has to be able to save and restore the register values. A common case is for callee-save registers, but this is also essential to implement varargs and user-level threading libraries." - page 48