On 10/07/2016 01:57 PM, Nikunj A Dadhania wrote:
+static void gen_xxbrq(DisasContext *ctx) +{ + TCGv_i64 xth = cpu_vsrh(xT(ctx->opcode)); + TCGv_i64 xtl = cpu_vsrl(xT(ctx->opcode)); + TCGv_i64 xbh = cpu_vsrh(xB(ctx->opcode)); + TCGv_i64 xbl = cpu_vsrl(xB(ctx->opcode)); + + if (unlikely(!ctx->vsx_enabled)) { + gen_exception(ctx, POWERPC_EXCP_VSXU); + return; + } + tcg_gen_bswap64_i64(xth, xbl); + tcg_gen_bswap64_i64(xtl, xbh); +}
You need a temporary for the case of T==B. You don't want to overwrite XBH with XTH before you consume the input.
r~