From: Julian Seward Date: Fri, 7 Jan 2005 13:36:14 +0000 (+0000) Subject: SSE2 fixes for mfence-ing. X-Git-Tag: svn/VALGRIND_3_0_1^2~635 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0c82ae873200fb96932cbf1017ddee7a18beca30;p=thirdparty%2Fvalgrind.git SSE2 fixes for mfence-ing. git-svn-id: svn://svn.valgrind.org/vex/trunk@699 --- diff --git a/VEX/priv/guest-x86/toIR.c b/VEX/priv/guest-x86/toIR.c index 0dc1c144e0..81fc2fa0ea 100644 --- a/VEX/priv/guest-x86/toIR.c +++ b/VEX/priv/guest-x86/toIR.c @@ -6873,6 +6873,7 @@ DisResult disInstr ( /*IN*/ Bool resteerOK, /* 2005 Jan 06: the following insns are observed to sometimes have a LOCK prefix: cmpxchgl %ecx,(%edx) + cmpxchgl %edx,0x278(%ebx) etc xchgl %eax, (%ecx) xaddl %eax, (%ecx) We need to catch any such which appear to be being used as diff --git a/VEX/priv/host-x86/hdefs.c b/VEX/priv/host-x86/hdefs.c index c254d17a38..90d647bbaa 100644 --- a/VEX/priv/host-x86/hdefs.c +++ b/VEX/priv/host-x86/hdefs.c @@ -2354,7 +2354,6 @@ vex_printf("EMIT FENCE\n"); *p++ = 0x24; *p++ = 0x00; *p++ = 0x00; goto done; case VexSubArchX86_sse2: - vassert(0); /* awaiting test case */ /* mfence */ *p++ = 0x0F; *p++ = 0xAE; *p++ = 0xF0; goto done;