comparison lwasm/instab.c @ 485:bf24b8c856d1

Update "clrq" convenience instruction to be slightly faster From Doug Masten <doug@dougmasten.com> who says: This is not a bug fix but a very tiny optimization for the "clrq" convenience instruction in LWTOOLS. This patch changes it from "clra; clrb; tfr d,w" to "clrd; clrw". The new instructions now take 2 clock cycles less for a total of 4 clock cycles.
author William Astle <lost@l-w.ca>
date Wed, 24 Apr 2019 19:53:08 -0600
parents e97f9a302c6a
children 6073f4a33475
comparison
equal deleted inserted replaced
484:469a130e7029 485:bf24b8c856d1
356 { "negd", { 0x4353, 0x83ff, 0xff, 8 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6809conv }, 356 { "negd", { 0x4353, 0x83ff, 0xff, 8 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6809conv },
357 { "tstd", { 0xed7e, -1, -1, 6 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6809conv }, 357 { "tstd", { 0xed7e, -1, -1, 6 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6809conv },
358 358
359 // 6309 convenience instructions 359 // 6309 convenience instructions
360 { "asrq", { 0x1047, 0x1056, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv }, 360 { "asrq", { 0x1047, 0x1056, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv },
361 { "clrq", { 0x4f5f, 0x1F06, -1, 6 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv }, 361 { "clrq", { 0x104f, 0x105f, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv },
362 { "comq", { 0x1043, 0x1053, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv }, 362 { "comq", { 0x1043, 0x1053, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv },
363 { "lsle", { 0x1030, 0xee, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv }, 363 { "lsle", { 0x1030, 0xee, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv },
364 { "lslf", { 0x1030, 0xff, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv }, 364 { "lslf", { 0x1030, 0xff, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv },
365 { "lslq", { 0x1030, 0x6610, 0x49, 6 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv }, 365 { "lslq", { 0x1030, 0x6610, 0x49, 6 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv },
366 { "lsrq", { 0x1044, 0x1056, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv }, 366 { "lsrq", { 0x1044, 0x1056, -1, 4 }, insn_parse_conv, insn_resolve_conv, insn_emit_conv, lwasm_insn_is6309conv },