|
From: <sv...@va...> - 2005-05-06 01:44:02
|
Author: sewardj
Date: 2005-05-06 02:43:56 +0100 (Fri, 06 May 2005)
New Revision: 1165
Modified:
trunk/priv/guest-amd64/toIR.c
Log:
Fix 64-bit bogon in bt/bts/btc/btr which caused it not to work right.
Modified: trunk/priv/guest-amd64/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-amd64/toIR.c 2005-05-05 21:46:50 UTC (rev 1164)
+++ trunk/priv/guest-amd64/toIR.c 2005-05-06 01:43:56 UTC (rev 1165)
@@ -3336,10 +3336,10 @@
=20
/* Invent a mask suitable for the operation. */
switch (gregLO3ofRM(modrm)) {
- case 4: /* BT */ mask =3D 0; break;
- case 5: /* BTS */ mask =3D 1 << src_val; break;
- case 6: /* BTR */ mask =3D ~(1 << src_val); break;
- case 7: /* BTC */ mask =3D 1 << src_val; break;
+ case 4: /* BT */ mask =3D 0; break;
+ case 5: /* BTS */ mask =3D 1ULL << src_val; break;
+ case 6: /* BTR */ mask =3D ~(1ULL << src_val); break;
+ case 7: /* BTC */ mask =3D 1ULL << src_val; break;
/* If this needs to be extended, probably simplest to make a
new function to handle the other cases (0 .. 3). The
Intel docs do however not indicate any use for 0 .. 3, so
|