Initial commit for 68020/30/40/60/68881/68882/68851 support.
[rmac] / mach.h
1 //
2 // RMAC - Reboot's Macro Assembler for the Atari Jaguar Console System
3 // MACH.H - Code Generation
4 // Copyright (C) 199x Landon Dyer, 2017 Reboot and Friends
5 // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986
6 // Source utilised with the kind permission of Landon Dyer
7 //
9 #ifndef __MACH_H__
10 #define __MACH_H__
12 #include "rmac.h"
13 #include "amode.h"
15 // Exported variables
16 extern char seg_error[];
17 extern char undef_error[];
18 extern char rel_error[];
19 extern char range_error[];
20 extern char abs_error[];
21 extern MNTAB machtab[];
22 extern int activecpu;
23 extern int activefpu;
24 extern int movep;
26 // Fucntion prototypes 
27 int m_unimp(WORD, WORD), m_badmode(WORD, WORD), m_bad6mode(WORD, WORD), m_bad6inst(WORD, WORD);
28 int m_self(WORD, WORD);
29 int m_abcd(WORD, WORD);
30 int m_reg(WORD, WORD);
31 int m_imm(WORD, WORD);
32 int m_imm8(WORD, WORD);
33 int m_shi(WORD, WORD);
34 int m_shr(WORD, WORD);
35 int m_bitop(WORD, WORD);
36 int m_exg(WORD, WORD);
37 int m_ea(WORD, WORD);
38 int m_lea(WORD, WORD);
39 int m_br(WORD, WORD);
40 int m_dbra(WORD, WORD);
41 int m_link(WORD, WORD);
42 int m_adda(WORD, WORD);
43 int m_addq(WORD, WORD);
44 //int m_move(WORD, int);
45 int m_move(WORD, WORD);
46 int m_moveq(WORD, WORD);
47 int m_usp(WORD, WORD);
48 int m_movep(WORD, WORD);
49 int m_trap(WORD, WORD);
50 int m_movem(WORD, WORD);
51 int m_clra(WORD, WORD);
53 int m_move30(WORD, WORD);                       //68020/30/40/60
54 int m_br30(WORD inst, WORD siz);
55 int m_ea030(WORD inst, WORD siz);
56 int m_bfop(WORD inst, WORD siz);
57 int m_callm(WORD inst, WORD siz);
58 int m_cas(WORD inst, WORD siz);
59 int m_cas2(WORD inst, WORD siz);
60 int m_chk2(WORD inst, WORD siz);
61 int m_cmp2(WORD inst, WORD siz);
62 int m_bkpt(WORD inst, WORD siz);
63 int m_cpbr(WORD inst, WORD siz);
64 int m_cpdbr(WORD inst, WORD siz);
65 int m_divs(WORD inst, WORD siz);
66 int m_muls(WORD inst, WORD siz);
67 int m_divu(WORD inst, WORD siz);
68 int m_mulu(WORD inst, WORD siz);
69 int m_divsl(WORD inst, WORD siz);
70 int m_divul(WORD inst, WORD siz);
71 int m_move16a(WORD inst, WORD siz);
72 int m_move16b(WORD inst, WORD siz);
73 int m_pack(WORD inst, WORD siz);
74 int m_rtm(WORD inst, WORD siz);
75 int m_rtd(WORD inst, WORD siz);
76 int m_trapcc(WORD inst, WORD siz);
77 int m_cinv(WORD inst, WORD siz);
78 int m_cprest(WORD inst, WORD siz);
79 int m_movec(WORD inst, WORD siz);
80 int m_moves(WORD inst, WORD siz);
82 // PMMU
83 int m_pbcc(WORD inst, WORD siz);
84 int m_pflusha(WORD inst, WORD siz);
85 int m_pflush(WORD inst, WORD siz);
86 int m_pflushr(WORD inst, WORD siz);
87 int m_pload(WORD inst, WORD siz);
88 int m_pmove(WORD inst, WORD siz);
89 int m_pmovefd(WORD inst, WORD siz);
90 int m_ptest(WORD inst, WORD siz);
91 int m_ptrapbs(WORD inst, WORD siz);
92 int m_ptrapbc(WORD inst, WORD siz);
93 int m_ptrapls(WORD inst, WORD siz);
94 int m_ptraplc(WORD inst, WORD siz);
95 int m_ptrapss(WORD inst, WORD siz);
96 int m_ptrapsc(WORD inst, WORD siz);
97 int m_ptrapas(WORD inst, WORD siz);
98 int m_ptrapac(WORD inst, WORD siz);
99 int m_ptrapws(WORD inst, WORD siz);
100 int m_ptrapwc(WORD inst, WORD siz);
101 int m_ptrapis(WORD inst, WORD siz);
102 int m_ptrapic(WORD inst, WORD siz);
103 int m_ptrapgc(WORD inst, WORD siz);
104 int m_ptrapgs(WORD inst, WORD siz);
105 int m_ptrapcs(WORD inst, WORD siz);
106 int m_ptrapcc(WORD inst, WORD siz);
107 int m_ptrapbsn(WORD inst, WORD siz);
108 int m_ptrapbcn(WORD inst, WORD siz);
109 int m_ptraplsn(WORD inst, WORD siz);
110 int m_ptraplcn(WORD inst, WORD siz);
111 int m_ptrapssn(WORD inst, WORD siz);
112 int m_ptrapscn(WORD inst, WORD siz);
113 int m_ptrapasn(WORD inst, WORD siz);
114 int m_ptrapacn(WORD inst, WORD siz);
115 int m_ptrapwsn(WORD inst, WORD siz);
116 int m_ptrapwcn(WORD inst, WORD siz);
117 int m_ptrapisn(WORD inst, WORD siz);
118 int m_ptrapicn(WORD inst, WORD siz);
119 int m_ptrapgsn(WORD inst, WORD siz);
120 int m_ptrapgcn(WORD inst, WORD siz);
121 int m_ptrapcsn(WORD inst, WORD siz);
122 int m_ptrapccn(WORD inst, WORD siz);
124 //FPU
125 int m_fabs(WORD inst, WORD siz);
126 int m_facos(WORD inst, WORD siz);
127 int m_fadd(WORD inst, WORD siz);
128 int m_fasin(WORD inst, WORD siz);
129 int m_fatan(WORD inst, WORD siz);
130 int m_fatanh(WORD inst, WORD siz);
131 int m_fcmp(WORD inst, WORD siz);
132 int m_fcos(WORD inst, WORD siz);
133 int m_fcosh(WORD inst, WORD siz);
134 int m_fdabs(WORD inst, WORD siz);
135 int m_fdadd(WORD inst, WORD siz);
136 int m_fdbcc(WORD inst, WORD siz);
137 int m_fddiv(WORD inst, WORD siz);
138 int m_fdfsqrt(WORD inst, WORD siz);
139 int m_fdiv(WORD inst, WORD siz);
140 int m_fdmove(WORD inst, WORD siz);
141 int m_fdmul(WORD inst, WORD siz);
142 int m_fdneg(WORD inst, WORD siz);
143 int m_fdsub(WORD inst, WORD siz);
144 int m_fetox(WORD inst, WORD siz);
145 int m_fetoxm1(WORD inst, WORD siz);
146 int m_fgetexp(WORD inst, WORD siz);
147 int m_fgetman(WORD inst, WORD siz);
148 int m_fint(WORD inst, WORD siz);
149 int m_fintrz(WORD inst, WORD siz);
150 int m_flog10(WORD inst, WORD siz);
151 int m_flog2(WORD inst, WORD siz);
152 int m_flogn(WORD inst, WORD siz);
153 int m_flognp1(WORD inst, WORD siz);
154 int m_fmod(WORD inst, WORD siz);
155 int m_fmove(WORD inst, WORD siz);
156 int m_fmovescr(WORD inst, WORD siz);
157 int m_fmovecr(WORD inst, WORD siz);
158 int m_fmovem(WORD inst, WORD siz);
159 int m_fmul(WORD inst, WORD siz);
160 int m_fneg(WORD inst, WORD siz);
161 int m_fnop(WORD inst, WORD siz);
162 int m_frem(WORD inst, WORD siz);
163 int m_fsabs(WORD inst, WORD siz);
164 int m_fsadd(WORD inst, WORD siz);
165 int m_fseq(WORD inst, WORD siz);
166 int m_fsne(WORD inst, WORD siz);
167 int m_fsgt(WORD inst, WORD siz);
168 int m_fsngt(WORD inst, WORD siz);
169 int m_fsge(WORD inst, WORD siz);
170 int m_fsnge(WORD inst, WORD siz);
171 int m_fslt(WORD inst, WORD siz);
172 int m_fsnlt(WORD inst, WORD siz);
173 int m_fsle(WORD inst, WORD siz);
174 int m_fsnle(WORD inst, WORD siz);
175 int m_fsgl(WORD inst, WORD siz);
176 int m_fsngl(WORD inst, WORD siz);
177 int m_fsgle(WORD inst, WORD siz);
178 int m_fsngle(WORD inst, WORD siz);
179 int m_fsogt(WORD inst, WORD siz);
180 int m_fsule(WORD inst, WORD siz);
181 int m_fsoge(WORD inst, WORD siz);
182 int m_fsult(WORD inst, WORD siz);
183 int m_fsolt(WORD inst, WORD siz);
184 int m_fsuge(WORD inst, WORD siz);
185 int m_fsole(WORD inst, WORD siz);
186 int m_fsugt(WORD inst, WORD siz);
187 int m_fsogl(WORD inst, WORD siz);
188 int m_fsueq(WORD inst, WORD siz);
189 int m_fsor(WORD inst, WORD siz);
190 int m_fsun(WORD inst, WORD siz);
191 int m_fsf(WORD inst, WORD siz);
192 int m_fst(WORD inst, WORD siz);
193 int m_fssf(WORD inst, WORD siz);
194 int m_fsst(WORD inst, WORD siz);
195 int m_fsseq(WORD inst, WORD siz);
196 int m_fssne(WORD inst, WORD siz);
197 int m_fscale(WORD inst, WORD siz);
198 int m_fsdiv(WORD inst, WORD siz);
199 int m_fsfsqrt(WORD inst, WORD siz);
200 int m_fsfsub(WORD inst, WORD siz);
201 int m_fsgldiv(WORD inst, WORD siz);
202 int m_fsglmul(WORD inst, WORD siz);
203 int m_fsin(WORD inst, WORD siz);
204 int m_fsincos(WORD inst, WORD siz);
205 int m_fsinh(WORD inst, WORD siz);
206 int m_fsmove(WORD inst, WORD siz);
207 int m_fsmul(WORD inst, WORD siz);
208 int m_fsneg(WORD inst, WORD siz);
209 int m_fsqrt(WORD inst, WORD siz);
210 int m_fsub(WORD inst, WORD siz);
211 int m_ftan(WORD inst, WORD siz);
212 int m_ftanh(WORD inst, WORD siz);
213 int m_ftentox(WORD inst, WORD siz);
214 int m_ftst(WORD inst, WORD siz);
215 int m_ftwotox(WORD inst, WORD siz);
216 int m_ftrapeq(WORD inst, WORD siz);
217 int m_ftrapne(WORD inst, WORD siz);
218 int m_ftrapgt(WORD inst, WORD siz);
219 int m_ftrapngt(WORD inst, WORD siz);
220 int m_ftrapge(WORD inst, WORD siz);
221 int m_ftrapnge(WORD inst, WORD siz);
222 int m_ftraplt(WORD inst, WORD siz);
223 int m_ftrapnlt(WORD inst, WORD siz);
224 int m_ftraple(WORD inst, WORD siz);
225 int m_ftrapnle(WORD inst, WORD siz);
226 int m_ftrapgl(WORD inst, WORD siz);
227 int m_ftrapngl(WORD inst, WORD siz);
228 int m_ftrapgle(WORD inst, WORD siz);
229 int m_ftrapngle(WORD inst, WORD siz);
230 int m_ftrapogt(WORD inst, WORD siz);
231 int m_ftrapule(WORD inst, WORD siz);
232 int m_ftrapoge(WORD inst, WORD siz);
233 int m_ftrapult(WORD inst, WORD siz);
234 int m_ftrapolt(WORD inst, WORD siz);
235 int m_ftrapuge(WORD inst, WORD siz);
236 int m_ftrapole(WORD inst, WORD siz);
237 int m_ftrapugt(WORD inst, WORD siz);
238 int m_ftrapogl(WORD inst, WORD siz);
239 int m_ftrapueq(WORD inst, WORD siz);
240 int m_ftrapor(WORD inst, WORD siz);
241 int m_ftrapun(WORD inst, WORD siz);
242 int m_ftrapf(WORD inst, WORD siz);
243 int m_ftrapt(WORD inst, WORD siz);
244 int m_ftrapsf(WORD inst, WORD siz);
245 int m_ftrapst(WORD inst, WORD siz);
246 int m_ftrapseq(WORD inst, WORD siz);
247 int m_ftrapsne(WORD inst, WORD siz);
248 int m_ftrapeqn(WORD inst, WORD siz);
249 int m_ftrapnen(WORD inst, WORD siz);
250 int m_ftrapgtn(WORD inst, WORD siz);
251 int m_ftrapngtn(WORD inst, WORD siz);
252 int m_ftrapgen(WORD inst, WORD siz);
253 int m_ftrapngen(WORD inst, WORD siz);
254 int m_ftrapltn(WORD inst, WORD siz);
255 int m_ftrapnltn(WORD inst, WORD siz);
256 int m_ftraplen(WORD inst, WORD siz);
257 int m_ftrapnlen(WORD inst, WORD siz);
258 int m_ftrapgln(WORD inst, WORD siz);
259 int m_ftrapngln(WORD inst, WORD siz);
260 int m_ftrapglen(WORD inst, WORD siz);
261 int m_ftrapnglen(WORD inst, WORD siz);
262 int m_ftrapogtn(WORD inst, WORD siz);
263 int m_ftrapulen(WORD inst, WORD siz);
264 int m_ftrapogen(WORD inst, WORD siz);
265 int m_ftrapultn(WORD inst, WORD siz);
266 int m_ftrapoltn(WORD inst, WORD siz);
267 int m_ftrapugen(WORD inst, WORD siz);
268 int m_ftrapolen(WORD inst, WORD siz);
269 int m_ftrapugtn(WORD inst, WORD siz);
270 int m_ftrapogln(WORD inst, WORD siz);
271 int m_ftrapueqn(WORD inst, WORD siz);
272 int m_ftraporn(WORD inst, WORD siz);
273 int m_ftrapunn(WORD inst, WORD siz);
274 int m_ftrapfn(WORD inst, WORD siz);
275 int m_ftraptn(WORD inst, WORD siz);
276 int m_ftrapsfn(WORD inst, WORD siz);
277 int m_ftrapstn(WORD inst, WORD siz);
278 int m_ftrapseqn(WORD inst, WORD siz);
279 int m_ftrapsnen(WORD inst, WORD siz);
281 #endif // __MACH_H__