Revision d78f3995 target-sparc/translate.c
b/target-sparc/translate.c | ||
---|---|---|
92 | 92 |
#define GET_FIELD_SPs(x,a,b) sign_extend (GET_FIELD_SP(x,a,b), ((b) - (a) + 1)) |
93 | 93 |
|
94 | 94 |
#ifdef TARGET_SPARC64 |
95 |
#define FFPREG(r) (r) |
|
96 | 95 |
#define DFPREG(r) (((r & 1) << 5) | (r & 0x1e)) |
97 | 96 |
#define QFPREG(r) (((r & 1) << 5) | (r & 0x1c)) |
98 | 97 |
#else |
99 |
#define FFPREG(r) (r) |
|
100 | 98 |
#define DFPREG(r) (r & 0x1e) |
101 | 99 |
#define QFPREG(r) (r & 0x1c) |
102 | 100 |
#endif |
... | ... | |
2846 | 2844 |
#undef FMOVSCC |
2847 | 2845 |
#undef FMOVDCC |
2848 | 2846 |
#undef FMOVQCC |
2849 |
#define FMOVCC(size_FDQ, icc) \ |
|
2850 |
{ \ |
|
2851 |
TCGv r_cond; \ |
|
2852 |
int l1; \ |
|
2853 |
\ |
|
2854 |
l1 = gen_new_label(); \ |
|
2855 |
r_cond = tcg_temp_new(); \ |
|
2856 |
cond = GET_FIELD_SP(insn, 14, 17); \ |
|
2857 |
gen_cond(r_cond, icc, cond); \ |
|
2858 |
tcg_gen_brcondi_tl(TCG_COND_EQ, r_cond, \ |
|
2859 |
0, l1); \ |
|
2860 |
glue(glue(gen_op_load_fpr_, size_FDQ), T0) \ |
|
2861 |
(glue(size_FDQ, FPREG(rs2))); \ |
|
2862 |
glue(glue(gen_op_store_, size_FDQ), T0_fpr) \ |
|
2863 |
(glue(size_FDQ, FPREG(rd))); \ |
|
2864 |
gen_set_label(l1); \ |
|
2865 |
tcg_temp_free(r_cond); \ |
|
2866 |
} |
|
2867 | 2847 |
#define FMOVSCC(icc) \ |
2868 | 2848 |
{ \ |
2869 | 2849 |
TCGv r_cond; \ |
Also available in: Unified diff