|
From: <sv...@va...> - 2010-04-15 14:42:50
|
Author: de
Date: 2010-04-15 15:42:41 +0100 (Thu, 15 Apr 2010)
New Revision: 1974
Log:
Fix up printing for some of the SSE4.1 insns.
Modified:
trunk/priv/guest_amd64_toIR.c
Modified: trunk/priv/guest_amd64_toIR.c
===================================================================
--- trunk/priv/guest_amd64_toIR.c 2010-04-15 12:48:35 UTC (rev 1973)
+++ trunk/priv/guest_amd64_toIR.c 2010-04-15 14:42:41 UTC (rev 1974)
@@ -13719,18 +13719,17 @@
imm8 = (Int)insn[4];
assign( src_vec, getXMMReg( eregOfRexRM(pfx, modrm) ) );
delta += 3+1+1;
- DIP( "blendpd %s,%s,$%d\n",
+ DIP( "blendpd $%d, %s,%s\n", imm8,
nameXMMReg( eregOfRexRM(pfx, modrm) ),
- nameXMMReg( gregOfRexRM(pfx, modrm) ),
- imm8 );
+ nameXMMReg( gregOfRexRM(pfx, modrm) ) );
} else {
addr = disAMode( &alen, vbi, pfx, delta+3, dis_buf,
1/* imm8 is 1 byte after the amode */ );
assign( src_vec, loadLE( Ity_V128, mkexpr(addr) ) );
imm8 = (Int)insn[2+alen+1];
delta += 3+alen+1;
- DIP( "blendpd %s,%s,$%d\n",
- dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ), imm8 );
+ DIP( "blendpd $%d, %s,%s\n",
+ imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
}
switch( imm8 & 3 ) {
@@ -13770,18 +13769,17 @@
imm8 = (Int)insn[3+1];
assign( src_vec, getXMMReg( eregOfRexRM(pfx, modrm) ) );
delta += 3+1+1;
- DIP( "blendps %s,%s,$%d\n",
+ DIP( "blendps $%d, %s,%s\n", imm8,
nameXMMReg( eregOfRexRM(pfx, modrm) ),
- nameXMMReg( gregOfRexRM(pfx, modrm) ),
- imm8 );
+ nameXMMReg( gregOfRexRM(pfx, modrm) ) );
} else {
addr = disAMode( &alen, vbi, pfx, delta+3, dis_buf,
1/* imm8 is 1 byte after the amode */ );
assign( src_vec, loadLE( Ity_V128, mkexpr(addr) ) );
imm8 = (Int)insn[3+alen];
delta += 3+alen+1;
- DIP( "blendpd %s,%s$%d\n",
- dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ), imm8 );
+ DIP( "blendpd $%d, %s,%s\n",
+ imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
}
UShort imm8_perms[16] = { 0x0000, 0x000F, 0x00F0, 0x00FF, 0x0F00, 0x0F0F,
@@ -13820,18 +13818,17 @@
imm8 = (Int)insn[4];
assign( src_vec, getXMMReg( eregOfRexRM(pfx, modrm) ) );
delta += 3+1+1;
- DIP( "dppd %s,%s,$%d\n",
+ DIP( "dppd $%d, %s,%s\n", imm8,
nameXMMReg( eregOfRexRM(pfx, modrm) ),
- nameXMMReg( gregOfRexRM(pfx, modrm) ),
- imm8 );
+ nameXMMReg( gregOfRexRM(pfx, modrm) ) );
} else {
addr = disAMode( &alen, vbi, pfx, delta+3, dis_buf,
1/* imm8 is 1 byte after the amode */ );
assign( src_vec, loadLE( Ity_V128, mkexpr(addr) ) );
imm8 = (Int)insn[2+alen+1];
delta += 3+alen+1;
- DIP( "dppd %s,%s$%d\n",
- dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ), imm8 );
+ DIP( "dppd $%d, %s,%s\n",
+ imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
}
UShort imm8_perms[4] = { 0x0000, 0x00FF, 0xFF00, 0xFFFF };
@@ -13882,18 +13879,17 @@
imm8 = (Int)insn[4];
assign( xmm2_vec, getXMMReg( eregOfRexRM(pfx, modrm) ) );
delta += 3+1+1;
- DIP( "dpps %s,%s,$%d\n",
+ DIP( "dpps $%d, %s,%s\n", imm8,
nameXMMReg( eregOfRexRM(pfx, modrm) ),
- nameXMMReg( gregOfRexRM(pfx, modrm) ),
- imm8 );
+ nameXMMReg( gregOfRexRM(pfx, modrm) ) );
} else {
addr = disAMode( &alen, vbi, pfx, delta+3, dis_buf,
1/* imm8 is 1 byte after the amode */ );
assign( xmm2_vec, loadLE( Ity_V128, mkexpr(addr) ) );
imm8 = (Int)insn[2+alen+1];
delta += 3+alen+1;
- DIP( "dpps %s,%s$%d\n",
- dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ), imm8 );
+ DIP( "dpps $%d, %s,%s\n",
+ imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
}
UShort imm8_perms[16] = { 0x0000, 0x000F, 0x00F0, 0x00FF, 0x0F00,
@@ -13965,10 +13961,9 @@
}
delta += 3+1+1;
- DIP( "insertps %s,%s,$%d\n",
+ DIP( "insertps $%d, %s,%s\n", imm8,
nameXMMReg( eregOfRexRM(pfx, modrm) ),
- nameXMMReg( gregOfRexRM(pfx, modrm) ),
- imm8 );
+ nameXMMReg( gregOfRexRM(pfx, modrm) ) );
} else {
addr = disAMode( &alen, vbi, pfx, delta+3, dis_buf,
1/* const imm8 is 1 byte after the amode */ );
@@ -13976,8 +13971,8 @@
imm8 = (Int)insn[2+alen+1];
imm8_count_s = 0;
delta += 3+alen+1;
- DIP( "insertps %s,%s,$%d\n",
- dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ), imm8 );
+ DIP( "insertps $%d, %s,%s\n",
+ imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
}
IRTemp dst_lane_0 = IRTemp_INVALID;
@@ -14049,14 +14044,14 @@
binop(Iop_And32, mkexpr(shr_lane), mkU32(255)) ) );
delta += 3+1+1;
- DIP( "pextrb %s,%s,$%d\n",
- nameXMMReg( gregOfRexRM(pfx, modrm) ),
- nameXMMReg( eregOfRexRM(pfx, modrm) ), imm8 );
+ DIP( "pextrb $%d, %s,%s\n", imm8,
+ nameXMMReg( gregOfRexRM(pfx, modrm) ),
+ nameIReg64( eregOfRexRM(pfx, modrm) ) );
} else {
storeLE( mkexpr(addr), unop(Iop_32to8, mkexpr(shr_lane) ) );
delta += 3+alen+1;
- DIP( "pextrb %s,%s,$%d\n",
- nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf, imm8 );
+ DIP( "$%d, pextrb %s,%s\n",
+ imm8, nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf );
}
goto decode_success;
@@ -14097,14 +14092,14 @@
if ( epartIsReg( modrm ) ) {
putIReg32( eregOfRexRM(pfx,modrm), mkexpr(src_dword) );
delta += 3+1+1;
- DIP( "pextrd %s,%s,$%d\n",
+ DIP( "pextrd $%d, %s,%s\n", imm8_10,
nameXMMReg( gregOfRexRM(pfx, modrm) ),
- nameXMMReg( eregOfRexRM(pfx, modrm) ), imm8_10 );
+ nameIReg32( eregOfRexRM(pfx, modrm) ) );
} else {
storeLE( mkexpr(addr), mkexpr(src_dword) );
delta += 3+alen+1;
- DIP( "pextrd %s,%s,$%d\n",
- nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf, imm8_10 );
+ DIP( "pextrd $%d, %s,%s\n",
+ imm8_10, nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf );
}
goto decode_success;
@@ -14141,14 +14136,14 @@
if ( epartIsReg( modrm ) ) {
putIReg64( eregOfRexRM(pfx,modrm), mkexpr(src_qword) );
delta += 3+1+1;
- DIP( "pextrq %s,%s,$%d\n",
+ DIP( "pextrq $%d, %s,%s\n", imm8_0,
nameXMMReg( gregOfRexRM(pfx, modrm) ),
- nameXMMReg( eregOfRexRM(pfx, modrm) ), imm8_0 );
+ nameIReg64( eregOfRexRM(pfx, modrm) ) );
} else {
storeLE( mkexpr(addr), mkexpr(src_qword) );
delta += 3+alen+1;
- DIP( "pextrq %s,%s,$%d\n",
- nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf, imm8_0 );
+ DIP( "pextrq $%d, %s,%s\n",
+ imm8_0, nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf );
}
goto decode_success;
@@ -14191,14 +14186,14 @@
if ( epartIsReg( modrm ) ) {
putIReg64( eregOfRexRM(pfx,modrm), unop(Iop_16Uto64, mkexpr(src_word)) );
delta += 3+1+1;
- DIP( "pextrw %s,%s,$%d\n",
+ DIP( "pextrw $%d, %s,%s\n", imm8_20,
nameXMMReg( gregOfRexRM(pfx, modrm) ),
- nameXMMReg( eregOfRexRM(pfx, modrm) ), imm8_20 );
+ nameIReg64( eregOfRexRM(pfx, modrm) ) );
} else {
storeLE( mkexpr(addr), mkexpr(src_word) );
delta += 3+alen+1;
- DIP( "pextrw %s,%s,$%d\n",
- nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf, imm8_20 );
+ DIP( "pextrw $%d, %s,%s\n",
+ imm8_20, nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf );
}
goto decode_success;
|
|
From: <sv...@va...> - 2010-04-29 08:48:18
|
Author: sewardj
Date: 2010-04-29 09:48:09 +0100 (Thu, 29 Apr 2010)
New Revision: 1974
Log:
(re-commit r1974):
Fix up printing for some of the SSE4.1 insns.
Modified:
trunk/priv/guest_amd64_toIR.c
Modified: trunk/priv/guest_amd64_toIR.c
===================================================================
--- trunk/priv/guest_amd64_toIR.c 2010-04-29 08:46:38 UTC (rev 1973)
+++ trunk/priv/guest_amd64_toIR.c 2010-04-29 08:48:09 UTC (rev 1974)
@@ -13719,18 +13719,17 @@
imm8 = (Int)insn[4];
assign( src_vec, getXMMReg( eregOfRexRM(pfx, modrm) ) );
delta += 3+1+1;
- DIP( "blendpd %s,%s,$%d\n",
+ DIP( "blendpd $%d, %s,%s\n", imm8,
nameXMMReg( eregOfRexRM(pfx, modrm) ),
- nameXMMReg( gregOfRexRM(pfx, modrm) ),
- imm8 );
+ nameXMMReg( gregOfRexRM(pfx, modrm) ) );
} else {
addr = disAMode( &alen, vbi, pfx, delta+3, dis_buf,
1/* imm8 is 1 byte after the amode */ );
assign( src_vec, loadLE( Ity_V128, mkexpr(addr) ) );
imm8 = (Int)insn[2+alen+1];
delta += 3+alen+1;
- DIP( "blendpd %s,%s,$%d\n",
- dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ), imm8 );
+ DIP( "blendpd $%d, %s,%s\n",
+ imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
}
switch( imm8 & 3 ) {
@@ -13770,18 +13769,17 @@
imm8 = (Int)insn[3+1];
assign( src_vec, getXMMReg( eregOfRexRM(pfx, modrm) ) );
delta += 3+1+1;
- DIP( "blendps %s,%s,$%d\n",
+ DIP( "blendps $%d, %s,%s\n", imm8,
nameXMMReg( eregOfRexRM(pfx, modrm) ),
- nameXMMReg( gregOfRexRM(pfx, modrm) ),
- imm8 );
+ nameXMMReg( gregOfRexRM(pfx, modrm) ) );
} else {
addr = disAMode( &alen, vbi, pfx, delta+3, dis_buf,
1/* imm8 is 1 byte after the amode */ );
assign( src_vec, loadLE( Ity_V128, mkexpr(addr) ) );
imm8 = (Int)insn[3+alen];
delta += 3+alen+1;
- DIP( "blendpd %s,%s$%d\n",
- dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ), imm8 );
+ DIP( "blendpd $%d, %s,%s\n",
+ imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
}
UShort imm8_perms[16] = { 0x0000, 0x000F, 0x00F0, 0x00FF, 0x0F00, 0x0F0F,
@@ -13820,18 +13818,17 @@
imm8 = (Int)insn[4];
assign( src_vec, getXMMReg( eregOfRexRM(pfx, modrm) ) );
delta += 3+1+1;
- DIP( "dppd %s,%s,$%d\n",
+ DIP( "dppd $%d, %s,%s\n", imm8,
nameXMMReg( eregOfRexRM(pfx, modrm) ),
- nameXMMReg( gregOfRexRM(pfx, modrm) ),
- imm8 );
+ nameXMMReg( gregOfRexRM(pfx, modrm) ) );
} else {
addr = disAMode( &alen, vbi, pfx, delta+3, dis_buf,
1/* imm8 is 1 byte after the amode */ );
assign( src_vec, loadLE( Ity_V128, mkexpr(addr) ) );
imm8 = (Int)insn[2+alen+1];
delta += 3+alen+1;
- DIP( "dppd %s,%s$%d\n",
- dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ), imm8 );
+ DIP( "dppd $%d, %s,%s\n",
+ imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
}
UShort imm8_perms[4] = { 0x0000, 0x00FF, 0xFF00, 0xFFFF };
@@ -13882,18 +13879,17 @@
imm8 = (Int)insn[4];
assign( xmm2_vec, getXMMReg( eregOfRexRM(pfx, modrm) ) );
delta += 3+1+1;
- DIP( "dpps %s,%s,$%d\n",
+ DIP( "dpps $%d, %s,%s\n", imm8,
nameXMMReg( eregOfRexRM(pfx, modrm) ),
- nameXMMReg( gregOfRexRM(pfx, modrm) ),
- imm8 );
+ nameXMMReg( gregOfRexRM(pfx, modrm) ) );
} else {
addr = disAMode( &alen, vbi, pfx, delta+3, dis_buf,
1/* imm8 is 1 byte after the amode */ );
assign( xmm2_vec, loadLE( Ity_V128, mkexpr(addr) ) );
imm8 = (Int)insn[2+alen+1];
delta += 3+alen+1;
- DIP( "dpps %s,%s$%d\n",
- dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ), imm8 );
+ DIP( "dpps $%d, %s,%s\n",
+ imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
}
UShort imm8_perms[16] = { 0x0000, 0x000F, 0x00F0, 0x00FF, 0x0F00,
@@ -13965,10 +13961,9 @@
}
delta += 3+1+1;
- DIP( "insertps %s,%s,$%d\n",
+ DIP( "insertps $%d, %s,%s\n", imm8,
nameXMMReg( eregOfRexRM(pfx, modrm) ),
- nameXMMReg( gregOfRexRM(pfx, modrm) ),
- imm8 );
+ nameXMMReg( gregOfRexRM(pfx, modrm) ) );
} else {
addr = disAMode( &alen, vbi, pfx, delta+3, dis_buf,
1/* const imm8 is 1 byte after the amode */ );
@@ -13976,8 +13971,8 @@
imm8 = (Int)insn[2+alen+1];
imm8_count_s = 0;
delta += 3+alen+1;
- DIP( "insertps %s,%s,$%d\n",
- dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ), imm8 );
+ DIP( "insertps $%d, %s,%s\n",
+ imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
}
IRTemp dst_lane_0 = IRTemp_INVALID;
@@ -14049,14 +14044,14 @@
binop(Iop_And32, mkexpr(shr_lane), mkU32(255)) ) );
delta += 3+1+1;
- DIP( "pextrb %s,%s,$%d\n",
- nameXMMReg( gregOfRexRM(pfx, modrm) ),
- nameXMMReg( eregOfRexRM(pfx, modrm) ), imm8 );
+ DIP( "pextrb $%d, %s,%s\n", imm8,
+ nameXMMReg( gregOfRexRM(pfx, modrm) ),
+ nameIReg64( eregOfRexRM(pfx, modrm) ) );
} else {
storeLE( mkexpr(addr), unop(Iop_32to8, mkexpr(shr_lane) ) );
delta += 3+alen+1;
- DIP( "pextrb %s,%s,$%d\n",
- nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf, imm8 );
+ DIP( "$%d, pextrb %s,%s\n",
+ imm8, nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf );
}
goto decode_success;
@@ -14097,14 +14092,14 @@
if ( epartIsReg( modrm ) ) {
putIReg32( eregOfRexRM(pfx,modrm), mkexpr(src_dword) );
delta += 3+1+1;
- DIP( "pextrd %s,%s,$%d\n",
+ DIP( "pextrd $%d, %s,%s\n", imm8_10,
nameXMMReg( gregOfRexRM(pfx, modrm) ),
- nameXMMReg( eregOfRexRM(pfx, modrm) ), imm8_10 );
+ nameIReg32( eregOfRexRM(pfx, modrm) ) );
} else {
storeLE( mkexpr(addr), mkexpr(src_dword) );
delta += 3+alen+1;
- DIP( "pextrd %s,%s,$%d\n",
- nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf, imm8_10 );
+ DIP( "pextrd $%d, %s,%s\n",
+ imm8_10, nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf );
}
goto decode_success;
@@ -14141,14 +14136,14 @@
if ( epartIsReg( modrm ) ) {
putIReg64( eregOfRexRM(pfx,modrm), mkexpr(src_qword) );
delta += 3+1+1;
- DIP( "pextrq %s,%s,$%d\n",
+ DIP( "pextrq $%d, %s,%s\n", imm8_0,
nameXMMReg( gregOfRexRM(pfx, modrm) ),
- nameXMMReg( eregOfRexRM(pfx, modrm) ), imm8_0 );
+ nameIReg64( eregOfRexRM(pfx, modrm) ) );
} else {
storeLE( mkexpr(addr), mkexpr(src_qword) );
delta += 3+alen+1;
- DIP( "pextrq %s,%s,$%d\n",
- nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf, imm8_0 );
+ DIP( "pextrq $%d, %s,%s\n",
+ imm8_0, nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf );
}
goto decode_success;
@@ -14191,14 +14186,14 @@
if ( epartIsReg( modrm ) ) {
putIReg64( eregOfRexRM(pfx,modrm), unop(Iop_16Uto64, mkexpr(src_word)) );
delta += 3+1+1;
- DIP( "pextrw %s,%s,$%d\n",
+ DIP( "pextrw $%d, %s,%s\n", imm8_20,
nameXMMReg( gregOfRexRM(pfx, modrm) ),
- nameXMMReg( eregOfRexRM(pfx, modrm) ), imm8_20 );
+ nameIReg64( eregOfRexRM(pfx, modrm) ) );
} else {
storeLE( mkexpr(addr), mkexpr(src_word) );
delta += 3+alen+1;
- DIP( "pextrw %s,%s,$%d\n",
- nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf, imm8_20 );
+ DIP( "pextrw $%d, %s,%s\n",
+ imm8_20, nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf );
}
goto decode_success;
|