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