From 31cbd4e7df035f9ad38d2fd949584b11882a844f Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Sun, 2 Sep 2012 20:28:28 +0000 Subject: [PATCH] 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 --- VEX/priv/guest_amd64_toIR.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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; -- 2.47.2