]> git.proxmox.com Git - qemu.git/blame - target-ppc/helper.h
Add vpks{h, w}{s, u}s, vpku{h, w}us, and vpku{h, w}um instructions.
[qemu.git] / target-ppc / helper.h
CommitLineData
a7812ae4 1#include "def-helper.h"
f10dc08e 2
64adab3f 3DEF_HELPER_2(raise_exception_err, void, i32, i32)
e06fcd75 4DEF_HELPER_1(raise_exception, void, i32)
cab3bee2
AJ
5DEF_HELPER_3(tw, void, tl, tl, i32)
6#if defined(TARGET_PPC64)
7DEF_HELPER_3(td, void, tl, tl, i32)
8#endif
d72a19f7 9#if !defined(CONFIG_USER_ONLY)
6527f6ea 10DEF_HELPER_1(store_msr, void, tl)
d72a19f7
AJ
11DEF_HELPER_0(rfi, void)
12DEF_HELPER_0(rfsvc, void)
13DEF_HELPER_0(40x_rfci, void)
14DEF_HELPER_0(rfci, void)
15DEF_HELPER_0(rfdi, void)
16DEF_HELPER_0(rfmci, void)
17#if defined(TARGET_PPC64)
18DEF_HELPER_0(rfid, void)
19DEF_HELPER_0(hrfid, void)
20#endif
21#endif
64adab3f 22
ff4a62cd
AJ
23DEF_HELPER_2(lmw, void, tl, i32)
24DEF_HELPER_2(stmw, void, tl, i32)
dfbc799d
AJ
25DEF_HELPER_3(lsw, void, tl, i32, i32)
26DEF_HELPER_4(lswx, void, tl, i32, i32, i32)
27DEF_HELPER_3(stsw, void, tl, i32, i32)
799a8c8d
AJ
28DEF_HELPER_1(dcbz, void, tl)
29DEF_HELPER_1(dcbz_970, void, tl)
37d269df 30DEF_HELPER_1(icbi, void, tl)
bdb4b689
AJ
31DEF_HELPER_4(lscbx, tl, tl, i32, i32, i32)
32
a7812ae4
PB
33DEF_HELPER_0(load_cr, tl)
34DEF_HELPER_2(store_cr, void, tl, i32)
26d67362 35
74637406 36#if defined(TARGET_PPC64)
a7812ae4
PB
37DEF_HELPER_2(mulhd, i64, i64, i64)
38DEF_HELPER_2(mulhdu, i64, i64, i64)
39DEF_HELPER_2(mulldo, i64, i64, i64)
74637406
AJ
40#endif
41
a7812ae4
PB
42DEF_HELPER_1(cntlzw, tl, tl)
43DEF_HELPER_1(popcntb, tl, tl)
44DEF_HELPER_2(sraw, tl, tl, tl)
26d67362 45#if defined(TARGET_PPC64)
a7812ae4
PB
46DEF_HELPER_1(cntlzd, tl, tl)
47DEF_HELPER_1(popcntb_64, tl, tl)
48DEF_HELPER_2(srad, tl, tl, tl)
26d67362
AJ
49#endif
50
a7812ae4
PB
51DEF_HELPER_1(cntlsw32, i32, i32)
52DEF_HELPER_1(cntlzw32, i32, i32)
53DEF_HELPER_2(brinc, tl, tl, tl)
54
af12906f
AJ
55DEF_HELPER_0(float_check_status, void)
56#ifdef CONFIG_SOFTFLOAT
57DEF_HELPER_0(reset_fpstatus, void)
58#endif
59DEF_HELPER_2(compute_fprf, i32, i64, i32)
60DEF_HELPER_2(store_fpscr, void, i64, i32)
6e35d524 61DEF_HELPER_1(fpscr_clrbit, void, i32)
af12906f 62DEF_HELPER_1(fpscr_setbit, void, i32)
a0d7d5a7
AJ
63DEF_HELPER_1(float64_to_float32, i32, i64)
64DEF_HELPER_1(float32_to_float64, i64, i32)
af12906f 65
9a819377
AJ
66DEF_HELPER_3(fcmpo, void, i64, i64, i32)
67DEF_HELPER_3(fcmpu, void, i64, i64, i32)
d72a19f7 68
af12906f
AJ
69DEF_HELPER_1(fctiw, i64, i64)
70DEF_HELPER_1(fctiwz, i64, i64)
71#if defined(TARGET_PPC64)
72DEF_HELPER_1(fcfid, i64, i64)
73DEF_HELPER_1(fctid, i64, i64)
74DEF_HELPER_1(fctidz, i64, i64)
75#endif
76DEF_HELPER_1(frsp, i64, i64)
77DEF_HELPER_1(frin, i64, i64)
78DEF_HELPER_1(friz, i64, i64)
79DEF_HELPER_1(frip, i64, i64)
80DEF_HELPER_1(frim, i64, i64)
81
82DEF_HELPER_2(fadd, i64, i64, i64)
83DEF_HELPER_2(fsub, i64, i64, i64)
84DEF_HELPER_2(fmul, i64, i64, i64)
85DEF_HELPER_2(fdiv, i64, i64, i64)
86DEF_HELPER_3(fmadd, i64, i64, i64, i64)
87DEF_HELPER_3(fmsub, i64, i64, i64, i64)
88DEF_HELPER_3(fnmadd, i64, i64, i64, i64)
89DEF_HELPER_3(fnmsub, i64, i64, i64, i64)
90DEF_HELPER_1(fabs, i64, i64)
91DEF_HELPER_1(fnabs, i64, i64)
92DEF_HELPER_1(fneg, i64, i64)
1c97856d
AJ
93DEF_HELPER_1(fsqrt, i64, i64)
94DEF_HELPER_1(fre, i64, i64)
95DEF_HELPER_1(fres, i64, i64)
96DEF_HELPER_1(frsqrte, i64, i64)
af12906f
AJ
97DEF_HELPER_3(fsel, i64, i64, i64, i64)
98
7872c51c
AJ
99#define dh_alias_avr ptr
100#define dh_ctype_avr ppc_avr_t *
101
102DEF_HELPER_3(vaddubm, void, avr, avr, avr)
103DEF_HELPER_3(vadduhm, void, avr, avr, avr)
104DEF_HELPER_3(vadduwm, void, avr, avr, avr)
105DEF_HELPER_3(vsububm, void, avr, avr, avr)
106DEF_HELPER_3(vsubuhm, void, avr, avr, avr)
107DEF_HELPER_3(vsubuwm, void, avr, avr, avr)
fab3cbe9
AJ
108DEF_HELPER_3(vavgub, void, avr, avr, avr)
109DEF_HELPER_3(vavguh, void, avr, avr, avr)
110DEF_HELPER_3(vavguw, void, avr, avr, avr)
111DEF_HELPER_3(vavgsb, void, avr, avr, avr)
112DEF_HELPER_3(vavgsh, void, avr, avr, avr)
113DEF_HELPER_3(vavgsw, void, avr, avr, avr)
e4039339
AJ
114DEF_HELPER_3(vminsb, void, avr, avr, avr)
115DEF_HELPER_3(vminsh, void, avr, avr, avr)
116DEF_HELPER_3(vminsw, void, avr, avr, avr)
117DEF_HELPER_3(vmaxsb, void, avr, avr, avr)
118DEF_HELPER_3(vmaxsh, void, avr, avr, avr)
119DEF_HELPER_3(vmaxsw, void, avr, avr, avr)
120DEF_HELPER_3(vminub, void, avr, avr, avr)
121DEF_HELPER_3(vminuh, void, avr, avr, avr)
122DEF_HELPER_3(vminuw, void, avr, avr, avr)
123DEF_HELPER_3(vmaxub, void, avr, avr, avr)
124DEF_HELPER_3(vmaxuh, void, avr, avr, avr)
125DEF_HELPER_3(vmaxuw, void, avr, avr, avr)
3b430048
AJ
126DEF_HELPER_3(vmrglb, void, avr, avr, avr)
127DEF_HELPER_3(vmrglh, void, avr, avr, avr)
128DEF_HELPER_3(vmrglw, void, avr, avr, avr)
129DEF_HELPER_3(vmrghb, void, avr, avr, avr)
130DEF_HELPER_3(vmrghh, void, avr, avr, avr)
131DEF_HELPER_3(vmrghw, void, avr, avr, avr)
2c277908
AJ
132DEF_HELPER_3(vmulesb, void, avr, avr, avr)
133DEF_HELPER_3(vmulesh, void, avr, avr, avr)
134DEF_HELPER_3(vmuleub, void, avr, avr, avr)
135DEF_HELPER_3(vmuleuh, void, avr, avr, avr)
136DEF_HELPER_3(vmulosb, void, avr, avr, avr)
137DEF_HELPER_3(vmulosh, void, avr, avr, avr)
138DEF_HELPER_3(vmuloub, void, avr, avr, avr)
139DEF_HELPER_3(vmulouh, void, avr, avr, avr)
07ef34c3
AJ
140DEF_HELPER_3(vsrab, void, avr, avr, avr)
141DEF_HELPER_3(vsrah, void, avr, avr, avr)
142DEF_HELPER_3(vsraw, void, avr, avr, avr)
143DEF_HELPER_3(vsrb, void, avr, avr, avr)
144DEF_HELPER_3(vsrh, void, avr, avr, avr)
145DEF_HELPER_3(vsrw, void, avr, avr, avr)
d79f0809
AJ
146DEF_HELPER_3(vslb, void, avr, avr, avr)
147DEF_HELPER_3(vslh, void, avr, avr, avr)
148DEF_HELPER_3(vslw, void, avr, avr, avr)
7b239bec
AJ
149DEF_HELPER_3(vslo, void, avr, avr, avr)
150DEF_HELPER_3(vsro, void, avr, avr, avr)
e343da72
AJ
151DEF_HELPER_3(vaddcuw, void, avr, avr, avr)
152DEF_HELPER_3(vsubcuw, void, avr, avr, avr)
bf8d8ded
AJ
153DEF_HELPER_2(lvsl, void, avr, tl);
154DEF_HELPER_2(lvsr, void, avr, tl);
5e1d0985
AJ
155DEF_HELPER_3(vrlb, void, avr, avr, avr)
156DEF_HELPER_3(vrlh, void, avr, avr, avr)
157DEF_HELPER_3(vrlw, void, avr, avr, avr)
cd633b10 158DEF_HELPER_4(vsldoi, void, avr, avr, avr, i32)
e4e6bee7
AJ
159DEF_HELPER_3(vspltb, void, avr, avr, i32)
160DEF_HELPER_3(vsplth, void, avr, avr, i32)
161DEF_HELPER_3(vspltw, void, avr, avr, i32)
79f85c3a
AJ
162DEF_HELPER_2(vupkhpx, void, avr, avr)
163DEF_HELPER_2(vupklpx, void, avr, avr)
6cf1c6e5
AJ
164DEF_HELPER_2(vupkhsb, void, avr, avr)
165DEF_HELPER_2(vupkhsh, void, avr, avr)
166DEF_HELPER_2(vupklsb, void, avr, avr)
167DEF_HELPER_2(vupklsh, void, avr, avr)
b04ae981
AJ
168DEF_HELPER_4(vmsumubm, void, avr, avr, avr, avr)
169DEF_HELPER_4(vmsummbm, void, avr, avr, avr, avr)
d1258698
AJ
170DEF_HELPER_4(vsel, void, avr, avr, avr, avr)
171DEF_HELPER_4(vperm, void, avr, avr, avr, avr)
5335a145
AJ
172DEF_HELPER_3(vpkshss, void, avr, avr, avr)
173DEF_HELPER_3(vpkshus, void, avr, avr, avr)
174DEF_HELPER_3(vpkswss, void, avr, avr, avr)
175DEF_HELPER_3(vpkswus, void, avr, avr, avr)
176DEF_HELPER_3(vpkuhus, void, avr, avr, avr)
177DEF_HELPER_3(vpkuwus, void, avr, avr, avr)
178DEF_HELPER_3(vpkuhum, void, avr, avr, avr)
179DEF_HELPER_3(vpkuwum, void, avr, avr, avr)
fab3cbe9 180
1c97856d
AJ
181DEF_HELPER_1(efscfsi, i32, i32)
182DEF_HELPER_1(efscfui, i32, i32)
183DEF_HELPER_1(efscfuf, i32, i32)
184DEF_HELPER_1(efscfsf, i32, i32)
185DEF_HELPER_1(efsctsi, i32, i32)
186DEF_HELPER_1(efsctui, i32, i32)
187DEF_HELPER_1(efsctsiz, i32, i32)
188DEF_HELPER_1(efsctuiz, i32, i32)
189DEF_HELPER_1(efsctsf, i32, i32)
190DEF_HELPER_1(efsctuf, i32, i32)
191DEF_HELPER_1(evfscfsi, i64, i64)
192DEF_HELPER_1(evfscfui, i64, i64)
193DEF_HELPER_1(evfscfuf, i64, i64)
194DEF_HELPER_1(evfscfsf, i64, i64)
195DEF_HELPER_1(evfsctsi, i64, i64)
196DEF_HELPER_1(evfsctui, i64, i64)
197DEF_HELPER_1(evfsctsiz, i64, i64)
198DEF_HELPER_1(evfsctuiz, i64, i64)
199DEF_HELPER_1(evfsctsf, i64, i64)
200DEF_HELPER_1(evfsctuf, i64, i64)
201DEF_HELPER_2(efsadd, i32, i32, i32)
202DEF_HELPER_2(efssub, i32, i32, i32)
203DEF_HELPER_2(efsmul, i32, i32, i32)
204DEF_HELPER_2(efsdiv, i32, i32, i32)
205DEF_HELPER_2(evfsadd, i64, i64, i64)
206DEF_HELPER_2(evfssub, i64, i64, i64)
207DEF_HELPER_2(evfsmul, i64, i64, i64)
208DEF_HELPER_2(evfsdiv, i64, i64, i64)
209DEF_HELPER_2(efststlt, i32, i32, i32)
210DEF_HELPER_2(efststgt, i32, i32, i32)
211DEF_HELPER_2(efststeq, i32, i32, i32)
212DEF_HELPER_2(efscmplt, i32, i32, i32)
213DEF_HELPER_2(efscmpgt, i32, i32, i32)
214DEF_HELPER_2(efscmpeq, i32, i32, i32)
215DEF_HELPER_2(evfststlt, i32, i64, i64)
216DEF_HELPER_2(evfststgt, i32, i64, i64)
217DEF_HELPER_2(evfststeq, i32, i64, i64)
218DEF_HELPER_2(evfscmplt, i32, i64, i64)
219DEF_HELPER_2(evfscmpgt, i32, i64, i64)
220DEF_HELPER_2(evfscmpeq, i32, i64, i64)
221DEF_HELPER_1(efdcfsi, i64, i32)
222DEF_HELPER_1(efdcfsid, i64, i64)
223DEF_HELPER_1(efdcfui, i64, i32)
224DEF_HELPER_1(efdcfuid, i64, i64)
225DEF_HELPER_1(efdctsi, i32, i64)
226DEF_HELPER_1(efdctui, i32, i64)
227DEF_HELPER_1(efdctsiz, i32, i64)
228DEF_HELPER_1(efdctsidz, i64, i64)
229DEF_HELPER_1(efdctuiz, i32, i64)
230DEF_HELPER_1(efdctuidz, i64, i64)
231DEF_HELPER_1(efdcfsf, i64, i32)
232DEF_HELPER_1(efdcfuf, i64, i32)
233DEF_HELPER_1(efdctsf, i32, i64)
234DEF_HELPER_1(efdctuf, i32, i64)
235DEF_HELPER_1(efscfd, i32, i64)
236DEF_HELPER_1(efdcfs, i64, i32)
237DEF_HELPER_2(efdadd, i64, i64, i64)
238DEF_HELPER_2(efdsub, i64, i64, i64)
239DEF_HELPER_2(efdmul, i64, i64, i64)
240DEF_HELPER_2(efddiv, i64, i64, i64)
241DEF_HELPER_2(efdtstlt, i32, i64, i64)
242DEF_HELPER_2(efdtstgt, i32, i64, i64)
243DEF_HELPER_2(efdtsteq, i32, i64, i64)
244DEF_HELPER_2(efdcmplt, i32, i64, i64)
245DEF_HELPER_2(efdcmpgt, i32, i64, i64)
246DEF_HELPER_2(efdcmpeq, i32, i64, i64)
247
0f3955e2 248#if !defined(CONFIG_USER_ONLY)
74d37793
AJ
249DEF_HELPER_1(4xx_tlbre_hi, tl, tl)
250DEF_HELPER_1(4xx_tlbre_lo, tl, tl)
251DEF_HELPER_2(4xx_tlbwe_hi, void, tl, tl)
252DEF_HELPER_2(4xx_tlbwe_lo, void, tl, tl)
253DEF_HELPER_1(4xx_tlbsx, tl, tl)
254DEF_HELPER_2(440_tlbre, tl, i32, tl)
255DEF_HELPER_3(440_tlbwe, void, i32, tl, tl)
256DEF_HELPER_1(440_tlbsx, tl, tl)
257DEF_HELPER_1(6xx_tlbd, void, tl)
258DEF_HELPER_1(6xx_tlbi, void, tl)
259DEF_HELPER_1(74xx_tlbd, void, tl)
260DEF_HELPER_1(74xx_tlbi, void, tl)
261DEF_HELPER_0(tlbia, void)
262DEF_HELPER_1(tlbie, void, tl)
263#if defined(TARGET_PPC64)
264DEF_HELPER_1(load_slb, tl, tl)
265DEF_HELPER_2(store_slb, void, tl, tl)
266DEF_HELPER_0(slbia, void)
267DEF_HELPER_1(slbie, void, tl)
268#endif
269DEF_HELPER_1(load_sr, tl, tl);
45d827d2 270DEF_HELPER_2(store_sr, void, tl, tl)
cf02a65c
AJ
271
272DEF_HELPER_1(602_mfrom, tl, tl)
0f3955e2
AJ
273#endif
274
ef0d51af 275DEF_HELPER_3(dlmzb, tl, tl, tl, i32)
22e0e173
AJ
276DEF_HELPER_1(clcs, tl, i32)
277#if !defined(CONFIG_USER_ONLY)
278DEF_HELPER_1(rac, tl, tl)
279#endif
280DEF_HELPER_2(div, tl, tl, tl)
281DEF_HELPER_2(divo, tl, tl, tl)
282DEF_HELPER_2(divs, tl, tl, tl)
283DEF_HELPER_2(divso, tl, tl, tl)
ef0d51af 284
06dca6a7 285DEF_HELPER_1(load_dcr, tl, tl);
45d827d2
AJ
286DEF_HELPER_2(store_dcr, void, tl, tl)
287
288DEF_HELPER_1(load_dump_spr, void, i32)
289DEF_HELPER_1(store_dump_spr, void, i32)
290DEF_HELPER_0(load_tbl, tl)
291DEF_HELPER_0(load_tbu, tl)
292DEF_HELPER_0(load_atbl, tl)
293DEF_HELPER_0(load_atbu, tl)
294DEF_HELPER_0(load_601_rtcl, tl)
295DEF_HELPER_0(load_601_rtcu, tl)
296#if !defined(CONFIG_USER_ONLY)
297#if defined(TARGET_PPC64)
298DEF_HELPER_1(store_asr, void, tl)
299#endif
300DEF_HELPER_1(store_sdr1, void, tl)
301DEF_HELPER_1(store_tbl, void, tl)
302DEF_HELPER_1(store_tbu, void, tl)
303DEF_HELPER_1(store_atbl, void, tl)
304DEF_HELPER_1(store_atbu, void, tl)
305DEF_HELPER_1(store_601_rtcl, void, tl)
306DEF_HELPER_1(store_601_rtcu, void, tl)
307DEF_HELPER_0(load_decr, tl)
308DEF_HELPER_1(store_decr, void, tl)
309DEF_HELPER_1(store_hid0_601, void, tl)
310DEF_HELPER_2(store_403_pbr, void, i32, tl)
311DEF_HELPER_0(load_40x_pit, tl)
312DEF_HELPER_1(store_40x_pit, void, tl)
313DEF_HELPER_1(store_40x_dbcr0, void, tl)
314DEF_HELPER_1(store_40x_sler, void, tl)
315DEF_HELPER_1(store_booke_tcr, void, tl)
316DEF_HELPER_1(store_booke_tsr, void, tl)
317DEF_HELPER_2(store_ibatl, void, i32, tl)
318DEF_HELPER_2(store_ibatu, void, i32, tl)
319DEF_HELPER_2(store_dbatl, void, i32, tl)
320DEF_HELPER_2(store_dbatu, void, i32, tl)
321DEF_HELPER_2(store_601_batl, void, i32, tl)
322DEF_HELPER_2(store_601_batu, void, i32, tl)
323#endif
06dca6a7 324
a7812ae4 325#include "def-helper.h"