On 08/11/2014 09:23 AM, Tom Musta wrote: > Also fix the special case of MB=31 and ME=0 to copy the entire contents > of the source GPR.
Err, that's not what you did. > if (likely(sh == 0 && mb == 0 && me == 31)) { > +#if defined(TARGET_PPC64) > + tcg_gen_mov_i64(cpu_gpr[rA(ctx->opcode)], cpu_gpr[rS(ctx->opcode)]); > +#else > tcg_gen_ext32u_tl(cpu_gpr[rA(ctx->opcode)], > cpu_gpr[rS(ctx->opcode)]); > +#endif This is the reverse condition. Which, true enough, should not be implemented with ext32u for PPC64. But a MOV isn't right either, it is deposit(ra, rs, 0, 32) Which does point out that we should probably implement anything MB <= ME and SH == 31 - ME with the deposit opcode. r~