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