Revision d26968ec target-mips/translate.c

b/target-mips/translate.c
464 464
    tcg_temp_free(tmp);
465 465
}
466 466

  
467
static inline void tcg_gen_helper_0_2ii(void *func, TCGv arg1, TCGv arg2, TCGv arg3, TCGv arg4)
467
static inline void tcg_gen_helper_0_1ii(void *func, TCGv arg1, TCGv arg2, TCGv arg3)
468 468
{
469
    TCGv tmp1 = tcg_const_i32(arg3);
469
    TCGv tmp1 = tcg_const_i32(arg2);
470 470
    TCGv tmp2 = tcg_const_i32(arg3);
471 471

  
472
    tcg_gen_helper_0_4(func, arg1, arg2, tmp1, tmp2);
472
    tcg_gen_helper_0_3(func, arg1, tmp1, tmp2);
473 473
    tcg_temp_free(tmp1);
474 474
    tcg_temp_free(tmp2);
475 475
}
......
490 490
    tcg_temp_free(tmp);
491 491
}
492 492

  
493
static inline void tcg_gen_helper_1_1ii(void *func, TCGv ret, TCGv arg1, TCGv arg2, TCGv arg3)
494
{
495
    TCGv tmp1 = tcg_const_i32(arg2);
496
    TCGv tmp2 = tcg_const_i32(arg3);
497

  
498
    tcg_gen_helper_1_3(func, ret, arg1, tmp1, tmp2);
499
    tcg_temp_free(tmp1);
500
    tcg_temp_free(tmp2);
501
}
502

  
493 503
static inline void tcg_gen_helper_1_2i(void *func, TCGv ret, TCGv arg1, TCGv arg2, TCGv arg3)
494 504
{
495 505
    TCGv tmp = tcg_const_i32(arg3);
......
501 511
static inline void tcg_gen_helper_1_2ii(void *func, TCGv ret, TCGv arg1, TCGv arg2, TCGv arg3, TCGv arg4)
502 512
{
503 513
    TCGv tmp1 = tcg_const_i32(arg3);
504
    TCGv tmp2 = tcg_const_i32(arg3);
514
    TCGv tmp2 = tcg_const_i32(arg4);
505 515

  
506 516
    tcg_gen_helper_1_4(func, ret, arg1, arg2, tmp1, tmp2);
507 517
    tcg_temp_free(tmp1);
......
2748 2758
    case OPC_EXT:
2749 2759
        if (lsb + msb > 31)
2750 2760
            goto fail;
2751
        tcg_gen_helper_1_2ii(do_ext, t0, t0, t1, lsb, msb + 1);
2761
        tcg_gen_helper_1_1ii(do_ext, t0, t1, lsb, msb + 1);
2752 2762
        break;
2753 2763
#if defined(TARGET_MIPS64)
2754 2764
    case OPC_DEXTM:
2755 2765
        if (lsb + msb > 63)
2756 2766
            goto fail;
2757
        tcg_gen_helper_1_2ii(do_dext, t0, t0, t1, lsb, msb + 1 + 32);
2767
        tcg_gen_helper_1_1ii(do_dext, t0, t1, lsb, msb + 1 + 32);
2758 2768
        break;
2759 2769
    case OPC_DEXTU:
2760 2770
        if (lsb + msb > 63)
2761 2771
            goto fail;
2762
        tcg_gen_helper_1_2ii(do_dext, t0, t0, t1, lsb + 32, msb + 1);
2772
        tcg_gen_helper_1_1ii(do_dext, t0, t1, lsb + 32, msb + 1);
2763 2773
        break;
2764 2774
    case OPC_DEXT:
2765 2775
        if (lsb + msb > 63)
2766 2776
            goto fail;
2767
        tcg_gen_helper_1_2ii(do_dext, t0, t0, t1, lsb, msb + 1);
2777
        tcg_gen_helper_1_1ii(do_dext, t0, t1, lsb, msb + 1);
2768 2778
        break;
2769 2779
#endif
2770 2780
    case OPC_INS:
......
7388 7398
                switch (op2) {
7389 7399
                case OPC_WSBH:
7390 7400
                    gen_load_gpr(t1, rt);
7391
                    tcg_gen_helper_1_2(do_wsbh, t0, t0, t1);
7401
                    tcg_gen_helper_1_1(do_wsbh, t0, t1);
7392 7402
                    gen_store_gpr(t0, rd);
7393 7403
                    break;
7394 7404
                case OPC_SEB:
......
7490 7500
                switch (op2) {
7491 7501
                case OPC_DSBH:
7492 7502
                    gen_load_gpr(t1, rt);
7493
                    tcg_gen_helper_1_2(do_dsbh, t0, t0, t1);
7503
                    tcg_gen_helper_1_1(do_dsbh, t0, t1);
7494 7504
                    break;
7495 7505
                case OPC_DSHD:
7496 7506
                    gen_load_gpr(t1, rt);
7497
                    tcg_gen_helper_1_2(do_dshd, t0, t0, t1);
7507
                    tcg_gen_helper_1_1(do_dshd, t0, t1);
7498 7508
                    break;
7499 7509
                default:            /* Invalid */
7500 7510
                    MIPS_INVAL("dbshfl");

Also available in: Unified diff