]> git.proxmox.com Git - qemu.git/blame - target-ppc/helper.h
Add vavg{s,u}{b,h,w} 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)
114
1c97856d
AJ
115DEF_HELPER_1(efscfsi, i32, i32)
116DEF_HELPER_1(efscfui, i32, i32)
117DEF_HELPER_1(efscfuf, i32, i32)
118DEF_HELPER_1(efscfsf, i32, i32)
119DEF_HELPER_1(efsctsi, i32, i32)
120DEF_HELPER_1(efsctui, i32, i32)
121DEF_HELPER_1(efsctsiz, i32, i32)
122DEF_HELPER_1(efsctuiz, i32, i32)
123DEF_HELPER_1(efsctsf, i32, i32)
124DEF_HELPER_1(efsctuf, i32, i32)
125DEF_HELPER_1(evfscfsi, i64, i64)
126DEF_HELPER_1(evfscfui, i64, i64)
127DEF_HELPER_1(evfscfuf, i64, i64)
128DEF_HELPER_1(evfscfsf, i64, i64)
129DEF_HELPER_1(evfsctsi, i64, i64)
130DEF_HELPER_1(evfsctui, i64, i64)
131DEF_HELPER_1(evfsctsiz, i64, i64)
132DEF_HELPER_1(evfsctuiz, i64, i64)
133DEF_HELPER_1(evfsctsf, i64, i64)
134DEF_HELPER_1(evfsctuf, i64, i64)
135DEF_HELPER_2(efsadd, i32, i32, i32)
136DEF_HELPER_2(efssub, i32, i32, i32)
137DEF_HELPER_2(efsmul, i32, i32, i32)
138DEF_HELPER_2(efsdiv, i32, i32, i32)
139DEF_HELPER_2(evfsadd, i64, i64, i64)
140DEF_HELPER_2(evfssub, i64, i64, i64)
141DEF_HELPER_2(evfsmul, i64, i64, i64)
142DEF_HELPER_2(evfsdiv, i64, i64, i64)
143DEF_HELPER_2(efststlt, i32, i32, i32)
144DEF_HELPER_2(efststgt, i32, i32, i32)
145DEF_HELPER_2(efststeq, i32, i32, i32)
146DEF_HELPER_2(efscmplt, i32, i32, i32)
147DEF_HELPER_2(efscmpgt, i32, i32, i32)
148DEF_HELPER_2(efscmpeq, i32, i32, i32)
149DEF_HELPER_2(evfststlt, i32, i64, i64)
150DEF_HELPER_2(evfststgt, i32, i64, i64)
151DEF_HELPER_2(evfststeq, i32, i64, i64)
152DEF_HELPER_2(evfscmplt, i32, i64, i64)
153DEF_HELPER_2(evfscmpgt, i32, i64, i64)
154DEF_HELPER_2(evfscmpeq, i32, i64, i64)
155DEF_HELPER_1(efdcfsi, i64, i32)
156DEF_HELPER_1(efdcfsid, i64, i64)
157DEF_HELPER_1(efdcfui, i64, i32)
158DEF_HELPER_1(efdcfuid, i64, i64)
159DEF_HELPER_1(efdctsi, i32, i64)
160DEF_HELPER_1(efdctui, i32, i64)
161DEF_HELPER_1(efdctsiz, i32, i64)
162DEF_HELPER_1(efdctsidz, i64, i64)
163DEF_HELPER_1(efdctuiz, i32, i64)
164DEF_HELPER_1(efdctuidz, i64, i64)
165DEF_HELPER_1(efdcfsf, i64, i32)
166DEF_HELPER_1(efdcfuf, i64, i32)
167DEF_HELPER_1(efdctsf, i32, i64)
168DEF_HELPER_1(efdctuf, i32, i64)
169DEF_HELPER_1(efscfd, i32, i64)
170DEF_HELPER_1(efdcfs, i64, i32)
171DEF_HELPER_2(efdadd, i64, i64, i64)
172DEF_HELPER_2(efdsub, i64, i64, i64)
173DEF_HELPER_2(efdmul, i64, i64, i64)
174DEF_HELPER_2(efddiv, i64, i64, i64)
175DEF_HELPER_2(efdtstlt, i32, i64, i64)
176DEF_HELPER_2(efdtstgt, i32, i64, i64)
177DEF_HELPER_2(efdtsteq, i32, i64, i64)
178DEF_HELPER_2(efdcmplt, i32, i64, i64)
179DEF_HELPER_2(efdcmpgt, i32, i64, i64)
180DEF_HELPER_2(efdcmpeq, i32, i64, i64)
181
0f3955e2 182#if !defined(CONFIG_USER_ONLY)
74d37793
AJ
183DEF_HELPER_1(4xx_tlbre_hi, tl, tl)
184DEF_HELPER_1(4xx_tlbre_lo, tl, tl)
185DEF_HELPER_2(4xx_tlbwe_hi, void, tl, tl)
186DEF_HELPER_2(4xx_tlbwe_lo, void, tl, tl)
187DEF_HELPER_1(4xx_tlbsx, tl, tl)
188DEF_HELPER_2(440_tlbre, tl, i32, tl)
189DEF_HELPER_3(440_tlbwe, void, i32, tl, tl)
190DEF_HELPER_1(440_tlbsx, tl, tl)
191DEF_HELPER_1(6xx_tlbd, void, tl)
192DEF_HELPER_1(6xx_tlbi, void, tl)
193DEF_HELPER_1(74xx_tlbd, void, tl)
194DEF_HELPER_1(74xx_tlbi, void, tl)
195DEF_HELPER_0(tlbia, void)
196DEF_HELPER_1(tlbie, void, tl)
197#if defined(TARGET_PPC64)
198DEF_HELPER_1(load_slb, tl, tl)
199DEF_HELPER_2(store_slb, void, tl, tl)
200DEF_HELPER_0(slbia, void)
201DEF_HELPER_1(slbie, void, tl)
202#endif
203DEF_HELPER_1(load_sr, tl, tl);
45d827d2 204DEF_HELPER_2(store_sr, void, tl, tl)
cf02a65c
AJ
205
206DEF_HELPER_1(602_mfrom, tl, tl)
0f3955e2
AJ
207#endif
208
ef0d51af 209DEF_HELPER_3(dlmzb, tl, tl, tl, i32)
22e0e173
AJ
210DEF_HELPER_1(clcs, tl, i32)
211#if !defined(CONFIG_USER_ONLY)
212DEF_HELPER_1(rac, tl, tl)
213#endif
214DEF_HELPER_2(div, tl, tl, tl)
215DEF_HELPER_2(divo, tl, tl, tl)
216DEF_HELPER_2(divs, tl, tl, tl)
217DEF_HELPER_2(divso, tl, tl, tl)
ef0d51af 218
06dca6a7 219DEF_HELPER_1(load_dcr, tl, tl);
45d827d2
AJ
220DEF_HELPER_2(store_dcr, void, tl, tl)
221
222DEF_HELPER_1(load_dump_spr, void, i32)
223DEF_HELPER_1(store_dump_spr, void, i32)
224DEF_HELPER_0(load_tbl, tl)
225DEF_HELPER_0(load_tbu, tl)
226DEF_HELPER_0(load_atbl, tl)
227DEF_HELPER_0(load_atbu, tl)
228DEF_HELPER_0(load_601_rtcl, tl)
229DEF_HELPER_0(load_601_rtcu, tl)
230#if !defined(CONFIG_USER_ONLY)
231#if defined(TARGET_PPC64)
232DEF_HELPER_1(store_asr, void, tl)
233#endif
234DEF_HELPER_1(store_sdr1, void, tl)
235DEF_HELPER_1(store_tbl, void, tl)
236DEF_HELPER_1(store_tbu, void, tl)
237DEF_HELPER_1(store_atbl, void, tl)
238DEF_HELPER_1(store_atbu, void, tl)
239DEF_HELPER_1(store_601_rtcl, void, tl)
240DEF_HELPER_1(store_601_rtcu, void, tl)
241DEF_HELPER_0(load_decr, tl)
242DEF_HELPER_1(store_decr, void, tl)
243DEF_HELPER_1(store_hid0_601, void, tl)
244DEF_HELPER_2(store_403_pbr, void, i32, tl)
245DEF_HELPER_0(load_40x_pit, tl)
246DEF_HELPER_1(store_40x_pit, void, tl)
247DEF_HELPER_1(store_40x_dbcr0, void, tl)
248DEF_HELPER_1(store_40x_sler, void, tl)
249DEF_HELPER_1(store_booke_tcr, void, tl)
250DEF_HELPER_1(store_booke_tsr, void, tl)
251DEF_HELPER_2(store_ibatl, void, i32, tl)
252DEF_HELPER_2(store_ibatu, void, i32, tl)
253DEF_HELPER_2(store_dbatl, void, i32, tl)
254DEF_HELPER_2(store_dbatu, void, i32, tl)
255DEF_HELPER_2(store_601_batl, void, i32, tl)
256DEF_HELPER_2(store_601_batu, void, i32, tl)
257#endif
06dca6a7 258
a7812ae4 259#include "def-helper.h"