Author: sewardj Date: 2007-11-15 23:30:16 +0000 (Thu, 15 Nov 2007) New Revision: 1794
Log: Handle the "alternative" (non-binutils) encoding of 'adc' and tidy up some other op-G-E / op-E-G decodings. This fixes a bug which was reported on [EMAIL PROTECTED] on 11 Aug 2007 ("LibVEX called failure_exit() with 3.3.0svn-r6769 with Linux on AMD64") I don't think it ever was formally filed as a bug report. Modified: trunk/priv/guest-amd64/toIR.c Modified: trunk/priv/guest-amd64/toIR.c =================================================================== --- trunk/priv/guest-amd64/toIR.c 2007-11-09 21:15:04 UTC (rev 1793) +++ trunk/priv/guest-amd64/toIR.c 2007-11-15 23:30:16 UTC (rev 1794) @@ -2509,7 +2509,6 @@ assign( src, getIRegE(size,pfx,rm) ); if (addSubCarry && op8 == Iop_Add8) { - vassert(0); /* awaiting test case */ helper_ADC( size, dst1, dst0, src ); putIRegG(size, pfx, rm, mkexpr(dst1)); } else @@ -13059,6 +13058,7 @@ break; case 0x14: /* ADC Ib, AL */ + if (haveF2orF3(pfx)) goto decode_failure; delta = dis_op_imm_A( 1, True, Iop_Add8, True, delta, "adc" ); break; //.. //-- case 0x15: /* ADC Iv, eAX */ @@ -13137,11 +13137,13 @@ if (haveF2orF3(pfx)) goto decode_failure; delta = dis_op2_E_G ( pfx, False, Iop_Or8, True, sz, delta, "or" ); break; -//-- -//.. //-- case 0x12: /* ADC Eb,Gb */ -//.. //-- delta = dis_op2_E_G ( sorb, True, ADC, True, 1, delta, "adc" ); -//.. //-- break; + + case 0x12: /* ADC Eb,Gb */ + if (haveF2orF3(pfx)) goto decode_failure; + delta = dis_op2_E_G ( pfx, True, Iop_Add8, True, 1, delta, "adc" ); + break; case 0x13: /* ADC Ev,Gv */ + if (haveF2orF3(pfx)) goto decode_failure; delta = dis_op2_E_G ( pfx, True, Iop_Add8, True, sz, delta, "adc" ); break; @@ -13149,6 +13151,7 @@ //.. //-- delta = dis_op2_E_G ( sorb, True, SBB, True, 1, delta, "sbb" ); //.. //-- break; case 0x1B: /* SBB Ev,Gv */ + if (haveF2orF3(pfx)) goto decode_failure; delta = dis_op2_E_G ( pfx, True, Iop_Sub8, True, sz, delta, "sbb" ); break; ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Valgrind-developers mailing list Valgrind-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-developers