|
From: <sv...@va...> - 2014-11-23 17:26:00
|
Author: sewardj
Date: Sun Nov 23 17:25:53 2014
New Revision: 3014
Log:
Merge, from trunk, r2988
340725 AVX2: Incorrect decoding of vpbroadcast{b,w} reg,reg forms
2988
Modified:
branches/VEX_3_10_BRANCH/ (props changed)
branches/VEX_3_10_BRANCH/priv/guest_amd64_toIR.c
Modified: branches/VEX_3_10_BRANCH/priv/guest_amd64_toIR.c
==============================================================================
--- branches/VEX_3_10_BRANCH/priv/guest_amd64_toIR.c (original)
+++ branches/VEX_3_10_BRANCH/priv/guest_amd64_toIR.c Sun Nov 23 17:25:53 2014
@@ -28661,6 +28661,7 @@
IRTemp t8 = newTemp(Ity_I8);
if (epartIsReg(modrm)) {
UInt rE = eregOfRexRM(pfx, modrm);
+ delta++;
DIP("vpbroadcastb %s,%s\n", nameXMMReg(rE), nameXMMReg(rG));
assign(t8, unop(Iop_32to8, getXMMRegLane32(rE, 0)));
} else {
@@ -28687,6 +28688,7 @@
IRTemp t8 = newTemp(Ity_I8);
if (epartIsReg(modrm)) {
UInt rE = eregOfRexRM(pfx, modrm);
+ delta++;
DIP("vpbroadcastb %s,%s\n", nameXMMReg(rE), nameYMMReg(rG));
assign(t8, unop(Iop_32to8, getXMMRegLane32(rE, 0)));
} else {
@@ -28717,6 +28719,7 @@
IRTemp t16 = newTemp(Ity_I16);
if (epartIsReg(modrm)) {
UInt rE = eregOfRexRM(pfx, modrm);
+ delta++;
DIP("vpbroadcastw %s,%s\n", nameXMMReg(rE), nameXMMReg(rG));
assign(t16, unop(Iop_32to16, getXMMRegLane32(rE, 0)));
} else {
@@ -28741,6 +28744,7 @@
IRTemp t16 = newTemp(Ity_I16);
if (epartIsReg(modrm)) {
UInt rE = eregOfRexRM(pfx, modrm);
+ delta++;
DIP("vpbroadcastw %s,%s\n", nameXMMReg(rE), nameYMMReg(rG));
assign(t16, unop(Iop_32to16, getXMMRegLane32(rE, 0)));
} else {
|