root / target-mips / helper.h @ 543952ca
History | View | Annotate | Download (12.8 kB)
1 | 7dd9e556 | ths | #ifndef DEF_HELPER
|
---|---|---|---|
2 | 7dd9e556 | ths | #define DEF_HELPER(ret, name, params) ret name params;
|
3 | 7dd9e556 | ths | #endif
|
4 | 30898801 | ths | |
5 | 7dd9e556 | ths | DEF_HELPER(void, do_raise_exception_err, (int excp, int err)) |
6 | 7dd9e556 | ths | DEF_HELPER(void, do_raise_exception, (int excp)) |
7 | 7dd9e556 | ths | DEF_HELPER(void, do_interrupt_restart, (void)) |
8 | 7dd9e556 | ths | |
9 | c8c2227e | ths | #ifdef TARGET_MIPS64
|
10 | be24bb4f | ths | DEF_HELPER(target_ulong, do_ldl, (target_ulong t0, target_ulong t1, int mem_idx))
|
11 | be24bb4f | ths | DEF_HELPER(target_ulong, do_ldr, (target_ulong t0, target_ulong t1, int mem_idx))
|
12 | be24bb4f | ths | DEF_HELPER(void, do_sdl, (target_ulong t0, target_ulong t1, int mem_idx)) |
13 | be24bb4f | ths | DEF_HELPER(void, do_sdr, (target_ulong t0, target_ulong t1, int mem_idx)) |
14 | c8c2227e | ths | #endif
|
15 | be24bb4f | ths | DEF_HELPER(target_ulong, do_lwl, (target_ulong t0, target_ulong t1, int mem_idx))
|
16 | be24bb4f | ths | DEF_HELPER(target_ulong, do_lwr, (target_ulong t0, target_ulong t1, int mem_idx))
|
17 | be24bb4f | ths | DEF_HELPER(void, do_swl, (target_ulong t0, target_ulong t1, int mem_idx)) |
18 | be24bb4f | ths | DEF_HELPER(void, do_swr, (target_ulong t0, target_ulong t1, int mem_idx)) |
19 | c8c2227e | ths | |
20 | be24bb4f | ths | DEF_HELPER(target_ulong, do_clo, (target_ulong t0)) |
21 | be24bb4f | ths | DEF_HELPER(target_ulong, do_clz, (target_ulong t0)) |
22 | 7dd9e556 | ths | #ifdef TARGET_MIPS64
|
23 | be24bb4f | ths | DEF_HELPER(target_ulong, do_dclo, (target_ulong t0)) |
24 | be24bb4f | ths | DEF_HELPER(target_ulong, do_dclz, (target_ulong t0)) |
25 | be24bb4f | ths | DEF_HELPER(void, do_dmult, (target_ulong t0, target_ulong t1))
|
26 | be24bb4f | ths | DEF_HELPER(void, do_dmultu, (target_ulong t0, target_ulong t1))
|
27 | 7dd9e556 | ths | #endif
|
28 | f1aa6320 | ths | |
29 | be24bb4f | ths | DEF_HELPER(target_ulong, do_muls, (target_ulong t0, target_ulong t1)) |
30 | be24bb4f | ths | DEF_HELPER(target_ulong, do_mulsu, (target_ulong t0, target_ulong t1)) |
31 | be24bb4f | ths | DEF_HELPER(target_ulong, do_macc, (target_ulong t0, target_ulong t1)) |
32 | be24bb4f | ths | DEF_HELPER(target_ulong, do_maccu, (target_ulong t0, target_ulong t1)) |
33 | be24bb4f | ths | DEF_HELPER(target_ulong, do_msac, (target_ulong t0, target_ulong t1)) |
34 | be24bb4f | ths | DEF_HELPER(target_ulong, do_msacu, (target_ulong t0, target_ulong t1)) |
35 | be24bb4f | ths | DEF_HELPER(target_ulong, do_mulhi, (target_ulong t0, target_ulong t1)) |
36 | be24bb4f | ths | DEF_HELPER(target_ulong, do_mulhiu, (target_ulong t0, target_ulong t1)) |
37 | be24bb4f | ths | DEF_HELPER(target_ulong, do_mulshi, (target_ulong t0, target_ulong t1)) |
38 | be24bb4f | ths | DEF_HELPER(target_ulong, do_mulshiu, (target_ulong t0, target_ulong t1)) |
39 | be24bb4f | ths | DEF_HELPER(target_ulong, do_macchi, (target_ulong t0, target_ulong t1)) |
40 | be24bb4f | ths | DEF_HELPER(target_ulong, do_macchiu, (target_ulong t0, target_ulong t1)) |
41 | be24bb4f | ths | DEF_HELPER(target_ulong, do_msachi, (target_ulong t0, target_ulong t1)) |
42 | be24bb4f | ths | DEF_HELPER(target_ulong, do_msachiu, (target_ulong t0, target_ulong t1)) |
43 | 92af06d2 | ths | |
44 | f1aa6320 | ths | #ifndef CONFIG_USER_ONLY
|
45 | 0eaef5aa | ths | /* CP0 helpers */
|
46 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_mvpcontrol, (void))
|
47 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_mvpconf0, (void))
|
48 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_mvpconf1, (void))
|
49 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_random, (void))
|
50 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_tcstatus, (void))
|
51 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mftc0_tcstatus, (void))
|
52 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_tcbind, (void))
|
53 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mftc0_tcbind, (void))
|
54 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_tcrestart, (void))
|
55 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mftc0_tcrestart, (void))
|
56 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_tchalt, (void))
|
57 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mftc0_tchalt, (void))
|
58 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_tccontext, (void))
|
59 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mftc0_tccontext, (void))
|
60 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_tcschedule, (void))
|
61 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mftc0_tcschedule, (void))
|
62 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_tcschefback, (void))
|
63 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mftc0_tcschefback, (void))
|
64 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_count, (void))
|
65 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mftc0_entryhi, (void))
|
66 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mftc0_status, (void))
|
67 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_lladdr, (void))
|
68 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_watchlo, (uint32_t sel)) |
69 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_watchhi, (uint32_t sel)) |
70 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mfc0_debug, (void))
|
71 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_mftc0_debug, (void))
|
72 | f1aa6320 | ths | #ifdef TARGET_MIPS64
|
73 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_dmfc0_tcrestart, (void))
|
74 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_dmfc0_tchalt, (void))
|
75 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_dmfc0_tccontext, (void))
|
76 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_dmfc0_tcschedule, (void))
|
77 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_dmfc0_tcschefback, (void))
|
78 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_dmfc0_lladdr, (void))
|
79 | 1a3fd9c3 | ths | DEF_HELPER(target_ulong, do_dmfc0_watchlo, (uint32_t sel)) |
80 | f1aa6320 | ths | #endif /* TARGET_MIPS64 */ |
81 | f1aa6320 | ths | |
82 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_index, (target_ulong t0))
|
83 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_mvpcontrol, (target_ulong t0))
|
84 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_vpecontrol, (target_ulong t0))
|
85 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_vpeconf0, (target_ulong t0))
|
86 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_vpeconf1, (target_ulong t0))
|
87 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_yqmask, (target_ulong t0))
|
88 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_vpeopt, (target_ulong t0))
|
89 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_entrylo0, (target_ulong t0))
|
90 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_tcstatus, (target_ulong t0))
|
91 | be24bb4f | ths | DEF_HELPER(void, do_mttc0_tcstatus, (target_ulong t0))
|
92 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_tcbind, (target_ulong t0))
|
93 | be24bb4f | ths | DEF_HELPER(void, do_mttc0_tcbind, (target_ulong t0))
|
94 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_tcrestart, (target_ulong t0))
|
95 | be24bb4f | ths | DEF_HELPER(void, do_mttc0_tcrestart, (target_ulong t0))
|
96 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_tchalt, (target_ulong t0))
|
97 | be24bb4f | ths | DEF_HELPER(void, do_mttc0_tchalt, (target_ulong t0))
|
98 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_tccontext, (target_ulong t0))
|
99 | be24bb4f | ths | DEF_HELPER(void, do_mttc0_tccontext, (target_ulong t0))
|
100 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_tcschedule, (target_ulong t0))
|
101 | be24bb4f | ths | DEF_HELPER(void, do_mttc0_tcschedule, (target_ulong t0))
|
102 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_tcschefback, (target_ulong t0))
|
103 | be24bb4f | ths | DEF_HELPER(void, do_mttc0_tcschefback, (target_ulong t0))
|
104 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_entrylo1, (target_ulong t0))
|
105 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_context, (target_ulong t0))
|
106 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_pagemask, (target_ulong t0))
|
107 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_pagegrain, (target_ulong t0))
|
108 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_wired, (target_ulong t0))
|
109 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_srsconf0, (target_ulong t0))
|
110 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_srsconf1, (target_ulong t0))
|
111 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_srsconf2, (target_ulong t0))
|
112 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_srsconf3, (target_ulong t0))
|
113 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_srsconf4, (target_ulong t0))
|
114 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_hwrena, (target_ulong t0))
|
115 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_count, (target_ulong t0))
|
116 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_entryhi, (target_ulong t0))
|
117 | be24bb4f | ths | DEF_HELPER(void, do_mttc0_entryhi, (target_ulong t0))
|
118 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_compare, (target_ulong t0))
|
119 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_status, (target_ulong t0))
|
120 | be24bb4f | ths | DEF_HELPER(void, do_mttc0_status, (target_ulong t0))
|
121 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_intctl, (target_ulong t0))
|
122 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_srsctl, (target_ulong t0))
|
123 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_cause, (target_ulong t0))
|
124 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_ebase, (target_ulong t0))
|
125 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_config0, (target_ulong t0))
|
126 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_config2, (target_ulong t0))
|
127 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_watchlo, (target_ulong t0, uint32_t sel))
|
128 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_watchhi, (target_ulong t0, uint32_t sel))
|
129 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_xcontext, (target_ulong t0))
|
130 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_framemask, (target_ulong t0))
|
131 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_debug, (target_ulong t0))
|
132 | be24bb4f | ths | DEF_HELPER(void, do_mttc0_debug, (target_ulong t0))
|
133 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_performance0, (target_ulong t0))
|
134 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_taglo, (target_ulong t0))
|
135 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_datalo, (target_ulong t0))
|
136 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_taghi, (target_ulong t0))
|
137 | be24bb4f | ths | DEF_HELPER(void, do_mtc0_datahi, (target_ulong t0))
|
138 | f1aa6320 | ths | |
139 | f1aa6320 | ths | /* MIPS MT functions */
|
140 | be24bb4f | ths | DEF_HELPER(target_ulong, do_mftgpr, (target_ulong t0, uint32_t sel)) |
141 | be24bb4f | ths | DEF_HELPER(target_ulong, do_mftlo, (target_ulong t0, uint32_t sel)) |
142 | be24bb4f | ths | DEF_HELPER(target_ulong, do_mfthi, (target_ulong t0, uint32_t sel)) |
143 | be24bb4f | ths | DEF_HELPER(target_ulong, do_mftacx, (target_ulong t0, uint32_t sel)) |
144 | be24bb4f | ths | DEF_HELPER(target_ulong, do_mftdsp, (target_ulong t0)) |
145 | be24bb4f | ths | DEF_HELPER(void, do_mttgpr, (target_ulong t0, uint32_t sel))
|
146 | be24bb4f | ths | DEF_HELPER(void, do_mttlo, (target_ulong t0, uint32_t sel))
|
147 | be24bb4f | ths | DEF_HELPER(void, do_mtthi, (target_ulong t0, uint32_t sel))
|
148 | be24bb4f | ths | DEF_HELPER(void, do_mttacx, (target_ulong t0, uint32_t sel))
|
149 | be24bb4f | ths | DEF_HELPER(void, do_mttdsp, (target_ulong t0))
|
150 | be24bb4f | ths | DEF_HELPER(target_ulong, do_dmt, (target_ulong t0)) |
151 | be24bb4f | ths | DEF_HELPER(target_ulong, do_emt, (target_ulong t0)) |
152 | be24bb4f | ths | DEF_HELPER(target_ulong, do_dvpe, (target_ulong t0)) |
153 | be24bb4f | ths | DEF_HELPER(target_ulong, do_evpe, (target_ulong t0)) |
154 | 0eaef5aa | ths | #endif /* !CONFIG_USER_ONLY */ |
155 | 6c5c1e20 | ths | DEF_HELPER(void, do_fork, (target_ulong t0, target_ulong t1))
|
156 | be24bb4f | ths | DEF_HELPER(target_ulong, do_yield, (target_ulong t0)) |
157 | f1aa6320 | ths | |
158 | f1aa6320 | ths | /* CP1 functions */
|
159 | 6c5c1e20 | ths | DEF_HELPER(target_ulong, do_cfc1, (uint32_t reg)) |
160 | be24bb4f | ths | DEF_HELPER(void, do_ctc1, (target_ulong t0, uint32_t reg))
|
161 | 5d0fc900 | ths | |
162 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_cvtd_s, (uint32_t fst0)) |
163 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_cvtd_w, (uint32_t wt0)) |
164 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_cvtd_l, (uint64_t dt0)) |
165 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_cvtl_d, (uint64_t fd0)) |
166 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_cvtl_s, (uint32_t fst0)) |
167 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_cvtps_pw, (uint64_t dt0)) |
168 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_cvtpw_ps, (uint64_t fdt0)) |
169 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_cvts_d, (uint64_t fd0)) |
170 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_cvts_w, (uint32_t wt0)) |
171 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_cvts_l, (uint64_t dt0)) |
172 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_cvts_pl, (uint32_t wt0)) |
173 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_cvts_pu, (uint32_t wth0)) |
174 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_cvtw_s, (uint32_t fst0)) |
175 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_cvtw_d, (uint64_t fd0)) |
176 | b6d96bed | ths | |
177 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_addr_ps, (uint64_t fdt0, uint64_t fdt1)) |
178 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_mulr_ps, (uint64_t fdt0, uint64_t fdt1)) |
179 | b6d96bed | ths | |
180 | b6d96bed | ths | #define FOP_PROTO(op) \
|
181 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_ ## op ## l_s, (uint32_t fst0)) \ |
182 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_ ## op ## l_d, (uint64_t fdt0)) \ |
183 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_ ## op ## w_s, (uint32_t fst0)) \ |
184 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_ ## op ## w_d, (uint64_t fdt0)) |
185 | b6d96bed | ths | FOP_PROTO(round) |
186 | b6d96bed | ths | FOP_PROTO(trunc) |
187 | b6d96bed | ths | FOP_PROTO(ceil) |
188 | b6d96bed | ths | FOP_PROTO(floor) |
189 | b6d96bed | ths | #undef FOP_PROTO
|
190 | b6d96bed | ths | |
191 | b6d96bed | ths | #define FOP_PROTO(op) \
|
192 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_ ## op ## _s, (uint32_t fst0)) \ |
193 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_ ## op ## _d, (uint64_t fdt0)) |
194 | a16336e4 | ths | FOP_PROTO(sqrt) |
195 | 5d0fc900 | ths | FOP_PROTO(rsqrt) |
196 | 5d0fc900 | ths | FOP_PROTO(recip) |
197 | 5d0fc900 | ths | #undef FOP_PROTO
|
198 | 5d0fc900 | ths | |
199 | b6d96bed | ths | #define FOP_PROTO(op) \
|
200 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_ ## op ## _s, (uint32_t fst0)) \ |
201 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_ ## op ## _d, (uint64_t fdt0)) \ |
202 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_ ## op ## _ps, (uint64_t fdt0)) |
203 | b6d96bed | ths | FOP_PROTO(abs) |
204 | b6d96bed | ths | FOP_PROTO(chs) |
205 | b6d96bed | ths | FOP_PROTO(recip1) |
206 | b6d96bed | ths | FOP_PROTO(rsqrt1) |
207 | b6d96bed | ths | #undef FOP_PROTO
|
208 | b6d96bed | ths | |
209 | b6d96bed | ths | #define FOP_PROTO(op) \
|
210 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_ ## op ## _s, (uint32_t fst0, uint32_t fst2)) \ |
211 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_ ## op ## _d, (uint64_t fdt0, uint64_t fdt2)) \ |
212 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_ ## op ## _ps, (uint64_t fdt0, uint64_t fdt2)) |
213 | 5d0fc900 | ths | FOP_PROTO(add) |
214 | 5d0fc900 | ths | FOP_PROTO(sub) |
215 | 5d0fc900 | ths | FOP_PROTO(mul) |
216 | 5d0fc900 | ths | FOP_PROTO(div) |
217 | b6d96bed | ths | FOP_PROTO(recip2) |
218 | b6d96bed | ths | FOP_PROTO(rsqrt2) |
219 | b6d96bed | ths | #undef FOP_PROTO
|
220 | b6d96bed | ths | |
221 | b6d96bed | ths | #define FOP_PROTO(op) \
|
222 | b6d96bed | ths | DEF_HELPER(uint32_t, do_float_ ## op ## _s, (uint32_t fst0, uint32_t fst1, \ |
223 | b6d96bed | ths | uint32_t fst2)) \ |
224 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_ ## op ## _d, (uint64_t fdt0, uint64_t fdt1, \ |
225 | b6d96bed | ths | uint64_t fdt2)) \ |
226 | b6d96bed | ths | DEF_HELPER(uint64_t, do_float_ ## op ## _ps, (uint64_t fdt0, uint64_t fdt1, \ |
227 | b6d96bed | ths | uint64_t fdt2)) |
228 | a16336e4 | ths | FOP_PROTO(muladd) |
229 | a16336e4 | ths | FOP_PROTO(mulsub) |
230 | a16336e4 | ths | FOP_PROTO(nmuladd) |
231 | a16336e4 | ths | FOP_PROTO(nmulsub) |
232 | 5d0fc900 | ths | #undef FOP_PROTO
|
233 | 5d0fc900 | ths | |
234 | b6d96bed | ths | #define FOP_PROTO(op) \
|
235 | b6d96bed | ths | DEF_HELPER(void, do_cmp_d_ ## op, (uint64_t fdt0, uint64_t fdt1, int cc)) \ |
236 | b6d96bed | ths | DEF_HELPER(void, do_cmpabs_d_ ## op, (uint64_t fdt0, uint64_t fdt1, int cc)) \ |
237 | b6d96bed | ths | DEF_HELPER(void, do_cmp_s_ ## op, (uint32_t fst0, uint32_t fst1, int cc)) \ |
238 | b6d96bed | ths | DEF_HELPER(void, do_cmpabs_s_ ## op, (uint32_t fst0, uint32_t fst1, int cc)) \ |
239 | b6d96bed | ths | DEF_HELPER(void, do_cmp_ps_ ## op, (uint64_t fdt0, uint64_t fdt1, int cc)) \ |
240 | b6d96bed | ths | DEF_HELPER(void, do_cmpabs_ps_ ## op, (uint64_t fdt0, uint64_t fdt1, int cc)) |
241 | 5d0fc900 | ths | FOP_PROTO(f) |
242 | 5d0fc900 | ths | FOP_PROTO(un) |
243 | 5d0fc900 | ths | FOP_PROTO(eq) |
244 | 5d0fc900 | ths | FOP_PROTO(ueq) |
245 | 5d0fc900 | ths | FOP_PROTO(olt) |
246 | 5d0fc900 | ths | FOP_PROTO(ult) |
247 | 5d0fc900 | ths | FOP_PROTO(ole) |
248 | 5d0fc900 | ths | FOP_PROTO(ule) |
249 | 5d0fc900 | ths | FOP_PROTO(sf) |
250 | 5d0fc900 | ths | FOP_PROTO(ngle) |
251 | 5d0fc900 | ths | FOP_PROTO(seq) |
252 | 5d0fc900 | ths | FOP_PROTO(ngl) |
253 | 5d0fc900 | ths | FOP_PROTO(lt) |
254 | 5d0fc900 | ths | FOP_PROTO(nge) |
255 | 5d0fc900 | ths | FOP_PROTO(le) |
256 | 5d0fc900 | ths | FOP_PROTO(ngt) |
257 | 5d0fc900 | ths | #undef FOP_PROTO
|
258 | 08ba7963 | ths | |
259 | 08ba7963 | ths | /* Special functions */
|
260 | 0eaef5aa | ths | #ifndef CONFIG_USER_ONLY
|
261 | 2796188e | ths | DEF_HELPER(target_ulong, do_di, (void))
|
262 | 2796188e | ths | DEF_HELPER(target_ulong, do_ei, (void))
|
263 | 6c5c1e20 | ths | DEF_HELPER(void, do_eret, (void)) |
264 | 6c5c1e20 | ths | DEF_HELPER(void, do_deret, (void)) |
265 | 0eaef5aa | ths | #endif /* !CONFIG_USER_ONLY */ |
266 | 2796188e | ths | DEF_HELPER(target_ulong, do_rdhwr_cpunum, (void))
|
267 | 2796188e | ths | DEF_HELPER(target_ulong, do_rdhwr_synci_step, (void))
|
268 | 2796188e | ths | DEF_HELPER(target_ulong, do_rdhwr_cc, (void))
|
269 | 2796188e | ths | DEF_HELPER(target_ulong, do_rdhwr_ccres, (void))
|
270 | 08ba7963 | ths | DEF_HELPER(void, do_pmon, (int function)) |
271 | 08ba7963 | ths | DEF_HELPER(void, do_wait, (void)) |
272 | 2b0233ab | ths | |
273 | 2b0233ab | ths | /* Bitfield operations. */
|
274 | d26968ec | ths | DEF_HELPER(target_ulong, do_ext, (target_ulong t1, uint32_t pos, uint32_t size)) |
275 | be24bb4f | ths | DEF_HELPER(target_ulong, do_ins, (target_ulong t0, target_ulong t1, uint32_t pos, uint32_t size)) |
276 | d26968ec | ths | DEF_HELPER(target_ulong, do_wsbh, (target_ulong t1)) |
277 | 2b0233ab | ths | #ifdef TARGET_MIPS64
|
278 | d26968ec | ths | DEF_HELPER(target_ulong, do_dext, (target_ulong t1, uint32_t pos, uint32_t size)) |
279 | be24bb4f | ths | DEF_HELPER(target_ulong, do_dins, (target_ulong t0, target_ulong t1, uint32_t pos, uint32_t size)) |
280 | d26968ec | ths | DEF_HELPER(target_ulong, do_dsbh, (target_ulong t1)) |
281 | d26968ec | ths | DEF_HELPER(target_ulong, do_dshd, (target_ulong t1)) |
282 | 2b0233ab | ths | #endif |