Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
196 lines (195 sloc) 9.83 KB
Index: priv/guest_amd64_toIR.c
===================================================================
--- priv/guest_amd64_toIR.c (revision 2700)
+++ priv/guest_amd64_toIR.c (working copy)
@@ -11157,16 +11157,16 @@
&& (sz == 4 || /* ignore redundant REX.W */ sz == 8) ) {
modrm = getUChar(delta);
if (epartIsReg(modrm)) {
- putXMMRegLane64( gregOfRexRM(pfx,modrm), 0,
- getXMMRegLane64( eregOfRexRM(pfx,modrm), 0 ));
+ putXMMRegLane64F( gregOfRexRM(pfx,modrm), 0,
+ getXMMRegLane64F( eregOfRexRM(pfx,modrm), 0 ));
DIP("movsd %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
nameXMMReg(gregOfRexRM(pfx,modrm)));
delta += 1;
} else {
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
putXMMReg( gregOfRexRM(pfx,modrm), mkV128(0) );
- putXMMRegLane64( gregOfRexRM(pfx,modrm), 0,
- loadLE(Ity_I64, mkexpr(addr)) );
+ putXMMRegLane64F( gregOfRexRM(pfx,modrm), 0,
+ loadLE(Ity_F64, mkexpr(addr)) );
DIP("movsd %s,%s\n", dis_buf,
nameXMMReg(gregOfRexRM(pfx,modrm)));
delta += alen;
@@ -11179,16 +11179,16 @@
&& (sz == 4 || /* ignore redundant REX.W */ sz == 8)) {
modrm = getUChar(delta);
if (epartIsReg(modrm)) {
- putXMMRegLane32( gregOfRexRM(pfx,modrm), 0,
- getXMMRegLane32( eregOfRexRM(pfx,modrm), 0 ));
+ putXMMRegLane32F( gregOfRexRM(pfx,modrm), 0,
+ getXMMRegLane32F( eregOfRexRM(pfx,modrm), 0 ));
DIP("movss %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
nameXMMReg(gregOfRexRM(pfx,modrm)));
delta += 1;
} else {
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
putXMMReg( gregOfRexRM(pfx,modrm), mkV128(0) );
- putXMMRegLane32( gregOfRexRM(pfx,modrm), 0,
- loadLE(Ity_I32, mkexpr(addr)) );
+ putXMMRegLane32F( gregOfRexRM(pfx,modrm), 0,
+ loadLE(Ity_F32, mkexpr(addr)) );
DIP("movss %s,%s\n", dis_buf,
nameXMMReg(gregOfRexRM(pfx,modrm)));
delta += alen;
@@ -11224,15 +11224,15 @@
&& (sz == 4 || /* ignore redundant REX.W */ sz == 8)) {
modrm = getUChar(delta);
if (epartIsReg(modrm)) {
- putXMMRegLane64( eregOfRexRM(pfx,modrm), 0,
- getXMMRegLane64( gregOfRexRM(pfx,modrm), 0 ));
+ putXMMRegLane64F( eregOfRexRM(pfx,modrm), 0,
+ getXMMRegLane64F( gregOfRexRM(pfx,modrm), 0 ));
DIP("movsd %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
nameXMMReg(eregOfRexRM(pfx,modrm)));
delta += 1;
} else {
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
storeLE( mkexpr(addr),
- getXMMRegLane64(gregOfRexRM(pfx,modrm), 0) );
+ getXMMRegLane64F(gregOfRexRM(pfx,modrm), 0) );
DIP("movsd %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
dis_buf);
delta += alen;
@@ -11248,7 +11248,7 @@
} else {
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
storeLE( mkexpr(addr),
- getXMMRegLane32(gregOfRexRM(pfx,modrm), 0) );
+ getXMMRegLane32F(gregOfRexRM(pfx,modrm), 0) );
DIP("movss %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
dis_buf);
delta += alen;
@@ -11302,9 +11302,9 @@
} else {
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
delta += alen;
- putXMMRegLane64( gregOfRexRM(pfx,modrm),
- 0/*lower lane*/,
- loadLE(Ity_I64, mkexpr(addr)) );
+ putXMMRegLane64F( gregOfRexRM(pfx,modrm),
+ 0/*lower lane*/,
+ loadLE(Ity_F64, mkexpr(addr)) );
DIP("movlpd %s, %s\n",
dis_buf, nameXMMReg( gregOfRexRM(pfx,modrm) ));
goto decode_success;
@@ -11317,16 +11317,16 @@
modrm = getUChar(delta);
if (epartIsReg(modrm)) {
delta += 1;
- putXMMRegLane64( gregOfRexRM(pfx,modrm),
- 0/*lower lane*/,
- getXMMRegLane64( eregOfRexRM(pfx,modrm), 1 ));
+ putXMMRegLane64F( gregOfRexRM(pfx,modrm),
+ 0/*lower lane*/,
+ getXMMRegLane64F( eregOfRexRM(pfx,modrm), 1 ));
DIP("movhlps %s, %s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
nameXMMReg(gregOfRexRM(pfx,modrm)));
} else {
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
delta += alen;
- putXMMRegLane64( gregOfRexRM(pfx,modrm), 0/*lower lane*/,
- loadLE(Ity_I64, mkexpr(addr)) );
+ putXMMRegLane64F( gregOfRexRM(pfx,modrm), 0/*lower lane*/,
+ loadLE(Ity_F64, mkexpr(addr)) );
DIP("movlps %s, %s\n",
dis_buf, nameXMMReg( gregOfRexRM(pfx,modrm) ));
}
@@ -11343,8 +11343,8 @@
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
delta += alen;
storeLE( mkexpr(addr),
- getXMMRegLane64( gregOfRexRM(pfx,modrm),
- 0/*lower lane*/ ) );
+ getXMMRegLane64F( gregOfRexRM(pfx,modrm),
+ 0/*lower lane*/ ) );
DIP("movlps %s, %s\n", nameXMMReg( gregOfRexRM(pfx,modrm) ),
dis_buf);
goto decode_success;
@@ -11360,8 +11360,8 @@
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
delta += alen;
storeLE( mkexpr(addr),
- getXMMRegLane64( gregOfRexRM(pfx,modrm),
- 0/*lower lane*/ ) );
+ getXMMRegLane64F( gregOfRexRM(pfx,modrm),
+ 0/*lower lane*/ ) );
DIP("movlpd %s, %s\n", nameXMMReg( gregOfRexRM(pfx,modrm) ),
dis_buf);
goto decode_success;
@@ -11441,8 +11441,8 @@
} else {
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
delta += alen;
- putXMMRegLane64( gregOfRexRM(pfx,modrm), 1/*upper lane*/,
- loadLE(Ity_I64, mkexpr(addr)) );
+ putXMMRegLane64F( gregOfRexRM(pfx,modrm), 1/*upper lane*/,
+ loadLE(Ity_F64, mkexpr(addr)) );
DIP("movhpd %s,%s\n", dis_buf,
nameXMMReg( gregOfRexRM(pfx,modrm) ));
goto decode_success;
@@ -11455,15 +11455,15 @@
modrm = getUChar(delta);
if (epartIsReg(modrm)) {
delta += 1;
- putXMMRegLane64( gregOfRexRM(pfx,modrm), 1/*upper lane*/,
- getXMMRegLane64( eregOfRexRM(pfx,modrm), 0 ) );
+ putXMMRegLane64F( gregOfRexRM(pfx,modrm), 1/*upper lane*/,
+ getXMMRegLane64F( eregOfRexRM(pfx,modrm), 0 ) );
DIP("movhps %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
nameXMMReg(gregOfRexRM(pfx,modrm)));
} else {
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
delta += alen;
- putXMMRegLane64( gregOfRexRM(pfx,modrm), 1/*upper lane*/,
- loadLE(Ity_I64, mkexpr(addr)) );
+ putXMMRegLane64F( gregOfRexRM(pfx,modrm), 1/*upper lane*/,
+ loadLE(Ity_F64, mkexpr(addr)) );
DIP("movhps %s,%s\n", dis_buf,
nameXMMReg( gregOfRexRM(pfx,modrm) ));
}
@@ -11480,8 +11480,8 @@
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
delta += alen;
storeLE( mkexpr(addr),
- getXMMRegLane64( gregOfRexRM(pfx,modrm),
- 1/*upper lane*/ ) );
+ getXMMRegLane64F( gregOfRexRM(pfx,modrm),
+ 1/*upper lane*/ ) );
DIP("movhps %s,%s\n", nameXMMReg( gregOfRexRM(pfx,modrm) ),
dis_buf);
goto decode_success;
@@ -11497,8 +11497,8 @@
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
delta += alen;
storeLE( mkexpr(addr),
- getXMMRegLane64( gregOfRexRM(pfx,modrm),
- 1/*upper lane*/ ) );
+ getXMMRegLane64F( gregOfRexRM(pfx,modrm),
+ 1/*upper lane*/ ) );
DIP("movhpd %s,%s\n", nameXMMReg( gregOfRexRM(pfx,modrm) ),
dis_buf);
goto decode_success;
@@ -12781,8 +12781,8 @@
} else {
addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
putXMMReg( gregOfRexRM(pfx,modrm), mkV128(0) );
- putXMMRegLane64( gregOfRexRM(pfx,modrm), 0,
- loadLE(Ity_I64, mkexpr(addr)) );
+ putXMMRegLane64F( gregOfRexRM(pfx,modrm), 0,
+ loadLE(Ity_F64, mkexpr(addr)) );
DIP("movsd %s,%s\n", dis_buf,
nameXMMReg(gregOfRexRM(pfx,modrm)));
delta += alen;