|
From: <sv...@va...> - 2012-08-23 18:50:12
|
sewardj 2012-08-23 19:49:59 +0100 (Thu, 23 Aug 2012)
New Revision: 2475
Log:
Handle a reg-reg encoding of MOVAPS. Fixes #289584.
(Alexander Potapenko, gl...@go...)
Modified files:
trunk/priv/guest_amd64_toIR.c
Modified: trunk/priv/guest_amd64_toIR.c (+6 -1)
===================================================================
--- trunk/priv/guest_amd64_toIR.c 2012-08-21 23:15:19 +01:00 (rev 2474)
+++ trunk/priv/guest_amd64_toIR.c 2012-08-23 19:49:59 +01:00 (rev 2475)
@@ -11596,6 +11596,11 @@
modrm = getUChar(delta);
if (epartIsReg(modrm)) {
/* fall through; awaiting test case */
+ putXMMReg( eregOfRexRM(pfx,modrm),
+ getXMMReg( gregOfRexRM(pfx,modrm) ));
+ DIP("movaps %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
+ nameXMMReg(eregOfRexRM(pfx,modrm)));
+ delta += 1;
} else {
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
gen_SEGV_if_not_16_aligned( addr );
@@ -11603,8 +11608,8 @@
DIP("movaps %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
dis_buf );
delta += alen;
- goto decode_success;
}
+ goto decode_success;
}
/* 66 0F 29 = MOVAPD -- move from G (xmm) to E (mem or xmm). */
if (have66noF2noF3(pfx)
|