Custom Float
Amit Hmath
amith.hmath@gmail.com
Thu Nov 4 16:17:04 GMT 2021
Hello All,
I am badly stuck at custom float encode and decode, I humbly request your
assistance.
I am trying to incorporate in custom floats in RISCV-32 elf, I am encoding
and assigning to image at line 2985 in
https://github.com/riscv-collab/riscv-gcc/blob/5964b5cd72721186ea2195a7be8d40cfe6554023/gcc/real.c
I am decoding in line 2989 from const long *buf and assigning values to
lines 3031-3034
// custom logic...
// I removed case statements
r->cl = rvc_normal;
r->sign = sign;
SET_REAL_EXP (r, exp); // I am assigning unbiased exp
r->sig[SIGSZ-1] = image | SIG_MSB;
In my view, encode_ieee_single function send IEEE-754 format float value to
FPU part of RISCV-32 and decode_ieee_single function decode IEEE-754 float
format from FPU part of RISCV-32
But I am getting some different values. In order to debug the the
functions/compiler I assigned some random value to decode function like:
r->cl = rvc_normal;
r->sign = 1;
SET_REAL_EXP (r, 12);
r->sig[SIGSZ-1] = 0xDADB62D5;
And built the compiler.
In my view, regardless of custom float values. I should always get real
equivalent above assigned value. But I am not getting this value either; it
seems to me there are other dependency functions which calculate real value
decoded from above function?
I look forward to hearing from you soon.
Many Thanks.
-Amith
More information about the Gcc-help
mailing list