Revision 17d9b3af target-ppc/translate.c

b/target-ppc/translate.c
6975 6975
#if defined(TARGET_PPC64)
6976 6976
    TCGv t0 = tcg_temp_new();
6977 6977
    TCGv t1 = tcg_temp_new();
6978
    tcg_gen_andi_tl(t0, cpu_gpr[rB(ctx->opcode)], 0x00000000FFFFFFFFLL);
6978
    tcg_gen_ext32u_tl(t0, cpu_gpr[rB(ctx->opcode)]);
6979 6979
    tcg_gen_shli_tl(t1, cpu_gpr[rA(ctx->opcode)], 32);
6980 6980
    tcg_gen_or_tl(cpu_gpr[rD(ctx->opcode)], t0, t1);
6981 6981
    tcg_temp_free(t0);
......
6994 6994
#if defined(TARGET_PPC64)
6995 6995
    TCGv t0 = tcg_temp_new();
6996 6996
    TCGv t1 = tcg_temp_new();
6997
    tcg_gen_andi_tl(t0, cpu_gpr[rB(ctx->opcode)], 0x00000000FFFFFFFFLL);
6997
    tcg_gen_ext32u_tl(t0, cpu_gpr[rB(ctx->opcode)]);
6998 6998
    tcg_gen_andi_tl(t1, cpu_gpr[rA(ctx->opcode)], 0xFFFFFFFF0000000ULL);
6999 6999
    tcg_gen_or_tl(cpu_gpr[rD(ctx->opcode)], t0, t1);
7000 7000
    tcg_temp_free(t0);
......
7083 7083
    tcg_gen_andi_i32(t0, cpu_crf[ctx->opcode & 0x07], 1 << 2);
7084 7084
    tcg_gen_brcondi_i32(TCG_COND_EQ, t0, 0, l3);
7085 7085
#if defined(TARGET_PPC64)
7086
    tcg_gen_andi_tl(t2, cpu_gpr[rA(ctx->opcode)], 0x00000000FFFFFFFFULL);
7086
    tcg_gen_ext32u_tl(t2, cpu_gpr[rA(ctx->opcode)]);
7087 7087
#else
7088 7088
    tcg_gen_mov_tl(cpu_gpr[rD(ctx->opcode)], cpu_gpr[rA(ctx->opcode)]);
7089 7089
#endif
7090 7090
    tcg_gen_br(l4);
7091 7091
    gen_set_label(l3);
7092 7092
#if defined(TARGET_PPC64)
7093
    tcg_gen_andi_tl(t2, cpu_gpr[rB(ctx->opcode)], 0x00000000FFFFFFFFULL);
7093
    tcg_gen_ext32u_tl(t2, cpu_gpr[rB(ctx->opcode)]);
7094 7094
#else
7095 7095
    tcg_gen_mov_tl(cpu_gpr[rD(ctx->opcode)], cpu_gpr[rB(ctx->opcode)]);
7096 7096
#endif

Also available in: Unified diff