return disAMode_copy2tmp(
handleSegOverride(sorb, mkU32(d)));
}
-
+ /*NOTREACHED*/
vassert(0);
}
getIReg(4,index_r), mkU8(scale))),
mkU32(d))));
}
+ /*NOTREACHED*/
vassert(0);
}
getIReg(4,index_r), mkU8(scale))),
mkU32(d))));
}
+ /*NOTREACHED*/
vassert(0);
}
case 7: /* BTC */
assign( t2m, binop(Iop_Xor32, mkU32(mask), mkexpr(t2)) );
break;
- default:
+ default:
+ /*NOTREACHED*/ /*the previous switch guards this*/
vassert(0);
}
)
);
} else {
+ /*NOTREACHED*/
vassert(0);
}
}
if (shl || shr) {
- assign( e1, amt >= size
- ? mkU64(0)
- : binop(op, mkexpr(e0), mkU8(amt))
- );
+ assign( e1, amt >= size
+ ? mkU64(0)
+ : binop(op, mkexpr(e0), mkU8(amt))
+ );
} else
if (sar) {
- assign( e1, amt >= size
- ? binop(op, mkexpr(e0), mkU8(size-1))
- : binop(op, mkexpr(e0), mkU8(amt))
- );
+ assign( e1, amt >= size
+ ? binop(op, mkexpr(e0), mkU8(size-1))
+ : binop(op, mkexpr(e0), mkU8(amt))
+ );
} else {
+ /*NOTREACHED*/
vassert(0);
}
)
);
} else {
+ /*NOTREACHED*/
vassert(0);
}
}
if (shl || shr) {
- assign( e1, amt >= size
- ? mkV128(0x0000)
- : binop(op, mkexpr(e0), mkU8(amt))
- );
+ assign( e1, amt >= size
+ ? mkV128(0x0000)
+ : binop(op, mkexpr(e0), mkU8(amt))
+ );
} else
if (sar) {
- assign( e1, amt >= size
- ? binop(op, mkexpr(e0), mkU8(size-1))
- : binop(op, mkexpr(e0), mkU8(amt))
- );
+ assign( e1, amt >= size
+ ? binop(op, mkexpr(e0), mkU8(size-1))
+ : binop(op, mkexpr(e0), mkU8(amt))
+ );
} else {
+ /*NOTREACHED*/
vassert(0);
}
case 1: assign(t5, mkexpr(t1)); break;
case 2: assign(t5, mkexpr(t2)); break;
case 3: assign(t5, mkexpr(t3)); break;
- default: vassert(0);
+ default: vassert(0); /*NOTREACHED*/
}
putIReg(4, gregOfRM(modrm), unop(Iop_16Uto32, mkexpr(t5)));
DIP("pextrw $%d,%s,%s\n",
case 1: assign(t6, mk64from16s(t3,t2,t4,t0)); break;
case 2: assign(t6, mk64from16s(t3,t4,t1,t0)); break;
case 3: assign(t6, mk64from16s(t4,t2,t1,t0)); break;
- default: vassert(0);
+ default: vassert(0); /*NOTREACHED*/
}
putMMXReg(gregOfRM(modrm), mkexpr(t6));
goto decode_success;
case 1: hintstr = "t0"; break;
case 2: hintstr = "t1"; break;
case 3: hintstr = "t2"; break;
- default: vassert(0);
+ default: vassert(0); /*NOTREACHED*/
}
DIP("prefetch%s %s\n", hintstr, dis_buf);
case 5: assign(t4, unop(Iop_32HIto16, mkexpr(t2))); break;
case 6: assign(t4, unop(Iop_32to16, mkexpr(t3))); break;
case 7: assign(t4, unop(Iop_32HIto16, mkexpr(t3))); break;
- default: vassert(0);
+ default: vassert(0); /*NOTREACHED*/
}
putIReg(4, gregOfRM(modrm), unop(Iop_16Uto32, mkexpr(t4)));
DIP("pextrw $%d,%s,%s\n",
lo64r = newTemp(Ity_I64);
if (imm >= 16) {
- vassert(0); /* awaiting test case */
putXMMReg(reg, mkV128(0x0000));
goto decode_success;
}
assign( hi64, unop(Iop_V128HIto64, mkexpr(sV)) );
assign( lo64, unop(Iop_V128to64, mkexpr(sV)) );
+ if (imm == 0) {
+ assign( lo64r, mkexpr(lo64) );
+ assign( hi64r, mkexpr(hi64) );
+ }
+ else
if (imm == 8) {
assign( lo64r, mkU64(0) );
assign( hi64r, mkexpr(lo64) );
}
else
if (imm > 8) {
- vassert(0); /* awaiting test case */
assign( lo64r, mkU64(0) );
assign( hi64r, binop( Iop_Shl64,
mkexpr(lo64),
lo64r = newTemp(Ity_I64);
if (imm >= 16) {
- vassert(0); /* awaiting test case */
putXMMReg(reg, mkV128(0x0000));
goto decode_success;
}
assign( hi64, unop(Iop_V128HIto64, mkexpr(sV)) );
assign( lo64, unop(Iop_V128to64, mkexpr(sV)) );
+ if (imm == 0) {
+ assign( lo64r, mkexpr(lo64) );
+ assign( hi64r, mkexpr(hi64) );
+ }
+ else
if (imm == 8) {
assign( hi64r, mkU64(0) );
assign( lo64r, mkexpr(hi64) );
}
else
if (imm > 8) {
- vassert(0); /* awaiting test case */
assign( hi64r, mkU64(0) );
assign( lo64r, binop( Iop_Shr64,
mkexpr(hi64),