|
From: <sv...@va...> - 2006-05-12 20:46:04
|
Author: sewardj
Date: 2006-05-12 21:45:59 +0100 (Fri, 12 May 2006)
New Revision: 1614
Log:
Enable 'sbb $imm,%al'. Fixes #126668.
Modified:
trunk/priv/guest-amd64/toIR.c
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 2006-05-12 20:15:33 UTC (rev 1613)
+++ trunk/priv/guest-amd64/toIR.c 2006-05-12 20:45:59 UTC (rev 1614)
@@ -2779,6 +2779,10 @@
helper_ADC( size, dst1, dst0, src );
}
else
+ if (op8 =3D=3D Iop_Sub8 && carrying) {
+ helper_SBB( size, dst1, dst0, src );
+ }
+ else
vpanic("dis_op_imm_A(amd64,guest)");
=20
if (keep)
@@ -12297,10 +12301,11 @@
//.. //-- case 0x15: /* ADC Iv, eAX */
//.. //-- delta =3D dis_op_imm_A( sz, ADC, True, delta, "adc" );
//.. //-- break;
-//.. //--=20
-//.. //-- case 0x1C: /* SBB Ib, AL */
-//.. //-- delta =3D dis_op_imm_A( 1, SBB, True, delta, "sbb" );
-//.. //-- break;
+
+ case 0x1C: /* SBB Ib, AL */
+ if (haveF2orF3(pfx)) goto decode_failure;
+ delta =3D dis_op_imm_A( 1, True, Iop_Sub8, True, delta, "sbb" );
+ break;
//.. //-- case 0x1D: /* SBB Iv, eAX */
//.. //-- delta =3D dis_op_imm_A( sz, SBB, True, delta, "sbb" );
//.. //-- break;
|