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; |