From d4ad4bd13e230bb1983e6aa9d7778e43c8520c5b Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Sat, 18 Nov 2006 22:56:46 +0000 Subject: [PATCH] Handle long-form encoding of 'push{l,w} %reg'. git-svn-id: svn://svn.valgrind.org/vex/trunk@1679 --- VEX/priv/guest-x86/toIR.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/VEX/priv/guest-x86/toIR.c b/VEX/priv/guest-x86/toIR.c index 9677c5a50d..80a8c6e34b 100644 --- a/VEX/priv/guest-x86/toIR.c +++ b/VEX/priv/guest-x86/toIR.c @@ -2815,6 +2815,13 @@ UInt dis_Grp5 ( UChar sorb, Int sz, Int delta, DisResult* dres ) jmp_treg(Ijk_Boring,t1); dres->whatNext = Dis_StopHere; break; + case 6: /* PUSH Ev */ + vassert(sz == 4 || sz == 2); + t2 = newTemp(Ity_I32); + assign( t2, binop(Iop_Sub32,getIReg(4,R_ESP),mkU32(sz)) ); + putIReg(4, R_ESP, mkexpr(t2) ); + storeLE( mkexpr(t2), mkexpr(t1) ); + break; default: vex_printf( "unhandled Grp5(R) case %d\n", (Int)gregOfRM(modrm)); -- 2.47.2