|
From: <sv...@va...> - 2011-07-19 15:53:22
|
Author: sewardj
Date: 2011-07-19 16:48:29 +0100 (Tue, 19 Jul 2011)
New Revision: 2178
Log:
Make VMOV.F32 load the correct value into the destination register.
Bug 277780. (Mans Rullgard, ma...@ma...)
Modified:
trunk/priv/guest_arm_toIR.c
trunk/priv/host_arm_defs.c
Modified: trunk/priv/guest_arm_toIR.c
===================================================================
--- trunk/priv/guest_arm_toIR.c 2011-07-19 08:20:24 UTC (rev 2177)
+++ trunk/priv/guest_arm_toIR.c 2011-07-19 15:48:29 UTC (rev 2178)
@@ -7694,7 +7694,7 @@
break;
case 15:
imm = (imm_raw & 0x80) << 5;
- imm |= ~((imm_raw & 0x40) << 5);
+ imm |= ((~imm_raw & 0x40) << 5);
for(i = 1; i <= 4; i++)
imm |= (imm_raw & 0x40) << i;
imm |= (imm_raw & 0x7f);
Modified: trunk/priv/host_arm_defs.c
===================================================================
--- trunk/priv/host_arm_defs.c 2011-07-19 08:20:24 UTC (rev 2177)
+++ trunk/priv/host_arm_defs.c 2011-07-19 15:48:29 UTC (rev 2178)
@@ -588,7 +588,7 @@
return x;
case 10:
x |= (x & 0x80) << 5;
- x |= ~(x & 0x40) << 5;
+ x |= (~x & 0x40) << 5;
x &= 0x187F; /* 0001 1000 0111 1111 */
x |= (x & 0x40) << 4;
x |= (x & 0x40) << 3;
|