Revision 6454e7be target-ppc/translate.c
b/target-ppc/translate.c | ||
---|---|---|
3618 | 3618 |
static void gen_tw(DisasContext *ctx) |
3619 | 3619 |
{ |
3620 | 3620 |
TCGv_i32 t0 = tcg_const_i32(TO(ctx->opcode)); |
3621 |
/* Update the nip since this might generate a trap exception */ |
|
3622 |
gen_update_nip(ctx, ctx->nip); |
|
3621 |
/* Stop the translation since this might generate a trap exception |
|
3622 |
and/or following instructions might be invalid */ |
|
3623 |
gen_stop_exception(ctx); |
|
3623 | 3624 |
gen_helper_tw(cpu_gpr[rA(ctx->opcode)], cpu_gpr[rB(ctx->opcode)], t0); |
3624 | 3625 |
tcg_temp_free_i32(t0); |
3625 | 3626 |
} |
... | ... | |
3629 | 3630 |
{ |
3630 | 3631 |
TCGv t0 = tcg_const_tl(SIMM(ctx->opcode)); |
3631 | 3632 |
TCGv_i32 t1 = tcg_const_i32(TO(ctx->opcode)); |
3632 |
/* Update the nip since this might generate a trap exception */ |
|
3633 |
gen_update_nip(ctx, ctx->nip); |
|
3633 |
/* Stop the translation since this might generate a trap exception |
|
3634 |
and/or following instructions might be invalid */ |
|
3635 |
gen_stop_exception(ctx); |
|
3634 | 3636 |
gen_helper_tw(cpu_gpr[rA(ctx->opcode)], t0, t1); |
3635 | 3637 |
tcg_temp_free(t0); |
3636 | 3638 |
tcg_temp_free_i32(t1); |
... | ... | |
3641 | 3643 |
static void gen_td(DisasContext *ctx) |
3642 | 3644 |
{ |
3643 | 3645 |
TCGv_i32 t0 = tcg_const_i32(TO(ctx->opcode)); |
3644 |
/* Update the nip since this might generate a trap exception */ |
|
3645 |
gen_update_nip(ctx, ctx->nip); |
|
3646 |
/* Stop the translation since this might generate a trap exception |
|
3647 |
and/or following instructions might be invalid */ |
|
3648 |
gen_stop_exception(ctx); |
|
3646 | 3649 |
gen_helper_td(cpu_gpr[rA(ctx->opcode)], cpu_gpr[rB(ctx->opcode)], t0); |
3647 | 3650 |
tcg_temp_free_i32(t0); |
3648 | 3651 |
} |
... | ... | |
3652 | 3655 |
{ |
3653 | 3656 |
TCGv t0 = tcg_const_tl(SIMM(ctx->opcode)); |
3654 | 3657 |
TCGv_i32 t1 = tcg_const_i32(TO(ctx->opcode)); |
3655 |
/* Update the nip since this might generate a trap exception */ |
|
3656 |
gen_update_nip(ctx, ctx->nip); |
|
3658 |
/* Stop the translation since this might generate a trap exception |
|
3659 |
and/or following instructions might be invalid */ |
|
3660 |
gen_stop_exception(ctx); |
|
3657 | 3661 |
gen_helper_td(cpu_gpr[rA(ctx->opcode)], t0, t1); |
3658 | 3662 |
tcg_temp_free(t0); |
3659 | 3663 |
tcg_temp_free_i32(t1); |
Also available in: Unified diff