return unop(signd ? Iop_16Sto32 : Iop_16Uto32, src);
}
if (szSmall == 1 && szBig == 8 && !signd) {
- return unop(Iop_32Uto64, unop(Iop_8Uto32, src));
+ return unop(Iop_8Uto64, src);
}
if (szSmall == 1 && szBig == 8 && signd) {
- return unop(Iop_32Sto64, unop(Iop_8Sto32, src));
+ return unop(Iop_8Sto64, src);
}
if (szSmall == 2 && szBig == 8 && !signd) {
- return unop(Iop_32Uto64, unop(Iop_16Uto32, src));
+ return unop(Iop_16Uto64, src);
}
if (szSmall == 2 && szBig == 8 && signd) {
- return unop(Iop_32Sto64, unop(Iop_16Sto32, src));
+ return unop(Iop_16Sto64, src);
}
vpanic("doScalarWidening(amd64)");
}
/* Exclude the requested condition, OP and NDEP from definedness
checking. We're only interested in DEP1 and DEP2. */
call->Iex.CCall.cee->mcx_mask = (1<<0) | (1<<1) | (1<<4);
- return unop(Iop_32to1, unop(Iop_64to32, call));
+ return unop(Iop_64to1, call);
}
/* Build IR to calculate just the carry flag from stored
switch (typeOfIRExpr(irbb->tyenv,e)) {
case Ity_I64: return e;
case Ity_I32: return unop(Iop_32Uto64, e);
- case Ity_I16: return unop(Iop_32Uto64, unop(Iop_16Uto32,e));
- case Ity_I8: return unop(Iop_32Uto64, unop(Iop_8Uto32,e));
+ case Ity_I16: return unop(Iop_16Uto64, e);
+ case Ity_I8: return unop(Iop_8Uto64, e);
default: vpanic("widenUto64");
}
}
switch (typeOfIRExpr(irbb->tyenv,e)) {
case Ity_I64: return e;
case Ity_I32: return unop(Iop_32Sto64, e);
- case Ity_I16: return unop(Iop_32Sto64, unop(Iop_16Sto32,e));
- case Ity_I8: return unop(Iop_32Sto64, unop(Iop_8Sto32,e));
+ case Ity_I16: return unop(Iop_16Sto64, e);
+ case Ity_I8: return unop(Iop_8Sto64, e);
default: vpanic("widenSto64");
}
}
if (src_ty == Ity_I64 && dst_ty == Ity_I32)
return unop(Iop_64to32, e);
if (src_ty == Ity_I64 && dst_ty == Ity_I16)
- return unop(Iop_32to16, unop(Iop_64to32, e));
+ return unop(Iop_64to16, e);
if (src_ty == Ity_I64 && dst_ty == Ity_I8)
- return unop(Iop_32to8, unop(Iop_64to32, e));
+ return unop(Iop_64to8, e);
vex_printf("\nsrc, dst tys are: ");
ppIRType(src_ty);
);
if (sz == 2)
- assign( dst, unop(Iop_32to16, unop(Iop_64to32, mkexpr(dst64))) );
+ assign( dst, unop(Iop_64to16, mkexpr(dst64)) );
else
if (sz == 4)
assign( dst, unop(Iop_64to32, mkexpr(dst64)) );