Commit e41e2ab4 by Ulrich Weigand Committed by Ulrich Weigand

spu.c (array_to_constant): Fix (latent) wrong-code generation due to implicit sign extension.

	* config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
	generation due to implicit sign extension.

From-SVN: r144034
parent 4bb07c5d
2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
generation due to implicit sign extension.
2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
PR middle-end/38981
......
......@@ -4722,9 +4722,8 @@ array_to_constant (enum machine_mode mode, unsigned char arr[16])
}
if (mode == DFmode)
{
val = (arr[0] << 24) | (arr[1] << 16) | (arr[2] << 8) | arr[3];
val <<= 32;
val |= (arr[4] << 24) | (arr[5] << 16) | (arr[6] << 8) | arr[7];
for (i = 0, val = 0; i < 8; i++)
val = (val << 8) | arr[i];
return hwint_to_const_double (DFmode, val);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment