|
From: <sv...@va...> - 2012-08-23 19:00:15
|
sewardj 2012-08-23 20:00:06 +0100 (Thu, 23 Aug 2012)
New Revision: 2476
Log:
Iimplement 0F 7F encoding of movq between two registers. Fixes
#305042. (Mans Rullgard, ma...@ma...)
Modified files:
trunk/priv/guest_amd64_toIR.c
Modified: trunk/priv/guest_amd64_toIR.c (+5 -3)
===================================================================
--- trunk/priv/guest_amd64_toIR.c 2012-08-23 19:49:59 +01:00 (rev 2475)
+++ trunk/priv/guest_amd64_toIR.c 2012-08-23 20:00:06 +01:00 (rev 2476)
@@ -7104,9 +7104,11 @@
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;
|