From: Julian Seward Date: Fri, 26 Nov 2004 12:18:51 +0000 (+0000) Subject: Implement "rep nop" (P4 pause). X-Git-Tag: svn/VALGRIND_3_0_1^2~746 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=73835ad31358dffc23c344088ad53bfc8a24632d;p=thirdparty%2Fvalgrind.git Implement "rep nop" (P4 pause). git-svn-id: svn://svn.valgrind.org/vex/trunk@588 --- diff --git a/VEX/priv/guest-x86/toIR.c b/VEX/priv/guest-x86/toIR.c index 763de574d9..ff33371692 100644 --- a/VEX/priv/guest-x86/toIR.c +++ b/VEX/priv/guest-x86/toIR.c @@ -8826,14 +8826,14 @@ static DisResult disInstr ( /*IN*/ Bool resteerOK, //-- case 0xAF: //-- dis_REP_op ( cb, CondZ, dis_SCAS, sz, eip_orig, eip, "repe scas" ); //-- break; -//-- -//-- case 0x90: /* REP NOP (PAUSE) */ -//-- /* a hint to the P4 re spin-wait loop */ -//-- DIP("rep nop (P4 pause)\n"); -//-- jmp_lit(cb, eip); -//-- LAST_UINSTR(cb).jmpkind = JmpYield; -//-- break; -//-- + + case 0x90: /* REP NOP (PAUSE) */ + /* a hint to the P4 re spin-wait loop */ + DIP("rep nop (P4 pause)\n"); + jmp_lit(Ijk_Yield, ((Addr32)guest_eip_bbstart)+delta); + whatNext = Dis_StopHere; + break; + //-- case 0xC3: /* REP RET */ //-- /* AMD K7/K8-specific optimisation; faster than vanilla RET */ //-- dis_ret(cb, 0);