venus
venus copied to clipboard
FCLASS.S (.D) instruction is not working correctly
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.
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.