trunk/src/emu/cpu/m68000x/m68000.c
| r0 | r243794 | |
| 1 | /*************************************************************************** |
| 2 | |
| 3 | m68000.c |
| 4 | |
| 5 | Motorola 68000 |
| 6 | |
| 7 | **************************************************************************** |
| 8 | |
| 9 | Copyright Olivier Galibert |
| 10 | All rights reserved. |
| 11 | |
| 12 | Redistribution and use in source and binary forms, with or without |
| 13 | modification, are permitted provided that the following conditions are |
| 14 | met: |
| 15 | |
| 16 | * Redistributions of source code must retain the above copyright |
| 17 | notice, this list of conditions and the following disclaimer. |
| 18 | * Redistributions in binary form must reproduce the above copyright |
| 19 | notice, this list of conditions and the following disclaimer in |
| 20 | the documentation and/or other materials provided with the |
| 21 | distribution. |
| 22 | * Neither the name 'MAME' nor the names of its contributors may be |
| 23 | used to endorse or promote products derived from this software |
| 24 | without specific prior written permission. |
| 25 | |
| 26 | THIS SOFTWARE IS PROVIDED BY OLIVIER GALIBERT ''AS IS'' AND ANY EXPRESS OR |
| 27 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| 28 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| 29 | DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT, |
| 30 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| 31 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| 32 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| 33 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
| 34 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
| 35 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 36 | POSSIBILITY OF SUCH DAMAGE. |
| 37 | |
| 38 | ***************************************************************************/ |
| 39 | |
| 40 | #include "emu.h" |
| 41 | #include "debugger.h" |
| 42 | #include "m68000.h" |
| 43 | |
| 44 | const device_type M68000x = &device_creator<m68000x_device>; |
| 45 | |
| 46 | m68000x_device::m68000x_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : |
| 47 | cpu_device(mconfig, M68000x, "Motorola 68000", tag, owner, clock, "m68000", __FILE__), |
| 48 | program_config("program", ENDIANNESS_BIG, 16, 24) |
| 49 | { |
| 50 | } |
| 51 | |
| 52 | void m68000x_device::device_start() |
| 53 | { |
| 54 | init(); |
| 55 | } |
| 56 | |
| 57 | void m68000x_device::init() |
| 58 | { |
| 59 | program = &space(AS_PROGRAM); |
| 60 | direct = &program->direct(); |
| 61 | |
| 62 | state_add(STATE_GENPC, "GENPC", PPC).noshow(); |
| 63 | state_add(STATE_GENPCBASE, "GENPCBASE", PPC).noshow(); |
| 64 | state_add(STATE_GENSP, "GENSP", A[7]).noshow(); |
| 65 | state_add(STATE_GENFLAGS, "GENFLAGS", SR).callimport().formatstr("%6s").noshow(); |
| 66 | |
| 67 | save_item(NAME(PPC)); |
| 68 | save_item(NAME(PC)); |
| 69 | save_item(NAME(D)); |
| 70 | save_item(NAME(A)); |
| 71 | save_item(NAME(SR)); |
| 72 | save_item(NAME(cur_SR)); |
| 73 | save_item(NAME(USP)); |
| 74 | save_item(NAME(SSP)); |
| 75 | |
| 76 | m_icountptr = &icount; |
| 77 | |
| 78 | inst_state = STATE_RESET; |
| 79 | inst_substate = 0; |
| 80 | end_cycles = 0; |
| 81 | |
| 82 | memset(D, 0, sizeof(D)); |
| 83 | memset(A, 0, sizeof(A)); |
| 84 | SR = 0x2700; |
| 85 | cur_SR = 0x2700; |
| 86 | PPC = PC = 0; |
| 87 | USP = SSP = 0; |
| 88 | } |
| 89 | |
| 90 | void m68000x_device::device_reset() |
| 91 | { |
| 92 | inst_state = STATE_RESET; |
| 93 | inst_substate = 0; |
| 94 | } |
| 95 | |
| 96 | |
| 97 | UINT32 m68000x_device::execute_min_cycles() const |
| 98 | { |
| 99 | return 4; |
| 100 | } |
| 101 | |
| 102 | UINT32 m68000x_device::execute_max_cycles() const |
| 103 | { |
| 104 | return 500; |
| 105 | } |
| 106 | |
| 107 | UINT32 m68000x_device::execute_input_lines() const |
| 108 | { |
| 109 | return 8; |
| 110 | } |
| 111 | |
| 112 | UINT64 m68000x_device::get_cycle() |
| 113 | { |
| 114 | return end_cycles == 0 || icount <= 0 ? machine().time().as_ticks(clock()) : end_cycles - icount; |
| 115 | } |
| 116 | |
| 117 | void m68000x_device::execute_run() |
| 118 | { |
| 119 | end_cycles = machine().time().as_ticks(clock()) + icount; |
| 120 | if(inst_substate) |
| 121 | do_exec_partial(); |
| 122 | |
| 123 | while(icount > 0) { |
| 124 | if(inst_state < 0x10000) { |
| 125 | PPC = PC; |
| 126 | IRD = IR; |
| 127 | inst_state = IRD; |
| 128 | if(machine().debug_flags & DEBUG_FLAG_ENABLED) |
| 129 | debugger_instruction_hook(this, NPC); |
| 130 | } |
| 131 | int picount = icount; |
| 132 | do_exec_full(); |
| 133 | if(picount == icount) { |
| 134 | logerror("Unhandled %04x (%06x)\n", IRD, NPC); |
| 135 | debugger_break(machine()); |
| 136 | } |
| 137 | } |
| 138 | end_cycles = 0; |
| 139 | } |
| 140 | |
| 141 | void m68000x_device::execute_set_input(int inputnum, int state) |
| 142 | { |
| 143 | } |
| 144 | |
| 145 | |
| 146 | const address_space_config *m68000x_device::memory_space_config(address_spacenum spacenum) const |
| 147 | { |
| 148 | return (spacenum == AS_PROGRAM) ? &program_config : NULL; |
| 149 | } |
| 150 | |
| 151 | |
| 152 | void m68000x_device::state_import(const device_state_entry &entry) |
| 153 | { |
| 154 | } |
| 155 | |
| 156 | void m68000x_device::state_export(const device_state_entry &entry) |
| 157 | { |
| 158 | } |
| 159 | |
| 160 | void m68000x_device::state_string_export(const device_state_entry &entry, astring &string) |
| 161 | { |
| 162 | } |
| 163 | |
| 164 | |
| 165 | UINT32 m68000x_device::disasm_min_opcode_bytes() const |
| 166 | { |
| 167 | return 2; |
| 168 | } |
| 169 | |
| 170 | UINT32 m68000x_device::disasm_max_opcode_bytes() const |
| 171 | { |
| 172 | return 40; |
| 173 | } |
| 174 | |
| 175 | inline astring m68000x_device::signed_to_str(INT32 v) |
| 176 | { |
| 177 | char buf[32]; |
| 178 | if(v < -9) |
| 179 | sprintf(buf, "-$%x", -v); |
| 180 | else if(v < 0) |
| 181 | sprintf(buf, "-%x", -v); |
| 182 | else if(v < 10) |
| 183 | sprintf(buf, "%x", v); |
| 184 | else |
| 185 | sprintf(buf, "$%x", v); |
| 186 | return buf; |
| 187 | } |
| 188 | |
| 189 | inline astring m68000x_device::unsigned_to_str(UINT32 v) |
| 190 | { |
| 191 | char buf[32]; |
| 192 | if(v < 10) |
| 193 | sprintf(buf, "%x", v); |
| 194 | else |
| 195 | sprintf(buf, "$%x", v); |
| 196 | return buf; |
| 197 | } |
| 198 | |
| 199 | astring m68000x_device::dasm_list(UINT16 val, int x) |
| 200 | { |
| 201 | astring res; |
| 202 | static const char *regs[16] = { |
| 203 | "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", |
| 204 | "a0", "a1", "a2", "a3", "a4", "a5", "a6", "sp" |
| 205 | }; |
| 206 | |
| 207 | for(int i=0; i<16; i++) { |
| 208 | int mode = (val >> (((i-1) & 0x1f) ^ x)) & 1; |
| 209 | mode |= ((val >> (i ^ x)) & 1) << 1; |
| 210 | mode |= ((val >> ((i+1) ^ x)) & 1) << 2; |
| 211 | if(i != 15 && regs[i][0] != regs[i+1][0]) |
| 212 | mode &= 3; |
| 213 | if(i != 0 && regs[i][0] != regs[i-1][0]) |
| 214 | mode &= 6; |
| 215 | |
| 216 | switch(mode) { |
| 217 | case 0: case 1: case 4: case 5: case 7: |
| 218 | break; |
| 219 | case 2: case 6: |
| 220 | if(res != "") |
| 221 | res += "/"; |
| 222 | res += regs[i]; |
| 223 | break; |
| 224 | case 3: |
| 225 | res += astring("-") + regs[i]; |
| 226 | break; |
| 227 | } |
| 228 | } |
| 229 | return res; |
| 230 | } |
| 231 | |
| 232 | astring m68000x_device::dasm_amode(int amode, UINT16 opc, const UINT8 *oprom, int &pos, offs_t pc) |
| 233 | { |
| 234 | char buf[32]; |
| 235 | switch(amode) { |
| 236 | case DASM_ds: |
| 237 | sprintf(buf, "d%d", opc & 7); |
| 238 | break; |
| 239 | |
| 240 | case DASM_dd: |
| 241 | sprintf(buf, "d%d", (opc >> 9) & 7); |
| 242 | break; |
| 243 | |
| 244 | case DASM_as: |
| 245 | sprintf(buf, "a%d", opc & 7); |
| 246 | break; |
| 247 | |
| 248 | case DASM_ad: |
| 249 | sprintf(buf, "a%d", (opc >> 9) & 7); |
| 250 | break; |
| 251 | |
| 252 | case DASM_ccr: |
| 253 | sprintf(buf, "ccr"); |
| 254 | break; |
| 255 | |
| 256 | case DASM_sr: |
| 257 | sprintf(buf, "sr"); |
| 258 | break; |
| 259 | |
| 260 | case DASM_usp: |
| 261 | sprintf(buf, "usp"); |
| 262 | break; |
| 263 | |
| 264 | case DASM_ais: |
| 265 | sprintf(buf, "(a%d)", opc & 7); |
| 266 | break; |
| 267 | |
| 268 | case DASM_aid: |
| 269 | sprintf(buf, "(a%d)", (opc >> 9) & 7); |
| 270 | break; |
| 271 | |
| 272 | case DASM_aips: |
| 273 | sprintf(buf, "(a%d)+", opc & 7); |
| 274 | break; |
| 275 | |
| 276 | case DASM_aipd: |
| 277 | sprintf(buf, "(a%d)+", (opc >> 9) & 7); |
| 278 | break; |
| 279 | |
| 280 | case DASM_pais: |
| 281 | sprintf(buf, "-(a%d)", opc & 7); |
| 282 | break; |
| 283 | |
| 284 | case DASM_paid: |
| 285 | sprintf(buf, "-(a%d)", (opc >> 9) & 7); |
| 286 | break; |
| 287 | |
| 288 | case DASM_das: |
| 289 | sprintf(buf, "%s(a%d)", signed_to_str(INT16((oprom[pos] << 8) | oprom[pos+1])).cstr(), opc & 7); |
| 290 | pos += 2; |
| 291 | break; |
| 292 | |
| 293 | case DASM_dad: |
| 294 | sprintf(buf, "%s(a%d)", signed_to_str(INT16((oprom[pos] << 8) | oprom[pos+1])).cstr(), (opc >> 9) & 7); |
| 295 | pos += 2; |
| 296 | break; |
| 297 | |
| 298 | case DASM_dais: |
| 299 | if(oprom[pos+1]) |
| 300 | sprintf(buf, "%s(a%d, %c%d.%c)", signed_to_str(INT8(oprom[pos+1])).cstr(), opc & 7, oprom[pos] & 0x80 ? 'a' : 'd', (oprom[pos] >> 4) & 7, oprom[pos] & 8 ? 'l' : 'w'); |
| 301 | else |
| 302 | sprintf(buf, "(a%d, %c%d.%c)", opc & 7, oprom[pos] & 0x80 ? 'a' : 'd', (oprom[pos] >> 4) & 7, oprom[pos] & 8 ? 'l' : 'w'); |
| 303 | pos += 2; |
| 304 | break; |
| 305 | |
| 306 | case DASM_daid: |
| 307 | if(oprom[pos+1]) |
| 308 | sprintf(buf, "%s(a%d, %c%d.%c)", signed_to_str(INT8(oprom[pos+1])).cstr(), (opc >> 9) & 7, oprom[pos] & 0x80 ? 'a' : 'd', (oprom[pos] >> 4) & 7, oprom[pos] & 8 ? 'l' : 'w'); |
| 309 | else |
| 310 | sprintf(buf, "(a%d, %c%d.%c)", (opc >> 9) & 7, oprom[pos] & 0x80 ? 'a' : 'd', (oprom[pos] >> 4) & 7, oprom[pos] & 8 ? 'l' : 'w'); |
| 311 | pos += 2; |
| 312 | break; |
| 313 | |
| 314 | case DASM_adr16: |
| 315 | sprintf(buf, "$%x", INT16((oprom[pos] << 8) | oprom[pos+1])); |
| 316 | pos += 2; |
| 317 | break; |
| 318 | |
| 319 | case DASM_adr32: |
| 320 | sprintf(buf, "$%x", (oprom[pos] << 24) | (oprom[pos+1] << 16) | (oprom[pos+2] << 8) | oprom[pos+3]); |
| 321 | pos += 4; |
| 322 | break; |
| 323 | |
| 324 | case DASM_imm3: |
| 325 | sprintf(buf, "#%x", (opc >> 9) & 7 ? (opc >> 9) & 7 : 8); |
| 326 | break; |
| 327 | |
| 328 | case DASM_imm4: |
| 329 | sprintf(buf, "#%s", unsigned_to_str(opc & 0xf).cstr()); |
| 330 | break; |
| 331 | |
| 332 | case DASM_imm8: |
| 333 | sprintf(buf, "#%s", unsigned_to_str(oprom[pos+1]).cstr()); |
| 334 | pos += 2; |
| 335 | break; |
| 336 | |
| 337 | case DASM_imm8o: |
| 338 | sprintf(buf, "#%s", signed_to_str(INT8(opc)).cstr()); |
| 339 | break; |
| 340 | |
| 341 | case DASM_imm12: |
| 342 | sprintf(buf, "#$%03x", opc & 0xfff); |
| 343 | break; |
| 344 | |
| 345 | case DASM_imm16: |
| 346 | sprintf(buf, "#%s", signed_to_str(INT16((oprom[pos] << 8) | oprom[pos+1])).cstr()); |
| 347 | pos += 2; |
| 348 | break; |
| 349 | |
| 350 | case DASM_i16u: |
| 351 | sprintf(buf, "#$%04x", (oprom[pos] << 8) | oprom[pos+1]); |
| 352 | pos += 2; |
| 353 | break; |
| 354 | |
| 355 | case DASM_imm32: |
| 356 | sprintf(buf, "#%s", unsigned_to_str((oprom[pos] << 24) | (oprom[pos+1] << 16) | (oprom[pos+2] << 8) | oprom[pos+3]).cstr()); |
| 357 | pos += 4; |
| 358 | break; |
| 359 | |
| 360 | case DASM_rel8: |
| 361 | if(opc & 0xff) |
| 362 | sprintf(buf, "$%x", pc + pos + INT8(opc)); |
| 363 | else { |
| 364 | sprintf(buf, "$%x", pc + pos + INT16((oprom[pos] << 8) | oprom[pos+1])); |
| 365 | pos += 2; |
| 366 | } |
| 367 | break; |
| 368 | |
| 369 | case DASM_rel16: |
| 370 | sprintf(buf, "$%x", pc + pos + INT16((oprom[pos] << 8) | oprom[pos+1])); |
| 371 | pos += 2; |
| 372 | break; |
| 373 | |
| 374 | case DASM_dpc: |
| 375 | sprintf(buf, "$%x(pc)", pc + pos + INT16((oprom[pos] << 8) | oprom[pos+1])); |
| 376 | pos += 2; |
| 377 | break; |
| 378 | |
| 379 | case DASM_dpci: |
| 380 | sprintf(buf, "$%x(pc, %c%d.%c)", pc + pos + INT8(oprom[pos+1]), oprom[pos] & 0x80 ? 'a' : 'd', (oprom[pos] >> 4) & 7, oprom[pos] & 8 ? 'l' : 'w'); |
| 381 | pos += 2; |
| 382 | break; |
| 383 | |
| 384 | case DASM_list: |
| 385 | sprintf(buf, "%s", dasm_list((oprom[2] << 8) | oprom[3], 0x0).cstr()); |
| 386 | break; |
| 387 | |
| 388 | case DASM_listp: |
| 389 | sprintf(buf, "%s", dasm_list((oprom[2] << 8) | oprom[3], 0xf).cstr()); |
| 390 | break; |
| 391 | |
| 392 | default: |
| 393 | sprintf(buf, "?"); |
| 394 | } |
| 395 | return buf; |
| 396 | } |
| 397 | |
| 398 | offs_t m68000x_device::disassemble_generic(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options, const disasm_entry *table) |
| 399 | { |
| 400 | UINT16 opc = (oprom[0] << 8) | oprom[1]; |
| 401 | int slot; |
| 402 | for(slot=0; table[slot].opcode && ((opc & table[slot].mask) != table[slot].compare); slot++); |
| 403 | if(!table[slot].opcode) { |
| 404 | sprintf(buffer, "dc.w %04x", opc); |
| 405 | return DASMFLAG_SUPPORTED|2; |
| 406 | } |
| 407 | |
| 408 | int pos = 2; |
| 409 | buffer += sprintf(buffer, "%s", table[slot].opcode); |
| 410 | |
| 411 | if(table[slot].amode1 == DASM_list || table[slot].amode1 == DASM_listp || |
| 412 | table[slot].amode2 == DASM_list) |
| 413 | pos += 2; |
| 414 | |
| 415 | if(table[slot].amode1 != DASM_none) |
| 416 | buffer += sprintf(buffer, " %s", dasm_amode(table[slot].amode1, opc, oprom, pos, pc).cstr()); |
| 417 | |
| 418 | if(table[slot].amode2 != DASM_none) |
| 419 | buffer += sprintf(buffer, ", %s", dasm_amode(table[slot].amode2, opc, oprom, pos, pc).cstr()); |
| 420 | |
| 421 | return DASMFLAG_SUPPORTED | table[slot].flags | pos; |
| 422 | } |
| 423 | |
| 424 | offs_t m68000x_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) |
| 425 | { |
| 426 | return disassemble_generic(buffer, pc, oprom, opram, options, disasm_entries); |
| 427 | } |
| 428 | |
| 429 | void m68000x_device::check_stack() |
| 430 | { |
| 431 | if((SR ^ cur_SR) & F_S) { |
| 432 | cur_SR = SR; |
| 433 | if(SR & F_S) { |
| 434 | USP = A[7]; |
| 435 | A[7] = SSP; |
| 436 | } else { |
| 437 | SSP = A[7]; |
| 438 | A[7] = USP; |
| 439 | } |
| 440 | } |
| 441 | } |
| 442 | |
| 443 | void m68000x_device::do_cmp32(UINT32 a, UINT32 b) |
| 444 | { |
| 445 | logerror("Compare %08x %08x\n", a, b); |
| 446 | } |
| 447 | |
| 448 | UINT16 m68000x_device::read16p(UINT32 adr) |
| 449 | { |
| 450 | UINT16 res = direct->read_decrypted_word(adr); |
| 451 | logerror("%s: read16p %08x, %04x\n", tag(), adr, res); |
| 452 | icount -= 4; |
| 453 | return res; |
| 454 | } |
| 455 | |
| 456 | UINT16 m68000x_device::read16d(UINT32 adr) |
| 457 | { |
| 458 | UINT16 res = program->read_word(adr); |
| 459 | logerror("%s: read16d %08x, %04x\n", tag(), adr, res); |
| 460 | icount -= 4; |
| 461 | return res; |
| 462 | } |
| 463 | |
| 464 | void m68000x_device::do_exec_partial() |
| 465 | { |
| 466 | } |
| 467 | |
| 468 | #include "cpu/m68000x/m68000.inc" |
trunk/src/emu/cpu/m68000x/m68000.h
| r0 | r243794 | |
| 1 | /*************************************************************************** |
| 2 | |
| 3 | m68000.h |
| 4 | |
| 5 | Motorola 68000 |
| 6 | |
| 7 | **************************************************************************** |
| 8 | |
| 9 | Copyright Olivier Galibert |
| 10 | All rights reserved. |
| 11 | |
| 12 | Redistribution and use in source and binary forms, with or without |
| 13 | modification, are permitted provided that the following conditions are |
| 14 | met: |
| 15 | |
| 16 | * Redistributions of source code must retain the above copyright |
| 17 | notice, this list of conditions and the following disclaimer. |
| 18 | * Redistributions in binary form must reproduce the above copyright |
| 19 | notice, this list of conditions and the following disclaimer in |
| 20 | the documentation and/or other materials provided with the |
| 21 | distribution. |
| 22 | * Neither the name 'MAME' nor the names of its contributors may be |
| 23 | used to endorse or promote products derived from this software |
| 24 | without specific prior written permission. |
| 25 | |
| 26 | THIS SOFTWARE IS PROVIDED BY OLIVIER GALIBERT ''AS IS'' AND ANY EXPRESS OR |
| 27 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| 28 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| 29 | DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT, |
| 30 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| 31 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| 32 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| 33 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
| 34 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
| 35 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 36 | POSSIBILITY OF SUCH DAMAGE. |
| 37 | |
| 38 | ***************************************************************************/ |
| 39 | |
| 40 | #ifndef __M68000x_H__ |
| 41 | #define __M68000x_H__ |
| 42 | |
| 43 | class m68000x_device : public cpu_device { |
| 44 | public: |
| 45 | m68000x_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 46 | |
| 47 | UINT64 get_cycle(); |
| 48 | |
| 49 | protected: |
| 50 | struct disasm_entry { |
| 51 | const char *opcode; |
| 52 | UINT16 mask, compare; |
| 53 | int amode1, amode2; |
| 54 | offs_t flags; |
| 55 | }; |
| 56 | |
| 57 | enum { |
| 58 | DASM_none, |
| 59 | |
| 60 | DASM_ds, // data register in source pos |
| 61 | DASM_dd, // data register in destination pos |
| 62 | |
| 63 | DASM_as, // address register in source pos |
| 64 | DASM_ad, // address register in destination pos |
| 65 | |
| 66 | DASM_ccr, // control register (low 8 bits of sr) |
| 67 | DASM_sr, // status register |
| 68 | DASM_usp, // user stack pointer |
| 69 | |
| 70 | DASM_ais, // address register indirect in source pos |
| 71 | DASM_aid, // address register indirect in destination pos |
| 72 | |
| 73 | DASM_aips, // address register indirect post increment in source pos |
| 74 | DASM_aipd, // address register indirect post increment in destination pos |
| 75 | |
| 76 | DASM_pais, // address register indirect pre decrement in source pos |
| 77 | DASM_paid, // address register indirect pre decrement in destination pos |
| 78 | |
| 79 | DASM_das, // address register indirect 16 bits displacement in source pos |
| 80 | DASM_dad, // address register indirect 16 bits displacement in destination pos |
| 81 | |
| 82 | DASM_dais, // address register indirect indexed in source pos |
| 83 | DASM_daid, // address register indirect indexed in destination pos |
| 84 | |
| 85 | DASM_adr16, // 16 bits absolute address |
| 86 | DASM_adr32, // 32 bits absolute address |
| 87 | |
| 88 | DASM_imm3, // immediate 3 bits (in-opcode, shifts, addq, subq) |
| 89 | DASM_imm4, // immediate 4 bits (in-opcode, trap) |
| 90 | DASM_imm8, // immediate 8 bits |
| 91 | DASM_imm8o, // immediate 8 bits in-opcode (moveq) |
| 92 | DASM_imm12, // immediate 12 bits (in-opcode, linea/f) |
| 93 | DASM_imm16, // immediate 16 bits |
| 94 | DASM_i16u, // immediate 16 bits unsigned (sr, stop) |
| 95 | DASM_imm32, // immediate 32 bits |
| 96 | |
| 97 | DASM_rel8, // pc relative with 8/16 bits displacement (branches) |
| 98 | DASM_rel16, // pc relative with 16 bits displacement (branches) |
| 99 | DASM_dpc, // pc + 16 bits displacement |
| 100 | DASM_dpci, // pc indexed |
| 101 | |
| 102 | DASM_list, // list of registers |
| 103 | DASM_listp, // inverted list of registers for predecrementation |
| 104 | }; |
| 105 | |
| 106 | enum { |
| 107 | STATE_RESET = 0x10000, |
| 108 | }; |
| 109 | |
| 110 | enum { |
| 111 | F_C = 0x0001, |
| 112 | F_V = 0x0002, |
| 113 | F_Z = 0x0004, |
| 114 | F_N = 0x0008, |
| 115 | F_X = 0x0010, |
| 116 | F_I = 0x0700, |
| 117 | F_S = 0x2000, |
| 118 | F_T = 0x8000, |
| 119 | }; |
| 120 | |
| 121 | virtual void init(); |
| 122 | |
| 123 | // device-level overrides |
| 124 | virtual void device_start(); |
| 125 | virtual void device_reset(); |
| 126 | |
| 127 | // device_execute_interface overrides |
| 128 | virtual UINT32 execute_min_cycles() const; |
| 129 | virtual UINT32 execute_max_cycles() const; |
| 130 | virtual UINT32 execute_input_lines() const; |
| 131 | virtual void execute_run(); |
| 132 | virtual void execute_set_input(int inputnum, int state); |
| 133 | |
| 134 | // device_memory_interface overrides |
| 135 | virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const; |
| 136 | |
| 137 | // device_state_interface overrides |
| 138 | virtual void state_import(const device_state_entry &entry); |
| 139 | virtual void state_export(const device_state_entry &entry); |
| 140 | virtual void state_string_export(const device_state_entry &entry, astring &string); |
| 141 | |
| 142 | // device_disasm_interface overrides |
| 143 | virtual UINT32 disasm_min_opcode_bytes() const; |
| 144 | virtual UINT32 disasm_max_opcode_bytes() const; |
| 145 | virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options); |
| 146 | |
| 147 | address_space_config program_config; |
| 148 | address_space *program; |
| 149 | direct_read_data *direct; |
| 150 | |
| 151 | UINT32 PPC; /* previous program counter */ |
| 152 | UINT32 NPC; /* next start-of-instruction program counter */ |
| 153 | UINT32 PC; /* program counter */ |
| 154 | UINT16 SR; |
| 155 | UINT16 IR, IRC, IRD; |
| 156 | UINT32 D[8], A[8]; |
| 157 | UINT32 USP, SSP; |
| 158 | |
| 159 | UINT32 OP1, OP2, TMP1; |
| 160 | |
| 161 | int inst_state, inst_substate; |
| 162 | int icount; |
| 163 | UINT64 end_cycles; |
| 164 | UINT16 cur_SR; |
| 165 | |
| 166 | static const disasm_entry disasm_entries[]; |
| 167 | |
| 168 | offs_t disassemble_generic(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options, const disasm_entry *entries); |
| 169 | |
| 170 | static inline astring unsigned_to_str(UINT32 v); |
| 171 | static inline astring signed_to_str(INT32 v); |
| 172 | static astring dasm_list(UINT16 val, int x); |
| 173 | static astring dasm_amode(int amode, UINT16 opc, const UINT8 *oprom, int &pos, offs_t pc); |
| 174 | |
| 175 | virtual void do_exec_full(); |
| 176 | virtual void do_exec_partial(); |
| 177 | |
| 178 | void check_stack(); |
| 179 | UINT16 read16d(UINT32 adr); |
| 180 | UINT16 read16p(UINT32 adr); |
| 181 | |
| 182 | void do_cmp32(UINT32 a, UINT32 b); |
| 183 | |
| 184 | #define O(o) void o ## _full(); void o ## _partial() |
| 185 | |
| 186 | O(abcd_ds_dd); O(abcd_pais_paid); |
| 187 | O(add_b_adr16_dd); O(add_b_adr32_dd); O(add_b_aips_dd); O(add_b_ais_dd); O(add_b_dais_dd); O(add_b_das_dd); O(add_b_dd_adr16); O(add_b_dd_adr32); O(add_b_dd_aips); O(add_b_dd_ais); O(add_b_dd_dais); O(add_b_dd_das); O(add_b_dd_pais); O(add_b_dpc_dd); O(add_b_dpci_dd); O(add_b_ds_dd); O(add_b_imm8_dd); O(add_b_pais_dd); |
| 188 | O(add_l_adr16_dd); O(add_l_adr32_dd); O(add_l_aips_dd); O(add_l_ais_dd); O(add_l_as_dd); O(add_l_dais_dd); O(add_l_das_dd); O(add_l_dd_adr16); O(add_l_dd_adr32); O(add_l_dd_aips); O(add_l_dd_ais); O(add_l_dd_dais); O(add_l_dd_das); O(add_l_dd_pais); O(add_l_dpc_dd); O(add_l_dpci_dd); O(add_l_ds_dd); O(add_l_imm32_dd); O(add_l_pais_dd); |
| 189 | O(add_w_adr16_dd); O(add_w_adr32_dd); O(add_w_aips_dd); O(add_w_ais_dd); O(add_w_as_dd); O(add_w_dais_dd); O(add_w_das_dd); O(add_w_dd_adr16); O(add_w_dd_adr32); O(add_w_dd_aips); O(add_w_dd_ais); O(add_w_dd_dais); O(add_w_dd_das); O(add_w_dd_pais); O(add_w_dpc_dd); O(add_w_dpci_dd); O(add_w_ds_dd); O(add_w_imm16_dd); O(add_w_pais_dd); |
| 190 | O(adda_l_adr16_ad); O(adda_l_adr32_ad); O(adda_l_aips_ad); O(adda_l_ais_ad); O(adda_l_as_ad); O(adda_l_dais_ad); O(adda_l_das_ad); O(adda_l_dpc_ad); O(adda_l_dpci_ad); O(adda_l_ds_ad); O(adda_l_imm32_ad); O(adda_l_pais_ad); |
| 191 | O(adda_w_adr16_ad); O(adda_w_adr32_ad); O(adda_w_aips_ad); O(adda_w_ais_ad); O(adda_w_as_ad); O(adda_w_dais_ad); O(adda_w_das_ad); O(adda_w_dpc_ad); O(adda_w_dpci_ad); O(adda_w_ds_ad); O(adda_w_imm16_ad); O(adda_w_pais_ad); |
| 192 | O(addi_b_imm8_adr16); O(addi_b_imm8_adr32); O(addi_b_imm8_aips); O(addi_b_imm8_ais); O(addi_b_imm8_dais); O(addi_b_imm8_das); O(addi_b_imm8_ds); O(addi_b_imm8_pais); |
| 193 | O(addi_l_imm32_adr16); O(addi_l_imm32_adr32); O(addi_l_imm32_aips); O(addi_l_imm32_ais); O(addi_l_imm32_dais); O(addi_l_imm32_das); O(addi_l_imm32_ds); O(addi_l_imm32_pais); |
| 194 | O(addi_w_imm16_adr16); O(addi_w_imm16_adr32); O(addi_w_imm16_aips); O(addi_w_imm16_ais); O(addi_w_imm16_dais); O(addi_w_imm16_das); O(addi_w_imm16_ds); O(addi_w_imm16_pais); |
| 195 | O(addq_b_imm3_adr16); O(addq_b_imm3_adr32); O(addq_b_imm3_aips); O(addq_b_imm3_ais); O(addq_b_imm3_as); O(addq_b_imm3_dais); O(addq_b_imm3_das); O(addq_b_imm3_ds); O(addq_b_imm3_pais); |
| 196 | O(addq_l_imm3_adr16); O(addq_l_imm3_adr32); O(addq_l_imm3_aips); O(addq_l_imm3_ais); O(addq_l_imm3_as); O(addq_l_imm3_dais); O(addq_l_imm3_das); O(addq_l_imm3_ds); O(addq_l_imm3_pais); |
| 197 | O(addq_w_imm3_adr16); O(addq_w_imm3_adr32); O(addq_w_imm3_aips); O(addq_w_imm3_ais); O(addq_w_imm3_as); O(addq_w_imm3_dais); O(addq_w_imm3_das); O(addq_w_imm3_ds); O(addq_w_imm3_pais); |
| 198 | O(addx_b_ds_dd); O(addx_b_pais_paid); O(addx_l_ds_dd); O(addx_l_pais_paid); O(addx_w_ds_dd); O(addx_w_pais_paid); |
| 199 | O(and_b_adr16_dd); O(and_b_adr32_dd); O(and_b_aips_dd); O(and_b_ais_dd); O(and_b_dais_dd); O(and_b_das_dd); O(and_b_dd_adr16); O(and_b_dd_adr32); O(and_b_dd_aips); O(and_b_dd_ais); O(and_b_dd_dais); O(and_b_dd_das); O(and_b_dd_pais); O(and_b_dpc_dd); O(and_b_dpci_dd); O(and_b_ds_dd); O(and_b_imm8_dd); O(and_b_pais_dd); |
| 200 | O(and_l_adr16_dd); O(and_l_adr32_dd); O(and_l_aips_dd); O(and_l_ais_dd); O(and_l_dais_dd); O(and_l_das_dd); O(and_l_dd_adr16); O(and_l_dd_adr32); O(and_l_dd_aips); O(and_l_dd_ais); O(and_l_dd_dais); O(and_l_dd_das); O(and_l_dd_pais); O(and_l_dpc_dd); O(and_l_dpci_dd); O(and_l_ds_dd); O(and_l_imm32_dd); O(and_l_pais_dd); |
| 201 | O(and_w_adr16_dd); O(and_w_adr32_dd); O(and_w_aips_dd); O(and_w_ais_dd); O(and_w_dais_dd); O(and_w_das_dd); O(and_w_dd_adr16); O(and_w_dd_adr32); O(and_w_dd_aips); O(and_w_dd_ais); O(and_w_dd_dais); O(and_w_dd_das); O(and_w_dd_pais); O(and_w_dpc_dd); O(and_w_dpci_dd); O(and_w_ds_dd); O(and_w_imm16_dd); O(and_w_pais_dd); |
| 202 | O(andi_b_imm8_adr16); O(andi_b_imm8_adr32); O(andi_b_imm8_aips); O(andi_b_imm8_ais); O(andi_b_imm8_dais); O(andi_b_imm8_das); O(andi_b_imm8_ds); O(andi_b_imm8_pais); O(andi_i16u_sr); |
| 203 | O(andi_imm8_ccr); |
| 204 | O(andi_l_imm32_adr16); O(andi_l_imm32_adr32); O(andi_l_imm32_aips); O(andi_l_imm32_ais); O(andi_l_imm32_dais); O(andi_l_imm32_das); O(andi_l_imm32_ds); O(andi_l_imm32_pais); |
| 205 | O(andi_w_imm16_adr16); O(andi_w_imm16_adr32); O(andi_w_imm16_aips); O(andi_w_imm16_ais); O(andi_w_imm16_dais); O(andi_w_imm16_das); O(andi_w_imm16_ds); O(andi_w_imm16_pais); |
| 206 | O(asl_adr16); O(asl_adr32); O(asl_aips); O(asl_ais); O(asl_b_dd_ds); O(asl_b_imm3_ds); O(asl_dais); O(asl_das); O(asl_l_dd_ds); O(asl_l_imm3_ds); O(asl_pais); O(asl_w_dd_ds); O(asl_w_imm3_ds); |
| 207 | O(asr_adr16); O(asr_adr32); O(asr_aips); O(asr_ais); O(asr_b_dd_ds); O(asr_b_imm3_ds); O(asr_dais); O(asr_das); O(asr_l_dd_ds); O(asr_l_imm3_ds); O(asr_pais); O(asr_w_dd_ds); O(asr_w_imm3_ds); |
| 208 | O(bcc_rel8); |
| 209 | O(bchg_dd_adr16); O(bchg_dd_adr32); O(bchg_dd_aips); O(bchg_dd_ais); O(bchg_dd_dais); O(bchg_dd_das); O(bchg_dd_ds); O(bchg_dd_pais); O(bchg_imm8_adr16); O(bchg_imm8_adr32); O(bchg_imm8_aips); O(bchg_imm8_ais); O(bchg_imm8_dais); O(bchg_imm8_das); O(bchg_imm8_ds); O(bchg_imm8_pais); |
| 210 | O(bclr_dd_adr16); O(bclr_dd_adr32); O(bclr_dd_aips); O(bclr_dd_ais); O(bclr_dd_dais); O(bclr_dd_das); O(bclr_dd_ds); O(bclr_dd_pais); O(bclr_imm8_adr16); O(bclr_imm8_adr32); O(bclr_imm8_aips); O(bclr_imm8_ais); O(bclr_imm8_dais); O(bclr_imm8_das); O(bclr_imm8_ds); O(bclr_imm8_pais); |
| 211 | O(bcs_rel8); O(beq_rel8); O(bge_rel8); O(bgt_rel8); O(bhi_rel8); O(ble_rel8); O(bls_rel8); O(blt_rel8); O(bmi_rel8); O(bne_rel8); O(bpl_rel8); O(bra_rel8); |
| 212 | O(bset_dd_adr16); O(bset_dd_adr32); O(bset_dd_aips); O(bset_dd_ais); O(bset_dd_dais); O(bset_dd_das); O(bset_dd_ds); O(bset_dd_pais); O(bset_imm8_adr16); O(bset_imm8_adr32); O(bset_imm8_aips); O(bset_imm8_ais); O(bset_imm8_dais); O(bset_imm8_das); O(bset_imm8_ds); O(bset_imm8_pais); |
| 213 | O(bsr_rel8); |
| 214 | O(btst_dd_adr16); O(btst_dd_adr32); O(btst_dd_aips); O(btst_dd_ais); O(btst_dd_dais); O(btst_dd_das); O(btst_dd_dpc); O(btst_dd_dpci); O(btst_dd_ds); O(btst_dd_pais); O(btst_imm8_adr16); O(btst_imm8_adr32); O(btst_imm8_aips); O(btst_imm8_ais); O(btst_imm8_dais); O(btst_imm8_das); O(btst_imm8_dpc); O(btst_imm8_dpci); O(btst_imm8_ds); O(btst_imm8_pais); |
| 215 | O(bvc_rel8); O(bvs_rel8); |
| 216 | O(clr_b_adr16); O(clr_b_adr32); O(clr_b_aips); O(clr_b_ais); O(clr_b_dais); O(clr_b_das); O(clr_b_ds); O(clr_b_pais); |
| 217 | O(clr_l_adr16); O(clr_l_adr32); O(clr_l_aips); O(clr_l_ais); O(clr_l_dais); O(clr_l_das); O(clr_l_ds); O(clr_l_pais); |
| 218 | O(clr_w_adr16); O(clr_w_adr32); O(clr_w_aips); O(clr_w_ais); O(clr_w_dais); O(clr_w_das); O(clr_w_ds); O(clr_w_pais); |
| 219 | O(cmp_b_adr16_dd); O(cmp_b_adr32_dd); O(cmp_b_aips_dd); O(cmp_b_ais_dd); O(cmp_b_dais_dd); O(cmp_b_das_dd); O(cmp_b_dpc_dd); O(cmp_b_dpci_dd); O(cmp_b_ds_dd); O(cmp_b_imm8_dd); O(cmp_b_pais_dd); |
| 220 | O(cmp_l_adr16_dd); O(cmp_l_adr32_dd); O(cmp_l_aips_dd); O(cmp_l_ais_dd); O(cmp_l_as_dd); O(cmp_l_dais_dd); O(cmp_l_das_dd); O(cmp_l_dpc_dd); O(cmp_l_dpci_dd); O(cmp_l_ds_dd); O(cmp_l_imm32_dd); O(cmp_l_pais_dd); |
| 221 | O(cmp_w_adr16_dd); O(cmp_w_adr32_dd); O(cmp_w_aips_dd); O(cmp_w_ais_dd); O(cmp_w_as_dd); O(cmp_w_dais_dd); O(cmp_w_das_dd); O(cmp_w_dpc_dd); O(cmp_w_dpci_dd); O(cmp_w_ds_dd); O(cmp_w_imm16_dd); O(cmp_w_pais_dd); |
| 222 | O(cmpa_l_adr16_ad); O(cmpa_l_adr32_ad); O(cmpa_l_aips_ad); O(cmpa_l_ais_ad); O(cmpa_l_as_ad); O(cmpa_l_dais_ad); O(cmpa_l_das_ad); O(cmpa_l_dpc_ad); O(cmpa_l_dpci_ad); O(cmpa_l_ds_ad); O(cmpa_l_imm32_ad); O(cmpa_l_pais_ad); |
| 223 | O(cmpa_w_adr16_ad); O(cmpa_w_adr32_ad); O(cmpa_w_aips_ad); O(cmpa_w_ais_ad); O(cmpa_w_as_ad); O(cmpa_w_dais_ad); O(cmpa_w_das_ad); O(cmpa_w_dpc_ad); O(cmpa_w_dpci_ad); O(cmpa_w_ds_ad); O(cmpa_w_imm16_ad); O(cmpa_w_pais_ad); |
| 224 | O(cmpi_b_imm8_adr16); O(cmpi_b_imm8_adr32); O(cmpi_b_imm8_aips); O(cmpi_b_imm8_ais); O(cmpi_b_imm8_dais); O(cmpi_b_imm8_das); O(cmpi_b_imm8_ds); O(cmpi_b_imm8_pais); |
| 225 | O(cmpi_l_imm32_adr16); O(cmpi_l_imm32_adr32); O(cmpi_l_imm32_aips); O(cmpi_l_imm32_ais); O(cmpi_l_imm32_dais); O(cmpi_l_imm32_das); O(cmpi_l_imm32_ds); O(cmpi_l_imm32_pais); |
| 226 | O(cmpi_w_imm16_adr16); O(cmpi_w_imm16_adr32); O(cmpi_w_imm16_aips); O(cmpi_w_imm16_ais); O(cmpi_w_imm16_dais); O(cmpi_w_imm16_das); O(cmpi_w_imm16_ds); O(cmpi_w_imm16_pais); |
| 227 | O(cmpm_b_aips_aipd); O(cmpm_l_aips_aipd); O(cmpm_w_aips_aipd); |
| 228 | O(dbcc_ds_rel16); O(dbcs_ds_rel16); O(dbeq_ds_rel16); O(dbge_ds_rel16); O(dbgt_ds_rel16); O(dbhi_ds_rel16); O(dble_ds_rel16); O(dbls_ds_rel16); O(dblt_ds_rel16); O(dbmi_ds_rel16); O(dbne_ds_rel16); O(dbpl_ds_rel16); O(dbra_ds_rel16); O(dbt_ds_rel16); O(dbvc_ds_rel16); O(dbvs_ds_rel16); |
| 229 | O(divs_w_adr16_dd); O(divs_w_adr32_dd); O(divs_w_aips_dd); O(divs_w_ais_dd); O(divs_w_dais_dd); O(divs_w_das_dd); O(divs_w_dpc_dd); O(divs_w_dpci_dd); O(divs_w_ds_dd); O(divs_w_imm16_dd); O(divs_w_pais_dd); |
| 230 | O(divu_w_adr16_dd); O(divu_w_adr32_dd); O(divu_w_aips_dd); O(divu_w_ais_dd); O(divu_w_dais_dd); O(divu_w_das_dd); O(divu_w_dpc_dd); O(divu_w_dpci_dd); O(divu_w_ds_dd); O(divu_w_imm16_dd); O(divu_w_pais_dd); |
| 231 | O(eor_b_dd_adr16); O(eor_b_dd_adr32); O(eor_b_dd_aips); O(eor_b_dd_ais); O(eor_b_dd_dais); O(eor_b_dd_das); O(eor_b_dd_ds); O(eor_b_dd_pais); |
| 232 | O(eor_l_dd_adr16); O(eor_l_dd_adr32); O(eor_l_dd_aips); O(eor_l_dd_ais); O(eor_l_dd_dais); O(eor_l_dd_das); O(eor_l_dd_ds); O(eor_l_dd_pais); |
| 233 | O(eor_w_dd_adr16); O(eor_w_dd_adr32); O(eor_w_dd_aips); O(eor_w_dd_ais); O(eor_w_dd_dais); O(eor_w_dd_das); O(eor_w_dd_ds); O(eor_w_dd_pais); |
| 234 | O(eori_b_imm8_adr16); O(eori_b_imm8_adr32); O(eori_b_imm8_aips); O(eori_b_imm8_ais); O(eori_b_imm8_dais); O(eori_b_imm8_das); O(eori_b_imm8_ds); O(eori_b_imm8_pais); |
| 235 | O(eori_i16u_sr); O(eori_imm8_ccr); |
| 236 | O(eori_l_imm32_adr16); O(eori_l_imm32_adr32); O(eori_l_imm32_aips); O(eori_l_imm32_ais); O(eori_l_imm32_dais); O(eori_l_imm32_das); O(eori_l_imm32_ds); O(eori_l_imm32_pais); |
| 237 | O(eori_w_imm16_adr16); O(eori_w_imm16_adr32); O(eori_w_imm16_aips); O(eori_w_imm16_ais); O(eori_w_imm16_dais); O(eori_w_imm16_das); O(eori_w_imm16_ds); O(eori_w_imm16_pais); |
| 238 | O(exg_ad_as); O(exg_dd_as); O(exg_dd_ds); |
| 239 | O(ext_l_ds); O(ext_w_ds); |
| 240 | O(illegal); |
| 241 | O(jmp_adr16); O(jmp_adr32); O(jmp_ais); O(jmp_dais); O(jmp_das); O(jmp_dpc); O(jmp_dpci); |
| 242 | O(jsr_adr16); O(jsr_adr32); O(jsr_ais); O(jsr_dais); O(jsr_das); O(jsr_dpc); O(jsr_dpci); |
| 243 | O(lea_adr16_ad); O(lea_adr32_ad); O(lea_ais_ad); O(lea_dais_ad); O(lea_das_ad); O(lea_dpc_ad); O(lea_dpci_ad); |
| 244 | O(linea_imm12); O(linef_imm12); |
| 245 | O(link_as_imm16); |
| 246 | O(lsl_adr16); O(lsl_adr32); O(lsl_aips); O(lsl_ais); O(lsl_b_dd_ds); O(lsl_b_imm3_ds); O(lsl_dais); O(lsl_das); O(lsl_l_dd_ds); O(lsl_l_imm3_ds); O(lsl_pais); O(lsl_w_dd_ds); O(lsl_w_imm3_ds); |
| 247 | O(lsr_adr16); O(lsr_adr32); O(lsr_aips); O(lsr_ais); O(lsr_b_dd_ds); O(lsr_b_imm3_ds); O(lsr_dais); O(lsr_das); O(lsr_l_dd_ds); O(lsr_l_imm3_ds); O(lsr_pais); O(lsr_w_dd_ds); O(lsr_w_imm3_ds); |
| 248 | O(move_adr16_ccr); O(move_adr16_sr); O(move_adr32_ccr); O(move_adr32_sr); O(move_aips_ccr); O(move_aips_sr); O(move_ais_ccr); O(move_ais_sr); O(move_as_usp); |
| 249 | O(move_b_adr16_adr16); O(move_b_adr16_adr32); O(move_b_adr16_aid); O(move_b_adr16_aipd); O(move_b_adr16_dad); O(move_b_adr16_daid); O(move_b_adr16_dd); O(move_b_adr16_paid); |
| 250 | O(move_b_adr32_adr16); O(move_b_adr32_adr32); O(move_b_adr32_aid); O(move_b_adr32_aipd); O(move_b_adr32_dad); O(move_b_adr32_daid); O(move_b_adr32_dd); O(move_b_adr32_paid); |
| 251 | O(move_b_aips_adr16); O(move_b_aips_adr32); O(move_b_aips_aid); O(move_b_aips_aipd); O(move_b_aips_dad); O(move_b_aips_daid); O(move_b_aips_dd); O(move_b_aips_paid); |
| 252 | O(move_b_ais_adr16); O(move_b_ais_adr32); O(move_b_ais_aid); O(move_b_ais_aipd); O(move_b_ais_dad); O(move_b_ais_daid); O(move_b_ais_dd); O(move_b_ais_paid); |
| 253 | O(move_b_dais_adr16); O(move_b_dais_adr32); O(move_b_dais_aid); O(move_b_dais_aipd); O(move_b_dais_dad); O(move_b_dais_daid); O(move_b_dais_dd); O(move_b_dais_paid); |
| 254 | O(move_b_das_adr16); O(move_b_das_adr32); O(move_b_das_aid); O(move_b_das_aipd); O(move_b_das_dad); O(move_b_das_daid); O(move_b_das_dd); O(move_b_das_paid); |
| 255 | O(move_b_dpc_adr16); O(move_b_dpc_adr32); O(move_b_dpc_aid); O(move_b_dpc_aipd); O(move_b_dpc_dad); O(move_b_dpc_daid); O(move_b_dpc_dd); O(move_b_dpc_paid); |
| 256 | O(move_b_dpci_adr16); O(move_b_dpci_adr32); O(move_b_dpci_aid); O(move_b_dpci_aipd); O(move_b_dpci_dad); O(move_b_dpci_daid); O(move_b_dpci_dd); O(move_b_dpci_paid); |
| 257 | O(move_b_ds_adr16); O(move_b_ds_adr32); O(move_b_ds_aid); O(move_b_ds_aipd); O(move_b_ds_dad); O(move_b_ds_daid); O(move_b_ds_dd); O(move_b_ds_paid); |
| 258 | O(move_b_imm8_adr16); O(move_b_imm8_adr32); O(move_b_imm8_aid); O(move_b_imm8_aipd); O(move_b_imm8_dad); O(move_b_imm8_daid); O(move_b_imm8_dd); O(move_b_imm8_paid); |
| 259 | O(move_b_pais_adr16); O(move_b_pais_adr32); O(move_b_pais_aid); O(move_b_pais_aipd); O(move_b_pais_dad); O(move_b_pais_daid); O(move_b_pais_dd); O(move_b_pais_paid); |
| 260 | O(move_dais_ccr); O(move_dais_sr); O(move_das_ccr); O(move_das_sr); O(move_dpc_ccr); O(move_dpc_sr); O(move_dpci_ccr); O(move_dpci_sr); O(move_ds_ccr); O(move_ds_sr); O(move_i16u_sr); O(move_imm8_ccr); |
| 261 | O(move_l_adr16_adr16); O(move_l_adr16_adr32); O(move_l_adr16_aid); O(move_l_adr16_aipd); O(move_l_adr16_dad); O(move_l_adr16_daid); O(move_l_adr16_dd); O(move_l_adr16_paid); |
| 262 | O(move_l_adr32_adr16); O(move_l_adr32_adr32); O(move_l_adr32_aid); O(move_l_adr32_aipd); O(move_l_adr32_dad); O(move_l_adr32_daid); O(move_l_adr32_dd); O(move_l_adr32_paid); |
| 263 | O(move_l_aips_adr16); O(move_l_aips_adr32); O(move_l_aips_aid); O(move_l_aips_aipd); O(move_l_aips_dad); O(move_l_aips_daid); O(move_l_aips_dd); O(move_l_aips_paid); |
| 264 | O(move_l_ais_adr16); O(move_l_ais_adr32); O(move_l_ais_aid); O(move_l_ais_aipd); O(move_l_ais_dad); O(move_l_ais_daid); O(move_l_ais_dd); O(move_l_ais_paid); |
| 265 | O(move_l_as_adr16); O(move_l_as_adr32); O(move_l_as_aid); O(move_l_as_aipd); O(move_l_as_dad); O(move_l_as_daid); O(move_l_as_dd); O(move_l_as_paid); |
| 266 | O(move_l_dais_adr16); O(move_l_dais_adr32); O(move_l_dais_aid); O(move_l_dais_aipd); O(move_l_dais_dad); O(move_l_dais_daid); O(move_l_dais_dd); O(move_l_dais_paid); |
| 267 | O(move_l_das_adr16); O(move_l_das_adr32); O(move_l_das_aid); O(move_l_das_aipd); O(move_l_das_dad); O(move_l_das_daid); O(move_l_das_dd); O(move_l_das_paid); |
| 268 | O(move_l_dpc_adr16); O(move_l_dpc_adr32); O(move_l_dpc_aid); O(move_l_dpc_aipd); O(move_l_dpc_dad); O(move_l_dpc_daid); O(move_l_dpc_dd); O(move_l_dpc_paid); |
| 269 | O(move_l_dpci_adr16); O(move_l_dpci_adr32); O(move_l_dpci_aid); O(move_l_dpci_aipd); O(move_l_dpci_dad); O(move_l_dpci_daid); O(move_l_dpci_dd); O(move_l_dpci_paid); |
| 270 | O(move_l_ds_adr16); O(move_l_ds_adr32); O(move_l_ds_aid); O(move_l_ds_aipd); O(move_l_ds_dad); O(move_l_ds_daid); O(move_l_ds_dd); O(move_l_ds_paid); |
| 271 | O(move_l_imm32_adr16); O(move_l_imm32_adr32); O(move_l_imm32_aid); O(move_l_imm32_aipd); O(move_l_imm32_dad); O(move_l_imm32_daid); O(move_l_imm32_dd); O(move_l_imm32_paid); |
| 272 | O(move_l_pais_adr16); O(move_l_pais_adr32); O(move_l_pais_aid); O(move_l_pais_aipd); O(move_l_pais_dad); O(move_l_pais_daid); O(move_l_pais_dd); O(move_l_pais_paid); |
| 273 | O(move_pais_ccr); O(move_pais_sr); O(move_sr_adr16); O(move_sr_adr32); O(move_sr_aips); O(move_sr_ais); O(move_sr_dais); O(move_sr_das); O(move_sr_ds); O(move_sr_pais); O(move_usp_as); |
| 274 | O(move_w_adr16_adr16); O(move_w_adr16_adr32); O(move_w_adr16_aid); O(move_w_adr16_aipd); O(move_w_adr16_dad); O(move_w_adr16_daid); O(move_w_adr16_dd); O(move_w_adr16_paid); |
| 275 | O(move_w_adr32_adr16); O(move_w_adr32_adr32); O(move_w_adr32_aid); O(move_w_adr32_aipd); O(move_w_adr32_dad); O(move_w_adr32_daid); O(move_w_adr32_dd); O(move_w_adr32_paid); |
| 276 | O(move_w_aips_adr16); O(move_w_aips_adr32); O(move_w_aips_aid); O(move_w_aips_aipd); O(move_w_aips_dad); O(move_w_aips_daid); O(move_w_aips_dd); O(move_w_aips_paid); |
| 277 | O(move_w_ais_adr16); O(move_w_ais_adr32); O(move_w_ais_aid); O(move_w_ais_aipd); O(move_w_ais_dad); O(move_w_ais_daid); O(move_w_ais_dd); O(move_w_ais_paid); |
| 278 | O(move_w_as_adr16); O(move_w_as_adr32); O(move_w_as_aid); O(move_w_as_aipd); O(move_w_as_dad); O(move_w_as_daid); O(move_w_as_dd); O(move_w_as_paid); |
| 279 | O(move_w_dais_adr16); O(move_w_dais_adr32); O(move_w_dais_aid); O(move_w_dais_aipd); O(move_w_dais_dad); O(move_w_dais_daid); O(move_w_dais_dd); O(move_w_dais_paid); |
| 280 | O(move_w_das_adr16); O(move_w_das_adr32); O(move_w_das_aid); O(move_w_das_aipd); O(move_w_das_dad); O(move_w_das_daid); O(move_w_das_dd); O(move_w_das_paid); |
| 281 | O(move_w_dpc_adr16); O(move_w_dpc_adr32); O(move_w_dpc_aid); O(move_w_dpc_aipd); O(move_w_dpc_dad); O(move_w_dpc_daid); O(move_w_dpc_dd); O(move_w_dpc_paid); |
| 282 | O(move_w_dpci_adr16); O(move_w_dpci_adr32); O(move_w_dpci_aid); O(move_w_dpci_aipd); O(move_w_dpci_dad); O(move_w_dpci_daid); O(move_w_dpci_dd); O(move_w_dpci_paid); |
| 283 | O(move_w_ds_adr16); O(move_w_ds_adr32); O(move_w_ds_aid); O(move_w_ds_aipd); O(move_w_ds_dad); O(move_w_ds_daid); O(move_w_ds_dd); O(move_w_ds_paid); |
| 284 | O(move_w_imm16_adr16); O(move_w_imm16_adr32); O(move_w_imm16_aid); O(move_w_imm16_aipd); O(move_w_imm16_dad); O(move_w_imm16_daid); O(move_w_imm16_dd); O(move_w_imm16_paid); |
| 285 | O(move_w_pais_adr16); O(move_w_pais_adr32); O(move_w_pais_aid); O(move_w_pais_aipd); O(move_w_pais_dad); O(move_w_pais_daid); O(move_w_pais_dd); O(move_w_pais_paid); |
| 286 | O(movea_l_adr16_ad); O(movea_l_adr32_ad); O(movea_l_aips_ad); O(movea_l_ais_ad); O(movea_l_as_ad); O(movea_l_dais_ad); O(movea_l_das_ad); O(movea_l_dpc_ad); O(movea_l_dpci_ad); O(movea_l_ds_ad); O(movea_l_imm32_ad); O(movea_l_pais_ad); |
| 287 | O(movea_w_adr16_ad); O(movea_w_adr32_ad); O(movea_w_aips_ad); O(movea_w_ais_ad); O(movea_w_as_ad); O(movea_w_dais_ad); O(movea_w_das_ad); O(movea_w_dpc_ad); O(movea_w_dpci_ad); O(movea_w_ds_ad); O(movea_w_imm16_ad); O(movea_w_pais_ad); |
| 288 | O(movem_l_adr16_list); O(movem_l_adr32_list); O(movem_l_aips_list); O(movem_l_ais_list); O(movem_l_dais_list); O(movem_l_das_list); O(movem_l_dpc_list); O(movem_l_dpci_list); O(movem_l_list_adr16); O(movem_l_list_adr32); O(movem_l_list_ais); O(movem_l_list_dais); O(movem_l_list_das); O(movem_l_listp_pais); |
| 289 | O(movem_w_adr16_list); O(movem_w_adr32_list); O(movem_w_aips_list); O(movem_w_ais_list); O(movem_w_dais_list); O(movem_w_das_list); O(movem_w_dpc_list); O(movem_w_dpci_list); O(movem_w_list_adr16); O(movem_w_list_adr32); O(movem_w_list_ais); O(movem_w_list_dais); O(movem_w_list_das); O(movem_w_listp_pais); |
| 290 | O(movep_l_das_dd); O(movep_l_dd_das); O(movep_w_das_dd); O(movep_w_dd_das); |
| 291 | O(moveq_imm8o_dd); |
| 292 | O(muls_w_adr16_dd); O(muls_w_adr32_dd); O(muls_w_aips_dd); O(muls_w_ais_dd); O(muls_w_dais_dd); O(muls_w_das_dd); O(muls_w_dpc_dd); O(muls_w_dpci_dd); O(muls_w_ds_dd); O(muls_w_imm16_dd); O(muls_w_pais_dd); |
| 293 | O(mulu_w_adr16_dd); O(mulu_w_adr32_dd); O(mulu_w_aips_dd); O(mulu_w_ais_dd); O(mulu_w_dais_dd); O(mulu_w_das_dd); O(mulu_w_dpc_dd); O(mulu_w_dpci_dd); O(mulu_w_ds_dd); O(mulu_w_imm16_dd); O(mulu_w_pais_dd); |
| 294 | O(nbcd_b_adr16); O(nbcd_b_adr32); O(nbcd_b_aips); O(nbcd_b_ais); O(nbcd_b_dais); O(nbcd_b_das); O(nbcd_b_ds); O(nbcd_b_pais); |
| 295 | O(neg_b_adr16); O(neg_b_adr32); O(neg_b_aips); O(neg_b_ais); O(neg_b_dais); O(neg_b_das); O(neg_b_ds); O(neg_b_pais); |
| 296 | O(neg_l_adr16); O(neg_l_adr32); O(neg_l_aips); O(neg_l_ais); O(neg_l_dais); O(neg_l_das); O(neg_l_ds); O(neg_l_pais); |
| 297 | O(neg_w_adr16); O(neg_w_adr32); O(neg_w_aips); O(neg_w_ais); O(neg_w_dais); O(neg_w_das); O(neg_w_ds); O(neg_w_pais); |
| 298 | O(negx_b_adr16); O(negx_b_adr32); O(negx_b_aips); O(negx_b_ais); O(negx_b_dais); O(negx_b_das); O(negx_b_ds); O(negx_b_pais); |
| 299 | O(negx_l_adr16); O(negx_l_adr32); O(negx_l_aips); O(negx_l_ais); O(negx_l_dais); O(negx_l_das); O(negx_l_ds); O(negx_l_pais); |
| 300 | O(negx_w_adr16); O(negx_w_adr32); O(negx_w_aips); O(negx_w_ais); O(negx_w_dais); O(negx_w_das); O(negx_w_ds); O(negx_w_pais); |
| 301 | O(nop); |
| 302 | O(not_b_adr16); O(not_b_adr32); O(not_b_aips); O(not_b_ais); O(not_b_dais); O(not_b_das); O(not_b_ds); O(not_b_pais); |
| 303 | O(not_l_adr16); O(not_l_adr32); O(not_l_aips); O(not_l_ais); O(not_l_dais); O(not_l_das); O(not_l_ds); O(not_l_pais); |
| 304 | O(not_w_adr16); O(not_w_adr32); O(not_w_aips); O(not_w_ais); O(not_w_dais); O(not_w_das); O(not_w_ds); O(not_w_pais); |
| 305 | O(or_b_adr16_dd); O(or_b_adr32_dd); O(or_b_aips_dd); O(or_b_ais_dd); O(or_b_dais_dd); O(or_b_das_dd); O(or_b_dd_adr16); O(or_b_dd_adr32); O(or_b_dd_aips); O(or_b_dd_ais); O(or_b_dd_dais); O(or_b_dd_das); O(or_b_dd_pais); O(or_b_dpc_dd); O(or_b_dpci_dd); O(or_b_ds_dd); O(or_b_imm8_dd); O(or_b_pais_dd); |
| 306 | O(or_l_adr16_dd); O(or_l_adr32_dd); O(or_l_aips_dd); O(or_l_ais_dd); O(or_l_dais_dd); O(or_l_das_dd); O(or_l_dd_adr16); O(or_l_dd_adr32); O(or_l_dd_aips); O(or_l_dd_ais); O(or_l_dd_dais); O(or_l_dd_das); O(or_l_dd_pais); O(or_l_dpc_dd); O(or_l_dpci_dd); O(or_l_ds_dd); O(or_l_imm32_dd); O(or_l_pais_dd); |
| 307 | O(or_w_adr16_dd); O(or_w_adr32_dd); O(or_w_aips_dd); O(or_w_ais_dd); O(or_w_dais_dd); O(or_w_das_dd); O(or_w_dd_adr16); O(or_w_dd_adr32); O(or_w_dd_aips); O(or_w_dd_ais); O(or_w_dd_dais); O(or_w_dd_das); O(or_w_dd_pais); O(or_w_dpc_dd); O(or_w_dpci_dd); O(or_w_ds_dd); O(or_w_imm16_dd); O(or_w_pais_dd); |
| 308 | O(ori_b_imm8_adr16); O(ori_b_imm8_adr32); O(ori_b_imm8_aips); O(ori_b_imm8_ais); O(ori_b_imm8_dais); O(ori_b_imm8_das); O(ori_b_imm8_ds); O(ori_b_imm8_pais); |
| 309 | O(ori_i16u_sr); O(ori_imm8_ccr); |
| 310 | O(ori_l_imm32_adr16); O(ori_l_imm32_adr32); O(ori_l_imm32_aips); O(ori_l_imm32_ais); O(ori_l_imm32_dais); O(ori_l_imm32_das); O(ori_l_imm32_ds); O(ori_l_imm32_pais); |
| 311 | O(ori_w_imm16_adr16); O(ori_w_imm16_adr32); O(ori_w_imm16_aips); O(ori_w_imm16_ais); O(ori_w_imm16_dais); O(ori_w_imm16_das); O(ori_w_imm16_ds); O(ori_w_imm16_pais); |
| 312 | O(pea_adr16); O(pea_adr32); O(pea_ais); O(pea_dais); O(pea_das); O(pea_dpc); O(pea_dpci); |
| 313 | O(reset); |
| 314 | O(rol_adr16); O(rol_adr32); O(rol_aips); O(rol_ais); O(rol_b_dd_ds); O(rol_b_imm3_ds); O(rol_dais); O(rol_das); O(rol_l_dd_ds); O(rol_l_imm3_ds); O(rol_pais); O(rol_w_dd_ds); O(rol_w_imm3_ds); |
| 315 | O(ror_adr16); O(ror_adr32); O(ror_aips); O(ror_ais); O(ror_b_dd_ds); O(ror_b_imm3_ds); O(ror_dais); O(ror_das); O(ror_l_dd_ds); O(ror_l_imm3_ds); O(ror_pais); O(ror_w_dd_ds); O(ror_w_imm3_ds); |
| 316 | O(roxl_adr16); O(roxl_adr32); O(roxl_aips); O(roxl_ais); O(roxl_b_dd_ds); O(roxl_b_imm3_ds); O(roxl_dais); O(roxl_das); O(roxl_l_dd_ds); O(roxl_l_imm3_ds); O(roxl_pais); O(roxl_w_dd_ds); O(roxl_w_imm3_ds); |
| 317 | O(roxr_adr16); O(roxr_adr32); O(roxr_aips); O(roxr_ais); O(roxr_b_dd_ds); O(roxr_b_imm3_ds); O(roxr_dais); O(roxr_das); O(roxr_l_dd_ds); O(roxr_l_imm3_ds); O(roxr_pais); O(roxr_w_dd_ds); O(roxr_w_imm3_ds); |
| 318 | O(rte); O(rtr); O(rts); |
| 319 | O(sbcd_ds_dd); O(sbcd_pais_paid); |
| 320 | O(scc_adr16); O(scc_adr32); O(scc_aips); O(scc_ais); O(scc_dais); O(scc_das); O(scc_ds); O(scc_pais); |
| 321 | O(scs_adr16); O(scs_adr32); O(scs_aips); O(scs_ais); O(scs_dais); O(scs_das); O(scs_ds); O(scs_pais); |
| 322 | O(seq_adr16); O(seq_adr32); O(seq_aips); O(seq_ais); O(seq_dais); O(seq_das); O(seq_ds); O(seq_pais); |
| 323 | O(sf_adr16); O(sf_adr32); O(sf_aips); O(sf_ais); O(sf_dais); O(sf_das); O(sf_ds); O(sf_pais); |
| 324 | O(sge_adr16); O(sge_adr32); O(sge_aips); O(sge_ais); O(sge_dais); O(sge_das); O(sge_ds); O(sge_pais); |
| 325 | O(sgt_adr16); O(sgt_adr32); O(sgt_aips); O(sgt_ais); O(sgt_dais); O(sgt_das); O(sgt_ds); O(sgt_pais); |
| 326 | O(shi_adr16); O(shi_adr32); O(shi_aips); O(shi_ais); O(shi_dais); O(shi_das); O(shi_ds); O(shi_pais); |
| 327 | O(sle_adr16); O(sle_adr32); O(sle_aips); O(sle_ais); O(sle_dais); O(sle_das); O(sle_ds); O(sle_pais); |
| 328 | O(sls_adr16); O(sls_adr32); O(sls_aips); O(sls_ais); O(sls_dais); O(sls_das); O(sls_ds); O(sls_pais); |
| 329 | O(slt_adr16); O(slt_adr32); O(slt_aips); O(slt_ais); O(slt_dais); O(slt_das); O(slt_ds); O(slt_pais); |
| 330 | O(smi_adr16); O(smi_adr32); O(smi_aips); O(smi_ais); O(smi_dais); O(smi_das); O(smi_ds); O(smi_pais); |
| 331 | O(sne_adr16); O(sne_adr32); O(sne_aips); O(sne_ais); O(sne_dais); O(sne_das); O(sne_ds); O(sne_pais); |
| 332 | O(spl_adr16); O(spl_adr32); O(spl_aips); O(spl_ais); O(spl_dais); O(spl_das); O(spl_ds); O(spl_pais); |
| 333 | O(st_adr16); O(st_adr32); O(st_aips); O(st_ais); O(st_dais); O(st_das); O(st_ds); O(st_pais); |
| 334 | O(stop_i16u); |
| 335 | O(sub_b_adr16_dd); O(sub_b_adr32_dd); O(sub_b_aips_dd); O(sub_b_ais_dd); O(sub_b_dais_dd); O(sub_b_das_dd); O(sub_b_dd_adr16); O(sub_b_dd_adr32); O(sub_b_dd_aips); O(sub_b_dd_ais); O(sub_b_dd_dais); O(sub_b_dd_das); O(sub_b_dd_pais); O(sub_b_dpc_dd); O(sub_b_dpci_dd); O(sub_b_ds_dd); O(sub_b_imm8_dd); O(sub_b_pais_dd); |
| 336 | O(sub_l_adr16_dd); O(sub_l_adr32_dd); O(sub_l_aips_dd); O(sub_l_ais_dd); O(sub_l_as_dd); O(sub_l_dais_dd); O(sub_l_das_dd); O(sub_l_dd_adr16); O(sub_l_dd_adr32); O(sub_l_dd_aips); O(sub_l_dd_ais); O(sub_l_dd_dais); O(sub_l_dd_das); O(sub_l_dd_pais); O(sub_l_dpc_dd); O(sub_l_dpci_dd); O(sub_l_ds_dd); O(sub_l_imm32_dd); O(sub_l_pais_dd); |
| 337 | O(sub_w_adr16_dd); O(sub_w_adr32_dd); O(sub_w_aips_dd); O(sub_w_ais_dd); O(sub_w_as_dd); O(sub_w_dais_dd); O(sub_w_das_dd); O(sub_w_dd_adr16); O(sub_w_dd_adr32); O(sub_w_dd_aips); O(sub_w_dd_ais); O(sub_w_dd_dais); O(sub_w_dd_das); O(sub_w_dd_pais); O(sub_w_dpc_dd); O(sub_w_dpci_dd); O(sub_w_ds_dd); O(sub_w_imm16_dd); O(sub_w_pais_dd); |
| 338 | O(suba_l_adr16_ad); O(suba_l_adr32_ad); O(suba_l_aips_ad); O(suba_l_ais_ad); O(suba_l_as_ad); O(suba_l_dais_ad); O(suba_l_das_ad); O(suba_l_dpc_ad); O(suba_l_dpci_ad); O(suba_l_ds_ad); O(suba_l_imm32_ad); O(suba_l_pais_ad); |
| 339 | O(suba_w_adr16_ad); O(suba_w_adr32_ad); O(suba_w_aips_ad); O(suba_w_ais_ad); O(suba_w_as_ad); O(suba_w_dais_ad); O(suba_w_das_ad); O(suba_w_dpc_ad); O(suba_w_dpci_ad); O(suba_w_ds_ad); O(suba_w_imm16_ad); O(suba_w_pais_ad); |
| 340 | O(subi_b_imm8_adr16); O(subi_b_imm8_adr32); O(subi_b_imm8_aips); O(subi_b_imm8_ais); O(subi_b_imm8_dais); O(subi_b_imm8_das); O(subi_b_imm8_ds); O(subi_b_imm8_pais); |
| 341 | O(subi_l_imm32_adr16); O(subi_l_imm32_adr32); O(subi_l_imm32_aips); O(subi_l_imm32_ais); O(subi_l_imm32_dais); O(subi_l_imm32_das); O(subi_l_imm32_ds); O(subi_l_imm32_pais); |
| 342 | O(subi_w_imm16_adr16); O(subi_w_imm16_adr32); O(subi_w_imm16_aips); O(subi_w_imm16_ais); O(subi_w_imm16_dais); O(subi_w_imm16_das); O(subi_w_imm16_ds); O(subi_w_imm16_pais); |
| 343 | O(subq_b_imm3_adr16); O(subq_b_imm3_adr32); O(subq_b_imm3_aips); O(subq_b_imm3_ais); O(subq_b_imm3_as); O(subq_b_imm3_dais); O(subq_b_imm3_das); O(subq_b_imm3_ds); O(subq_b_imm3_pais); |
| 344 | O(subq_l_imm3_adr16); O(subq_l_imm3_adr32); O(subq_l_imm3_aips); O(subq_l_imm3_ais); O(subq_l_imm3_as); O(subq_l_imm3_dais); O(subq_l_imm3_das); O(subq_l_imm3_ds); O(subq_l_imm3_pais); |
| 345 | O(subq_w_imm3_adr16); O(subq_w_imm3_adr32); O(subq_w_imm3_aips); O(subq_w_imm3_ais); O(subq_w_imm3_as); O(subq_w_imm3_dais); O(subq_w_imm3_das); O(subq_w_imm3_ds); O(subq_w_imm3_pais); |
| 346 | O(subx_b_ds_dd); O(subx_b_pais_paid); O(subx_l_ds_dd); O(subx_l_pais_paid); O(subx_w_ds_dd); O(subx_w_pais_paid); |
| 347 | O(svc_adr16); O(svc_adr32); O(svc_aips); O(svc_ais); O(svc_dais); O(svc_das); O(svc_ds); O(svc_pais); |
| 348 | O(svs_adr16); O(svs_adr32); O(svs_aips); O(svs_ais); O(svs_dais); O(svs_das); O(svs_ds); O(svs_pais); |
| 349 | O(swap_ds); |
| 350 | O(tas_adr16); O(tas_adr32); O(tas_aips); O(tas_ais); O(tas_dais); O(tas_das); O(tas_ds); O(tas_pais); |
| 351 | O(trap_imm4); |
| 352 | O(trapv); |
| 353 | O(tst_b_adr16); O(tst_b_adr32); O(tst_b_aips); O(tst_b_ais); O(tst_b_dais); O(tst_b_das); O(tst_b_dpc); O(tst_b_dpci); O(tst_b_ds); O(tst_b_pais); |
| 354 | O(tst_l_adr16); O(tst_l_adr32); O(tst_l_aips); O(tst_l_ais); O(tst_l_as); O(tst_l_dais); O(tst_l_das); O(tst_l_dpc); O(tst_l_dpci); O(tst_l_ds); O(tst_l_pais); |
| 355 | O(tst_w_adr16); O(tst_w_adr32); O(tst_w_aips); O(tst_w_ais); O(tst_w_as); O(tst_w_dais); O(tst_w_das); O(tst_w_dpc); O(tst_w_dpci); O(tst_w_ds); O(tst_w_pais); |
| 356 | O(unlk_as); |
| 357 | |
| 358 | O(state_reset); |
| 359 | |
| 360 | #undef O |
| 361 | }; |
| 362 | |
| 363 | enum { |
| 364 | /* NOTE: M68K_SP fetches the current SP, be it USP, ISP, or MSP */ |
| 365 | M68K_PC, M68K_SP, M68K_ISP, M68K_USP, M68K_MSP, M68K_SR, M68K_VBR, |
| 366 | M68K_SFC, M68K_DFC, M68K_CACR, M68K_CAAR, M68K_PREF_ADDR, M68K_PREF_DATA, |
| 367 | M68K_D0, M68K_D1, M68K_D2, M68K_D3, M68K_D4, M68K_D5, M68K_D6, M68K_D7, |
| 368 | M68K_A0, M68K_A1, M68K_A2, M68K_A3, M68K_A4, M68K_A5, M68K_A6, M68K_A7, |
| 369 | M68K_FP0, M68K_FP1, M68K_FP2, M68K_FP3, M68K_FP4, M68K_FP5, M68K_FP6, M68K_FP7, |
| 370 | M68K_FPSR, M68K_FPCR |
| 371 | }; |
| 372 | |
| 373 | enum { |
| 374 | M68K_IRQ_NONE = 0, |
| 375 | M68K_IRQ_1 = 1, |
| 376 | M68K_IRQ_2 = 2, |
| 377 | M68K_IRQ_3 = 3, |
| 378 | M68K_IRQ_4 = 4, |
| 379 | M68K_IRQ_5 = 5, |
| 380 | M68K_IRQ_6 = 6, |
| 381 | M68K_IRQ_7 = 7, |
| 382 | }; |
| 383 | |
| 384 | extern const device_type M68000x; |
| 385 | |
| 386 | #endif |
trunk/src/emu/cpu/m68000x/m68000.lst
| r0 | r243794 | |
| 1 | macro prefetch %deltapc %addpc |
| 2 | IRC = read16p(PC+%deltapc); |
| 3 | PC += %addpc; |
| 4 | |
| 5 | macro prefetch_last %deltapc %addpc |
| 6 | IR = IRC; |
| 7 | IRC = read16p(PC+%deltapc); |
| 8 | PC += %addpc; |
| 9 | |
| 10 | macro read32d %dest %adr |
| 11 | %dest = read16d(%adr) << 16; |
| 12 | %dest |= read16d(%adr+2); |
| 13 | |
| 14 | macro read32p %dest %adr |
| 15 | %dest = read16p(%adr) << 16; |
| 16 | %dest |= read16p(%adr+2); |
| 17 | |
| 18 | macro op1_imm32 |
| 19 | OP1 = IRC << 16; |
| 20 | prefetch 4 6 |
| 21 | OP1 |= IRC; |
| 22 | prefetch 0 0 |
| 23 | |
| 24 | macro op2_adr16 |
| 25 | OP2 = INT16(IRC); |
| 26 | prefetch 2 2 |
| 27 | |
| 28 | macro op2_adr32 |
| 29 | OP2 = IRC << 16; |
| 30 | prefetch 2 0 |
| 31 | OP2 |= IRC; |
| 32 | prefetch 4 4 |
| 33 | |
| 34 | state reset |
| 35 | SR = 0x2700; |
| 36 | check_stack(); |
| 37 | read32p A[7] 0 |
| 38 | read32p PC 4 |
| 39 | prefetch 0 0 |
| 40 | prefetch_last 2 0 |
| 41 | inst_state = -1; |
| 42 | |
| 43 | 0000 fff8 ori.b imm8 ds |
| 44 | 0010 fff8 ori.b imm8 ais |
| 45 | 0018 fff8 ori.b imm8 aips |
| 46 | 0020 fff8 ori.b imm8 pais |
| 47 | 0028 fff8 ori.b imm8 das |
| 48 | 0030 fff8 ori.b imm8 dais |
| 49 | 0038 ffff ori.b imm8 adr16 |
| 50 | 0039 ffff ori.b imm8 adr32 |
| 51 | 003c ffff ori imm8 ccr |
| 52 | 0040 fff8 ori.w imm16 ds |
| 53 | 0050 fff8 ori.w imm16 ais |
| 54 | 0058 fff8 ori.w imm16 aips |
| 55 | 0060 fff8 ori.w imm16 pais |
| 56 | 0068 fff8 ori.w imm16 das |
| 57 | 0070 fff8 ori.w imm16 dais |
| 58 | 0078 ffff ori.w imm16 adr16 |
| 59 | 0079 ffff ori.w imm16 adr32 |
| 60 | 007c ffff ori i16u sr |
| 61 | 0080 fff8 ori.l imm32 ds |
| 62 | 0090 fff8 ori.l imm32 ais |
| 63 | 0098 fff8 ori.l imm32 aips |
| 64 | 00a0 fff8 ori.l imm32 pais |
| 65 | 00a8 fff8 ori.l imm32 das |
| 66 | 00b0 fff8 ori.l imm32 dais |
| 67 | 00b8 ffff ori.l imm32 adr16 |
| 68 | 00b9 ffff ori.l imm32 adr32 |
| 69 | 0100 f1f8 btst dd ds |
| 70 | 0108 f1f8 movep.w das dd |
| 71 | 0110 f1f8 btst dd ais |
| 72 | 0118 f1f8 btst dd aips |
| 73 | 0120 f1f8 btst dd pais |
| 74 | 0128 f1f8 btst dd das |
| 75 | 0130 f1f8 btst dd dais |
| 76 | 0138 f1ff btst dd adr16 |
| 77 | 0139 f1ff btst dd adr32 |
| 78 | 013a f1ff btst dd dpc |
| 79 | 013b f1ff btst dd dpci |
| 80 | 0140 f1f8 bchg dd ds |
| 81 | 0148 f1f8 movep.l das dd |
| 82 | 0150 f1f8 bchg dd ais |
| 83 | 0158 f1f8 bchg dd aips |
| 84 | 0160 f1f8 bchg dd pais |
| 85 | 0168 f1f8 bchg dd das |
| 86 | 0170 f1f8 bchg dd dais |
| 87 | 0178 f1ff bchg dd adr16 |
| 88 | 0179 f1ff bchg dd adr32 |
| 89 | 0180 f1f8 bclr dd ds |
| 90 | 0188 f1f8 movep.w dd das |
| 91 | 0190 f1f8 bclr dd ais |
| 92 | 0198 f1f8 bclr dd aips |
| 93 | 01a0 f1f8 bclr dd pais |
| 94 | 01a8 f1f8 bclr dd das |
| 95 | 01b0 f1f8 bclr dd dais |
| 96 | 01b8 f1ff bclr dd adr16 |
| 97 | 01b9 f1ff bclr dd adr32 |
| 98 | 01c0 f1f8 bset dd ds |
| 99 | 01c8 f1f8 movep.l dd das |
| 100 | 01d0 f1f8 bset dd ais |
| 101 | 01d8 f1f8 bset dd aips |
| 102 | 01e0 f1f8 bset dd pais |
| 103 | 01e8 f1f8 bset dd das |
| 104 | 01f0 f1f8 bset dd dais |
| 105 | 01f8 f1ff bset dd adr16 |
| 106 | 01f9 f1ff bset dd adr32 |
| 107 | 0200 fff8 andi.b imm8 ds |
| 108 | 0210 fff8 andi.b imm8 ais |
| 109 | 0218 fff8 andi.b imm8 aips |
| 110 | 0220 fff8 andi.b imm8 pais |
| 111 | 0228 fff8 andi.b imm8 das |
| 112 | 0230 fff8 andi.b imm8 dais |
| 113 | 0238 ffff andi.b imm8 adr16 |
| 114 | 0239 ffff andi.b imm8 adr32 |
| 115 | 023c ffff andi imm8 ccr |
| 116 | 0240 fff8 andi.w imm16 ds |
| 117 | 0250 fff8 andi.w imm16 ais |
| 118 | 0258 fff8 andi.w imm16 aips |
| 119 | 0260 fff8 andi.w imm16 pais |
| 120 | 0268 fff8 andi.w imm16 das |
| 121 | 0270 fff8 andi.w imm16 dais |
| 122 | 0278 ffff andi.w imm16 adr16 |
| 123 | 0279 ffff andi.w imm16 adr32 |
| 124 | 027c ffff andi i16u sr |
| 125 | 0280 fff8 andi.l imm32 ds |
| 126 | 0290 fff8 andi.l imm32 ais |
| 127 | 0298 fff8 andi.l imm32 aips |
| 128 | 02a0 fff8 andi.l imm32 pais |
| 129 | 02a8 fff8 andi.l imm32 das |
| 130 | 02b0 fff8 andi.l imm32 dais |
| 131 | 02b8 ffff andi.l imm32 adr16 |
| 132 | 02b9 ffff andi.l imm32 adr32 |
| 133 | 0400 fff8 subi.b imm8 ds |
| 134 | 0410 fff8 subi.b imm8 ais |
| 135 | 0418 fff8 subi.b imm8 aips |
| 136 | 0420 fff8 subi.b imm8 pais |
| 137 | 0428 fff8 subi.b imm8 das |
| 138 | 0430 fff8 subi.b imm8 dais |
| 139 | 0438 ffff subi.b imm8 adr16 |
| 140 | 0439 ffff subi.b imm8 adr32 |
| 141 | 0440 fff8 subi.w imm16 ds |
| 142 | 0450 fff8 subi.w imm16 ais |
| 143 | 0458 fff8 subi.w imm16 aips |
| 144 | 0460 fff8 subi.w imm16 pais |
| 145 | 0468 fff8 subi.w imm16 das |
| 146 | 0470 fff8 subi.w imm16 dais |
| 147 | 0478 ffff subi.w imm16 adr16 |
| 148 | 0479 ffff subi.w imm16 adr32 |
| 149 | 0480 fff8 subi.l imm32 ds |
| 150 | 0490 fff8 subi.l imm32 ais |
| 151 | 0498 fff8 subi.l imm32 aips |
| 152 | 04a0 fff8 subi.l imm32 pais |
| 153 | 04a8 fff8 subi.l imm32 das |
| 154 | 04b0 fff8 subi.l imm32 dais |
| 155 | 04b8 ffff subi.l imm32 adr16 |
| 156 | 04b9 ffff subi.l imm32 adr32 |
| 157 | 0600 fff8 addi.b imm8 ds |
| 158 | 0610 fff8 addi.b imm8 ais |
| 159 | 0618 fff8 addi.b imm8 aips |
| 160 | 0620 fff8 addi.b imm8 pais |
| 161 | 0628 fff8 addi.b imm8 das |
| 162 | 0630 fff8 addi.b imm8 dais |
| 163 | 0638 ffff addi.b imm8 adr16 |
| 164 | 0639 ffff addi.b imm8 adr32 |
| 165 | 0640 fff8 addi.w imm16 ds |
| 166 | 0650 fff8 addi.w imm16 ais |
| 167 | 0658 fff8 addi.w imm16 aips |
| 168 | 0660 fff8 addi.w imm16 pais |
| 169 | 0668 fff8 addi.w imm16 das |
| 170 | 0670 fff8 addi.w imm16 dais |
| 171 | 0678 ffff addi.w imm16 adr16 |
| 172 | 0679 ffff addi.w imm16 adr32 |
| 173 | 0680 fff8 addi.l imm32 ds |
| 174 | 0690 fff8 addi.l imm32 ais |
| 175 | 0698 fff8 addi.l imm32 aips |
| 176 | 06a0 fff8 addi.l imm32 pais |
| 177 | 06a8 fff8 addi.l imm32 das |
| 178 | 06b0 fff8 addi.l imm32 dais |
| 179 | 06b8 ffff addi.l imm32 adr16 |
| 180 | 06b9 ffff addi.l imm32 adr32 |
| 181 | 0800 fff8 btst imm8 ds |
| 182 | 0810 fff8 btst imm8 ais |
| 183 | 0818 fff8 btst imm8 aips |
| 184 | 0820 fff8 btst imm8 pais |
| 185 | 0828 fff8 btst imm8 das |
| 186 | 0830 fff8 btst imm8 dais |
| 187 | 0838 ffff btst imm8 adr16 |
| 188 | 0839 ffff btst imm8 adr32 |
| 189 | 083a ffff btst imm8 dpc |
| 190 | 083b ffff btst imm8 dpci |
| 191 | 0840 fff8 bchg imm8 ds |
| 192 | 0850 fff8 bchg imm8 ais |
| 193 | 0858 fff8 bchg imm8 aips |
| 194 | 0860 fff8 bchg imm8 pais |
| 195 | 0868 fff8 bchg imm8 das |
| 196 | 0870 fff8 bchg imm8 dais |
| 197 | 0878 ffff bchg imm8 adr16 |
| 198 | 0879 ffff bchg imm8 adr32 |
| 199 | 0880 fff8 bclr imm8 ds |
| 200 | 0890 fff8 bclr imm8 ais |
| 201 | 0898 fff8 bclr imm8 aips |
| 202 | 08a0 fff8 bclr imm8 pais |
| 203 | 08a8 fff8 bclr imm8 das |
| 204 | 08b0 fff8 bclr imm8 dais |
| 205 | 08b8 ffff bclr imm8 adr16 |
| 206 | 08b9 ffff bclr imm8 adr32 |
| 207 | 08c0 fff8 bset imm8 ds |
| 208 | 08d0 fff8 bset imm8 ais |
| 209 | 08d8 fff8 bset imm8 aips |
| 210 | 08e0 fff8 bset imm8 pais |
| 211 | 08e8 fff8 bset imm8 das |
| 212 | 08f0 fff8 bset imm8 dais |
| 213 | 08f8 ffff bset imm8 adr16 |
| 214 | 08f9 ffff bset imm8 adr32 |
| 215 | 0a00 fff8 eori.b imm8 ds |
| 216 | 0a10 fff8 eori.b imm8 ais |
| 217 | 0a18 fff8 eori.b imm8 aips |
| 218 | 0a20 fff8 eori.b imm8 pais |
| 219 | 0a28 fff8 eori.b imm8 das |
| 220 | 0a30 fff8 eori.b imm8 dais |
| 221 | 0a38 ffff eori.b imm8 adr16 |
| 222 | 0a39 ffff eori.b imm8 adr32 |
| 223 | 0a3c ffff eori imm8 ccr |
| 224 | 0a40 fff8 eori.w imm16 ds |
| 225 | 0a50 fff8 eori.w imm16 ais |
| 226 | 0a58 fff8 eori.w imm16 aips |
| 227 | 0a60 fff8 eori.w imm16 pais |
| 228 | 0a68 fff8 eori.w imm16 das |
| 229 | 0a70 fff8 eori.w imm16 dais |
| 230 | 0a78 ffff eori.w imm16 adr16 |
| 231 | 0a79 ffff eori.w imm16 adr32 |
| 232 | 0a7c ffff eori i16u sr |
| 233 | 0a80 fff8 eori.l imm32 ds |
| 234 | 0a90 fff8 eori.l imm32 ais |
| 235 | 0a98 fff8 eori.l imm32 aips |
| 236 | 0aa0 fff8 eori.l imm32 pais |
| 237 | 0aa8 fff8 eori.l imm32 das |
| 238 | 0ab0 fff8 eori.l imm32 dais |
| 239 | 0ab8 ffff eori.l imm32 adr16 |
| 240 | 0ab9 ffff eori.l imm32 adr32 |
| 241 | 0c00 fff8 cmpi.b imm8 ds |
| 242 | 0c10 fff8 cmpi.b imm8 ais |
| 243 | 0c18 fff8 cmpi.b imm8 aips |
| 244 | 0c20 fff8 cmpi.b imm8 pais |
| 245 | 0c28 fff8 cmpi.b imm8 das |
| 246 | 0c30 fff8 cmpi.b imm8 dais |
| 247 | 0c38 ffff cmpi.b imm8 adr16 |
| 248 | 0c39 ffff cmpi.b imm8 adr32 |
| 249 | 0c40 fff8 cmpi.w imm16 ds |
| 250 | 0c50 fff8 cmpi.w imm16 ais |
| 251 | 0c58 fff8 cmpi.w imm16 aips |
| 252 | 0c60 fff8 cmpi.w imm16 pais |
| 253 | 0c68 fff8 cmpi.w imm16 das |
| 254 | 0c70 fff8 cmpi.w imm16 dais |
| 255 | 0c78 ffff cmpi.w imm16 adr16 |
| 256 | 0c79 ffff cmpi.w imm16 adr32 |
| 257 | 0c80 fff8 cmpi.l imm32 ds |
| 258 | 0c90 fff8 cmpi.l imm32 ais |
| 259 | 0c98 fff8 cmpi.l imm32 aips |
| 260 | 0ca0 fff8 cmpi.l imm32 pais |
| 261 | 0ca8 fff8 cmpi.l imm32 das |
| 262 | 0cb0 fff8 cmpi.l imm32 dais |
| 263 | |
| 264 | 0cb8 ffff cmpi.l imm32 adr16 |
| 265 | op1_imm32 |
| 266 | op2_adr16 |
| 267 | read32d TMP1 OP2 |
| 268 | do_cmp32(TMP1, OP1); |
| 269 | prefetch_last 2 0 |
| 270 | |
| 271 | 0cb9 ffff cmpi.l imm32 adr32 |
| 272 | op1_imm32 |
| 273 | op2_adr32 |
| 274 | read32d TMP1 OP2 |
| 275 | do_cmp32(TMP1, OP1); |
| 276 | prefetch_last 2 0 |
| 277 | |
| 278 | 1000 f1f8 move.b ds dd |
| 279 | 1010 f1f8 move.b ais dd |
| 280 | 1018 f1f8 move.b aips dd |
| 281 | 1020 f1f8 move.b pais dd |
| 282 | 1028 f1f8 move.b das dd |
| 283 | 1030 f1f8 move.b dais dd |
| 284 | 1038 f1ff move.b adr16 dd |
| 285 | 1039 f1ff move.b adr32 dd |
| 286 | 103a f1ff move.b dpc dd |
| 287 | 103b f1ff move.b dpci dd |
| 288 | 103c f1ff move.b imm8 dd |
| 289 | 1080 f1f8 move.b ds aid |
| 290 | 1090 f1f8 move.b ais aid |
| 291 | 1098 f1f8 move.b aips aid |
| 292 | 10a0 f1f8 move.b pais aid |
| 293 | 10a8 f1f8 move.b das aid |
| 294 | 10b0 f1f8 move.b dais aid |
| 295 | 10b8 f1ff move.b adr16 aid |
| 296 | 10b9 f1ff move.b adr32 aid |
| 297 | 10ba f1ff move.b dpc aid |
| 298 | 10bb f1ff move.b dpci aid |
| 299 | 10bc f1ff move.b imm8 aid |
| 300 | 10c0 f1f8 move.b ds aipd |
| 301 | 10d0 f1f8 move.b ais aipd |
| 302 | 10d8 f1f8 move.b aips aipd |
| 303 | 10e0 f1f8 move.b pais aipd |
| 304 | 10e8 f1f8 move.b das aipd |
| 305 | 10f0 f1f8 move.b dais aipd |
| 306 | 10f8 f1ff move.b adr16 aipd |
| 307 | 10f9 f1ff move.b adr32 aipd |
| 308 | 10fa f1ff move.b dpc aipd |
| 309 | 10fb f1ff move.b dpci aipd |
| 310 | 10fc f1ff move.b imm8 aipd |
| 311 | 1100 f1f8 move.b ds paid |
| 312 | 1110 f1f8 move.b ais paid |
| 313 | 1118 f1f8 move.b aips paid |
| 314 | 1120 f1f8 move.b pais paid |
| 315 | 1128 f1f8 move.b das paid |
| 316 | 1130 f1f8 move.b dais paid |
| 317 | 1138 f1ff move.b adr16 paid |
| 318 | 1139 f1ff move.b adr32 paid |
| 319 | 113a f1ff move.b dpc paid |
| 320 | 113b f1ff move.b dpci paid |
| 321 | 113c f1ff move.b imm8 paid |
| 322 | 1140 f1f8 move.b ds dad |
| 323 | 1150 f1f8 move.b ais dad |
| 324 | 1158 f1f8 move.b aips dad |
| 325 | 1160 f1f8 move.b pais dad |
| 326 | 1168 f1f8 move.b das dad |
| 327 | 1170 f1f8 move.b dais dad |
| 328 | 1178 f1ff move.b adr16 dad |
| 329 | 1179 f1ff move.b adr32 dad |
| 330 | 117a f1ff move.b dpc dad |
| 331 | 117b f1ff move.b dpci dad |
| 332 | 117c f1ff move.b imm8 dad |
| 333 | 1180 f1f8 move.b ds daid |
| 334 | 1190 f1f8 move.b ais daid |
| 335 | 1198 f1f8 move.b aips daid |
| 336 | 11a0 f1f8 move.b pais daid |
| 337 | 11a8 f1f8 move.b das daid |
| 338 | 11b0 f1f8 move.b dais daid |
| 339 | 11b8 f1ff move.b adr16 daid |
| 340 | 11b9 f1ff move.b adr32 daid |
| 341 | 11ba f1ff move.b dpc daid |
| 342 | 11bb f1ff move.b dpci daid |
| 343 | 11bc f1ff move.b imm8 daid |
| 344 | 11c0 fff8 move.b ds adr16 |
| 345 | 11d0 fff8 move.b ais adr16 |
| 346 | 11d8 fff8 move.b aips adr16 |
| 347 | 11e0 fff8 move.b pais adr16 |
| 348 | 11e8 fff8 move.b das adr16 |
| 349 | 11f0 fff8 move.b dais adr16 |
| 350 | 11f8 ffff move.b adr16 adr16 |
| 351 | 11f9 ffff move.b adr32 adr16 |
| 352 | 11fa ffff move.b dpc adr16 |
| 353 | 11fb ffff move.b dpci adr16 |
| 354 | 11fc ffff move.b imm8 adr16 |
| 355 | 13c0 fff8 move.b ds adr32 |
| 356 | 13d0 fff8 move.b ais adr32 |
| 357 | 13d8 fff8 move.b aips adr32 |
| 358 | 13e0 fff8 move.b pais adr32 |
| 359 | 13e8 fff8 move.b das adr32 |
| 360 | 13f0 fff8 move.b dais adr32 |
| 361 | 13f8 ffff move.b adr16 adr32 |
| 362 | 13f9 ffff move.b adr32 adr32 |
| 363 | 13fa ffff move.b dpc adr32 |
| 364 | 13fb ffff move.b dpci adr32 |
| 365 | 13fc ffff move.b imm8 adr32 |
| 366 | 2000 f1f8 move.l ds dd |
| 367 | 2008 f1f8 move.l as dd |
| 368 | 2010 f1f8 move.l ais dd |
| 369 | 2018 f1f8 move.l aips dd |
| 370 | 2020 f1f8 move.l pais dd |
| 371 | 2028 f1f8 move.l das dd |
| 372 | 2030 f1f8 move.l dais dd |
| 373 | 2038 f1ff move.l adr16 dd |
| 374 | 2039 f1ff move.l adr32 dd |
| 375 | 203a f1ff move.l dpc dd |
| 376 | 203b f1ff move.l dpci dd |
| 377 | 203c f1ff move.l imm32 dd |
| 378 | 2040 f1f8 movea.l ds ad |
| 379 | 2048 f1f8 movea.l as ad |
| 380 | 2050 f1f8 movea.l ais ad |
| 381 | 2058 f1f8 movea.l aips ad |
| 382 | 2060 f1f8 movea.l pais ad |
| 383 | 2068 f1f8 movea.l das ad |
| 384 | 2070 f1f8 movea.l dais ad |
| 385 | 2078 f1ff movea.l adr16 ad |
| 386 | 2079 f1ff movea.l adr32 ad |
| 387 | 207a f1ff movea.l dpc ad |
| 388 | 207b f1ff movea.l dpci ad |
| 389 | 207c f1ff movea.l imm32 ad |
| 390 | 2080 f1f8 move.l ds aid |
| 391 | 2088 f1f8 move.l as aid |
| 392 | 2090 f1f8 move.l ais aid |
| 393 | 2098 f1f8 move.l aips aid |
| 394 | 20a0 f1f8 move.l pais aid |
| 395 | 20a8 f1f8 move.l das aid |
| 396 | 20b0 f1f8 move.l dais aid |
| 397 | 20b8 f1ff move.l adr16 aid |
| 398 | 20b9 f1ff move.l adr32 aid |
| 399 | 20ba f1ff move.l dpc aid |
| 400 | 20bb f1ff move.l dpci aid |
| 401 | 20bc f1ff move.l imm32 aid |
| 402 | 20c0 f1f8 move.l ds aipd |
| 403 | 20c8 f1f8 move.l as aipd |
| 404 | 20d0 f1f8 move.l ais aipd |
| 405 | 20d8 f1f8 move.l aips aipd |
| 406 | 20e0 f1f8 move.l pais aipd |
| 407 | 20e8 f1f8 move.l das aipd |
| 408 | 20f0 f1f8 move.l dais aipd |
| 409 | 20f8 f1ff move.l adr16 aipd |
| 410 | 20f9 f1ff move.l adr32 aipd |
| 411 | 20fa f1ff move.l dpc aipd |
| 412 | 20fb f1ff move.l dpci aipd |
| 413 | 20fc f1ff move.l imm32 aipd |
| 414 | 2100 f1f8 move.l ds paid |
| 415 | 2108 f1f8 move.l as paid |
| 416 | 2110 f1f8 move.l ais paid |
| 417 | 2118 f1f8 move.l aips paid |
| 418 | 2120 f1f8 move.l pais paid |
| 419 | 2128 f1f8 move.l das paid |
| 420 | 2130 f1f8 move.l dais paid |
| 421 | 2138 f1ff move.l adr16 paid |
| 422 | 2139 f1ff move.l adr32 paid |
| 423 | 213a f1ff move.l dpc paid |
| 424 | 213b f1ff move.l dpci paid |
| 425 | 213c f1ff move.l imm32 paid |
| 426 | 2140 f1f8 move.l ds dad |
| 427 | 2148 f1f8 move.l as dad |
| 428 | 2150 f1f8 move.l ais dad |
| 429 | 2158 f1f8 move.l aips dad |
| 430 | 2160 f1f8 move.l pais dad |
| 431 | 2168 f1f8 move.l das dad |
| 432 | 2170 f1f8 move.l dais dad |
| 433 | 2178 f1ff move.l adr16 dad |
| 434 | 2179 f1ff move.l adr32 dad |
| 435 | 217a f1ff move.l dpc dad |
| 436 | 217b f1ff move.l dpci dad |
| 437 | 217c f1ff move.l imm32 dad |
| 438 | 2180 f1f8 move.l ds daid |
| 439 | 2188 f1f8 move.l as daid |
| 440 | 2190 f1f8 move.l ais daid |
| 441 | 2198 f1f8 move.l aips daid |
| 442 | 21a0 f1f8 move.l pais daid |
| 443 | 21a8 f1f8 move.l das daid |
| 444 | 21b0 f1f8 move.l dais daid |
| 445 | 21b8 f1ff move.l adr16 daid |
| 446 | 21b9 f1ff move.l adr32 daid |
| 447 | 21ba f1ff move.l dpc daid |
| 448 | 21bb f1ff move.l dpci daid |
| 449 | 21bc f1ff move.l imm32 daid |
| 450 | 21c0 fff8 move.l ds adr16 |
| 451 | 21c8 fff8 move.l as adr16 |
| 452 | 21d0 fff8 move.l ais adr16 |
| 453 | 21d8 fff8 move.l aips adr16 |
| 454 | 21e0 fff8 move.l pais adr16 |
| 455 | 21e8 fff8 move.l das adr16 |
| 456 | 21f0 fff8 move.l dais adr16 |
| 457 | 21f8 ffff move.l adr16 adr16 |
| 458 | 21f9 ffff move.l adr32 adr16 |
| 459 | 21fa ffff move.l dpc adr16 |
| 460 | 21fb ffff move.l dpci adr16 |
| 461 | 21fc ffff move.l imm32 adr16 |
| 462 | 23c0 fff8 move.l ds adr32 |
| 463 | 23c8 fff8 move.l as adr32 |
| 464 | 23d0 fff8 move.l ais adr32 |
| 465 | 23d8 fff8 move.l aips adr32 |
| 466 | 23e0 fff8 move.l pais adr32 |
| 467 | 23e8 fff8 move.l das adr32 |
| 468 | 23f0 fff8 move.l dais adr32 |
| 469 | 23f8 ffff move.l adr16 adr32 |
| 470 | 23f9 ffff move.l adr32 adr32 |
| 471 | 23fa ffff move.l dpc adr32 |
| 472 | 23fb ffff move.l dpci adr32 |
| 473 | 23fc ffff move.l imm32 adr32 |
| 474 | 3000 f1f8 move.w ds dd |
| 475 | 3008 f1f8 move.w as dd |
| 476 | 3010 f1f8 move.w ais dd |
| 477 | 3018 f1f8 move.w aips dd |
| 478 | 3020 f1f8 move.w pais dd |
| 479 | 3028 f1f8 move.w das dd |
| 480 | 3030 f1f8 move.w dais dd |
| 481 | 3038 f1ff move.w adr16 dd |
| 482 | 3039 f1ff move.w adr32 dd |
| 483 | 303a f1ff move.w dpc dd |
| 484 | 303b f1ff move.w dpci dd |
| 485 | 303c f1ff move.w imm16 dd |
| 486 | 3040 f1f8 movea.w ds ad |
| 487 | 3048 f1f8 movea.w as ad |
| 488 | 3050 f1f8 movea.w ais ad |
| 489 | 3058 f1f8 movea.w aips ad |
| 490 | 3060 f1f8 movea.w pais ad |
| 491 | 3068 f1f8 movea.w das ad |
| 492 | 3070 f1f8 movea.w dais ad |
| 493 | 3078 f1ff movea.w adr16 ad |
| 494 | 3079 f1ff movea.w adr32 ad |
| 495 | 307a f1ff movea.w dpc ad |
| 496 | 307b f1ff movea.w dpci ad |
| 497 | 307c f1ff movea.w imm16 ad |
| 498 | 3080 f1f8 move.w ds aid |
| 499 | 3088 f1f8 move.w as aid |
| 500 | 3090 f1f8 move.w ais aid |
| 501 | 3098 f1f8 move.w aips aid |
| 502 | 30a0 f1f8 move.w pais aid |
| 503 | 30a8 f1f8 move.w das aid |
| 504 | 30b0 f1f8 move.w dais aid |
| 505 | 30b8 f1ff move.w adr16 aid |
| 506 | 30b9 f1ff move.w adr32 aid |
| 507 | 30ba f1ff move.w dpc aid |
| 508 | 30bb f1ff move.w dpci aid |
| 509 | 30bc f1ff move.w imm16 aid |
| 510 | 30c0 f1f8 move.w ds aipd |
| 511 | 30c8 f1f8 move.w as aipd |
| 512 | 30d0 f1f8 move.w ais aipd |
| 513 | 30d8 f1f8 move.w aips aipd |
| 514 | 30e0 f1f8 move.w pais aipd |
| 515 | 30e8 f1f8 move.w das aipd |
| 516 | 30f0 f1f8 move.w dais aipd |
| 517 | 30f8 f1ff move.w adr16 aipd |
| 518 | 30f9 f1ff move.w adr32 aipd |
| 519 | 30fa f1ff move.w dpc aipd |
| 520 | 30fb f1ff move.w dpci aipd |
| 521 | 30fc f1ff move.w imm16 aipd |
| 522 | 3100 f1f8 move.w ds paid |
| 523 | 3108 f1f8 move.w as paid |
| 524 | 3110 f1f8 move.w ais paid |
| 525 | 3118 f1f8 move.w aips paid |
| 526 | 3120 f1f8 move.w pais paid |
| 527 | 3128 f1f8 move.w das paid |
| 528 | 3130 f1f8 move.w dais paid |
| 529 | 3138 f1ff move.w adr16 paid |
| 530 | 3139 f1ff move.w adr32 paid |
| 531 | 313a f1ff move.w dpc paid |
| 532 | 313b f1ff move.w dpci paid |
| 533 | 313c f1ff move.w imm16 paid |
| 534 | 3140 f1f8 move.w ds dad |
| 535 | 3148 f1f8 move.w as dad |
| 536 | 3150 f1f8 move.w ais dad |
| 537 | 3158 f1f8 move.w aips dad |
| 538 | 3160 f1f8 move.w pais dad |
| 539 | 3168 f1f8 move.w das dad |
| 540 | 3170 f1f8 move.w dais dad |
| 541 | 3178 f1ff move.w adr16 dad |
| 542 | 3179 f1ff move.w adr32 dad |
| 543 | 317a f1ff move.w dpc dad |
| 544 | 317b f1ff move.w dpci dad |
| 545 | 317c f1ff move.w imm16 dad |
| 546 | 3180 f1f8 move.w ds daid |
| 547 | 3188 f1f8 move.w as daid |
| 548 | 3190 f1f8 move.w ais daid |
| 549 | 3198 f1f8 move.w aips daid |
| 550 | 31a0 f1f8 move.w pais daid |
| 551 | 31a8 f1f8 move.w das daid |
| 552 | 31b0 f1f8 move.w dais daid |
| 553 | 31b8 f1ff move.w adr16 daid |
| 554 | 31b9 f1ff move.w adr32 daid |
| 555 | 31ba f1ff move.w dpc daid |
| 556 | 31bb f1ff move.w dpci daid |
| 557 | 31bc f1ff move.w imm16 daid |
| 558 | 31c0 fff8 move.w ds adr16 |
| 559 | 31c8 fff8 move.w as adr16 |
| 560 | 31d0 fff8 move.w ais adr16 |
| 561 | 31d8 fff8 move.w aips adr16 |
| 562 | 31e0 fff8 move.w pais adr16 |
| 563 | 31e8 fff8 move.w das adr16 |
| 564 | 31f0 fff8 move.w dais adr16 |
| 565 | 31f8 ffff move.w adr16 adr16 |
| 566 | 31f9 ffff move.w adr32 adr16 |
| 567 | 31fa ffff move.w dpc adr16 |
| 568 | 31fb ffff move.w dpci adr16 |
| 569 | 31fc ffff move.w imm16 adr16 |
| 570 | 33c0 fff8 move.w ds adr32 |
| 571 | 33c8 fff8 move.w as adr32 |
| 572 | 33d0 fff8 move.w ais adr32 |
| 573 | 33d8 fff8 move.w aips adr32 |
| 574 | 33e0 fff8 move.w pais adr32 |
| 575 | 33e8 fff8 move.w das adr32 |
| 576 | 33f0 fff8 move.w dais adr32 |
| 577 | 33f8 ffff move.w adr16 adr32 |
| 578 | 33f9 ffff move.w adr32 adr32 |
| 579 | 33fa ffff move.w dpc adr32 |
| 580 | 33fb ffff move.w dpci adr32 |
| 581 | 33fc ffff move.w imm16 adr32 |
| 582 | 4000 fff8 negx.b ds - |
| 583 | 4010 fff8 negx.b ais - |
| 584 | 4018 fff8 negx.b aips - |
| 585 | 4020 fff8 negx.b pais - |
| 586 | 4028 fff8 negx.b das - |
| 587 | 4030 fff8 negx.b dais - |
| 588 | 4038 ffff negx.b adr16 - |
| 589 | 4039 ffff negx.b adr32 - |
| 590 | 4040 fff8 negx.w ds - |
| 591 | 4050 fff8 negx.w ais - |
| 592 | 4058 fff8 negx.w aips - |
| 593 | 4060 fff8 negx.w pais - |
| 594 | 4068 fff8 negx.w das - |
| 595 | 4070 fff8 negx.w dais - |
| 596 | 4078 ffff negx.w adr16 - |
| 597 | 4079 ffff negx.w adr32 - |
| 598 | 4080 fff8 negx.l ds - |
| 599 | 4090 fff8 negx.l ais - |
| 600 | 4098 fff8 negx.l aips - |
| 601 | 40a0 fff8 negx.l pais - |
| 602 | 40a8 fff8 negx.l das - |
| 603 | 40b0 fff8 negx.l dais - |
| 604 | 40b8 ffff negx.l adr16 - |
| 605 | 40b9 ffff negx.l adr32 - |
| 606 | 40c0 fff8 move sr ds |
| 607 | 40d0 fff8 move sr ais |
| 608 | 40d8 fff8 move sr aips |
| 609 | 40e0 fff8 move sr pais |
| 610 | 40e8 fff8 move sr das |
| 611 | 40f0 fff8 move sr dais |
| 612 | 40f8 ffff move sr adr16 |
| 613 | 40f9 ffff move sr adr32 |
| 614 | 41d0 f1f8 lea ais ad |
| 615 | 41e8 f1f8 lea das ad |
| 616 | 41f0 f1f8 lea dais ad |
| 617 | 41f8 f1ff lea adr16 ad |
| 618 | 41f9 f1ff lea adr32 ad |
| 619 | 41fa f1ff lea dpc ad |
| 620 | 41fb f1ff lea dpci ad |
| 621 | 4200 fff8 clr.b ds - |
| 622 | 4210 fff8 clr.b ais - |
| 623 | 4218 fff8 clr.b aips - |
| 624 | 4220 fff8 clr.b pais - |
| 625 | 4228 fff8 clr.b das - |
| 626 | 4230 fff8 clr.b dais - |
| 627 | 4238 ffff clr.b adr16 - |
| 628 | 4239 ffff clr.b adr32 - |
| 629 | 4240 fff8 clr.w ds - |
| 630 | 4250 fff8 clr.w ais - |
| 631 | 4258 fff8 clr.w aips - |
| 632 | 4260 fff8 clr.w pais - |
| 633 | 4268 fff8 clr.w das - |
| 634 | 4270 fff8 clr.w dais - |
| 635 | 4278 ffff clr.w adr16 - |
| 636 | 4279 ffff clr.w adr32 - |
| 637 | 4280 fff8 clr.l ds - |
| 638 | 4290 fff8 clr.l ais - |
| 639 | 4298 fff8 clr.l aips - |
| 640 | 42a0 fff8 clr.l pais - |
| 641 | 42a8 fff8 clr.l das - |
| 642 | 42b0 fff8 clr.l dais - |
| 643 | 42b8 ffff clr.l adr16 - |
| 644 | 42b9 ffff clr.l adr32 - |
| 645 | 4400 fff8 neg.b ds - |
| 646 | 4410 fff8 neg.b ais - |
| 647 | 4418 fff8 neg.b aips - |
| 648 | 4420 fff8 neg.b pais - |
| 649 | 4428 fff8 neg.b das - |
| 650 | 4430 fff8 neg.b dais - |
| 651 | 4438 ffff neg.b adr16 - |
| 652 | 4439 ffff neg.b adr32 - |
| 653 | 4440 fff8 neg.w ds - |
| 654 | 4450 fff8 neg.w ais - |
| 655 | 4458 fff8 neg.w aips - |
| 656 | 4460 fff8 neg.w pais - |
| 657 | 4468 fff8 neg.w das - |
| 658 | 4470 fff8 neg.w dais - |
| 659 | 4478 ffff neg.w adr16 - |
| 660 | 4479 ffff neg.w adr32 - |
| 661 | 4480 fff8 neg.l ds - |
| 662 | 4490 fff8 neg.l ais - |
| 663 | 4498 fff8 neg.l aips - |
| 664 | 44a0 fff8 neg.l pais - |
| 665 | 44a8 fff8 neg.l das - |
| 666 | 44b0 fff8 neg.l dais - |
| 667 | 44b8 ffff neg.l adr16 - |
| 668 | 44b9 ffff neg.l adr32 - |
| 669 | 44c0 fff8 move ds ccr |
| 670 | 44d0 fff8 move ais ccr |
| 671 | 44d8 fff8 move aips ccr |
| 672 | 44e0 fff8 move pais ccr |
| 673 | 44e8 fff8 move das ccr |
| 674 | 44f0 fff8 move dais ccr |
| 675 | 44f8 ffff move adr16 ccr |
| 676 | 44f9 ffff move adr32 ccr |
| 677 | 44fa ffff move dpc ccr |
| 678 | 44fb ffff move dpci ccr |
| 679 | 44fc ffff move imm8 ccr |
| 680 | 4600 fff8 not.b ds - |
| 681 | 4610 fff8 not.b ais - |
| 682 | 4618 fff8 not.b aips - |
| 683 | 4620 fff8 not.b pais - |
| 684 | 4628 fff8 not.b das - |
| 685 | 4630 fff8 not.b dais - |
| 686 | 4638 ffff not.b adr16 - |
| 687 | 4639 ffff not.b adr32 - |
| 688 | 4640 fff8 not.w ds - |
| 689 | 4650 fff8 not.w ais - |
| 690 | 4658 fff8 not.w aips - |
| 691 | 4660 fff8 not.w pais - |
| 692 | 4668 fff8 not.w das - |
| 693 | 4670 fff8 not.w dais - |
| 694 | 4678 ffff not.w adr16 - |
| 695 | 4679 ffff not.w adr32 - |
| 696 | 4680 fff8 not.l ds - |
| 697 | 4690 fff8 not.l ais - |
| 698 | 4698 fff8 not.l aips - |
| 699 | 46a0 fff8 not.l pais - |
| 700 | 46a8 fff8 not.l das - |
| 701 | 46b0 fff8 not.l dais - |
| 702 | 46b8 ffff not.l adr16 - |
| 703 | 46b9 ffff not.l adr32 - |
| 704 | 46c0 fff8 move ds sr |
| 705 | 46d0 fff8 move ais sr |
| 706 | 46d8 fff8 move aips sr |
| 707 | 46e0 fff8 move pais sr |
| 708 | 46e8 fff8 move das sr |
| 709 | 46f0 fff8 move dais sr |
| 710 | 46f8 ffff move adr16 sr |
| 711 | 46f9 ffff move adr32 sr |
| 712 | 46fa ffff move dpc sr |
| 713 | 46fb ffff move dpci sr |
| 714 | |
| 715 | # 4 cycles lost somewhere, check SR update vs. prefetch, check PC vs. berr |
| 716 | 46fc ffff move i16u sr |
| 717 | SR = IRD; |
| 718 | icount -= 4; |
| 719 | prefetch 4 4 |
| 720 | prefetch_last 2 0 |
| 721 | |
| 722 | 4800 fff8 nbcd.b ds - |
| 723 | 4810 fff8 nbcd.b ais - |
| 724 | 4818 fff8 nbcd.b aips - |
| 725 | 4820 fff8 nbcd.b pais - |
| 726 | 4828 fff8 nbcd.b das - |
| 727 | 4830 fff8 nbcd.b dais - |
| 728 | 4838 ffff nbcd.b adr16 - |
| 729 | 4839 ffff nbcd.b adr32 - |
| 730 | 4840 fff8 swap ds - |
| 731 | 4850 fff8 pea ais - |
| 732 | 4868 fff8 pea das - |
| 733 | 4870 fff8 pea dais - |
| 734 | 4878 ffff pea adr16 - |
| 735 | 4879 ffff pea adr32 - |
| 736 | 487a ffff pea dpc - |
| 737 | 487b ffff pea dpci - |
| 738 | 4880 fff8 ext.w ds - |
| 739 | 4890 fff8 movem.w list ais |
| 740 | 48a0 fff8 movem.w listp pais |
| 741 | 48a8 fff8 movem.w list das |
| 742 | 48b0 fff8 movem.w list dais |
| 743 | 48b8 ffff movem.w list adr16 |
| 744 | 48b9 ffff movem.w list adr32 |
| 745 | 48c0 fff8 ext.l ds - |
| 746 | 48d0 fff8 movem.l list ais |
| 747 | 48e0 fff8 movem.l listp pais |
| 748 | 48e8 fff8 movem.l list das |
| 749 | 48f0 fff8 movem.l list dais |
| 750 | 48f8 ffff movem.l list adr16 |
| 751 | 48f9 ffff movem.l list adr32 |
| 752 | 4a00 fff8 tst.b ds - |
| 753 | 4a10 fff8 tst.b ais - |
| 754 | 4a18 fff8 tst.b aips - |
| 755 | 4a20 fff8 tst.b pais - |
| 756 | 4a28 fff8 tst.b das - |
| 757 | 4a30 fff8 tst.b dais - |
| 758 | 4a38 ffff tst.b adr16 - |
| 759 | 4a39 ffff tst.b adr32 - |
| 760 | 4a3a ffff tst.b dpc - |
| 761 | 4a3b ffff tst.b dpci - |
| 762 | 4a40 fff8 tst.w ds - |
| 763 | 4a48 fff8 tst.w as - |
| 764 | 4a50 fff8 tst.w ais - |
| 765 | 4a58 fff8 tst.w aips - |
| 766 | 4a60 fff8 tst.w pais - |
| 767 | 4a68 fff8 tst.w das - |
| 768 | 4a70 fff8 tst.w dais - |
| 769 | 4a78 ffff tst.w adr16 - |
| 770 | 4a79 ffff tst.w adr32 - |
| 771 | 4a7a ffff tst.w dpc - |
| 772 | 4a7b ffff tst.w dpci - |
| 773 | 4a80 fff8 tst.l ds - |
| 774 | 4a88 fff8 tst.l as - |
| 775 | 4a90 fff8 tst.l ais - |
| 776 | 4a98 fff8 tst.l aips - |
| 777 | 4aa0 fff8 tst.l pais - |
| 778 | 4aa8 fff8 tst.l das - |
| 779 | 4ab0 fff8 tst.l dais - |
| 780 | 4ab8 ffff tst.l adr16 - |
| 781 | 4ab9 ffff tst.l adr32 - |
| 782 | 4aba ffff tst.l dpc - |
| 783 | 4abb ffff tst.l dpci - |
| 784 | 4ac0 fff8 tas ds - |
| 785 | 4ad0 fff8 tas ais - |
| 786 | 4ad8 fff8 tas aips - |
| 787 | 4ae0 fff8 tas pais - |
| 788 | 4ae8 fff8 tas das - |
| 789 | 4af0 fff8 tas dais - |
| 790 | 4af8 ffff tas adr16 - |
| 791 | 4af9 ffff tas adr32 - |
| 792 | 4afc ffff illegal - - |
| 793 | 4c90 fff8 movem.w ais list |
| 794 | 4c98 fff8 movem.w aips list |
| 795 | 4ca8 fff8 movem.w das list |
| 796 | 4cb0 fff8 movem.w dais list |
| 797 | 4cb8 ffff movem.w adr16 list |
| 798 | 4cb9 ffff movem.w adr32 list |
| 799 | 4cba ffff movem.w dpc list |
| 800 | 4cbb ffff movem.w dpci list |
| 801 | 4cd0 fff8 movem.l ais list |
| 802 | 4cd8 fff8 movem.l aips list |
| 803 | 4ce8 fff8 movem.l das list |
| 804 | 4cf0 fff8 movem.l dais list |
| 805 | 4cf8 ffff movem.l adr16 list |
| 806 | 4cf9 ffff movem.l adr32 list |
| 807 | 4cfa ffff movem.l dpc list |
| 808 | 4cfb ffff movem.l dpci list |
| 809 | 4e40 fff0 trap imm4 - |
| 810 | 4e50 fff8 link as imm16 |
| 811 | 4e58 fff8 unlk as - |
| 812 | 4e60 fff8 move as usp |
| 813 | 4e68 fff8 move usp as |
| 814 | |
| 815 | # Add callback |
| 816 | 4e70 ffff reset - - |
| 817 | icount -= 128; |
| 818 | // Prefetch is known to be redone by reset |
| 819 | prefetch 2 2 |
| 820 | prefetch_last 2 0 |
| 821 | |
| 822 | 4e71 ffff nop - - |
| 823 | prefetch_last 2 2 |
| 824 | |
| 825 | 4e72 ffff stop i16u - |
| 826 | 4e73 ffff rte - - |
| 827 | 4e75 ffff rts - - |
| 828 | 4e76 ffff trapv - - |
| 829 | 4e77 ffff rtr - - |
| 830 | 4e90 fff8 jsr ais - |
| 831 | 4ea8 fff8 jsr das - |
| 832 | 4eb0 fff8 jsr dais - |
| 833 | 4eb8 ffff jsr adr16 - |
| 834 | 4eb9 ffff jsr adr32 - |
| 835 | 4eba ffff jsr dpc - |
| 836 | 4ebb ffff jsr dpci - |
| 837 | 4ed0 fff8 jmp ais - |
| 838 | 4ee8 fff8 jmp das - |
| 839 | 4ef0 fff8 jmp dais - |
| 840 | 4ef8 ffff jmp adr16 - |
| 841 | 4ef9 ffff jmp adr32 - |
| 842 | 4efa ffff jmp dpc - |
| 843 | 4efb ffff jmp dpci - |
| 844 | 5000 f1f8 addq.b imm3 ds |
| 845 | 5008 f1f8 addq.b imm3 as |
| 846 | 5010 f1f8 addq.b imm3 ais |
| 847 | 5018 f1f8 addq.b imm3 aips |
| 848 | 5020 f1f8 addq.b imm3 pais |
| 849 | 5028 f1f8 addq.b imm3 das |
| 850 | 5030 f1f8 addq.b imm3 dais |
| 851 | 5038 f1ff addq.b imm3 adr16 |
| 852 | 5039 f1ff addq.b imm3 adr32 |
| 853 | 5040 f1f8 addq.w imm3 ds |
| 854 | 5048 f1f8 addq.w imm3 as |
| 855 | 5050 f1f8 addq.w imm3 ais |
| 856 | 5058 f1f8 addq.w imm3 aips |
| 857 | 5060 f1f8 addq.w imm3 pais |
| 858 | 5068 f1f8 addq.w imm3 das |
| 859 | 5070 f1f8 addq.w imm3 dais |
| 860 | 5078 f1ff addq.w imm3 adr16 |
| 861 | 5079 f1ff addq.w imm3 adr32 |
| 862 | 5080 f1f8 addq.l imm3 ds |
| 863 | 5088 f1f8 addq.l imm3 as |
| 864 | 5090 f1f8 addq.l imm3 ais |
| 865 | 5098 f1f8 addq.l imm3 aips |
| 866 | 50a0 f1f8 addq.l imm3 pais |
| 867 | 50a8 f1f8 addq.l imm3 das |
| 868 | 50b0 f1f8 addq.l imm3 dais |
| 869 | 50b8 f1ff addq.l imm3 adr16 |
| 870 | 50b9 f1ff addq.l imm3 adr32 |
| 871 | 50c0 fff8 st ds - |
| 872 | 50c8 fff8 dbt ds rel16 |
| 873 | 50d0 fff8 st ais - |
| 874 | 50d8 fff8 st aips - |
| 875 | 50e0 fff8 st pais - |
| 876 | 50e8 fff8 st das - |
| 877 | 50f0 fff8 st dais - |
| 878 | 50f8 ffff st adr16 - |
| 879 | 50f9 ffff st adr32 - |
| 880 | 5100 f1f8 subq.b imm3 ds |
| 881 | 5108 f1f8 subq.b imm3 as |
| 882 | 5110 f1f8 subq.b imm3 ais |
| 883 | 5118 f1f8 subq.b imm3 aips |
| 884 | 5120 f1f8 subq.b imm3 pais |
| 885 | 5128 f1f8 subq.b imm3 das |
| 886 | 5130 f1f8 subq.b imm3 dais |
| 887 | 5138 f1ff subq.b imm3 adr16 |
| 888 | 5139 f1ff subq.b imm3 adr32 |
| 889 | 5140 f1f8 subq.w imm3 ds |
| 890 | 5148 f1f8 subq.w imm3 as |
| 891 | 5150 f1f8 subq.w imm3 ais |
| 892 | 5158 f1f8 subq.w imm3 aips |
| 893 | 5160 f1f8 subq.w imm3 pais |
| 894 | 5168 f1f8 subq.w imm3 das |
| 895 | 5170 f1f8 subq.w imm3 dais |
| 896 | 5178 f1ff subq.w imm3 adr16 |
| 897 | 5179 f1ff subq.w imm3 adr32 |
| 898 | 5180 f1f8 subq.l imm3 ds |
| 899 | 5188 f1f8 subq.l imm3 as |
| 900 | 5190 f1f8 subq.l imm3 ais |
| 901 | 5198 f1f8 subq.l imm3 aips |
| 902 | 51a0 f1f8 subq.l imm3 pais |
| 903 | 51a8 f1f8 subq.l imm3 das |
| 904 | 51b0 f1f8 subq.l imm3 dais |
| 905 | 51b8 f1ff subq.l imm3 adr16 |
| 906 | 51b9 f1ff subq.l imm3 adr32 |
| 907 | 51c0 fff8 sf ds - |
| 908 | 51c8 fff8 dbra ds rel16 |
| 909 | 51d0 fff8 sf ais - |
| 910 | 51d8 fff8 sf aips - |
| 911 | 51e0 fff8 sf pais - |
| 912 | 51e8 fff8 sf das - |
| 913 | 51f0 fff8 sf dais - |
| 914 | 51f8 ffff sf adr16 - |
| 915 | 51f9 ffff sf adr32 - |
| 916 | 52c0 fff8 shi ds - |
| 917 | 52c8 fff8 dbhi ds rel16 |
| 918 | 52d0 fff8 shi ais - |
| 919 | 52d8 fff8 shi aips - |
| 920 | 52e0 fff8 shi pais - |
| 921 | 52e8 fff8 shi das - |
| 922 | 52f0 fff8 shi dais - |
| 923 | 52f8 ffff shi adr16 - |
| 924 | 52f9 ffff shi adr32 - |
| 925 | 53c0 fff8 sls ds - |
| 926 | 53c8 fff8 dbls ds rel16 |
| 927 | 53d0 fff8 sls ais - |
| 928 | 53d8 fff8 sls aips - |
| 929 | 53e0 fff8 sls pais - |
| 930 | 53e8 fff8 sls das - |
| 931 | 53f0 fff8 sls dais - |
| 932 | 53f8 ffff sls adr16 - |
| 933 | 53f9 ffff sls adr32 - |
| 934 | 54c0 fff8 scc ds - |
| 935 | 54c8 fff8 dbcc ds rel16 |
| 936 | 54d0 fff8 scc ais - |
| 937 | 54d8 fff8 scc aips - |
| 938 | 54e0 fff8 scc pais - |
| 939 | 54e8 fff8 scc das - |
| 940 | 54f0 fff8 scc dais - |
| 941 | 54f8 ffff scc adr16 - |
| 942 | 54f9 ffff scc adr32 - |
| 943 | 55c0 fff8 scs ds - |
| 944 | 55c8 fff8 dbcs ds rel16 |
| 945 | 55d0 fff8 scs ais - |
| 946 | 55d8 fff8 scs aips - |
| 947 | 55e0 fff8 scs pais - |
| 948 | 55e8 fff8 scs das - |
| 949 | 55f0 fff8 scs dais - |
| 950 | 55f8 ffff scs adr16 - |
| 951 | 55f9 ffff scs adr32 - |
| 952 | 56c0 fff8 sne ds - |
| 953 | 56c8 fff8 dbne ds rel16 |
| 954 | 56d0 fff8 sne ais - |
| 955 | 56d8 fff8 sne aips - |
| 956 | 56e0 fff8 sne pais - |
| 957 | 56e8 fff8 sne das - |
| 958 | 56f0 fff8 sne dais - |
| 959 | 56f8 ffff sne adr16 - |
| 960 | 56f9 ffff sne adr32 - |
| 961 | 57c0 fff8 seq ds - |
| 962 | 57c8 fff8 dbeq ds rel16 |
| 963 | 57d0 fff8 seq ais - |
| 964 | 57d8 fff8 seq aips - |
| 965 | 57e0 fff8 seq pais - |
| 966 | 57e8 fff8 seq das - |
| 967 | 57f0 fff8 seq dais - |
| 968 | 57f8 ffff seq adr16 - |
| 969 | 57f9 ffff seq adr32 - |
| 970 | 58c0 fff8 svc ds - |
| 971 | 58c8 fff8 dbvc ds rel16 |
| 972 | 58d0 fff8 svc ais - |
| 973 | 58d8 fff8 svc aips - |
| 974 | 58e0 fff8 svc pais - |
| 975 | 58e8 fff8 svc das - |
| 976 | 58f0 fff8 svc dais - |
| 977 | 58f8 ffff svc adr16 - |
| 978 | 58f9 ffff svc adr32 - |
| 979 | 59c0 fff8 svs ds - |
| 980 | 59c8 fff8 dbvs ds rel16 |
| 981 | 59d0 fff8 svs ais - |
| 982 | 59d8 fff8 svs aips - |
| 983 | 59e0 fff8 svs pais - |
| 984 | 59e8 fff8 svs das - |
| 985 | 59f0 fff8 svs dais - |
| 986 | 59f8 ffff svs adr16 - |
| 987 | 59f9 ffff svs adr32 - |
| 988 | 5ac0 fff8 spl ds - |
| 989 | 5ac8 fff8 dbpl ds rel16 |
| 990 | 5ad0 fff8 spl ais - |
| 991 | 5ad8 fff8 spl aips - |
| 992 | 5ae0 fff8 spl pais - |
| 993 | 5ae8 fff8 spl das - |
| 994 | 5af0 fff8 spl dais - |
| 995 | 5af8 ffff spl adr16 - |
| 996 | 5af9 ffff spl adr32 - |
| 997 | 5bc0 fff8 smi ds - |
| 998 | 5bc8 fff8 dbmi ds rel16 |
| 999 | 5bd0 fff8 smi ais - |
| 1000 | 5bd8 fff8 smi aips - |
| 1001 | 5be0 fff8 smi pais - |
| 1002 | 5be8 fff8 smi das - |
| 1003 | 5bf0 fff8 smi dais - |
| 1004 | 5bf8 ffff smi adr16 - |
| 1005 | 5bf9 ffff smi adr32 - |
| 1006 | 5cc0 fff8 sge ds - |
| 1007 | 5cc8 fff8 dbge ds rel16 |
| 1008 | 5cd0 fff8 sge ais - |
| 1009 | 5cd8 fff8 sge aips - |
| 1010 | 5ce0 fff8 sge pais - |
| 1011 | 5ce8 fff8 sge das - |
| 1012 | 5cf0 fff8 sge dais - |
| 1013 | 5cf8 ffff sge adr16 - |
| 1014 | 5cf9 ffff sge adr32 - |
| 1015 | 5dc0 fff8 slt ds - |
| 1016 | 5dc8 fff8 dblt ds rel16 |
| 1017 | 5dd0 fff8 slt ais - |
| 1018 | 5dd8 fff8 slt aips - |
| 1019 | 5de0 fff8 slt pais - |
| 1020 | 5de8 fff8 slt das - |
| 1021 | 5df0 fff8 slt dais - |
| 1022 | 5df8 ffff slt adr16 - |
| 1023 | 5df9 ffff slt adr32 - |
| 1024 | 5ec0 fff8 sgt ds - |
| 1025 | 5ec8 fff8 dbgt ds rel16 |
| 1026 | 5ed0 fff8 sgt ais - |
| 1027 | 5ed8 fff8 sgt aips - |
| 1028 | 5ee0 fff8 sgt pais - |
| 1029 | 5ee8 fff8 sgt das - |
| 1030 | 5ef0 fff8 sgt dais - |
| 1031 | 5ef8 ffff sgt adr16 - |
| 1032 | 5ef9 ffff sgt adr32 - |
| 1033 | 5fc0 fff8 sle ds - |
| 1034 | 5fc8 fff8 dble ds rel16 |
| 1035 | 5fd0 fff8 sle ais - |
| 1036 | 5fd8 fff8 sle aips - |
| 1037 | 5fe0 fff8 sle pais - |
| 1038 | 5fe8 fff8 sle das - |
| 1039 | 5ff0 fff8 sle dais - |
| 1040 | 5ff8 ffff sle adr16 - |
| 1041 | 5ff9 ffff sle adr32 - |
| 1042 | 6000 ff00 bra rel8 - |
| 1043 | 6100 ff00 bsr rel8 - |
| 1044 | 6200 ff00 bhi rel8 - |
| 1045 | 6300 ff00 bls rel8 - |
| 1046 | 6400 ff00 bcc rel8 - |
| 1047 | 6500 ff00 bcs rel8 - |
| 1048 | 6600 ff00 bne rel8 - |
| 1049 | 6700 ff00 beq rel8 - |
| 1050 | 6800 ff00 bvc rel8 - |
| 1051 | 6900 ff00 bvs rel8 - |
| 1052 | 6a00 ff00 bpl rel8 - |
| 1053 | 6b00 ff00 bmi rel8 - |
| 1054 | 6c00 ff00 bge rel8 - |
| 1055 | 6d00 ff00 blt rel8 - |
| 1056 | 6e00 ff00 bgt rel8 - |
| 1057 | 6f00 ff00 ble rel8 - |
| 1058 | 7000 f100 moveq imm8o dd |
| 1059 | 8000 f1f8 or.b ds dd |
| 1060 | 8010 f1f8 or.b ais dd |
| 1061 | 8018 f1f8 or.b aips dd |
| 1062 | 8020 f1f8 or.b pais dd |
| 1063 | 8028 f1f8 or.b das dd |
| 1064 | 8030 f1f8 or.b dais dd |
| 1065 | 8038 f1ff or.b adr16 dd |
| 1066 | 8039 f1ff or.b adr32 dd |
| 1067 | 803a f1ff or.b dpc dd |
| 1068 | 803b f1ff or.b dpci dd |
| 1069 | 803c f1ff or.b imm8 dd |
| 1070 | 8040 f1f8 or.w ds dd |
| 1071 | 8050 f1f8 or.w ais dd |
| 1072 | 8058 f1f8 or.w aips dd |
| 1073 | 8060 f1f8 or.w pais dd |
| 1074 | 8068 f1f8 or.w das dd |
| 1075 | 8070 f1f8 or.w dais dd |
| 1076 | 8078 f1ff or.w adr16 dd |
| 1077 | 8079 f1ff or.w adr32 dd |
| 1078 | 807a f1ff or.w dpc dd |
| 1079 | 807b f1ff or.w dpci dd |
| 1080 | 807c f1ff or.w imm16 dd |
| 1081 | 8080 f1f8 or.l ds dd |
| 1082 | 8090 f1f8 or.l ais dd |
| 1083 | 8098 f1f8 or.l aips dd |
| 1084 | 80a0 f1f8 or.l pais dd |
| 1085 | 80a8 f1f8 or.l das dd |
| 1086 | 80b0 f1f8 or.l dais dd |
| 1087 | 80b8 f1ff or.l adr16 dd |
| 1088 | 80b9 f1ff or.l adr32 dd |
| 1089 | 80ba f1ff or.l dpc dd |
| 1090 | 80bb f1ff or.l dpci dd |
| 1091 | 80bc f1ff or.l imm32 dd |
| 1092 | 80c0 f1f8 divu.w ds dd |
| 1093 | 80d0 f1f8 divu.w ais dd |
| 1094 | 80d8 f1f8 divu.w aips dd |
| 1095 | 80e0 f1f8 divu.w pais dd |
| 1096 | 80e8 f1f8 divu.w das dd |
| 1097 | 80f0 f1f8 divu.w dais dd |
| 1098 | 80f8 f1ff divu.w adr16 dd |
| 1099 | 80f9 f1ff divu.w adr32 dd |
| 1100 | 80fa f1ff divu.w dpc dd |
| 1101 | 80fb f1ff divu.w dpci dd |
| 1102 | 80fc f1ff divu.w imm16 dd |
| 1103 | 8100 f1f8 sbcd ds dd |
| 1104 | 8108 f1f8 sbcd pais paid |
| 1105 | 8110 f1f8 or.b dd ais |
| 1106 | 8118 f1f8 or.b dd aips |
| 1107 | 8120 f1f8 or.b dd pais |
| 1108 | 8128 f1f8 or.b dd das |
| 1109 | 8130 f1f8 or.b dd dais |
| 1110 | 8138 f1ff or.b dd adr16 |
| 1111 | 8139 f1ff or.b dd adr32 |
| 1112 | 8150 f1f8 or.w dd ais |
| 1113 | 8158 f1f8 or.w dd aips |
| 1114 | 8160 f1f8 or.w dd pais |
| 1115 | 8168 f1f8 or.w dd das |
| 1116 | 8170 f1f8 or.w dd dais |
| 1117 | 8178 f1ff or.w dd adr16 |
| 1118 | 8179 f1ff or.w dd adr32 |
| 1119 | 8190 f1f8 or.l dd ais |
| 1120 | 8198 f1f8 or.l dd aips |
| 1121 | 81a0 f1f8 or.l dd pais |
| 1122 | 81a8 f1f8 or.l dd das |
| 1123 | 81b0 f1f8 or.l dd dais |
| 1124 | 81b8 f1ff or.l dd adr16 |
| 1125 | 81b9 f1ff or.l dd adr32 |
| 1126 | 81c0 f1f8 divs.w ds dd |
| 1127 | 81d0 f1f8 divs.w ais dd |
| 1128 | 81d8 f1f8 divs.w aips dd |
| 1129 | 81e0 f1f8 divs.w pais dd |
| 1130 | 81e8 f1f8 divs.w das dd |
| 1131 | 81f0 f1f8 divs.w dais dd |
| 1132 | 81f8 f1ff divs.w adr16 dd |
| 1133 | 81f9 f1ff divs.w adr32 dd |
| 1134 | 81fa f1ff divs.w dpc dd |
| 1135 | 81fb f1ff divs.w dpci dd |
| 1136 | 81fc f1ff divs.w imm16 dd |
| 1137 | |
| 1138 | 9000 f1f8 sub.b ds dd |
| 1139 | 9010 f1f8 sub.b ais dd |
| 1140 | 9018 f1f8 sub.b aips dd |
| 1141 | 9020 f1f8 sub.b pais dd |
| 1142 | 9028 f1f8 sub.b das dd |
| 1143 | 9030 f1f8 sub.b dais dd |
| 1144 | 9038 f1ff sub.b adr16 dd |
| 1145 | 9039 f1ff sub.b adr32 dd |
| 1146 | 903a f1ff sub.b dpc dd |
| 1147 | 903b f1ff sub.b dpci dd |
| 1148 | 903c f1ff sub.b imm8 dd |
| 1149 | 9040 f1f8 sub.w ds dd |
| 1150 | 9048 f1f8 sub.w as dd |
| 1151 | 9050 f1f8 sub.w ais dd |
| 1152 | 9058 f1f8 sub.w aips dd |
| 1153 | 9060 f1f8 sub.w pais dd |
| 1154 | 9068 f1f8 sub.w das dd |
| 1155 | 9070 f1f8 sub.w dais dd |
| 1156 | 9078 f1ff sub.w adr16 dd |
| 1157 | 9079 f1ff sub.w adr32 dd |
| 1158 | 907a f1ff sub.w dpc dd |
| 1159 | 907b f1ff sub.w dpci dd |
| 1160 | 907c f1ff sub.w imm16 dd |
| 1161 | 9080 f1f8 sub.l ds dd |
| 1162 | 9088 f1f8 sub.l as dd |
| 1163 | 9090 f1f8 sub.l ais dd |
| 1164 | 9098 f1f8 sub.l aips dd |
| 1165 | 90a0 f1f8 sub.l pais dd |
| 1166 | 90a8 f1f8 sub.l das dd |
| 1167 | 90b0 f1f8 sub.l dais dd |
| 1168 | 90b8 f1ff sub.l adr16 dd |
| 1169 | 90b9 f1ff sub.l adr32 dd |
| 1170 | 90ba f1ff sub.l dpc dd |
| 1171 | 90bb f1ff sub.l dpci dd |
| 1172 | 90bc f1ff sub.l imm32 dd |
| 1173 | 90c0 f1f8 suba.w ds ad |
| 1174 | 90c8 f1f8 suba.w as ad |
| 1175 | 90d0 f1f8 suba.w ais ad |
| 1176 | 90d8 f1f8 suba.w aips ad |
| 1177 | 90e0 f1f8 suba.w pais ad |
| 1178 | 90e8 f1f8 suba.w das ad |
| 1179 | 90f0 f1f8 suba.w dais ad |
| 1180 | 90f8 f1ff suba.w adr16 ad |
| 1181 | 90f9 f1ff suba.w adr32 ad |
| 1182 | 90fa f1ff suba.w dpc ad |
| 1183 | 90fb f1ff suba.w dpci ad |
| 1184 | 90fc f1ff suba.w imm16 ad |
| 1185 | 9100 f1f8 subx.b ds dd |
| 1186 | 9108 f1f8 subx.b pais paid |
| 1187 | 9110 f1f8 sub.b dd ais |
| 1188 | 9118 f1f8 sub.b dd aips |
| 1189 | 9120 f1f8 sub.b dd pais |
| 1190 | 9128 f1f8 sub.b dd das |
| 1191 | 9130 f1f8 sub.b dd dais |
| 1192 | 9138 f1ff sub.b dd adr16 |
| 1193 | 9139 f1ff sub.b dd adr32 |
| 1194 | 9140 f1f8 subx.w ds dd |
| 1195 | 9148 f1f8 subx.w pais paid |
| 1196 | 9150 f1f8 sub.w dd ais |
| 1197 | 9158 f1f8 sub.w dd aips |
| 1198 | 9160 f1f8 sub.w dd pais |
| 1199 | 9168 f1f8 sub.w dd das |
| 1200 | 9170 f1f8 sub.w dd dais |
| 1201 | 9178 f1ff sub.w dd adr16 |
| 1202 | 9179 f1ff sub.w dd adr32 |
| 1203 | 9180 f1f8 subx.l ds dd |
| 1204 | 9188 f1f8 subx.l pais paid |
| 1205 | 9190 f1f8 sub.l dd ais |
| 1206 | 9198 f1f8 sub.l dd aips |
| 1207 | 91a0 f1f8 sub.l dd pais |
| 1208 | 91a8 f1f8 sub.l dd das |
| 1209 | 91b0 f1f8 sub.l dd dais |
| 1210 | 91b8 f1ff sub.l dd adr16 |
| 1211 | 91b9 f1ff sub.l dd adr32 |
| 1212 | 91c0 f1f8 suba.l ds ad |
| 1213 | 91c8 f1f8 suba.l as ad |
| 1214 | 91d0 f1f8 suba.l ais ad |
| 1215 | 91d8 f1f8 suba.l aips ad |
| 1216 | 91e0 f1f8 suba.l pais ad |
| 1217 | 91e8 f1f8 suba.l das ad |
| 1218 | 91f0 f1f8 suba.l dais ad |
| 1219 | 91f8 f1ff suba.l adr16 ad |
| 1220 | 91f9 f1ff suba.l adr32 ad |
| 1221 | 91fa f1ff suba.l dpc ad |
| 1222 | 91fb f1ff suba.l dpci ad |
| 1223 | 91fc f1ff suba.l imm32 ad |
| 1224 | a000 f000 linea imm12 - |
| 1225 | b000 f1f8 cmp.b ds dd |
| 1226 | b010 f1f8 cmp.b ais dd |
| 1227 | b018 f1f8 cmp.b aips dd |
| 1228 | b020 f1f8 cmp.b pais dd |
| 1229 | b028 f1f8 cmp.b das dd |
| 1230 | b030 f1f8 cmp.b dais dd |
| 1231 | b038 f1ff cmp.b adr16 dd |
| 1232 | b039 f1ff cmp.b adr32 dd |
| 1233 | b03a f1ff cmp.b dpc dd |
| 1234 | b03b f1ff cmp.b dpci dd |
| 1235 | b03c f1ff cmp.b imm8 dd |
| 1236 | b040 f1f8 cmp.w ds dd |
| 1237 | b048 f1f8 cmp.w as dd |
| 1238 | b050 f1f8 cmp.w ais dd |
| 1239 | b058 f1f8 cmp.w aips dd |
| 1240 | b060 f1f8 cmp.w pais dd |
| 1241 | b068 f1f8 cmp.w das dd |
| 1242 | b070 f1f8 cmp.w dais dd |
| 1243 | b078 f1ff cmp.w adr16 dd |
| 1244 | b079 f1ff cmp.w adr32 dd |
| 1245 | b07a f1ff cmp.w dpc dd |
| 1246 | b07b f1ff cmp.w dpci dd |
| 1247 | b07c f1ff cmp.w imm16 dd |
| 1248 | b080 f1f8 cmp.l ds dd |
| 1249 | b088 f1f8 cmp.l as dd |
| 1250 | b090 f1f8 cmp.l ais dd |
| 1251 | b098 f1f8 cmp.l aips dd |
| 1252 | b0a0 f1f8 cmp.l pais dd |
| 1253 | b0a8 f1f8 cmp.l das dd |
| 1254 | b0b0 f1f8 cmp.l dais dd |
| 1255 | b0b8 f1ff cmp.l adr16 dd |
| 1256 | b0b9 f1ff cmp.l adr32 dd |
| 1257 | b0ba f1ff cmp.l dpc dd |
| 1258 | b0bb f1ff cmp.l dpci dd |
| 1259 | b0bc f1ff cmp.l imm32 dd |
| 1260 | b0c0 f1f8 cmpa.w ds ad |
| 1261 | b0c8 f1f8 cmpa.w as ad |
| 1262 | b0d0 f1f8 cmpa.w ais ad |
| 1263 | b0d8 f1f8 cmpa.w aips ad |
| 1264 | b0e0 f1f8 cmpa.w pais ad |
| 1265 | b0e8 f1f8 cmpa.w das ad |
| 1266 | b0f0 f1f8 cmpa.w dais ad |
| 1267 | b0f8 f1ff cmpa.w adr16 ad |
| 1268 | b0f9 f1ff cmpa.w adr32 ad |
| 1269 | b0fa f1ff cmpa.w dpc ad |
| 1270 | b0fb f1ff cmpa.w dpci ad |
| 1271 | b0fc f1ff cmpa.w imm16 ad |
| 1272 | b100 f1f8 eor.b dd ds |
| 1273 | b108 f1f8 cmpm.b aips aipd |
| 1274 | b110 f1f8 eor.b dd ais |
| 1275 | b118 f1f8 eor.b dd aips |
| 1276 | b120 f1f8 eor.b dd pais |
| 1277 | b128 f1f8 eor.b dd das |
| 1278 | b130 f1f8 eor.b dd dais |
| 1279 | b138 f1ff eor.b dd adr16 |
| 1280 | b139 f1ff eor.b dd adr32 |
| 1281 | b140 f1f8 eor.w dd ds |
| 1282 | b148 f1f8 cmpm.w aips aipd |
| 1283 | b150 f1f8 eor.w dd ais |
| 1284 | b158 f1f8 eor.w dd aips |
| 1285 | b160 f1f8 eor.w dd pais |
| 1286 | b168 f1f8 eor.w dd das |
| 1287 | b170 f1f8 eor.w dd dais |
| 1288 | b178 f1ff eor.w dd adr16 |
| 1289 | b179 f1ff eor.w dd adr32 |
| 1290 | b180 f1f8 eor.l dd ds |
| 1291 | b188 f1f8 cmpm.l aips aipd |
| 1292 | b190 f1f8 eor.l dd ais |
| 1293 | b198 f1f8 eor.l dd aips |
| 1294 | b1a0 f1f8 eor.l dd pais |
| 1295 | b1a8 f1f8 eor.l dd das |
| 1296 | b1b0 f1f8 eor.l dd dais |
| 1297 | b1b8 f1ff eor.l dd adr16 |
| 1298 | b1b9 f1ff eor.l dd adr32 |
| 1299 | b1c0 f1f8 cmpa.l ds ad |
| 1300 | b1c8 f1f8 cmpa.l as ad |
| 1301 | b1d0 f1f8 cmpa.l ais ad |
| 1302 | b1d8 f1f8 cmpa.l aips ad |
| 1303 | b1e0 f1f8 cmpa.l pais ad |
| 1304 | b1e8 f1f8 cmpa.l das ad |
| 1305 | b1f0 f1f8 cmpa.l dais ad |
| 1306 | b1f8 f1ff cmpa.l adr16 ad |
| 1307 | b1f9 f1ff cmpa.l adr32 ad |
| 1308 | b1fa f1ff cmpa.l dpc ad |
| 1309 | b1fb f1ff cmpa.l dpci ad |
| 1310 | b1fc f1ff cmpa.l imm32 ad |
| 1311 | c000 f1f8 and.b ds dd |
| 1312 | c010 f1f8 and.b ais dd |
| 1313 | c018 f1f8 and.b aips dd |
| 1314 | c020 f1f8 and.b pais dd |
| 1315 | c028 f1f8 and.b das dd |
| 1316 | c030 f1f8 and.b dais dd |
| 1317 | c038 f1ff and.b adr16 dd |
| 1318 | c039 f1ff and.b adr32 dd |
| 1319 | c03a f1ff and.b dpc dd |
| 1320 | c03b f1ff and.b dpci dd |
| 1321 | c03c f1ff and.b imm8 dd |
| 1322 | c040 f1f8 and.w ds dd |
| 1323 | c050 f1f8 and.w ais dd |
| 1324 | c058 f1f8 and.w aips dd |
| 1325 | c060 f1f8 and.w pais dd |
| 1326 | c068 f1f8 and.w das dd |
| 1327 | c070 f1f8 and.w dais dd |
| 1328 | c078 f1ff and.w adr16 dd |
| 1329 | c079 f1ff and.w adr32 dd |
| 1330 | c07a f1ff and.w dpc dd |
| 1331 | c07b f1ff and.w dpci dd |
| 1332 | c07c f1ff and.w imm16 dd |
| 1333 | c080 f1f8 and.l ds dd |
| 1334 | c090 f1f8 and.l ais dd |
| 1335 | c098 f1f8 and.l aips dd |
| 1336 | c0a0 f1f8 and.l pais dd |
| 1337 | c0a8 f1f8 and.l das dd |
| 1338 | c0b0 f1f8 and.l dais dd |
| 1339 | c0b8 f1ff and.l adr16 dd |
| 1340 | c0b9 f1ff and.l adr32 dd |
| 1341 | c0ba f1ff and.l dpc dd |
| 1342 | c0bb f1ff and.l dpci dd |
| 1343 | c0bc f1ff and.l imm32 dd |
| 1344 | c0c0 f1f8 mulu.w ds dd |
| 1345 | c0d0 f1f8 mulu.w ais dd |
| 1346 | c0d8 f1f8 mulu.w aips dd |
| 1347 | c0e0 f1f8 mulu.w pais dd |
| 1348 | c0e8 f1f8 mulu.w das dd |
| 1349 | c0f0 f1f8 mulu.w dais dd |
| 1350 | c0f8 f1ff mulu.w adr16 dd |
| 1351 | c0f9 f1ff mulu.w adr32 dd |
| 1352 | c0fa f1ff mulu.w dpc dd |
| 1353 | c0fb f1ff mulu.w dpci dd |
| 1354 | c0fc f1ff mulu.w imm16 dd |
| 1355 | c100 f1f8 abcd ds dd |
| 1356 | c108 f1f8 abcd pais paid |
| 1357 | c110 f1f8 and.b dd ais |
| 1358 | c118 f1f8 and.b dd aips |
| 1359 | c120 f1f8 and.b dd pais |
| 1360 | c128 f1f8 and.b dd das |
| 1361 | c130 f1f8 and.b dd dais |
| 1362 | c138 f1ff and.b dd adr16 |
| 1363 | c139 f1ff and.b dd adr32 |
| 1364 | c140 f1ff exg dd ds |
| 1365 | c148 f1ff exg ad as |
| 1366 | c150 f1f8 and.w dd ais |
| 1367 | c158 f1f8 and.w dd aips |
| 1368 | c160 f1f8 and.w dd pais |
| 1369 | c168 f1f8 and.w dd das |
| 1370 | c170 f1f8 and.w dd dais |
| 1371 | c178 f1ff and.w dd adr16 |
| 1372 | c179 f1ff and.w dd adr32 |
| 1373 | c188 f1ff exg dd as |
| 1374 | c190 f1f8 and.l dd ais |
| 1375 | c198 f1f8 and.l dd aips |
| 1376 | c1a0 f1f8 and.l dd pais |
| 1377 | c1a8 f1f8 and.l dd das |
| 1378 | c1b0 f1f8 and.l dd dais |
| 1379 | c1b8 f1ff and.l dd adr16 |
| 1380 | c1b9 f1ff and.l dd adr32 |
| 1381 | c1c0 f1f8 muls.w ds dd |
| 1382 | c1d0 f1f8 muls.w ais dd |
| 1383 | c1d8 f1f8 muls.w aips dd |
| 1384 | c1e0 f1f8 muls.w pais dd |
| 1385 | c1e8 f1f8 muls.w das dd |
| 1386 | c1f0 f1f8 muls.w dais dd |
| 1387 | c1f8 f1ff muls.w adr16 dd |
| 1388 | c1f9 f1ff muls.w adr32 dd |
| 1389 | c1fa f1ff muls.w dpc dd |
| 1390 | c1fb f1ff muls.w dpci dd |
| 1391 | c1fc f1ff muls.w imm16 dd |
| 1392 | d000 f1f8 add.b ds dd |
| 1393 | d010 f1f8 add.b ais dd |
| 1394 | d018 f1f8 add.b aips dd |
| 1395 | d020 f1f8 add.b pais dd |
| 1396 | d028 f1f8 add.b das dd |
| 1397 | d030 f1f8 add.b dais dd |
| 1398 | d038 f1ff add.b adr16 dd |
| 1399 | d039 f1ff add.b adr32 dd |
| 1400 | d03a f1ff add.b dpc dd |
| 1401 | d03b f1ff add.b dpci dd |
| 1402 | d03c f1ff add.b imm8 dd |
| 1403 | d040 f1f8 add.w ds dd |
| 1404 | d048 f1f8 add.w as dd |
| 1405 | d050 f1f8 add.w ais dd |
| 1406 | d058 f1f8 add.w aips dd |
| 1407 | d060 f1f8 add.w pais dd |
| 1408 | d068 f1f8 add.w das dd |
| 1409 | d070 f1f8 add.w dais dd |
| 1410 | d078 f1ff add.w adr16 dd |
| 1411 | d079 f1ff add.w adr32 dd |
| 1412 | d07a f1ff add.w dpc dd |
| 1413 | d07b f1ff add.w dpci dd |
| 1414 | d07c f1ff add.w imm16 dd |
| 1415 | d080 f1f8 add.l ds dd |
| 1416 | d088 f1f8 add.l as dd |
| 1417 | d090 f1f8 add.l ais dd |
| 1418 | d098 f1f8 add.l aips dd |
| 1419 | d0a0 f1f8 add.l pais dd |
| 1420 | d0a8 f1f8 add.l das dd |
| 1421 | d0b0 f1f8 add.l dais dd |
| 1422 | d0b8 f1ff add.l adr16 dd |
| 1423 | d0b9 f1ff add.l adr32 dd |
| 1424 | d0ba f1ff add.l dpc dd |
| 1425 | d0bb f1ff add.l dpci dd |
| 1426 | d0bc f1ff add.l imm32 dd |
| 1427 | d0c0 f1f8 adda.w ds ad |
| 1428 | d0c8 f1f8 adda.w as ad |
| 1429 | d0d0 f1f8 adda.w ais ad |
| 1430 | d0d8 f1f8 adda.w aips ad |
| 1431 | d0e0 f1f8 adda.w pais ad |
| 1432 | d0e8 f1f8 adda.w das ad |
| 1433 | d0f0 f1f8 adda.w dais ad |
| 1434 | d0f8 f1ff adda.w adr16 ad |
| 1435 | d0f9 f1ff adda.w adr32 ad |
| 1436 | d0fa f1ff adda.w dpc ad |
| 1437 | d0fb f1ff adda.w dpci ad |
| 1438 | d0fc f1ff adda.w imm16 ad |
| 1439 | d100 f1f8 addx.b ds dd |
| 1440 | d108 f1f8 addx.b pais paid |
| 1441 | d110 f1f8 add.b dd ais |
| 1442 | d118 f1f8 add.b dd aips |
| 1443 | d120 f1f8 add.b dd pais |
| 1444 | d128 f1f8 add.b dd das |
| 1445 | d130 f1f8 add.b dd dais |
| 1446 | d138 f1ff add.b dd adr16 |
| 1447 | d139 f1ff add.b dd adr32 |
| 1448 | d140 f1f8 addx.w ds dd |
| 1449 | d148 f1f8 addx.w pais paid |
| 1450 | d150 f1f8 add.w dd ais |
| 1451 | d158 f1f8 add.w dd aips |
| 1452 | d160 f1f8 add.w dd pais |
| 1453 | d168 f1f8 add.w dd das |
| 1454 | d170 f1f8 add.w dd dais |
| 1455 | d178 f1ff add.w dd adr16 |
| 1456 | d179 f1ff add.w dd adr32 |
| 1457 | d180 f1f8 addx.l ds dd |
| 1458 | d188 f1f8 addx.l pais paid |
| 1459 | d190 f1f8 add.l dd ais |
| 1460 | d198 f1f8 add.l dd aips |
| 1461 | d1a0 f1f8 add.l dd pais |
| 1462 | d1a8 f1f8 add.l dd das |
| 1463 | d1b0 f1f8 add.l dd dais |
| 1464 | d1b8 f1ff add.l dd adr16 |
| 1465 | d1b9 f1ff add.l dd adr32 |
| 1466 | d1c0 f1f8 adda.l ds ad |
| 1467 | d1c8 f1f8 adda.l as ad |
| 1468 | d1d0 f1f8 adda.l ais ad |
| 1469 | d1d8 f1f8 adda.l aips ad |
| 1470 | d1e0 f1f8 adda.l pais ad |
| 1471 | d1e8 f1f8 adda.l das ad |
| 1472 | d1f0 f1f8 adda.l dais ad |
| 1473 | d1f8 f1ff adda.l adr16 ad |
| 1474 | d1f9 f1ff adda.l adr32 ad |
| 1475 | d1fa f1ff adda.l dpc ad |
| 1476 | d1fb f1ff adda.l dpci ad |
| 1477 | d1fc f1ff adda.l imm32 ad |
| 1478 | e000 f1f8 asr.b imm3 ds |
| 1479 | e008 f1f8 lsr.b imm3 ds |
| 1480 | e010 f1f8 roxr.b imm3 ds |
| 1481 | e018 f1f8 ror.b imm3 ds |
| 1482 | e020 f1f8 asr.b dd ds |
| 1483 | e028 f1f8 lsr.b dd ds |
| 1484 | e030 f1f8 roxr.b dd ds |
| 1485 | e038 f1f8 ror.b dd ds |
| 1486 | e040 f1f8 asr.w imm3 ds |
| 1487 | e048 f1f8 lsr.w imm3 ds |
| 1488 | e050 f1f8 roxr.w imm3 ds |
| 1489 | e058 f1f8 ror.w imm3 ds |
| 1490 | e060 f1f8 asr.w dd ds |
| 1491 | e068 f1f8 lsr.w dd ds |
| 1492 | e070 f1f8 roxr.w dd ds |
| 1493 | e078 f1f8 ror.w dd ds |
| 1494 | e080 f1f8 asr.l imm3 ds |
| 1495 | e088 f1f8 lsr.l imm3 ds |
| 1496 | e090 f1f8 roxr.l imm3 ds |
| 1497 | e098 f1f8 ror.l imm3 ds |
| 1498 | e0a0 f1f8 asr.l dd ds |
| 1499 | e0a8 f1f8 lsr.l dd ds |
| 1500 | e0b0 f1f8 roxr.l dd ds |
| 1501 | e0b8 f1f8 ror.l dd ds |
| 1502 | e0d0 fff8 asr ais - |
| 1503 | e0d8 fff8 asr aips - |
| 1504 | e0e0 fff8 asr pais - |
| 1505 | e0e8 fff8 asr das - |
| 1506 | e0f0 fff8 asr dais - |
| 1507 | e0f8 ffff asr adr16 - |
| 1508 | e0f9 ffff asr adr32 - |
| 1509 | e100 f1f8 asl.b imm3 ds |
| 1510 | e108 f1f8 lsl.b imm3 ds |
| 1511 | e110 f1f8 roxl.b imm3 ds |
| 1512 | e118 f1f8 rol.b imm3 ds |
| 1513 | e120 f1f8 asl.b dd ds |
| 1514 | e128 f1f8 lsl.b dd ds |
| 1515 | e130 f1f8 roxl.b dd ds |
| 1516 | e138 f1f8 rol.b dd ds |
| 1517 | e140 f1f8 asl.w imm3 ds |
| 1518 | e148 f1f8 lsl.w imm3 ds |
| 1519 | e150 f1f8 roxl.w imm3 ds |
| 1520 | e158 f1f8 rol.w imm3 ds |
| 1521 | e160 f1f8 asl.w dd ds |
| 1522 | e168 f1f8 lsl.w dd ds |
| 1523 | e170 f1f8 roxl.w dd ds |
| 1524 | e178 f1f8 rol.w dd ds |
| 1525 | e180 f1f8 asl.l imm3 ds |
| 1526 | e188 f1f8 lsl.l imm3 ds |
| 1527 | e190 f1f8 roxl.l imm3 ds |
| 1528 | e198 f1f8 rol.l imm3 ds |
| 1529 | e1a0 f1f8 asl.l dd ds |
| 1530 | e1a8 f1f8 lsl.l dd ds |
| 1531 | e1b0 f1f8 roxl.l dd ds |
| 1532 | e1b8 f1f8 rol.l dd ds |
| 1533 | e1d0 fff8 asl ais - |
| 1534 | e1d8 fff8 asl aips - |
| 1535 | e1e0 fff8 asl pais - |
| 1536 | e1e8 fff8 asl das - |
| 1537 | e1f0 fff8 asl dais - |
| 1538 | e1f8 ffff asl adr16 - |
| 1539 | e1f9 ffff asl adr32 - |
| 1540 | e2d0 fff8 lsr ais - |
| 1541 | e2d8 fff8 lsr aips - |
| 1542 | e2e0 fff8 lsr pais - |
| 1543 | e2e8 fff8 lsr das - |
| 1544 | e2f0 fff8 lsr dais - |
| 1545 | e2f8 ffff lsr adr16 - |
| 1546 | e2f9 ffff lsr adr32 - |
| 1547 | e3d0 fff8 lsl ais - |
| 1548 | e3d8 fff8 lsl aips - |
| 1549 | e3e0 fff8 lsl pais - |
| 1550 | e3e8 fff8 lsl das - |
| 1551 | e3f0 fff8 lsl dais - |
| 1552 | e3f8 ffff lsl adr16 - |
| 1553 | e3f9 ffff lsl adr32 - |
| 1554 | e4d0 fff8 roxr ais - |
| 1555 | e4d8 fff8 roxr aips - |
| 1556 | e4e0 fff8 roxr pais - |
| 1557 | e4e8 fff8 roxr das - |
| 1558 | e4f0 fff8 roxr dais - |
| 1559 | e4f8 ffff roxr adr16 - |
| 1560 | e4f9 ffff roxr adr32 - |
| 1561 | e5d0 fff8 roxl ais - |
| 1562 | e5d8 fff8 roxl aips - |
| 1563 | e5e0 fff8 roxl pais - |
| 1564 | e5e8 fff8 roxl das - |
| 1565 | e5f0 fff8 roxl dais - |
| 1566 | e5f8 ffff roxl adr16 - |
| 1567 | e5f9 ffff roxl adr32 - |
| 1568 | e6d0 fff8 ror ais - |
| 1569 | e6d8 fff8 ror aips - |
| 1570 | e6e0 fff8 ror pais - |
| 1571 | e6e8 fff8 ror das - |
| 1572 | e6f0 fff8 ror dais - |
| 1573 | e6f8 ffff ror adr16 - |
| 1574 | e6f9 ffff ror adr32 - |
| 1575 | e7d0 fff8 rol ais - |
| 1576 | e7d8 fff8 rol aips - |
| 1577 | e7e0 fff8 rol pais - |
| 1578 | e7e8 fff8 rol das - |
| 1579 | e7f0 fff8 rol dais - |
| 1580 | e7f8 ffff rol adr16 - |
| 1581 | e7f9 ffff rol adr32 - |
| 1582 | f000 f000 linef imm12 - |
trunk/src/emu/cpu/m68000x/m68kmake.py
| r0 | r243794 | |
| 1 | #!/usr/bin/python |
| 2 | |
| 3 | USAGE = """ |
| 4 | Usage: |
| 5 | %s m68000_device m68000.lst m68000.inc |
| 6 | """ |
| 7 | import sys |
| 8 | |
| 9 | def save_full_one(f, t, name, source): |
| 10 | print >>f, "void %s::%s_full()" % (t, name) |
| 11 | print >>f, "{" |
| 12 | for line in source: |
| 13 | print >>f, line |
| 14 | print >>f, "}" |
| 15 | print >>f |
| 16 | |
| 17 | def dasm_get_mode(amode): |
| 18 | if(amode == "-"): |
| 19 | return "DASM_none" |
| 20 | return "DASM_" + amode |
| 21 | |
| 22 | class Opcode: |
| 23 | def __init__(self, check, mask, name, amode1, amode2): |
| 24 | self.check = int(check, 16) |
| 25 | self.mask = int(mask, 16) |
| 26 | self.name = name |
| 27 | self.amode1 = amode1 |
| 28 | self.amode2 = amode2 |
| 29 | self.source = [] |
| 30 | |
| 31 | def add_source_line(self, line): |
| 32 | self.source.append(line) |
| 33 | |
| 34 | def func_name(self): |
| 35 | name = self.name.replace(".", "_") |
| 36 | if self.amode1 != "-": |
| 37 | name = name + "_" + self.amode1 |
| 38 | if self.amode2 != "-": |
| 39 | name = name + "_" + self.amode2 |
| 40 | return name |
| 41 | |
| 42 | class Special: |
| 43 | def __init__(self, name): |
| 44 | self.name = name |
| 45 | self.source = [] |
| 46 | |
| 47 | def add_source_line(self, line): |
| 48 | self.source.append(line) |
| 49 | |
| 50 | class Macro: |
| 51 | def __init__(self, tokens): |
| 52 | self.name = tokens[1] |
| 53 | self.params = [] |
| 54 | for i in range(2, len(tokens)): |
| 55 | self.params.append(tokens[i]) |
| 56 | self.source = [] |
| 57 | |
| 58 | def add_source_line(self, line): |
| 59 | self.source.append(line) |
| 60 | |
| 61 | def apply(self, target, tokens): |
| 62 | values = [] |
| 63 | for i in range(1, len(tokens)): |
| 64 | values.append(tokens[i]) |
| 65 | for i in range(0, len(self.source)): |
| 66 | line = self.source[i] |
| 67 | for i in range(0, len(self.params)): |
| 68 | line = line.replace(self.params[i], values[i]) |
| 69 | target.add_source_line(line) |
| 70 | |
| 71 | class OpcodeList: |
| 72 | def __init__(self, fname): |
| 73 | self.opcode_info = [] |
| 74 | self.opcode_by_id = {} |
| 75 | self.macros = {} |
| 76 | self.states = {} |
| 77 | try: |
| 78 | f = open(fname, "r") |
| 79 | except Exception, err: |
| 80 | print "Cannot read opcodes file %s [%s]" % (fname, err) |
| 81 | sys.exit(1) |
| 82 | |
| 83 | opc = None |
| 84 | for line in f: |
| 85 | if line.startswith("#"): |
| 86 | continue |
| 87 | line = line.rstrip() |
| 88 | if not line: |
| 89 | continue |
| 90 | if line.startswith(" ") or line.startswith("\t"): |
| 91 | # append instruction to last opcode, maybe expand a macro |
| 92 | tokens = line.split() |
| 93 | if tokens[0] in self.macros: |
| 94 | self.macros[tokens[0]].apply(inf, tokens) |
| 95 | else: |
| 96 | inf.add_source_line(line) |
| 97 | else: |
| 98 | # New something |
| 99 | tokens = line.split() |
| 100 | # Addressing mode header |
| 101 | if tokens[0] == "state": |
| 102 | inf = Special(tokens[1]) |
| 103 | self.states[inf.name] = inf |
| 104 | elif tokens[0] == "macro": |
| 105 | inf = Macro(tokens) |
| 106 | self.macros[inf.name] = inf |
| 107 | else: |
| 108 | inf = Opcode(tokens[0], tokens[1], tokens[2], tokens[3], tokens[4]) |
| 109 | self.opcode_info.append(inf) |
| 110 | i = 0 |
| 111 | m = inf.mask |
| 112 | c = inf.check |
| 113 | while(i < 0x10000): |
| 114 | v = i | c |
| 115 | if v in self.opcode_by_id: |
| 116 | op1 = self.opcode_by_id[v] |
| 117 | print "Collision at %04x %s %s %s vs. %s %s %s" % (v, op1.name, op1.amode1, op1.amode2, inf.name, inf.amode1, inf.amode2) |
| 118 | sys.exit(1) |
| 119 | self.opcode_by_id[v] = inf |
| 120 | i = i + 1 |
| 121 | while(i & m): |
| 122 | i = i + (i & m) |
| 123 | |
| 124 | def save_dasm(self, f, t): |
| 125 | print >>f, "const %s::disasm_entry %s::disasm_entries[] = {" % (t, t) |
| 126 | for i in range(0, len(self.opcode_info)): |
| 127 | opc = self.opcode_info[i] |
| 128 | flags = "0" |
| 129 | amode1 = dasm_get_mode(opc.amode1) |
| 130 | amode2 = dasm_get_mode(opc.amode2) |
| 131 | print >>f, "\t{ \"%s\", 0x%04x, 0x%04x, %s, %s, %s }," % (opc.name, opc.mask, opc.check, amode1, amode2, flags) |
| 132 | print >>f, "\t{ NULL, 0, 0, 0, 0, 0 }" |
| 133 | print >>f, "};" |
| 134 | print >>f |
| 135 | |
| 136 | def save_opcodes(self, f, t): |
| 137 | pf = "" |
| 138 | for opc in self.opcode_info: |
| 139 | save_full_one(f, t, opc.func_name(), opc.source) |
| 140 | save_full_one(f, t, "state_reset", self.states["reset"].source) |
| 141 | |
| 142 | def save_exec(self, f, t): |
| 143 | print >>f, "void %s::do_exec_full()" % t |
| 144 | print >>f, "{" |
| 145 | print >>f, "\tswitch(inst_state) {" |
| 146 | for i in range(0x00000, 0x10000): |
| 147 | if i in self.opcode_by_id: |
| 148 | print >>f, "\tcase 0x%04x: %s_full(); break;" % (i, self.opcode_by_id[i].func_name()) |
| 149 | else: |
| 150 | print >>f, "\tcase 0x%04x: illegal_full(); break;" % i |
| 151 | print >>f, "\tcase STATE_RESET: state_reset_full(); break;" |
| 152 | print >>f, "\t}" |
| 153 | print >>f, "}" |
| 154 | |
| 155 | def main(argv): |
| 156 | if len(argv) != 4: |
| 157 | print USAGE % argv[0] |
| 158 | return 1 |
| 159 | |
| 160 | t = argv[1] |
| 161 | opcodes = OpcodeList(argv[2]) |
| 162 | |
| 163 | try: |
| 164 | f = open(argv[3], "w") |
| 165 | except Exception, err: |
| 166 | logging.error("cannot write file %s [%s]", fname, err) |
| 167 | sys.exit(1) |
| 168 | |
| 169 | opcodes.save_dasm(f, t) |
| 170 | print >>f |
| 171 | opcodes.save_opcodes(f, t) |
| 172 | print >>f |
| 173 | opcodes.save_exec(f, t) |
| 174 | f.close() |
| 175 | |
| 176 | # ====================================================================== |
| 177 | if __name__ == "__main__": |
| 178 | sys.exit(main(sys.argv)) |
| 179 | |