]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Don't do anything special with "rep nop". The former behaviour was to
authorJulian Seward <jseward@acm.org>
Tue, 25 Jan 2005 15:47:39 +0000 (15:47 +0000)
committerJulian Seward <jseward@acm.org>
Tue, 25 Jan 2005 15:47:39 +0000 (15:47 +0000)
notify the scheduler that this thread wants to yield, but that gives
such huge delays as to mess up spin-wait loops using "rep nop".  New
behaviour is to simply treat it as a no-op, with no scheduling
consequences.

git-svn-id: svn://svn.valgrind.org/vex/trunk@743

VEX/priv/guest-x86/toIR.c

index 8a30b0ac1cb3168a06c443df54fcc872e20926d7..2fc51e7d003a88a001babc236c1309914a1e1130 100644 (file)
@@ -11286,8 +11286,14 @@ DisResult disInstr ( /*IN*/  Bool       resteerOK,
       case 0x90:           /* REP NOP (PAUSE) */
          /* a hint to the P4 re spin-wait loop */
          DIP("rep nop (P4 pause)\n");
+#        if 0
+         /* "observe" the hint.  Can cause very long delays, though. */
          jmp_lit(Ijk_Yield, ((Addr32)guest_eip_bbstart)+delta);
          whatNext = Dis_StopHere;
+#        else
+         /* act like it's a no-op */
+         whatNext = Dis_Continue;
+#        endif
          break;
 
 //--       case 0xC3:           /* REP RET */