From: Julian Seward Date: Sun, 2 Sep 2012 20:28:28 +0000 (+0000) Subject: Merge from trunk, r2476 (Iimplement 0F 7F encoding of movq between two X-Git-Tag: svn/VALGRIND_3_8_1^2~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=31cbd4e7df035f9ad38d2fd949584b11882a844f;p=thirdparty%2Fvalgrind.git Merge from trunk, r2476 (Iimplement 0F 7F encoding of movq between two registers. Fixes #305042.) git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_8_BRANCH@2503 --- diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c index fcda1e21b6..d88cdebdd8 100644 --- a/VEX/priv/guest_amd64_toIR.c +++ b/VEX/priv/guest_amd64_toIR.c @@ -7104,9 +7104,11 @@ ULong dis_MMX ( Bool* decode_ok, goto mmx_decode_failure; modrm = getUChar(delta); if (epartIsReg(modrm)) { - /* Fall through. The assembler doesn't appear to generate - these. */ - goto mmx_decode_failure; + delta++; + putMMXReg( eregLO3ofRM(modrm), getMMXReg(gregLO3ofRM(modrm)) ); + DIP("movq %s, %s\n", + nameMMXReg(gregLO3ofRM(modrm)), + nameMMXReg(eregLO3ofRM(modrm))); } else { IRTemp addr = disAMode( &len, vbi, pfx, delta, dis_buf, 0 ); delta += len;