Revision 30032c94 target-ppc/translate.c

b/target-ppc/translate.c
2634 2634
/* lwarx */
2635 2635
GEN_HANDLER(lwarx, 0x1F, 0x14, 0x00, 0x00000001, PPC_RES)
2636 2636
{
2637
    /* NIP cannot be restored if the memory exception comes from an helper */
2638
    gen_update_nip(ctx, ctx->nip - 4);
2637 2639
    gen_addr_reg_index(ctx);
2638 2640
    op_lwarx();
2639 2641
    gen_op_store_T1_gpr(rD(ctx->opcode));
......
2642 2644
/* stwcx. */
2643 2645
GEN_HANDLER(stwcx_, 0x1F, 0x16, 0x04, 0x00000000, PPC_RES)
2644 2646
{
2647
    /* NIP cannot be restored if the memory exception comes from an helper */
2648
    gen_update_nip(ctx, ctx->nip - 4);
2645 2649
    gen_addr_reg_index(ctx);
2646 2650
    gen_op_load_gpr_T1(rS(ctx->opcode));
2647 2651
    op_stwcx();
......
2689 2693
/* ldarx */
2690 2694
GEN_HANDLER(ldarx, 0x1F, 0x14, 0x02, 0x00000001, PPC_64B)
2691 2695
{
2696
    /* NIP cannot be restored if the memory exception comes from an helper */
2697
    gen_update_nip(ctx, ctx->nip - 4);
2692 2698
    gen_addr_reg_index(ctx);
2693 2699
    op_ldarx();
2694 2700
    gen_op_store_T1_gpr(rD(ctx->opcode));
......
2697 2703
/* stdcx. */
2698 2704
GEN_HANDLER(stdcx_, 0x1F, 0x16, 0x06, 0x00000000, PPC_64B)
2699 2705
{
2706
    /* NIP cannot be restored if the memory exception comes from an helper */
2707
    gen_update_nip(ctx, ctx->nip - 4);
2700 2708
    gen_addr_reg_index(ctx);
2701 2709
    gen_op_load_gpr_T1(rS(ctx->opcode));
2702 2710
    op_stdcx();
......
3612 3620

  
3613 3621
GEN_HANDLER(icbi, 0x1F, 0x16, 0x1E, 0x03E00001, PPC_CACHE)
3614 3622
{
3623
    /* NIP cannot be restored if the memory exception comes from an helper */
3624
    gen_update_nip(ctx, ctx->nip - 4);
3615 3625
    gen_addr_reg_index(ctx);
3616 3626
    op_icbi();
3617 3627
}

Also available in: Unified diff