comparison lwasm/instab.c @ 472:e97f9a302c6a

Add emuext pragma and associated instructions. This provides two emulator specific instructions ("log" and "debug") enabled by the "emuext" pragma. This is from a patch provided by tim Lindner <tlindner@macmess.org>. From Tim's submission: ---- I stole the whole patch from Erik Gavriluk. I hope he doesn't mind. :) The two instructions are "debug" and "log". They are enabled with pragmas. I also added them to the manual. Hopefully all is well. ---- Said Erik Gavriluk <erik@bombfactory.com> in response: ...happy to see them picked up in mainline (if you choose to do so)....
author William Astle <lost@l-w.ca>
date Thu, 01 Nov 2018 23:00:00 -0600
parents 4fd16faa4d93
children bf24b8c856d1
comparison
equal deleted inserted replaced
471:ad0efd5835c3 472:e97f9a302c6a
367 { "nege", { 0x1032, 0xce, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv }, 367 { "nege", { 0x1032, 0xce, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv },
368 { "negf", { 0x1032, 0xcf, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv }, 368 { "negf", { 0x1032, 0xcf, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv },
369 { "negw", { 0x1032, 0xc6, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv }, 369 { "negw", { 0x1032, 0xc6, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv },
370 { "negq", { -1, -1, -1, 12 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv }, 370 { "negq", { -1, -1, -1, 12 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv },
371 { "tstq", { 0x10ed, 0x7c, -1, 9 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv }, 371 { "tstq", { 0x10ed, 0x7c, -1, 9 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv },
372
373 // emulator extensions
374 { "break", { 0x113e, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, insn_emit_inh, lwasm_insn_isemuext },
375 { "log", { 0x103e, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, insn_emit_inh, lwasm_insn_isemuext },
372 376
373 { "abx", { 0x3a, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, insn_emit_inh, lwasm_insn_normal}, 377 { "abx", { 0x3a, -1, -1, -1 }, insn_parse_inh, insn_resolve_inh, insn_emit_inh, lwasm_insn_normal},
374 { "adca", { 0x99, 0xa9, 0xb9, 0x89}, insn_parse_gen8, insn_resolve_gen8, insn_emit_gen8, lwasm_insn_normal}, 378 { "adca", { 0x99, 0xa9, 0xb9, 0x89}, insn_parse_gen8, insn_resolve_gen8, insn_emit_gen8, lwasm_insn_normal},
375 { "adcb", { 0xd9, 0xe9, 0xf9, 0xc9}, insn_parse_gen8, insn_resolve_gen8, insn_emit_gen8, lwasm_insn_normal}, 379 { "adcb", { 0xd9, 0xe9, 0xf9, 0xc9}, insn_parse_gen8, insn_resolve_gen8, insn_emit_gen8, lwasm_insn_normal},
376 { "adcd", { 0x1099, 0x10a9, 0x10b9, 0x1089},insn_parse_gen16, insn_resolve_gen16, insn_emit_gen16, lwasm_insn_is6309}, 380 { "adcd", { 0x1099, 0x10a9, 0x10b9, 0x1089},insn_parse_gen16, insn_resolve_gen16, insn_emit_gen16, lwasm_insn_is6309},