]> git.proxmox.com Git - qemu.git/blob - target-sparc/helper.h
Convert other float and VIS ops to TCG
[qemu.git] / target-sparc / helper.h
1 #define TCG_HELPER_PROTO
2
3 #ifndef TARGET_SPARC64
4 void TCG_HELPER_PROTO helper_rett(void);
5 void TCG_HELPER_PROTO helper_wrpsr(target_ulong new_psr);
6 target_ulong TCG_HELPER_PROTO helper_rdpsr(void);
7 #else
8 void TCG_HELPER_PROTO helper_wrpstate(target_ulong new_state);
9 void TCG_HELPER_PROTO helper_done(void);
10 void TCG_HELPER_PROTO helper_retry(void);
11 target_ulong TCG_HELPER_PROTO helper_rdccr(void);
12 void TCG_HELPER_PROTO helper_wrccr(target_ulong new_ccr);
13 target_ulong TCG_HELPER_PROTO helper_rdcwp(void);
14 void TCG_HELPER_PROTO helper_wrcwp(target_ulong new_cwp);
15 target_ulong TCG_HELPER_PROTO helper_array8(target_ulong pixel_addr,
16 target_ulong cubesize);
17 target_ulong TCG_HELPER_PROTO helper_alignaddr(target_ulong addr,
18 target_ulong offset);
19 target_ulong TCG_HELPER_PROTO helper_popc(target_ulong val);
20 void TCG_HELPER_PROTO helper_ldf_asi(target_ulong addr, int asi, int size,
21 int rd);
22 void TCG_HELPER_PROTO helper_stf_asi(target_ulong addr, int asi, int size,
23 int rd);
24 target_ulong TCG_HELPER_PROTO
25 helper_cas_asi(target_ulong addr, target_ulong val1,
26 target_ulong val2, uint32_t asi);
27 target_ulong TCG_HELPER_PROTO
28 helper_casx_asi(target_ulong addr, target_ulong val1,
29 target_ulong val2, uint32_t asi);
30 void TCG_HELPER_PROTO helper_tick_set_count(void *opaque, uint64_t count);
31 uint64_t TCG_HELPER_PROTO helper_tick_get_count(void *opaque);
32 void TCG_HELPER_PROTO helper_tick_set_limit(void *opaque, uint64_t limit);
33 #endif
34 void TCG_HELPER_PROTO helper_trap(target_ulong nb_trap);
35 void TCG_HELPER_PROTO helper_trapcc(target_ulong nb_trap,
36 target_ulong do_trap);
37 void TCG_HELPER_PROTO helper_debug(void);
38 void TCG_HELPER_PROTO helper_flush(target_ulong addr);
39 target_ulong TCG_HELPER_PROTO helper_udiv(target_ulong a, target_ulong b);
40 target_ulong TCG_HELPER_PROTO helper_sdiv(target_ulong a, target_ulong b);
41 uint64_t TCG_HELPER_PROTO helper_pack64(target_ulong high, target_ulong low);
42 uint64_t TCG_HELPER_PROTO helper_ld_asi(target_ulong addr, int asi,
43 int size, int sign);
44 void TCG_HELPER_PROTO helper_st_asi(target_ulong addr, uint64_t val, int asi,
45 int size);
46 void TCG_HELPER_PROTO helper_ldfsr(void);
47 void TCG_HELPER_PROTO helper_stfsr(void);
48 void TCG_HELPER_PROTO helper_check_ieee_exceptions(void);
49 void TCG_HELPER_PROTO helper_clear_float_exceptions(void);
50 void TCG_HELPER_PROTO helper_fabss(void);
51 void TCG_HELPER_PROTO helper_fsqrts(void);
52 void TCG_HELPER_PROTO helper_fsqrtd(void);
53 void TCG_HELPER_PROTO helper_fcmps(void);
54 void TCG_HELPER_PROTO helper_fcmpd(void);
55 void TCG_HELPER_PROTO helper_fcmpes(void);
56 void TCG_HELPER_PROTO helper_fcmped(void);
57 #if defined(CONFIG_USER_ONLY)
58 void TCG_HELPER_PROTO helper_fsqrtq(void);
59 void TCG_HELPER_PROTO helper_fcmpq(void);
60 void TCG_HELPER_PROTO helper_fcmpeq(void);
61 #endif
62 #ifdef TARGET_SPARC64
63 void TCG_HELPER_PROTO helper_fabsd(void);
64 void TCG_HELPER_PROTO helper_fcmps_fcc1(void);
65 void TCG_HELPER_PROTO helper_fcmpd_fcc1(void);
66 void TCG_HELPER_PROTO helper_fcmps_fcc2(void);
67 void TCG_HELPER_PROTO helper_fcmpd_fcc2(void);
68 void TCG_HELPER_PROTO helper_fcmps_fcc3(void);
69 void TCG_HELPER_PROTO helper_fcmpd_fcc3(void);
70 void TCG_HELPER_PROTO helper_fcmpes_fcc1(void);
71 void TCG_HELPER_PROTO helper_fcmped_fcc1(void);
72 void TCG_HELPER_PROTO helper_fcmpes_fcc2(void);
73 void TCG_HELPER_PROTO helper_fcmped_fcc2(void);
74 void TCG_HELPER_PROTO helper_fcmpes_fcc3(void);
75 void TCG_HELPER_PROTO helper_fcmped_fcc3(void);
76 #if defined(CONFIG_USER_ONLY)
77 void TCG_HELPER_PROTO helper_fabsq(void);
78 void TCG_HELPER_PROTO helper_fcmpq_fcc1(void);
79 void TCG_HELPER_PROTO helper_fcmpq_fcc2(void);
80 void TCG_HELPER_PROTO helper_fcmpq_fcc3(void);
81 void TCG_HELPER_PROTO helper_fcmpeq_fcc1(void);
82 void TCG_HELPER_PROTO helper_fcmpeq_fcc2(void);
83 void TCG_HELPER_PROTO helper_fcmpeq_fcc3(void);
84 #endif
85 #endif
86 void TCG_HELPER_PROTO raise_exception(int tt);
87 #define F_HELPER_0_0(name) void TCG_HELPER_PROTO helper_f ## name(void)
88 #if defined(CONFIG_USER_ONLY)
89 #define F_HELPER_SDQ_0_0(name) \
90 F_HELPER_0_0(name ## s); \
91 F_HELPER_0_0(name ## d); \
92 F_HELPER_0_0(name ## q)
93 #else
94 #define F_HELPER_SDQ_0_0(name) \
95 F_HELPER_0_0(name ## s); \
96 F_HELPER_0_0(name ## d);
97 #endif
98
99 F_HELPER_SDQ_0_0(add);
100 F_HELPER_SDQ_0_0(sub);
101 F_HELPER_SDQ_0_0(mul);
102 F_HELPER_SDQ_0_0(div);
103
104 F_HELPER_0_0(smuld);
105 F_HELPER_0_0(dmulq);
106
107 F_HELPER_SDQ_0_0(neg);
108 F_HELPER_SDQ_0_0(ito);
109 #ifdef TARGET_SPARC64
110 F_HELPER_SDQ_0_0(xto);
111 #endif
112 F_HELPER_0_0(dtos);
113 F_HELPER_0_0(stod);
114 #if defined(CONFIG_USER_ONLY)
115 F_HELPER_0_0(qtos);
116 F_HELPER_0_0(stoq);
117 F_HELPER_0_0(qtod);
118 F_HELPER_0_0(dtoq);
119 #endif
120 F_HELPER_0_0(stoi);
121 F_HELPER_0_0(dtoi);
122 #if defined(CONFIG_USER_ONLY)
123 F_HELPER_0_0(qtoi);
124 #endif
125 #ifdef TARGET_SPARC64
126 F_HELPER_0_0(stox);
127 F_HELPER_0_0(dtox);
128 #if defined(CONFIG_USER_ONLY)
129 F_HELPER_0_0(qtox);
130 #endif
131 F_HELPER_0_0(aligndata);
132 void TCG_HELPER_PROTO helper_movl_FT0_0(void);
133 void TCG_HELPER_PROTO helper_movl_DT0_0(void);
134 void TCG_HELPER_PROTO helper_movl_FT0_1(void);
135 void TCG_HELPER_PROTO helper_movl_DT0_1(void);
136 F_HELPER_0_0(not);
137 F_HELPER_0_0(nots);
138 F_HELPER_0_0(nor);
139 F_HELPER_0_0(nors);
140 F_HELPER_0_0(or);
141 F_HELPER_0_0(ors);
142 F_HELPER_0_0(xor);
143 F_HELPER_0_0(xors);
144 F_HELPER_0_0(and);
145 F_HELPER_0_0(ands);
146 F_HELPER_0_0(ornot);
147 F_HELPER_0_0(ornots);
148 F_HELPER_0_0(andnot);
149 F_HELPER_0_0(andnots);
150 F_HELPER_0_0(nand);
151 F_HELPER_0_0(nands);
152 F_HELPER_0_0(xnor);
153 F_HELPER_0_0(xnors);
154 F_HELPER_0_0(pmerge);
155 F_HELPER_0_0(mul8x16);
156 F_HELPER_0_0(mul8x16al);
157 F_HELPER_0_0(mul8x16au);
158 F_HELPER_0_0(mul8sux16);
159 F_HELPER_0_0(mul8ulx16);
160 F_HELPER_0_0(muld8sux16);
161 F_HELPER_0_0(muld8ulx16);
162 F_HELPER_0_0(expand);
163 #define VIS_HELPER(name) \
164 F_HELPER_0_0(name##16); \
165 F_HELPER_0_0(name##16s); \
166 F_HELPER_0_0(name##32); \
167 F_HELPER_0_0(name##32s)
168
169 VIS_HELPER(padd);
170 VIS_HELPER(psub);
171 #define VIS_CMPHELPER(name) \
172 F_HELPER_0_0(name##16); \
173 F_HELPER_0_0(name##32)
174 VIS_CMPHELPER(cmpgt);
175 VIS_CMPHELPER(cmpeq);
176 VIS_CMPHELPER(cmple);
177 VIS_CMPHELPER(cmpne);
178 #endif
179 #undef F_HELPER_0_0
180 #undef F_HELPER_SDQ_0_0
181 #undef VIS_HELPER
182 #undef VIS_CMPHELPER