Mercurial > repos > blastem
comparison 68kinst.h @ 638:8a3198c17207
Add support for 68020 addressing modes in decoder and disassembler
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 14 Oct 2014 21:58:03 -0700 |
parents | d8d58eced22f |
children | 902c53d9c16f |
comparison
equal
deleted
inserted
replaced
637:d8d58eced22f | 638:8a3198c17207 |
---|---|
171 MODE_AREG_INDEX_MEM, //bunch of relatively complicated modes | 171 MODE_AREG_INDEX_MEM, //bunch of relatively complicated modes |
172 MODE_PC_INDIRECT_ABS_IMMED, //Modes that use the program counter, an absolute address or immediate value | 172 MODE_PC_INDIRECT_ABS_IMMED, //Modes that use the program counter, an absolute address or immediate value |
173 //expanded values | 173 //expanded values |
174 MODE_AREG_INDEX_DISP8, | 174 MODE_AREG_INDEX_DISP8, |
175 #ifdef M68020 | 175 #ifdef M68020 |
176 MODE_AREG_INDEX_DISP16, | 176 MODE_AREG_INDEX_BASE_DISP, |
177 MODE_AREG_INDEX_DISP32, | 177 MODE_AREG_PREINDEX, |
178 MODE_AREG_POSTINDEX, | |
179 MODE_AREG_MEM_INDIRECT, | |
180 MODE_AREG_BASE_DISP, | |
181 MODE_INDEX_BASE_DISP, | |
182 MODE_PREINDEX, | |
183 MODE_POSTINDEX, | |
184 MODE_MEM_INDIRECT, | |
185 MODE_BASE_DISP, | |
178 #endif | 186 #endif |
179 MODE_ABSOLUTE_SHORT, | 187 MODE_ABSOLUTE_SHORT, |
180 MODE_ABSOLUTE, | 188 MODE_ABSOLUTE, |
181 MODE_PC_DISPLACE, | 189 MODE_PC_DISPLACE, |
182 MODE_PC_INDEX_DISP8, | 190 MODE_PC_INDEX_DISP8, |
183 #ifdef M68020 | 191 #ifdef M68020 |
184 MODE_PC_INDEX_DISP32, | 192 MODE_PC_INDEX_BASE_DISP, |
193 MODE_PC_PREINDEX, | |
194 MODE_PC_POSTINDEX, | |
195 MODE_PC_MEM_INDIRECT, | |
196 MODE_PC_BASE_DISP, | |
197 MODE_ZPC_INDEX_BASE_DISP, | |
198 MODE_ZPC_PREINDEX, | |
199 MODE_ZPC_POSTINDEX, | |
200 MODE_ZPC_MEM_INDIRECT, | |
201 MODE_ZPC_BASE_DISP, | |
185 #endif | 202 #endif |
186 MODE_IMMEDIATE, | 203 MODE_IMMEDIATE, |
187 MODE_IMMEDIATE_WORD,//used to indicate an immediate operand that only uses a single extension word even for a long operation | 204 MODE_IMMEDIATE_WORD,//used to indicate an immediate operand that only uses a single extension word even for a long operation |
188 MODE_UNUSED | 205 MODE_UNUSED |
189 } m68k_addr_modes; | 206 } m68k_addr_modes; |
245 struct { | 262 struct { |
246 uint8_t pri; | 263 uint8_t pri; |
247 uint8_t sec; | 264 uint8_t sec; |
248 #ifdef M68020 | 265 #ifdef M68020 |
249 uint8_t scale; | 266 uint8_t scale; |
267 uint8_t disp_sizes; | |
250 #endif | 268 #endif |
251 int32_t displacement; | 269 int32_t displacement; |
270 #ifdef M68020 | |
271 int32_t outer_disp; | |
272 #endif | |
252 } regs; | 273 } regs; |
253 uint32_t immed; | 274 uint32_t immed; |
254 } params; | 275 } params; |
255 } m68k_op_info; | 276 } m68k_op_info; |
256 | 277 |