On 08/03/2015 11:49 AM, Richard Henderson wrote:
> #if defined(TARGET_MIPS64)
> - case OPC_DEXTM:
> - tcg_gen_shri_tl(t0, t1, lsb);
> - if (msb != 31) {
> - tcg_gen_andi_tl(t0, t0, (1ULL << (msb + 1 + 32)) - 1);
> - }
> - break;
> case OPC_DEXTU:
> - tcg_gen_shri_tl(t0, t1, lsb + 32);
> - tcg_gen_andi_tl(t0, t0, (1ULL << (msb + 1)) - 1);
> - break;
> + lsb += 32;
> + /* FALLTHRU */
> + case OPC_DEXTM:
> + msb += 32;
> + /* FALLTHRU */
> case OPC_DEXT:
> + if (lsb + msb > 63) {
> + goto fail;
> + }
Apologies: this bit is wrong for DEXTU. I'll re-send.
r~