ThaumicMekanism / venus

RISC-V instruction set simulator built for education
https://ThaumicMekanism.github.io/venus/
MIT License
146 stars 21 forks source link

FCLASS.S (.D) instruction is not working correctly #20

Open zeeshanrafique23 opened 3 years ago

zeeshanrafique23 commented 3 years ago

FCLASS.S or FCLASS.D instruction looks at a floating point value and determines what sort of a number it is. For example, does the value represents +0.0, -0.0, NaN, +infin, - infin etc.. According to the spec it should return the following values based on a floating point number and store it to a integer register. FCLASS But actually it is giving the following results

For +0.0, it gives value = 0x00000008 
But it should be value = 0x00000010
For -0.0, it gives `IllegalArgumentException: Count 'n' must be non-negative, but was -1. 
But it should be value = 0x00000008
For +infinity, it gives value = 0x00000040 
But it should be value = 0x00000080
For -infinity, it gives `NumberFormatException: Invalid number format: '00000000-8000000' 
But it should be value = 0x00000001

. . and I didn't checked other cases.