![]() Conversion from float to integer should based on both the instruction encoding and the sign of the operand. A simple testcase to show the issue: static float fm; static signed int si_min = (-2147483647 - 1); static unsigned int ui; int main() { fm = (float) si_min; ; ui = (unsigned int)fm; printf("ui=%d, should be %d\n", ui, si_min); return 0; } Result: ui=-1, should be -2147483648 Signed-off-by: Shan Hai <shan.hai@windriver.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org> |
||
---|---|---|
.. | ||
Makefile | ||
fabs.c | ||
fadd.c | ||
fadds.c | ||
fcmpo.c | ||
fcmpu.c | ||
fctiw.c | ||
fctiwz.c | ||
fdiv.c | ||
fdivs.c | ||
fmadd.c | ||
fmadds.c | ||
fmr.c | ||
fmsub.c | ||
fmsubs.c | ||
fmul.c | ||
fmuls.c | ||
fnabs.c | ||
fneg.c | ||
fnmadd.c | ||
fnmadds.c | ||
fnmsub.c | ||
fnmsubs.c | ||
fres.c | ||
frsp.c | ||
frsqrte.c | ||
fsel.c | ||
fsqrt.c | ||
fsqrts.c | ||
fsub.c | ||
fsubs.c | ||
lfd.c | ||
lfs.c | ||
math.c | ||
math_efp.c | ||
mcrfs.c | ||
mffs.c | ||
mtfsb0.c | ||
mtfsb1.c | ||
mtfsf.c | ||
mtfsfi.c | ||
stfd.c | ||
stfiwx.c | ||
stfs.c | ||
udivmodti4.c |