337
|
1 /*
|
|
2 instab.c
|
|
3 Copyright © 2008 William Astle
|
|
4
|
|
5 This file is part of LWASM.
|
|
6
|
|
7 LWASM is free software: you can redistribute it and/or modify it under the
|
|
8 terms of the GNU General Public License as published by the Free Software
|
|
9 Foundation, either version 3 of the License, or (at your option) any later
|
|
10 version.
|
|
11
|
|
12 This program is distributed in the hope that it will be useful, but WITHOUT
|
|
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
15 more details.
|
|
16
|
|
17 You should have received a copy of the GNU General Public License along with
|
|
18 this program. If not, see <http://www.gnu.org/licenses/>.
|
|
19
|
|
20
|
|
21 Contains the instruction table for assembling code
|
|
22 */
|
|
23 #include <config.h>
|
|
24
|
|
25 #include <stdlib.h>
|
|
26 #define __instab_c_seen__
|
|
27 #include "instab.h"
|
|
28
|
|
29 extern PARSEFUNC(insn_parse_inh);
|
|
30 extern RESOLVEFUNC(insn_resolve_inh);
|
|
31 extern PARSEFUNC(insn_parse_gen8);
|
|
32 extern RESOLVEFUNC(insn_resolve_gen8);
|
|
33 extern PARSEFUNC(insn_parse_gen16);
|
|
34 extern RESOLVEFUNC(insn_resolve_gen16);
|
|
35 extern PARSEFUNC(insn_parse_gen32);
|
|
36 extern RESOLVEFUNC(insn_resolve_gen32);
|
|
37 extern PARSEFUNC(insn_parse_gen0);
|
|
38 extern RESOLVEFUNC(insn_resolve_gen0);
|
|
39 extern PARSEFUNC(insn_parse_rtor);
|
|
40 extern RESOLVEFUNC(insn_resolve_rtor);
|
|
41 extern PARSEFUNC(insn_parse_imm8);
|
|
42 extern RESOLVEFUNC(insn_resolve_imm8);
|
|
43 extern PARSEFUNC(insn_parse_rel8);
|
|
44 extern RESOLVEFUNC(insn_resolve_rel8);
|
|
45 extern PARSEFUNC(insn_parse_rel16);
|
|
46 extern RESOLVEFUNC(insn_resolve_rel16);
|
|
47 extern PARSEFUNC(insn_parse_rlist);
|
|
48 extern RESOLVEFUNC(insn_resolve_rlist);
|
|
49 extern PARSEFUNC(insn_parse_bitbit);
|
|
50 extern RESOLVEFUNC(insn_resolve_bitbit);
|
|
51 extern PARSEFUNC(insn_parse_logicmem);
|
|
52 extern RESOLVEFUNC(insn_resolve_logicmem);
|
|
53 extern PARSEFUNC(insn_parse_tfm);
|
|
54 extern RESOLVEFUNC(insn_resolve_tfm);
|
|
55 extern PARSEFUNC(insn_parse_tfmrtor);
|
|
56 extern RESOLVEFUNC(insn_resolve_tfmrtor);
|
|
57 extern PARSEFUNC(insn_parse_indexed);
|
|
58 extern RESOLVEFUNC(insn_resolve_indexed);
|
|
59
|
|
60 extern PARSEFUNC(pseudo_parse_org);
|
|
61 extern RESOLVEFUNC(pseudo_resolve_org);
|
|
62 extern PARSEFUNC(pseudo_parse_equ);
|
|
63 extern RESOLVEFUNC(pseudo_resolve_equ);
|
|
64 extern PARSEFUNC(pseudo_parse_rmb);
|
|
65 extern RESOLVEFUNC(pseudo_resolve_rmb);
|
|
66 extern PARSEFUNC(pseudo_parse_rmd);
|
|
67 extern RESOLVEFUNC(pseudo_resolve_rmd);
|
|
68 extern PARSEFUNC(pseudo_parse_rmq);
|
|
69 extern RESOLVEFUNC(pseudo_resolve_rmq);
|
|
70 extern PARSEFUNC(pseudo_parse_zmb);
|
|
71 extern RESOLVEFUNC(pseudo_resolve_zmb);
|
|
72 extern PARSEFUNC(pseudo_parse_zmd);
|
|
73 extern RESOLVEFUNC(pseudo_resolve_zmd);
|
|
74 extern PARSEFUNC(pseudo_parse_zmq);
|
|
75 extern RESOLVEFUNC(pseudo_resolve_zmq);
|
|
76 extern PARSEFUNC(pseudo_parse_include);
|
|
77 extern RESOLVEFUNC(pseudo_resolve_include);
|
|
78 extern PARSEFUNC(pseudo_parse_end);
|
|
79 extern RESOLVEFUNC(pseudo_resolve_end);
|
|
80 extern PARSEFUNC(pseudo_parse_align);
|
|
81 extern RESOLVEFUNC(pseudo_resolve_align);
|
|
82 extern PARSEFUNC(pseudo_parse_error);
|
|
83 extern RESOLVEFUNC(pseudo_resolve_error);
|
|
84 extern PARSEFUNC(pseudo_parse_fcc);
|
|
85 extern RESOLVEFUNC(pseudo_resolve_fcc);
|
|
86 extern PARSEFUNC(pseudo_parse_fcs);
|
|
87 extern RESOLVEFUNC(pseudo_resolve_fcs);
|
|
88 extern PARSEFUNC(pseudo_parse_fcn);
|
|
89 extern RESOLVEFUNC(pseudo_resolve_fcn);
|
|
90 extern PARSEFUNC(pseudo_parse_fcb);
|
|
91 extern RESOLVEFUNC(pseudo_resolve_fcb);
|
|
92 extern PARSEFUNC(pseudo_parse_fdb);
|
|
93 extern RESOLVEFUNC(pseudo_resolve_fdb);
|
|
94 extern PARSEFUNC(pseudo_parse_fqb);
|
|
95 extern RESOLVEFUNC(pseudo_resolve_fqb);
|
|
96 extern PARSEFUNC(pseudo_parse_ifne);
|
|
97 extern RESOLVEFUNC(pseudo_resolve_ifne);
|
|
98 extern PARSEFUNC(pseudo_parse_ifeq);
|
|
99 extern RESOLVEFUNC(pseudo_resolve_ifeq);
|
|
100 extern PARSEFUNC(pseudo_parse_ifgt);
|
|
101 extern RESOLVEFUNC(pseudo_resolve_ifgt);
|
|
102 extern PARSEFUNC(pseudo_parse_ifge);
|
|
103 extern RESOLVEFUNC(pseudo_resolve_ifge);
|
|
104 extern PARSEFUNC(pseudo_parse_iflt);
|
|
105 extern RESOLVEFUNC(pseudo_resolve_iflt);
|
|
106 extern PARSEFUNC(pseudo_parse_ifle);
|
|
107 extern RESOLVEFUNC(pseudo_resolve_ifle);
|
|
108 extern PARSEFUNC(pseudo_parse_ifp1);
|
|
109 extern RESOLVEFUNC(pseudo_resolve_ifp1);
|
|
110 extern PARSEFUNC(pseudo_parse_ifp2);
|
|
111 extern RESOLVEFUNC(pseudo_resolve_ifp2);
|
|
112 extern PARSEFUNC(pseudo_parse_else);
|
|
113 extern RESOLVEFUNC(pseudo_resolve_else);
|
|
114 extern PARSEFUNC(pseudo_parse_endc);
|
|
115 extern RESOLVEFUNC(pseudo_resolve_endc);
|
|
116 extern PARSEFUNC(pseudo_parse_macro);
|
|
117 extern RESOLVEFUNC(pseudo_resolve_macro);
|
|
118 extern PARSEFUNC(pseudo_parse_endm);
|
|
119 extern RESOLVEFUNC(pseudo_resolve_endm);
|
|
120 extern PARSEFUNC(pseudo_parse_setdp);
|
|
121 extern RESOLVEFUNC(pseudo_resolve_setdp);
|
|
122 extern PARSEFUNC(pseudo_parse_set);
|
|
123 extern RESOLVEFUNC(pseudo_resolve_set);
|
|
124 extern PARSEFUNC(pseudo_parse_section);
|
|
125 extern RESOLVEFUNC(pseudo_resolve_section);
|
|
126 extern PARSEFUNC(pseudo_parse_endsection);
|
|
127 extern RESOLVEFUNC(pseudo_resolve_endsection);
|
|
128 extern PARSEFUNC(pseudo_parse_pragma);
|
|
129 extern RESOLVEFUNC(pseudo_resolve_pragma);
|
|
130 extern PARSEFUNC(pseudo_parse_starpragma);
|
|
131 extern RESOLVEFUNC(pseudo_resolve_starpragma);
|
|
132 extern PARSEFUNC(pseudo_parse_extern);
|
|
133 extern RESOLVEFUNC(pseudo_resolve_extern);
|
|
134 extern PARSEFUNC(pseudo_parse_export);
|
|
135 extern RESOLVEFUNC(pseudo_resolve_export);
|
|
136 extern PARSEFUNC(pseudo_parse_ifdef);
|
|
137 extern RESOLVEFUNC(pseudo_resolve_ifdef);
|
|
138 extern PARSEFUNC(pseudo_parse_ifndef);
|
|
139 extern RESOLVEFUNC(pseudo_resolve_ifndef);
|
|
140 extern PARSEFUNC(pseudo_parse_noop);
|
|
141 extern RESOLVEFUNC(pseudo_resolve_noop);
|
|
142 extern PARSEFUNC(pseudo_parse_includebin);
|
|
143 extern RESOLVEFUNC(pseudo_resolve_includebin);
|
|
144
|
|
145 extern PARSEFUNC(pseudo_parse_os9);
|
|
146 extern RESOLVEFUNC(pseudo_resolve_os9);
|
|
147 extern PARSEFUNC(pseudo_parse_mod);
|
|
148 extern RESOLVEFUNC(pseudo_resolve_mod);
|
|
149 extern PARSEFUNC(pseudo_parse_emod);
|
|
150 extern RESOLVEFUNC(pseudo_resolve_emod);
|
|
151
|
|
152 instab_t instab[] =
|
|
153 {
|
|
154 { "abx", { 0x3a, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
155 { "adca", { 0x99, 0xa9, 0xb9, 0x89}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
156 { "adcb", { 0xd9, 0xe9, 0xf9, 0xc9}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
157 { "adcd", { 0x1099, 0x10a9, 0x10b9, 0x1089},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_is6309},
|
|
158 { "adcr", { 0x1031, -1, -1, -1 }, insn_parse_rtor, insn_resolve_rtor, lwasm_insn_is6309},
|
|
159 { "adda", { 0x9b, 0xab, 0xbb, 0x8b}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
160 { "addb", { 0xdb, 0xeb, 0xfb, 0xcb}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
161 { "addd", { 0xd3, 0xe3, 0xf3, 0xc3}, insn_parse_gen16, insn_resolve_gen16, lwasm_insn_normal},
|
|
162 { "adde", { 0x119b, 0x11ab, 0x11bb, 0x118b},insn_parse_gen8, insn_resolve_gen8, lwasm_insn_is6309},
|
|
163 { "addf", { 0x11db, 0x11eb, 0x11fb, 0x11cb},insn_parse_gen8, insn_resolve_gen8, lwasm_insn_is6309},
|
|
164 { "addr", { 0x1030, -1, -1, -1 }, insn_parse_rtor, insn_resolve_rtor, lwasm_insn_is6309},
|
|
165 { "addw", { 0x109b, 0x10ab, 0x10bb, 0x108b},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_is6309},
|
|
166 { "aim", { 0x02, 0x62, 0x72, -1 }, insn_parse_logicmem, insn_resolve_logicmem, lwasm_insn_is6309},
|
|
167 { "anda", { 0x94, 0xa4, 0xb4, 0x84}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
168 { "andb", { 0xd4, 0xe4, 0xf4, 0xc4}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
169 { "andcc", { 0x1c, -1, -1, 0x1c}, insn_parse_imm8, insn_resolve_imm8, lwasm_insn_normal},
|
|
170 { "andd", { 0x1094, 0x10a4, 0x10b4, 0x1084},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_is6309},
|
|
171 { "andr", { 0x1034, -1, -1, -1 }, insn_parse_rtor, insn_resolve_rtor, lwasm_insn_is6309},
|
|
172 { "asl", { 0x08, 0x68, 0x78, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
173 { "asla", { 0x48, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
174 { "aslb", { 0x58, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
175 { "asld", { 0x1048, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
176 { "asr", { 0x07, 0x67, 0x77, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
177 { "asra", { 0x47, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
178 { "asrb", { 0x57, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
179 { "asrd", { 0x1047, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
180
|
|
181 { "band", { 0x1130, -1, -1, -1 }, insn_parse_bitbit, insn_resolve_bitbit, lwasm_insn_is6309},
|
|
182 { "bcc", { 0x24, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
183 { "bcs", { 0x25, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
184 { "beor", { 0x1134, -1, -1, -1 }, insn_parse_bitbit, insn_resolve_bitbit, lwasm_insn_is6309},
|
|
185 { "beq", { 0x27, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
186 { "bge", { 0x2c, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
187 { "bgt", { 0x2e, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
188 { "bhi", { 0x22, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
189 { "bhs", { 0x24, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
190 { "biand", { 0x1131, -1, -1, -1 }, insn_parse_bitbit, insn_resolve_bitbit, lwasm_insn_is6309},
|
|
191 { "bieor", { 0x1135, -1, -1, -1 }, insn_parse_bitbit, insn_resolve_bitbit, lwasm_insn_is6309},
|
|
192 { "bior", { 0x1133, -1, -1, -1 }, insn_parse_bitbit, insn_resolve_bitbit, lwasm_insn_is6309},
|
|
193 { "bita", { 0x95, 0xa5, 0xb5, 0x85}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
194 { "bitb", { 0xd5, 0xe5, 0xf5, 0xc5}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
195 { "bitd", { 0x1095, 0x10a5, 0x10b5, 0x1085},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_is6309},
|
|
196 { "bitmd", { 0x113c, -1, -1, 0x113c},insn_parse_imm8, insn_resolve_imm8, lwasm_insn_is6309},
|
|
197 { "ble", { 0x2f, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
198 { "blo", { 0x25, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
199 { "bls", { 0x23, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
200 { "blt", { 0x2d, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
201 { "bmi", { 0x2b, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
202 { "bne", { 0x26, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
203 { "bor", { 0x1132, -1, -1, -1 }, insn_parse_bitbit, insn_resolve_bitbit, lwasm_insn_is6309},
|
|
204 { "bpl", { 0x2a, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
205 { "bra", { 0x20, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
206 { "brn", { 0x21, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
207 { "bsr", { 0x8d, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
208 { "bvc", { 0x28, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
209 { "bvs", { 0x29, -1, -1, -1 }, insn_parse_rel8, insn_resolve_rel8, lwasm_insn_normal},
|
|
210
|
|
211 { "clr", { 0x0f, 0x6f, 0x7f, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
212 { "clra", { 0x4f, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
213 { "clrb", { 0x5f, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
214 { "clrd", { 0x104f, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
215 { "clre", { 0x114f, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
216 { "clrf", { 0x115f, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
217 { "clrw", { 0x105f, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
218 { "cmpa", { 0x91, 0xa1, 0xb1, 0x81}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
219 { "cmpb", { 0xd1, 0xe1, 0xf1, 0xc1}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
220 { "cmpd", { 0x1093, 0x10a3, 0x10b3, 0x1083},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_normal},
|
|
221 { "cmpe", { 0x1191, 0x11a1, 0x11b1, 0x1181},insn_parse_gen8, insn_resolve_gen8, lwasm_insn_is6309},
|
|
222 { "cmpf", { 0x11d1, 0x11e1, 0x11f1, 0x11c1},insn_parse_gen8, insn_resolve_gen8, lwasm_insn_is6309},
|
|
223 { "cmpr", { 0x1037, -1, -1, -1 }, insn_parse_rtor, insn_resolve_rtor, lwasm_insn_is6309},
|
|
224 { "cmps", { 0x119c, 0x11ac, 0x11bc, 0x118c},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_normal},
|
|
225 { "cmpu", { 0x1193, 0x11a3, 0x11b3, 0x1183},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_normal},
|
|
226 { "cmpw", { 0x1091, 0x10a1, 0x10b1, 0x1081},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_is6309},
|
|
227 { "cmpx", { 0x9c, 0xac, 0xbc, 0x8c}, insn_parse_gen16, insn_resolve_gen16, lwasm_insn_normal},
|
|
228 { "cmpy", { 0x109c, 0x10ac, 0x10bc, 0x108c},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_normal},
|
|
229 { "com", { 0x03, 0x63, 0x73, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
230 { "coma", { 0x43, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
231 { "comb", { 0x53, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
232 { "comd", { 0x1043, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
233 { "come", { 0x1143, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
234 { "comf", { 0x1153, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
235 { "comw", { 0x1053, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
236 { "cwai", { 0x3c, -1, -1, -1 }, insn_parse_imm8, insn_resolve_imm8, lwasm_insn_normal},
|
|
237
|
|
238 { "daa", { 0x19, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
239 { "dec", { 0x0a, 0x6a, 0x7a, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
240 { "deca", { 0x4a, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
241 { "decb", { 0x5a, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
242 { "decd", { 0x104a, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
243 { "dece", { 0x114a, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
244 { "decf", { 0x115a, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
245 { "decw", { 0x105a, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
246 { "divd", { 0x118d, 0x119d, 0x11ad, 0x11bd},insn_parse_gen8, insn_resolve_gen8, lwasm_insn_is6309},
|
|
247 { "divq", { 0x118e, 0x119e, 0x11ae, 0x11be},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_is6309},
|
|
248
|
|
249 { "eim", { 0x05, 0x65, 0x75, -1 }, insn_parse_logicmem, insn_resolve_logicmem, lwasm_insn_is6309},
|
|
250 { "eora", { 0x98, 0xa8, 0xb8, 0x88}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
251 { "eorb", { 0xd8, 0xe9, 0xf9, 0xc8}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
252 { "eord", { 0x1098, 0x10a8, 0x10b8, 0x1088},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_is6309},
|
|
253 { "eorr", { 0x1036, -1, -1, -1 }, insn_parse_rtor, insn_resolve_rtor, lwasm_insn_is6309},
|
|
254 { "exg", { 0x1e, -1, -1, -1 }, insn_parse_rtor, insn_resolve_rtor, lwasm_insn_normal},
|
|
255
|
|
256 { "inc", { 0x0c, 0x6c, 0x7c, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
257 { "inca", { 0x4c, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
258 { "incb", { 0x5c, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
259 { "incd", { 0x104c, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
260 { "ince", { 0x114c, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
261 { "incf", { 0x115c, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
262 { "incw", { 0x105c, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
263
|
|
264 { "jmp", { 0x0e, 0x6e, 0x7e, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
265 { "jsr", { 0x9d, 0xad, 0xbd, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
266
|
|
267 { "lbcc", { 0x1024, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
268 { "lbcs", { 0x1025, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
269 { "lbeq", { 0x1027, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
270 { "lbge", { 0x102c, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
271 { "lbgt", { 0x102e, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
272 { "lbhi", { 0x1022, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
273 { "lbhs", { 0x1024, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
274 { "lble", { 0x102f, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
275 { "lblo", { 0x1025, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
276 { "lbls", { 0x1023, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
277 { "lblt", { 0x102d, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
278 { "lbmi", { 0x102b, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
279 { "lbne", { 0x1026, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
280 { "lbpl", { 0x102a, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
281 { "lbra", { 0x16, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
282 { "lbrn", { 0x1021, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
283 { "lbsr", { 0x17, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
284 { "lbvc", { 0x1028, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
285 { "lbvs", { 0x1029, -1, -1, -1 }, insn_parse_rel16, insn_resolve_rel16, lwasm_insn_normal},
|
|
286 { "lda", { 0x96, 0xa6, 0xb6, 0x86}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
287 { "ldb", { 0xd6, 0xe6, 0xf6, 0xc6}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
288 { "ldbt", { 0x1136, -1, -1, -1 }, insn_parse_bitbit, insn_resolve_bitbit, lwasm_insn_is6309},
|
|
289 { "ldd", { 0xdc, 0xec, 0xfc, 0xcc}, insn_parse_gen16, insn_resolve_gen16, lwasm_insn_normal},
|
|
290 { "lde", { 0x1196, 0x11a6, 0x11b6, 0x1186},insn_parse_gen8, insn_resolve_gen8, lwasm_insn_is6309},
|
|
291 { "ldf", { 0x11d6, 0x11e6, 0x11f6, 0x11c6},insn_parse_gen8, insn_resolve_gen8, lwasm_insn_is6309},
|
|
292 { "ldq", { 0x10dc, 0x10ec, 0x10fc, 0xcd}, insn_parse_gen32, insn_resolve_gen32, lwasm_insn_is6309},
|
|
293 { "lds", { 0x10de, 0x10ee, 0x10fe, 0x10ce},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_normal},
|
|
294 { "ldu", { 0xde, 0xee, 0xfe, 0xce}, insn_parse_gen16, insn_resolve_gen16, lwasm_insn_normal},
|
|
295 { "ldw", { 0x1096, 0x10a6, 0x10b6, 0x1086},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_is6309},
|
|
296 { "ldx", { 0x9e, 0xae, 0xbe, 0x8e}, insn_parse_gen16, insn_resolve_gen16, lwasm_insn_normal},
|
|
297 { "ldy", { 0x109e, 0x10ae, 0x10be, 0x108e},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_normal},
|
|
298 { "ldmd", { 0x113d, -1, -1, 0x113d},insn_parse_imm8, insn_resolve_imm8, lwasm_insn_is6309},
|
|
299 { "leas", { 0x32, -1, -1, -1 }, insn_parse_indexed, insn_resolve_indexed, lwasm_insn_normal},
|
|
300 { "leau", { 0x33, -1, -1, -1 }, insn_parse_indexed, insn_resolve_indexed, lwasm_insn_normal},
|
|
301 { "leax", { 0x30, -1, -1, -1 }, insn_parse_indexed, insn_resolve_indexed, lwasm_insn_normal},
|
|
302 { "leay", { 0x31, -1, -1, -1 }, insn_parse_indexed, insn_resolve_indexed, lwasm_insn_normal},
|
|
303 { "lsl", { 0x08, 0x68, 0x78, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
304 { "lsla", { 0x48, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
305 { "lslb", { 0x58, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
306 { "lsld", { 0x1048, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
307 { "lsr", { 0x04, 0x64, 0x74, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
308 { "lsra", { 0x44, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
309 { "lsrb", { 0x54, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
310 { "lsrd", { 0x1044, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
311 { "lsrw", { 0x1054, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
312
|
|
313 { "mul", { 0x3d, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
314 { "muld", { 0x118f, 0x119f, 0x11af, 0x11bf},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_is6309},
|
|
315
|
|
316 { "neg", { 0x00, 0x60, 0x70, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
317 { "nega", { 0x40, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
318 { "negb", { 0x50, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
319 { "negd", { 0x1040, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
320 { "nop", { 0x12, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
321
|
|
322 { "oim", { 0x01, 0x61, 0x71, -1 }, insn_parse_logicmem, insn_resolve_logicmem, lwasm_insn_is6309},
|
|
323 { "ora", { 0x9a, 0xaa, 0xba, 0x8a}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
324 { "orb", { 0xda, 0xea, 0xfa, 0xca}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
325 { "orcc", { 0x1a, -1, -1, 0x1a }, insn_parse_imm8, insn_resolve_imm8, lwasm_insn_normal},
|
|
326 { "ord", { 0x109a, 0x10aa, 0x10ba, 0x108a},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_is6309},
|
|
327 { "orr", { 0x1035, -1, -1, -1 }, insn_parse_rtor, insn_resolve_rtor, lwasm_insn_is6309},
|
|
328
|
|
329 { "pshs", { 0x34, -1, -1, -1 }, insn_parse_rlist, insn_resolve_rlist, lwasm_insn_normal},
|
|
330 { "pshsw", { 0x1038, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
331 { "pshu", { 0x36, -1, -1, -1 }, insn_parse_rlist, insn_resolve_rlist, lwasm_insn_normal},
|
|
332 { "pshuw", { 0x103a, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
333 { "puls", { 0x35, -1, -1, -1 }, insn_parse_rlist, insn_resolve_rlist, lwasm_insn_normal},
|
|
334 { "pulsw", { 0x1039, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
335 { "pulu", { 0x37, -1, -1, -1 }, insn_parse_rlist, insn_resolve_rlist, lwasm_insn_normal},
|
|
336 { "puluw", { 0x103b, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
337
|
|
338 { "rol", { 0x09, 0x69, 0x79, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
339 { "rola", { 0x49, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
340 { "rolb", { 0x59, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
341 { "rold", { 0x1049, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
342 { "rolw", { 0x1059, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
343 { "ror", { 0x06, 0x66, 0x76, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
344 { "rora", { 0x46, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
345 { "rorb", { 0x56, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
346 { "rord", { 0x1046, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
347 { "rorw", { 0x1056, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
348 { "rti", { 0x3b, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
349 { "rts", { 0x39, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
350
|
|
351 { "sbca", { 0x92, 0xa2, 0xb2, 0x82}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
352 { "sbcb", { 0xd2, 0xe2, 0xf2, 0xc2}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
353 { "sbcd", { 0x1092, 0x10a2, 0x10b2, 0x1082},insn_parse_gen16, insn_resolve_gen16, lwasm_insn_is6309},
|
|
354 { "sbcr", { 0x1033, -1, -1, -1 }, insn_parse_rtor, insn_resolve_rtor, lwasm_insn_is6309},
|
|
355 { "sex", { 0x1d, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
356 { "sexw", { 0x14, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
357 { "sta", { 0x97, 0xa7, 0xb7, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
358 { "stb", { 0xd7, 0xe7, 0xf7, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
359 { "stbt", { 0x1137, -1, -1, -1 }, insn_parse_bitbit, insn_resolve_bitbit, lwasm_insn_is6309},
|
|
360 { "std", { 0xdd, 0xed, 0xfd, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
361 { "ste", { 0x1197, 0x11a7, 0x11b7, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_is6309},
|
|
362 { "stf", { 0x11d7, 0x11e7, 0x11f7, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_is6309},
|
|
363 { "stq", { 0x10dd, 0x10ed, 0x10fd, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_is6309},
|
|
364 { "sts", { 0x10df, 0x10ef, 0x10ff, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
365 { "stu", { 0xdf, 0xef, 0xff, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
366 { "stw", { 0x1097, 0x10a7, 0x10b7, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_is6309},
|
|
367 { "stx", { 0x9f, 0xaf, 0xbf, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
368 { "sty", { 0x109f, 0x10af, 0x10bf, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
369 { "suba", { 0x90, 0xa0, 0xb0, 0x80}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
370 { "subb", { 0xd0, 0xe0, 0xf0, 0xc0}, insn_parse_gen8, insn_resolve_gen8, lwasm_insn_normal},
|
|
371 { "subd", { 0x93, 0xa3, 0xb3, 0x83}, insn_parse_gen16, insn_resolve_gen16, lwasm_insn_normal},
|
|
372 { "sube", { 0x1190, 0x11a0, 0x11b0, 0x1180},insn_parse_gen8, insn_resolve_gen8, lwasm_insn_is6309},
|
|
373 { "subf", { 0x11d0, 0x11e0, 0x11f0, 0x11c0},insn_parse_gen8, insn_resolve_gen8, lwasm_insn_is6309},
|
|
374 { "subr", { 0x1032, -1, -1, -1 }, insn_parse_rtor, insn_resolve_rtor, lwasm_insn_is6309},
|
|
375 { "subw", { 0x1090, 0x10a0, 0x1090, 0x1080},insn_parse_gen8, insn_resolve_gen8, lwasm_insn_is6309},
|
|
376 { "swi", { 0x3f, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
377 { "swi2", { 0x103f, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
378 { "swi3", { 0x113f, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
379 { "sync", { 0x13, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
380
|
|
381 // note: r+,r+ r-,r- r+,r r,r+
|
|
382 { "tfm", { 0x1138, 0x1139, 0x113a, 0x113b },insn_parse_tfm, insn_resolve_tfm, lwasm_insn_is6309},
|
|
383
|
|
384 // compatibility opcodes for tfm in other assemblers
|
|
385 { "copy", { 0x1138, -1, -1, -1}, insn_parse_tfmrtor, insn_resolve_tfmrtor, lwasm_insn_is6309},
|
|
386 { "copy+", { 0x1138, -1, -1, -1}, insn_parse_tfmrtor, insn_resolve_tfmrtor, lwasm_insn_is6309},
|
|
387 { "tfrp", { 0x1138, -1, -1, -1}, insn_parse_tfmrtor, insn_resolve_tfmrtor, lwasm_insn_is6309},
|
|
388
|
|
389 { "copy-", { 0x1139, -1, -1, -1}, insn_parse_tfmrtor, insn_resolve_tfmrtor, lwasm_insn_is6309},
|
|
390 { "tfrm", { 0x1139, -1, -1, -1}, insn_parse_tfmrtor, insn_resolve_tfmrtor, lwasm_insn_is6309},
|
|
391
|
|
392 { "imp", { 0x113a, -1, -1, -1}, insn_parse_tfmrtor, insn_resolve_tfmrtor, lwasm_insn_is6309},
|
|
393 { "implode", { 0x113a, -1, -1, -1}, insn_parse_tfmrtor, insn_resolve_tfmrtor, lwasm_insn_is6309},
|
|
394 { "tfrs", { 0x113a, -1, -1, -1}, insn_parse_tfmrtor, insn_resolve_tfmrtor, lwasm_insn_is6309},
|
|
395
|
|
396 { "exp", { 0x113b, -1, -1, -1}, insn_parse_tfmrtor, insn_resolve_tfmrtor, lwasm_insn_is6309},
|
|
397 { "expand", { 0x113b, -1, -1, -1}, insn_parse_tfmrtor, insn_resolve_tfmrtor, lwasm_insn_is6309},
|
|
398 { "tfrr", { 0x113b, -1, -1, -1}, insn_parse_tfmrtor, insn_resolve_tfmrtor, lwasm_insn_is6309},
|
|
399
|
|
400 { "tfr", { 0x1f, -1, -1, -1 }, insn_parse_rtor, insn_resolve_rtor, lwasm_insn_normal},
|
|
401 { "tim", { 0x0b, 0x6b, 0x7b, -1 }, insn_parse_logicmem, insn_resolve_logicmem, lwasm_insn_is6309},
|
|
402 { "tst", { 0x0d, 0x6d, 0x7d, -1 }, insn_parse_gen0, insn_resolve_gen0, lwasm_insn_normal},
|
|
403 { "tsta", { 0x4d, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
404 { "tstb", { 0x5d, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal},
|
|
405 { "tstd", { 0x104d, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
406 { "tste", { 0x114d, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
407 { "tstf", { 0x115d, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
408 { "tstw", { 0x105d, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_is6309},
|
|
409
|
|
410 { "org", { -1, -1, -1, -1 }, pseudo_parse_org, pseudo_resolve_org, lwasm_insn_normal},
|
|
411
|
|
412 { "equ", { -1, -1, -1, -1 }, pseudo_parse_equ, pseudo_resolve_equ, lwasm_insn_setsym},
|
|
413 { "=", { -1, -1, -1, -1 }, pseudo_parse_equ, pseudo_resolve_equ, lwasm_insn_setsym},
|
|
414 { "extern", { -1, -1, -1, -1 }, pseudo_parse_extern, pseudo_resolve_extern, lwasm_insn_setsym},
|
|
415 { "external", { -1, -1, -1, -1 }, pseudo_parse_extern, pseudo_resolve_extern, lwasm_insn_setsym},
|
|
416 { "import", { -1, -1, -1, -1 }, pseudo_parse_extern, pseudo_resolve_extern, lwasm_insn_setsym},
|
|
417 { "export", { -1, -1, -1, -1 }, pseudo_parse_export, pseudo_resolve_export, lwasm_insn_setsym},
|
|
418
|
|
419
|
|
420 { "rmb", { -1, -1, -1, -1 }, pseudo_parse_rmb, pseudo_resolve_rmb, lwasm_insn_normal},
|
|
421 { "rmd", { -1, -1, -1, -1 }, pseudo_parse_rmd, pseudo_resolve_rmd, lwasm_insn_normal},
|
|
422 { "rmq", { -1, -1, -1, -1 }, pseudo_parse_rmq, pseudo_resolve_rmq, lwasm_insn_normal},
|
|
423
|
|
424 { "zmb", { -1, -1, -1, -1 }, pseudo_parse_zmb, pseudo_resolve_zmb, lwasm_insn_normal},
|
|
425 { "zmd", { -1, -1, -1, -1 }, pseudo_parse_zmd, pseudo_resolve_zmd, lwasm_insn_normal},
|
|
426 { "zmq", { -1, -1, -1, -1 }, pseudo_parse_zmq, pseudo_resolve_zmq, lwasm_insn_normal},
|
|
427
|
|
428 { "fcc", { -1, -1, -1, -1 }, pseudo_parse_fcc, pseudo_resolve_fcc, lwasm_insn_normal},
|
|
429 { "fcn", { -1, -1, -1, -1 }, pseudo_parse_fcn, pseudo_resolve_fcn, lwasm_insn_normal},
|
|
430 { "fcs", { -1, -1, -1, -1 }, pseudo_parse_fcs, pseudo_resolve_fcs, lwasm_insn_normal},
|
|
431
|
|
432 { "fcb", { -1, -1, -1, -1 }, pseudo_parse_fcb, pseudo_resolve_fcb, lwasm_insn_normal},
|
|
433 { "fdb", { -1, -1, -1, -1 }, pseudo_parse_fdb, pseudo_resolve_fdb, lwasm_insn_normal},
|
|
434 { "fqb", { -1, -1, -1, -1 }, pseudo_parse_fqb, pseudo_resolve_fqb, lwasm_insn_normal},
|
|
435
|
|
436 { "end", { -1, -1, -1, -1 }, pseudo_parse_end, pseudo_resolve_end, lwasm_insn_normal},
|
|
437
|
|
438 { "includebin", { -1, -1, -1, -1}, pseudo_parse_includebin,pseudo_resolve_includebin, lwasm_insn_normal},
|
|
439 { "include", { -1, -1, -1, -1 }, pseudo_parse_include, pseudo_resolve_include, lwasm_insn_normal},
|
|
440 { "use", { -1, -1, -1, -1 }, pseudo_parse_include, pseudo_resolve_include, lwasm_insn_normal},
|
|
441
|
|
442 { "align", { -1, -1, -1, -1 }, pseudo_parse_align, pseudo_resolve_align, lwasm_insn_normal},
|
|
443
|
|
444 { "error", { -1, -1, -1, -1}, pseudo_parse_error, pseudo_resolve_error, lwasm_insn_normal},
|
|
445
|
|
446 // these are *dangerous*
|
|
447 { "ifp1", { -1, -1, -1, -1}, pseudo_parse_ifp1, pseudo_resolve_ifp1, lwasm_insn_cond},
|
|
448 { "ifp2", { -1, -1, -1, -1}, pseudo_parse_ifp2, pseudo_resolve_ifp2, lwasm_insn_cond},
|
|
449
|
|
450 { "ifeq", { -1, -1, -1, -1}, pseudo_parse_ifeq, pseudo_resolve_ifeq, lwasm_insn_cond},
|
|
451 { "ifne", { -1, -1, -1, -1}, pseudo_parse_ifne, pseudo_resolve_ifne, lwasm_insn_cond},
|
|
452 { "if", { -1, -1, -1, -1}, pseudo_parse_ifne, pseudo_resolve_ifne, lwasm_insn_cond},
|
|
453 { "ifgt", { -1, -1, -1, -1}, pseudo_parse_ifgt, pseudo_resolve_ifgt, lwasm_insn_cond},
|
|
454 { "ifge", { -1, -1, -1, -1}, pseudo_parse_ifge, pseudo_resolve_ifge, lwasm_insn_cond},
|
|
455 { "iflt", { -1, -1, -1, -1}, pseudo_parse_iflt, pseudo_resolve_iflt, lwasm_insn_cond},
|
|
456 { "ifle", { -1, -1, -1, -1}, pseudo_parse_ifle, pseudo_resolve_ifle, lwasm_insn_cond},
|
|
457 { "endc", { -1, -1, -1, -1}, pseudo_parse_endc, pseudo_resolve_endc, lwasm_insn_cond},
|
|
458 { "else", { -1, -1, -1, -1}, pseudo_parse_else, pseudo_resolve_else, lwasm_insn_cond},
|
|
459 { "ifdef", { -1, -1, -1, -1}, pseudo_parse_ifdef, pseudo_resolve_ifdef, lwasm_insn_cond},
|
|
460 { "ifndef", { -1, -1, -1, -1}, pseudo_parse_ifndef, pseudo_resolve_ifndef, lwasm_insn_cond},
|
|
461
|
|
462 { "macro", { -1, -1, -1, -1}, pseudo_parse_macro, pseudo_resolve_macro, lwasm_insn_cond | lwasm_insn_setsym},
|
|
463 { "endm", { -1, -1, -1, -1}, pseudo_parse_endm, pseudo_resolve_endm, lwasm_insn_cond | lwasm_insn_setsym | lwasm_insn_endm},
|
|
464
|
|
465 { "setdp", { -1, -1, -1, -1}, pseudo_parse_setdp, pseudo_resolve_setdp, lwasm_insn_normal},
|
|
466 { "set", { -1, -1, -1, -1}, pseudo_parse_set, pseudo_resolve_set, lwasm_insn_setsym},
|
|
467
|
|
468 { "section", { -1, -1, -1, -1}, pseudo_parse_section, pseudo_resolve_section, lwasm_insn_normal},
|
|
469 { "sect", { -1, -1, -1, -1}, pseudo_parse_section, pseudo_resolve_section, lwasm_insn_normal},
|
|
470 { "ends", { -1, -1, -1, -1}, pseudo_parse_endsection,pseudo_resolve_endsection, lwasm_insn_normal},
|
|
471 { "endsect", { -1, -1, -1, -1}, pseudo_parse_endsection,pseudo_resolve_endsection, lwasm_insn_normal},
|
|
472 { "endsection", { -1, -1, -1, -1}, pseudo_parse_endsection,pseudo_resolve_endsection, lwasm_insn_normal},
|
|
473
|
|
474 { "pragma", { -1, -1, -1, -1}, pseudo_parse_pragma, pseudo_resolve_pragma, lwasm_insn_normal},
|
|
475 { "*pragma", { -1, -1, -1, -1}, pseudo_parse_starpragma,pseudo_resolve_starpragma, lwasm_insn_normal},
|
|
476
|
|
477 // for os9 target
|
|
478 { "os9", { -1, -1, -1, -1 }, pseudo_parse_os9, pseudo_resolve_os9, lwasm_insn_normal},
|
|
479 { "mod", { -1, -1, -1, -1 }, pseudo_parse_mod, pseudo_resolve_mod, lwasm_insn_normal},
|
|
480 { "emod", { -1, -1, -1, -1 }, pseudo_parse_emod, pseudo_resolve_emod, lwasm_insn_normal},
|
|
481
|
|
482 /* for compatibility with gcc6809 output... */
|
|
483 { ".area", { -1, -1, -1, -1}, pseudo_parse_section, pseudo_resolve_section, lwasm_insn_normal},
|
|
484 { ".globl", { -1, -1, -1, -1}, pseudo_parse_export, pseudo_resolve_export, lwasm_insn_normal},
|
|
485 { ".module", { -1, -1, -1, -1}, pseudo_parse_noop, pseudo_resolve_noop, lwasm_insn_normal},
|
|
486
|
|
487 { ".4byte", { -1, -1, -1, -1}, pseudo_parse_fqb, pseudo_resolve_fqb, lwasm_insn_normal},
|
|
488 { ".quad", { -1, -1, -1, -1}, pseudo_parse_fqb, pseudo_resolve_fqb, lwasm_insn_normal},
|
|
489
|
|
490 { ".word", { -1, -1, -1, -1}, pseudo_parse_fdb, pseudo_resolve_fdb, lwasm_insn_normal},
|
|
491 { ".dw", { -1, -1, -1, -1}, pseudo_parse_fdb, pseudo_resolve_fdb, lwasm_insn_normal},
|
|
492
|
|
493 { ".byte", { -1, -1, -1, -1}, pseudo_parse_fcb, pseudo_resolve_fcb, lwasm_insn_normal},
|
|
494 { ".db", { -1, -1, -1, -1}, pseudo_parse_fcb, pseudo_resolve_fcb, lwasm_insn_normal},
|
|
495
|
|
496 { ".ascii", { -1, -1, -1, -1}, pseudo_parse_fcc, pseudo_resolve_fcc, lwasm_insn_normal},
|
|
497 { ".str", { -1, -1, -1, -1}, pseudo_parse_fcc, pseudo_resolve_fcc, lwasm_insn_normal},
|
|
498
|
|
499 { ".ascis", { -1, -1, -1, -1}, pseudo_parse_fcs, pseudo_resolve_fcs, lwasm_insn_normal},
|
|
500 { ".strs", { -1, -1, -1, -1}, pseudo_parse_fcs, pseudo_resolve_fcs, lwasm_insn_normal},
|
|
501
|
|
502 { ".asciz", { -1, -1, -1, -1}, pseudo_parse_fcn, pseudo_resolve_fcn, lwasm_insn_normal},
|
|
503 { ".strz", { -1, -1, -1, -1}, pseudo_parse_fcn, pseudo_resolve_fcn, lwasm_insn_normal},
|
|
504
|
|
505 { ".blkb", { -1, -1, -1, -1}, pseudo_parse_rmb, pseudo_resolve_rmb, lwasm_insn_normal},
|
|
506 { ".ds", { -1, -1, -1, -1}, pseudo_parse_rmb, pseudo_resolve_rmb, lwasm_insn_normal},
|
|
507 { ".rs", { -1, -1, -1, -1}, pseudo_parse_rmb, pseudo_resolve_rmb, lwasm_insn_normal},
|
|
508
|
|
509 // needs to handle C escapes maybe?
|
|
510 // { ".ascii", { -1, -1, -1, -1}, pseudo_parse_ascii, pseudo_resolve_ascii, lwasm_insn_normal},
|
|
511
|
|
512 // for compatibility
|
|
513 { ".end", { -1, -1, -1, -1 }, pseudo_parse_end, pseudo_resolve_end, lwasm_insn_normal},
|
|
514
|
|
515 // extra ops that are ignored because they are generally only for
|
|
516 // pretty printing the listing
|
|
517 { "nam", { -1, -1, -1, -1 }, pseudo_parse_noop, pseudo_resolve_noop, lwasm_insn_normal},
|
|
518 { "pag", { -1, -1, -1, -1 }, pseudo_parse_noop, pseudo_resolve_noop, lwasm_insn_normal},
|
|
519 { "ttl", { -1, -1, -1, -1 }, pseudo_parse_noop, pseudo_resolve_noop, lwasm_insn_normal},
|
|
520
|
|
521 /* flag end of table */
|
|
522 { NULL, { -1, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, lwasm_insn_normal}
|
|
523 };
|