powerpc/85xx: Fix SPE float to integer conversion failure
authorShan Hai <shan.hai@windriver.com>
Wed, 17 Nov 2010 02:28:53 +0000 (10:28 +0800)
committerKumar Gala <galak@kernel.crashing.org>
Tue, 15 Mar 2011 18:48:15 +0000 (13:48 -0500)
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>

No differences found