Revision 8d96d209 target-sparc/translate.c

b/target-sparc/translate.c
1648 1648

  
1649 1649
static inline void gen_swap_asi(TCGv dst, TCGv addr, int insn)
1650 1650
{
1651
    TCGv r_temp, r_asi;
1651
    TCGv r_asi;
1652 1652

  
1653
    r_temp = tcg_temp_new(TCG_TYPE_I32);
1654 1653
    r_asi = gen_get_asi(insn, addr);
1655
    tcg_gen_helper_1_4(helper_ld_asi, r_temp, addr, r_asi,
1654
    tcg_gen_helper_1_4(helper_ld_asi, cpu_tmp64, addr, r_asi,
1656 1655
                       tcg_const_i32(4), tcg_const_i32(0));
1657 1656
    tcg_gen_helper_0_4(helper_st_asi, addr, dst, r_asi,
1658 1657
                       tcg_const_i32(4));
1659
    tcg_gen_extu_i32_tl(dst, r_temp);
1658
    tcg_gen_trunc_i64_tl(dst, cpu_tmp64);
1660 1659
}
1661 1660

  
1662 1661
static inline void gen_ldda_asi(TCGv lo, TCGv hi, TCGv addr, int insn)
......
1675 1674
{
1676 1675
    TCGv r_temp, r_asi;
1677 1676

  
1678
    r_temp = tcg_temp_new(TCG_TYPE_I32);
1677
    r_temp = tcg_temp_new(TCG_TYPE_TL);
1679 1678
    gen_movl_reg_TN(rd + 1, r_temp);
1680 1679
    tcg_gen_helper_1_2(helper_pack64, cpu_tmp64, hi,
1681 1680
                       r_temp);
......
1731 1730
static inline void gen_swap_asi(TCGv dst, TCGv addr, int insn)
1732 1731
{
1733 1732
    int asi;
1734
    TCGv r_temp;
1735 1733

  
1736
    r_temp = tcg_temp_new(TCG_TYPE_I32);
1737 1734
    asi = GET_FIELD(insn, 19, 26);
1738
    tcg_gen_helper_1_4(helper_ld_asi, r_temp, addr, tcg_const_i32(asi),
1735
    tcg_gen_helper_1_4(helper_ld_asi, cpu_tmp64, addr, tcg_const_i32(asi),
1739 1736
                       tcg_const_i32(4), tcg_const_i32(0));
1740 1737
    tcg_gen_helper_0_4(helper_st_asi, addr, dst, tcg_const_i32(asi),
1741 1738
                       tcg_const_i32(4));
1742
    tcg_gen_extu_i32_tl(dst, r_temp);
1739
    tcg_gen_trunc_i64_tl(dst, cpu_tmp64);
1743 1740
}
1744 1741

  
1745 1742
static inline void gen_ldda_asi(TCGv lo, TCGv hi, TCGv addr, int insn)
......
1759 1756
    int asi;
1760 1757
    TCGv r_temp;
1761 1758

  
1762
    r_temp = tcg_temp_new(TCG_TYPE_I32);
1759
    r_temp = tcg_temp_new(TCG_TYPE_TL);
1763 1760
    gen_movl_reg_TN(rd + 1, r_temp);
1764 1761
    tcg_gen_helper_1_2(helper_pack64, cpu_tmp64, hi, r_temp);
1765 1762
    asi = GET_FIELD(insn, 19, 26);
......
4314 4311
                        ABI32_MASK(cpu_addr);
4315 4312
                        tcg_gen_helper_0_2(helper_check_align, cpu_addr,
4316 4313
                                           tcg_const_i32(7)); // XXX remove
4317
                        r_low = tcg_temp_new(TCG_TYPE_I32);
4314
                        r_low = tcg_temp_new(TCG_TYPE_TL);
4318 4315
                        gen_movl_reg_TN(rd + 1, r_low);
4319 4316
                        tcg_gen_helper_1_2(helper_pack64, cpu_tmp64, cpu_val,
4320 4317
                                           r_low);

Also available in: Unified diff