aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2004-01-21 11:17:53 +0000
committerNick Clifton <nickc@redhat.com>2004-01-21 11:17:53 +0000
commit28d39d1a3a0fa205e5223b183c3df93264865dc5 (patch)
treedfebb4b1e52edb4cd6259433d2a520694b180a95
parentb0a30fcea7c66ee6d345a9b08b42529aaf3a2836 (diff)
downloadgdb-28d39d1a3a0fa205e5223b183c3df93264865dc5.zip
gdb-28d39d1a3a0fa205e5223b183c3df93264865dc5.tar.gz
gdb-28d39d1a3a0fa205e5223b183c3df93264865dc5.tar.bz2
Stop indexed move byte instructions from being relaxed.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/bfd-in2.h4
-rw-r--r--bfd/libbfd.h1
-rw-r--r--bfd/opncls.c22
-rw-r--r--bfd/reloc.c7
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-m68hc11.c54
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/m68hc11/m68hc11.exp15
-rw-r--r--gas/testsuite/gas/m68hc11/movb.d451
-rw-r--r--gas/testsuite/gas/m68hc11/movb.s333
11 files changed, 882 insertions, 22 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6818677..c1c024c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2004-01-21 Tom Rix <tcrix@worldnet.att.net>
+
+ * reloc.c: New 5 bit reloc, BFD_RELOC_M68HC12_5B, for m68hc12 movb/movw.
+ * bfd-in2.h, libbfd.h: Rebuilt.
+
2004-01-20 Danny Smith <dannysmith@users.sourceforge.net>
* peXXigen.c (_bfd_XXi_swap_scnhdr_out): Don't remove
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 4cc59e0..f66c29c 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -3377,6 +3377,10 @@ value and a 8-bit page number. The symbol address is transformed
to follow the 16K memory bank of 68HC12 (seen as mapped in the window). */
BFD_RELOC_M68HC11_24,
+/* Motorola 68HC12 reloc.
+This is the 5 bits of a value. */
+ BFD_RELOC_M68HC12_5B,
+
/* These relocs are only used within the CRIS assembler. They are not
(at present) written to any object files. */
BFD_RELOC_CRIS_BDISP8,
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index d6ee8f3..40e1b78 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -1430,6 +1430,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_M68HC11_LO16",
"BFD_RELOC_M68HC11_PAGE",
"BFD_RELOC_M68HC11_24",
+ "BFD_RELOC_M68HC12_5B",
"BFD_RELOC_CRIS_BDISP8",
"BFD_RELOC_CRIS_UNSIGNED_5",
"BFD_RELOC_CRIS_SIGNED_6",
diff --git a/bfd/opncls.c b/bfd/opncls.c
index 96f1e14..6abd405 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -70,8 +70,7 @@ _bfd_new_bfd (void)
nbfd->direction = no_direction;
nbfd->iostream = NULL;
nbfd->where = 0;
- if (!bfd_hash_table_init_n (&nbfd->section_htab,
- bfd_section_hash_newfunc,
+ if (!bfd_hash_table_init_n (& nbfd->section_htab, bfd_section_hash_newfunc,
251))
{
free (nbfd);
@@ -923,7 +922,7 @@ find_separate_debug_file (bfd *abfd, const char *debug_file_directory)
for (i = strlen (dir) - 1; i >= 0; i--)
if (IS_DIR_SEPARATOR (dir[i]))
break;
-
+
dir[i + 1] = '\0';
BFD_ASSERT (dir[i] == '/' || dir[0] == '\0')
@@ -996,23 +995,26 @@ SYNOPSIS
DESCRIPTION
Takes a BFD and searches it for a .gnu_debuglink section. If this
- section is found, examines the section for the name and checksum of
- a '.debug' file containing auxiliary debugging
- information. Searches filesystem for .debug file in some standard
+ section is found, it examines the section for the name and checksum
+ of a '.debug' file containing auxiliary debugging information. It
+ then searches the filesystem for this .debug file in some standard
locations, including the directory tree rooted at @var{dir}, and if
- found returns the full filename. If @var{dir} is NULL, will search
- default path configured into libbfd at build time.
+ found returns the full filename.
+
+ If @var{dir} is NULL, it will search a default path configured into
+ libbfd at build time. [XXX this feature is not currently
+ implemented].
RETURNS
<<NULL>> on any errors or failure to locate the .debug file,
otherwise a pointer to a heap-allocated string containing the
- filename. The caller is responsible for freeing this string.
+ filename. The caller is responsible for freeing this string.
*/
char *
bfd_follow_gnu_debuglink (bfd *abfd, const char *dir)
{
-#if 0 /* Disabled until DEBUGDIR can be defined by configure.in */
+#if 0 /* Disabled until DEBUGDIR can be defined by configure.in. */
if (dir == NULL)
dir = DEBUGDIR;
#endif
diff --git a/bfd/reloc.c b/bfd/reloc.c
index d3a6534..9bffaa3 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -1,6 +1,6 @@
/* BFD support for handling relocation entries.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003
+ 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -3764,6 +3764,11 @@ ENUMDOC
This is a 24-bit reloc that represents the address with a 16-bit
value and a 8-bit page number. The symbol address is transformed
to follow the 16K memory bank of 68HC12 (seen as mapped in the window).
+ENUM
+ BFD_RELOC_M68HC12_5B
+ENUMDOC
+ Motorola 68HC12 reloc.
+ This is the 5 bits of a value.
ENUM
BFD_RELOC_CRIS_BDISP8
diff --git a/gas/ChangeLog b/gas/ChangeLog
index cf68b2a..c855fcc 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2004-01-11 Tom Rix <tcrix@worldnet.att.net>
+
+ * config/tc-m68hc11.c (build_indexed_byte): movb and movw cannot
+ be relaxed, use fixup.
+ (md_apply_fix3): Use 5 bit reloc from movb and movw fixup.
+
2004-01-19 Jakub Jelinek <jakub@redhat.com>
* config/tc-sparc.c (sparc_ip): Disallow %f32-%f63 for single
diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c
index 812cda5..780f773 100644
--- a/gas/config/tc-m68hc11.c
+++ b/gas/config/tc-m68hc11.c
@@ -1,5 +1,5 @@
/* tc-m68hc11.c -- Assembler code for the Motorola 68HC11 & 68HC12.
- Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GAS, the GNU Assembler.
@@ -1951,18 +1951,43 @@ build_indexed_byte (operand *op, int format ATTRIBUTE_UNUSED, int move_insn)
sym = make_expr_symbol (&op->exp);
off = 0;
}
- frag_var (rs_machine_dependent, 2, 2,
- ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_UNDF),
- sym, off, f);
+ /* movb/movw cannot be relaxed. */
+ if (move_insn)
+ {
+ byte <<= 6;
+ number_to_chars_bigendian (f, byte, 1);
+ fix_new (frag_now, f - frag_now->fr_literal, 1,
+ sym, off, 0, BFD_RELOC_M68HC12_5B);
+ return 1;
+ }
+ else
+ {
+ number_to_chars_bigendian (f, byte, 1);
+ frag_var (rs_machine_dependent, 2, 2,
+ ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_UNDF),
+ sym, off, f);
+ }
}
else
{
f = frag_more (1);
- number_to_chars_bigendian (f, byte, 1);
- frag_var (rs_machine_dependent, 2, 2,
- ENCODE_RELAX (STATE_INDEXED_PCREL, STATE_UNDF),
- op->exp.X_add_symbol,
- op->exp.X_add_number, f);
+ /* movb/movw cannot be relaxed. */
+ if (move_insn)
+ {
+ byte <<= 6;
+ number_to_chars_bigendian (f, byte, 1);
+ fix_new (frag_now, f - frag_now->fr_literal, 1,
+ op->exp.X_add_symbol, op->exp.X_add_number, 0, BFD_RELOC_M68HC12_5B);
+ return 1;
+ }
+ else
+ {
+ number_to_chars_bigendian (f, byte, 1);
+ frag_var (rs_machine_dependent, 2, 2,
+ ENCODE_RELAX (STATE_INDEXED_PCREL, STATE_UNDF),
+ op->exp.X_add_symbol,
+ op->exp.X_add_number, f);
+ }
}
return 3;
}
@@ -3287,6 +3312,17 @@ md_apply_fix3 (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
where[0] = where[0] | (value & 0x07);
break;
+ case BFD_RELOC_M68HC12_5B:
+ if (value < -16 || value > 15)
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("Offset out of 5-bit range for movw/movb insn: %ld"),
+ value);
+ if (value >= 0)
+ where[0] |= value;
+ else
+ where[0] |= (0x10 | (16 + value));
+ break;
+
case BFD_RELOC_M68HC11_RL_JUMP:
case BFD_RELOC_M68HC11_RL_GROUP:
case BFD_RELOC_VTABLE_INHERIT:
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 2341768..d1b3885 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2004-01-11 Tom Rix <tcrix@worldnet.att.net>
+
+ * gas/m68hc11/movb.s: Add m68hc12 movb and movw dump test.
+ * gas/m68hc11/movb.d: Likewise.
+ * gas/m68hc11/m68hc11.exp: Likewise. Add more movb failure tests.
+
2004-01-19 Alan Modra <amodra@bigpond.net.au>
* gas/i386/katmai.d: Adjust for changed sib printing.
diff --git a/gas/testsuite/gas/m68hc11/m68hc11.exp b/gas/testsuite/gas/m68hc11/m68hc11.exp
index 8764777..2bfa880 100644
--- a/gas/testsuite/gas/m68hc11/m68hc11.exp
+++ b/gas/testsuite/gas/m68hc11/m68hc11.exp
@@ -140,11 +140,21 @@ gas_m68hc11_error "-m68hc12" "movb 200,x,3,y\n" \
"Offset out of 5-bit range for movw/movb insn: 200"
gas_m68hc11_error "-m68hc12" "movb 2,x,300,y\n" \
"Offset out of 5-bit range for movw/movb insn: 300"
+gas_m68hc11_error "-m68hc12" "movb 2,x,bar,y\nbar=300\n" \
+ "Offset out of 5-bit range for movw/movb insn: 300"
+gas_m68hc11_error "-m68hc12" "movb bar,y,2,x\nbar=300\n" \
+ "Offset out of 5-bit range for movw/movb insn: 300"
+gas_m68hc11_error "-m68hc12" "movb 200,pc,3,y\n" \
+ "Offset out of 5-bit range for movw/movb insn: 200"
+gas_m68hc11_error "-m68hc12" "movb 2,x,300,pc\n" \
+ "Offset out of 5-bit range for movw/movb insn: 300"
+gas_m68hc11_error "-m68hc12" "movb 2,x,bar,pc\nbar=300\n" \
+ "Offset out of 5-bit range for movw/movb insn: 300"
+gas_m68hc11_error "-m68hc12" "movb bar,pc,2,x\nbar=300\n" \
+ "Offset out of 5-bit range for movw/movb insn: 300"
setup_xfail m6811-*-*
setup_xfail m6812-*-*
-gas_m68hc11_error "-m68hc12" "movb 2,x,bar,y\nbar=300\n" \
- "Offset out of 5-bit range for movw/movb insn: 300"
# ------------------
# Specific commands
@@ -173,3 +183,4 @@ run_dump_test branchs12
run_dump_test insns12
run_dump_test indexed12
run_dump_test bug-1825
+run_dump_test movb
diff --git a/gas/testsuite/gas/m68hc11/movb.d b/gas/testsuite/gas/m68hc11/movb.d
new file mode 100644
index 0000000..4ef5e81
--- /dev/null
+++ b/gas/testsuite/gas/m68hc11/movb.d
@@ -0,0 +1,451 @@
+#objdump: -D
+#as: -m68hc12
+#name: 68HC12 movb movw instructions
+
+.*: +file format elf32\-m68hc12
+
+Disassembly of section .text:
+
+0+00 <\.text>:
+[ ]+ 0: 86 00[ ]+ ldaa #0
+[ ]+ 2: 18 0a 0f 0f movb 15,X, 15,X
+[ ]+ 6: 18 0a 0f 0f movb 15,X, 15,X
+[ ]+ a: 18 0a 0f 0f movb 15,X, 15,X
+[ ]+ e: 86 01[ ]+ ldaa #1
+[ ]+10: 18 0a 0f 0f movb 15,X, 15,X
+[ ]+14: 18 0a 0f 0f movb 15,X, 15,X
+[ ]+18: 18 0a 0f 0f movb 15,X, 15,X
+[ ]+1c: 86 02[ ]+ ldaa #2
+[ ]+1e: 18 0a 0f 10 movb 15,X, \-16,X
+[ ]+22: 18 0a 0f 10 movb 15,X, \-16,X
+[ ]+26: 18 0a 0f 10 movb 15,X, \-16,X
+[ ]+2a: 86 03[ ]+ ldaa #3
+[ ]+2c: 18 0a 10 0f movb \-16,X, 15,X
+[ ]+30: 18 0a 10 0f movb \-16,X, 15,X
+[ ]+34: 18 0a 10 0f movb \-16,X, 15,X
+[ ]+38: 86 04[ ]+ ldaa #4
+[ ]+3a: 18 02 0f 0f movw 15,X, 15,X
+[ ]+3e: 18 02 0f 0f movw 15,X, 15,X
+[ ]+42: 18 02 0f 0f movw 15,X, 15,X
+[ ]+46: 86 05[ ]+ ldaa #5
+[ ]+48: 18 02 0f 0f movw 15,X, 15,X
+[ ]+4c: 18 02 0f 0f movw 15,X, 15,X
+[ ]+50: 18 02 0f 0f movw 15,X, 15,X
+[ ]+54: 86 06[ ]+ ldaa #6
+[ ]+56: 18 02 0f 10 movw 15,X, \-16,X
+[ ]+5a: 18 02 0f 10 movw 15,X, \-16,X
+[ ]+5e: 18 02 0f 10 movw 15,X, \-16,X
+[ ]+62: 86 07[ ]+ ldaa #7
+[ ]+64: 18 02 10 0f movw \-16,X, 15,X
+[ ]+68: 18 02 10 0f movw \-16,X, 15,X
+[ ]+6c: 18 02 10 0f movw \-16,X, 15,X
+[ ]+70: 86 08[ ]+ ldaa #8
+[ ]+72: 18 0a 4f 4f movb 15,Y, 15,Y
+[ ]+76: 18 0a 4f 4f movb 15,Y, 15,Y
+[ ]+7a: 18 0a 4f 4f movb 15,Y, 15,Y
+[ ]+7e: 86 09[ ]+ ldaa #9
+[ ]+80: 18 0a 4f 4f movb 15,Y, 15,Y
+[ ]+84: 18 0a 4f 4f movb 15,Y, 15,Y
+[ ]+88: 18 0a 4f 4f movb 15,Y, 15,Y
+[ ]+8c: 86 0a[ ]+ ldaa #10
+[ ]+8e: 18 0a 4f 50 movb 15,Y, \-16,Y
+[ ]+92: 18 0a 4f 50 movb 15,Y, \-16,Y
+[ ]+96: 18 0a 4f 50 movb 15,Y, \-16,Y
+[ ]+9a: 86 0b[ ]+ ldaa #11
+[ ]+9c: 18 0a 50 4f movb \-16,Y, 15,Y
+[ ]+a0: 18 0a 50 4f movb \-16,Y, 15,Y
+[ ]+a4: 18 0a 50 4f movb \-16,Y, 15,Y
+[ ]+a8: 86 0c[ ]+ ldaa #12
+[ ]+aa: 18 02 4f 4f movw 15,Y, 15,Y
+[ ]+ae: 18 02 4f 4f movw 15,Y, 15,Y
+[ ]+b2: 18 02 4f 4f movw 15,Y, 15,Y
+[ ]+b6: 86 0d[ ]+ ldaa #13
+[ ]+b8: 18 02 4f 4f movw 15,Y, 15,Y
+[ ]+bc: 18 02 4f 4f movw 15,Y, 15,Y
+[ ]+c0: 18 02 4f 4f movw 15,Y, 15,Y
+[ ]+c4: 86 0e[ ]+ ldaa #14
+[ ]+c6: 18 02 4f 50 movw 15,Y, \-16,Y
+[ ]+ca: 18 02 4f 50 movw 15,Y, \-16,Y
+[ ]+ce: 18 02 4f 50 movw 15,Y, \-16,Y
+[ ]+d2: 86 0f[ ]+ ldaa #15
+[ ]+d4: 18 02 50 4f movw \-16,Y, 15,Y
+[ ]+d8: 18 02 50 4f movw \-16,Y, 15,Y
+[ ]+dc: 18 02 50 4f movw \-16,Y, 15,Y
+[ ]+e0: 86 10[ ]+ ldaa #16
+[ ]+e2: 18 0a 4f cf movb 15,Y, 15,PC \{f5 <cat2\+0xe6>\}
+[ ]+e6: 18 0a 4f cf movb 15,Y, 15,PC \{f9 <cat2\+0xea>\}
+[ ]+ea: 18 0a 4f cf movb 15,Y, 15,PC \{fd <cat2\+0xee>\}
+[ ]+ee: 86 11[ ]+ ldaa #17
+[ ]+f0: 18 0a 4f cf movb 15,Y, 15,PC \{103 <cat2\+0xf4>\}
+[ ]+f4: 18 0a 4f cf movb 15,Y, 15,PC \{107 <cat2\+0xf8>\}
+[ ]+f8: 18 0a 4f cf movb 15,Y, 15,PC \{10b <cat2\+0xfc>\}
+[ ]+fc: 86 12[ ]+ ldaa #18
+[ ]+fe: 18 0a 4f d0 movb 15,Y, \-16,PC \{f2 <cat2\+0xe3>\}
+ 102: 18 0a 4f d0 movb 15,Y, \-16,PC \{f6 <cat2\+0xe7>\}
+ 106: 18 0a 4f d0 movb 15,Y, \-16,PC \{fa <cat2\+0xeb>\}
+ 10a: 86 13[ ]+ ldaa #19
+ 10c: 18 0a 50 cf movb \-16,Y, 15,PC \{11f <cat2\+0x110>\}
+ 110: 18 0a 50 cf movb \-16,Y, 15,PC \{123 <cat2\+0x114>\}
+ 114: 18 0a 50 cf movb \-16,Y, 15,PC \{127 <cat2\+0x118>\}
+ 118: 86 14[ ]+ ldaa #20
+ 11a: 18 02 4f cf movw 15,Y, 15,PC \{12d <cat2\+0x11e>\}
+ 11e: 18 02 4f cf movw 15,Y, 15,PC \{131 <cat2\+0x122>\}
+ 122: 18 02 4f cf movw 15,Y, 15,PC \{135 <cat2\+0x126>\}
+ 126: 86 15[ ]+ ldaa #21
+ 128: 18 02 4f cf movw 15,Y, 15,PC \{13b <cat2\+0x12c>\}
+ 12c: 18 02 4f cf movw 15,Y, 15,PC \{13f <cat2\+0x130>\}
+ 130: 18 02 4f cf movw 15,Y, 15,PC \{143 <cat2\+0x134>\}
+ 134: 86 16[ ]+ ldaa #22
+ 136: 18 02 4f d0 movw 15,Y, \-16,PC \{12a <cat2\+0x11b>\}
+ 13a: 18 02 4f d0 movw 15,Y, \-16,PC \{12e <cat2\+0x11f>\}
+ 13e: 18 02 4f d0 movw 15,Y, \-16,PC \{132 <cat2\+0x123>\}
+ 142: 86 17[ ]+ ldaa #23
+ 144: 18 02 50 cf movw \-16,Y, 15,PC \{157 <cat2\+0x148>\}
+ 148: 18 02 50 cf movw \-16,Y, 15,PC \{15b <cat2\+0x14c>\}
+ 14c: 18 02 50 cf movw \-16,Y, 15,PC \{15f <cat2\+0x150>\}
+ 150: 86 18[ ]+ ldaa #24
+ 152: 18 0a 8f cf movb 15,SP, 15,PC \{165 <cat2\+0x156>\}
+ 156: 18 0a 8f cf movb 15,SP, 15,PC \{169 <cat2\+0x15a>\}
+ 15a: 18 0a 8f cf movb 15,SP, 15,PC \{16d <cat2\+0x15e>\}
+ 15e: 86 19[ ]+ ldaa #25
+ 160: 18 0a 8f cf movb 15,SP, 15,PC \{173 <cat2\+0x164>\}
+ 164: 18 0a 8f cf movb 15,SP, 15,PC \{177 <cat2\+0x168>\}
+ 168: 18 0a 8f cf movb 15,SP, 15,PC \{17b <cat2\+0x16c>\}
+ 16c: 86 1a[ ]+ ldaa #26
+ 16e: 18 0a 8f d0 movb 15,SP, \-16,PC \{162 <cat2\+0x153>\}
+ 172: 18 0a 8f d0 movb 15,SP, \-16,PC \{166 <cat2\+0x157>\}
+ 176: 18 0a 8f d0 movb 15,SP, \-16,PC \{16a <cat2\+0x15b>\}
+ 17a: 86 1b[ ]+ ldaa #27
+ 17c: 18 0a 90 cf movb \-16,SP, 15,PC \{18f <cat2\+0x180>\}
+ 180: 18 0a 90 cf movb \-16,SP, 15,PC \{193 <cat2\+0x184>\}
+ 184: 18 0a 90 cf movb \-16,SP, 15,PC \{197 <cat2\+0x188>\}
+ 188: 86 1c[ ]+ ldaa #28
+ 18a: 18 02 8f cf movw 15,SP, 15,PC \{19d <cat2\+0x18e>\}
+ 18e: 18 02 8f cf movw 15,SP, 15,PC \{1a1 <cat2\+0x192>\}
+ 192: 18 02 8f cf movw 15,SP, 15,PC \{1a5 <cat2\+0x196>\}
+ 196: 86 1d[ ]+ ldaa #29
+ 198: 18 02 8f cf movw 15,SP, 15,PC \{1ab <cat2\+0x19c>\}
+ 19c: 18 02 8f cf movw 15,SP, 15,PC \{1af <cat2\+0x1a0>\}
+ 1a0: 18 02 8f cf movw 15,SP, 15,PC \{1b3 <cat2\+0x1a4>\}
+ 1a4: 86 1e[ ]+ ldaa #30
+ 1a6: 18 02 8f d0 movw 15,SP, \-16,PC \{19a <cat2\+0x18b>\}
+ 1aa: 18 02 8f d0 movw 15,SP, \-16,PC \{19e <cat2\+0x18f>\}
+ 1ae: 18 02 8f d0 movw 15,SP, \-16,PC \{1a2 <cat2\+0x193>\}
+ 1b2: 86 1f[ ]+ ldaa #31
+ 1b4: 18 02 90 cf movw \-16,SP, 15,PC \{1c7 <cat2\+0x1b8>\}
+ 1b8: 18 02 90 cf movw \-16,SP, 15,PC \{1cb <cat2\+0x1bc>\}
+ 1bc: 18 02 90 cf movw \-16,SP, 15,PC \{1cf <cat2\+0x1c0>\}
+ 1c0: 86 20[ ]+ ldaa #32
+ 1c2: 18 09 0f 10 movb 1000 <cat2\+0xff1>, 15,X
+ 1c6: 00
+ 1c7: 18 09 0f 10 movb 1000 <cat2\+0xff1>, 15,X
+ 1cb: 00
+ 1cc: 18 09 0f 10 movb 1000 <cat2\+0xff1>, 15,X
+ 1d0: 00
+ 1d1: 86 21[ ]+ ldaa #33
+ 1d3: 18 0d 0f 10 movb 15,X, 1000 <cat2\+0xff1>
+ 1d7: 00
+ 1d8: 18 0d 0f 10 movb 15,X, 1000 <cat2\+0xff1>
+ 1dc: 00
+ 1dd: 18 0d 0f 10 movb 15,X, 1000 <cat2\+0xff1>
+ 1e1: 00
+ 1e2: 86 22[ ]+ ldaa #34
+ 1e4: 18 09 10 10 movb 1000 <cat2\+0xff1>, \-16,X
+ 1e8: 00
+ 1e9: 18 09 10 10 movb 1000 <cat2\+0xff1>, \-16,X
+ 1ed: 00
+ 1ee: 18 09 10 10 movb 1000 <cat2\+0xff1>, \-16,X
+ 1f2: 00
+ 1f3: 86 23[ ]+ ldaa #35
+ 1f5: 18 0d 10 10 movb \-16,X, 1000 <cat2\+0xff1>
+ 1f9: 00
+ 1fa: 18 0d 10 10 movb \-16,X, 1000 <cat2\+0xff1>
+ 1fe: 00
+ 1ff: 18 0d 10 10 movb \-16,X, 1000 <cat2\+0xff1>
+ 203: 00
+ 204: 86 24[ ]+ ldaa #36
+ 206: 18 01 0f 10 movw 1002 <cat2\+0xff3>, 15,X
+ 20a: 02
+ 20b: 18 01 0f 10 movw 1002 <cat2\+0xff3>, 15,X
+ 20f: 02
+ 210: 18 01 0f 10 movw 1002 <cat2\+0xff3>, 15,X
+ 214: 02
+ 215: 86 25[ ]+ ldaa #37
+ 217: 18 05 0f 10 movw 15,X, 1002 <cat2\+0xff3>
+ 21b: 02
+ 21c: 18 05 0f 10 movw 15,X, 1002 <cat2\+0xff3>
+ 220: 02
+ 221: 18 05 0f 10 movw 15,X, 1002 <cat2\+0xff3>
+ 225: 02
+ 226: 86 26[ ]+ ldaa #38
+ 228: 18 01 10 10 movw 1002 <cat2\+0xff3>, \-16,X
+ 22c: 02
+ 22d: 18 01 10 10 movw 1002 <cat2\+0xff3>, \-16,X
+ 231: 02
+ 232: 18 01 10 10 movw 1002 <cat2\+0xff3>, \-16,X
+ 236: 02
+ 237: 86 27[ ]+ ldaa #39
+ 239: 18 05 10 10 movw \-16,X, 1002 <cat2\+0xff3>
+ 23d: 02
+ 23e: 18 05 10 10 movw \-16,X, 1002 <cat2\+0xff3>
+ 242: 02
+ 243: 18 05 10 10 movw \-16,X, 1002 <cat2\+0xff3>
+ 247: 02
+ 248: 86 28[ ]+ ldaa #40
+ 24a: 18 09 4f 10 movb 1000 <cat2\+0xff1>, 15,Y
+ 24e: 00
+ 24f: 18 09 4f 10 movb 1000 <cat2\+0xff1>, 15,Y
+ 253: 00
+ 254: 18 09 4f 10 movb 1000 <cat2\+0xff1>, 15,Y
+ 258: 00
+ 259: 86 29[ ]+ ldaa #41
+ 25b: 18 0d 4f 10 movb 15,Y, 1000 <cat2\+0xff1>
+ 25f: 00
+ 260: 18 0d 4f 10 movb 15,Y, 1000 <cat2\+0xff1>
+ 264: 00
+ 265: 18 0d 4f 10 movb 15,Y, 1000 <cat2\+0xff1>
+ 269: 00
+ 26a: 86 2a[ ]+ ldaa #42
+ 26c: 18 09 50 10 movb 1000 <cat2\+0xff1>, \-16,Y
+ 270: 00
+ 271: 18 09 50 10 movb 1000 <cat2\+0xff1>, \-16,Y
+ 275: 00
+ 276: 18 09 50 10 movb 1000 <cat2\+0xff1>, \-16,Y
+ 27a: 00
+ 27b: 86 2b[ ]+ ldaa #43
+ 27d: 18 0d 50 10 movb \-16,Y, 1000 <cat2\+0xff1>
+ 281: 00
+ 282: 18 0d 50 10 movb \-16,Y, 1000 <cat2\+0xff1>
+ 286: 00
+ 287: 18 0d 50 10 movb \-16,Y, 1000 <cat2\+0xff1>
+ 28b: 00
+ 28c: 86 2c[ ]+ ldaa #44
+ 28e: 18 01 4f 10 movw 1002 <cat2\+0xff3>, 15,Y
+ 292: 02
+ 293: 18 01 4f 10 movw 1002 <cat2\+0xff3>, 15,Y
+ 297: 02
+ 298: 18 01 4f 10 movw 1002 <cat2\+0xff3>, 15,Y
+ 29c: 02
+ 29d: 86 2d[ ]+ ldaa #45
+ 29f: 18 05 4f 10 movw 15,Y, 1002 <cat2\+0xff3>
+ 2a3: 02
+ 2a4: 18 05 4f 10 movw 15,Y, 1002 <cat2\+0xff3>
+ 2a8: 02
+ 2a9: 18 05 4f 10 movw 15,Y, 1002 <cat2\+0xff3>
+ 2ad: 02
+ 2ae: 86 2e[ ]+ ldaa #46
+ 2b0: 18 01 50 10 movw 1002 <cat2\+0xff3>, \-16,Y
+ 2b4: 02
+ 2b5: 18 01 50 10 movw 1002 <cat2\+0xff3>, \-16,Y
+ 2b9: 02
+ 2ba: 18 01 50 10 movw 1002 <cat2\+0xff3>, \-16,Y
+ 2be: 02
+ 2bf: 86 2f[ ]+ ldaa #47
+ 2c1: 18 05 50 10 movw \-16,Y, 1002 <cat2\+0xff3>
+ 2c5: 02
+ 2c6: 18 05 50 10 movw \-16,Y, 1002 <cat2\+0xff3>
+ 2ca: 02
+ 2cb: 18 05 50 10 movw \-16,Y, 1002 <cat2\+0xff3>
+ 2cf: 02
+ 2d0: 86 30[ ]+ ldaa #48
+ 2d2: 18 09 cf 10 movb 1000 <cat2\+0xff1>, 15,PC \{2e4 <cat2\+0x2d5>\}
+ 2d6: 00
+ 2d7: 18 09 cf 10 movb 1000 <cat2\+0xff1>, 15,PC \{2e9 <cat2\+0x2da>\}
+ 2db: 00
+ 2dc: 18 09 cf 10 movb 1000 <cat2\+0xff1>, 15,PC \{2ee <cat2\+0x2df>\}
+ 2e0: 00
+ 2e1: 86 31[ ]+ ldaa #49
+ 2e3: 18 0d cf 10 movb 15,PC \{2f5 <cat2\+0x2e6>\}, 1000 <cat2\+0xff1>
+ 2e7: 00
+ 2e8: 18 0d cf 10 movb 15,PC \{2fa <cat2\+0x2eb>\}, 1000 <cat2\+0xff1>
+ 2ec: 00
+ 2ed: 18 0d cf 10 movb 15,PC \{2ff <cat2\+0x2f0>\}, 1000 <cat2\+0xff1>
+ 2f1: 00
+ 2f2: 86 32[ ]+ ldaa #50
+ 2f4: 18 09 d0 10 movb 1000 <cat2\+0xff1>, \-16,PC \{2e7 <cat2\+0x2d8>\}
+ 2f8: 00
+ 2f9: 18 09 d0 10 movb 1000 <cat2\+0xff1>, \-16,PC \{2ec <cat2\+0x2dd>\}
+ 2fd: 00
+ 2fe: 18 09 d0 10 movb 1000 <cat2\+0xff1>, \-16,PC \{2f1 <cat2\+0x2e2>\}
+ 302: 00
+ 303: 86 33[ ]+ ldaa #51
+ 305: 18 0d d0 10 movb \-16,PC \{2f8 <cat2\+0x2e9>\}, 1000 <cat2\+0xff1>
+ 309: 00
+ 30a: 18 0d d0 10 movb \-16,PC \{2fd <cat2\+0x2ee>\}, 1000 <cat2\+0xff1>
+ 30e: 00
+ 30f: 18 0d d0 10 movb \-16,PC \{302 <cat2\+0x2f3>\}, 1000 <cat2\+0xff1>
+ 313: 00
+ 314: 86 34[ ]+ ldaa #52
+ 316: 18 01 cf 10 movw 1002 <cat2\+0xff3>, 15,PC \{328 <cat2\+0x319>\}
+ 31a: 02
+ 31b: 18 01 cf 10 movw 1002 <cat2\+0xff3>, 15,PC \{32d <cat2\+0x31e>\}
+ 31f: 02
+ 320: 18 01 cf 10 movw 1002 <cat2\+0xff3>, 15,PC \{332 <cat2\+0x323>\}
+ 324: 02
+ 325: 86 35[ ]+ ldaa #53
+ 327: 18 05 cf 10 movw 15,PC \{339 <cat2\+0x32a>\}, 1002 <cat2\+0xff3>
+ 32b: 02
+ 32c: 18 05 cf 10 movw 15,PC \{33e <cat2\+0x32f>\}, 1002 <cat2\+0xff3>
+ 330: 02
+ 331: 18 05 cf 10 movw 15,PC \{343 <cat2\+0x334>\}, 1002 <cat2\+0xff3>
+ 335: 02
+ 336: 86 36[ ]+ ldaa #54
+ 338: 18 01 d0 10 movw 1002 <cat2\+0xff3>, \-16,PC \{32b <cat2\+0x31c>\}
+ 33c: 02
+ 33d: 18 01 d0 10 movw 1002 <cat2\+0xff3>, \-16,PC \{330 <cat2\+0x321>\}
+ 341: 02
+ 342: 18 01 d0 10 movw 1002 <cat2\+0xff3>, \-16,PC \{335 <cat2\+0x326>\}
+ 346: 02
+ 347: 86 37[ ]+ ldaa #55
+ 349: 18 05 d0 10 movw \-16,PC \{33c <cat2\+0x32d>\}, 1002 <cat2\+0xff3>
+ 34d: 02
+ 34e: 18 05 d0 10 movw \-16,PC \{341 <cat2\+0x332>\}, 1002 <cat2\+0xff3>
+ 352: 02
+ 353: 18 05 d0 10 movw \-16,PC \{346 <cat2\+0x337>\}, 1002 <cat2\+0xff3>
+ 357: 02
+ 358: 86 38[ ]+ ldaa #56
+ 35a: 18 09 8f 10 movb 1000 <cat2\+0xff1>, 15,SP
+ 35e: 00
+ 35f: 18 09 8f 10 movb 1000 <cat2\+0xff1>, 15,SP
+ 363: 00
+ 364: 18 09 8f 10 movb 1000 <cat2\+0xff1>, 15,SP
+ 368: 00
+ 369: 86 39[ ]+ ldaa #57
+ 36b: 18 0d 8f 10 movb 15,SP, 1000 <cat2\+0xff1>
+ 36f: 00
+ 370: 18 0d 8f 10 movb 15,SP, 1000 <cat2\+0xff1>
+ 374: 00
+ 375: 18 0d 8f 10 movb 15,SP, 1000 <cat2\+0xff1>
+ 379: 00
+ 37a: 86 3a[ ]+ ldaa #58
+ 37c: 18 09 90 10 movb 1000 <cat2\+0xff1>, \-16,SP
+ 380: 00
+ 381: 18 09 90 10 movb 1000 <cat2\+0xff1>, \-16,SP
+ 385: 00
+ 386: 18 09 90 10 movb 1000 <cat2\+0xff1>, \-16,SP
+ 38a: 00
+ 38b: 86 3b[ ]+ ldaa #59
+ 38d: 18 0d 90 10 movb \-16,SP, 1000 <cat2\+0xff1>
+ 391: 00
+ 392: 18 0d 90 10 movb \-16,SP, 1000 <cat2\+0xff1>
+ 396: 00
+ 397: 18 0d 90 10 movb \-16,SP, 1000 <cat2\+0xff1>
+ 39b: 00
+ 39c: 86 3c[ ]+ ldaa #60
+ 39e: 18 01 8f 10 movw 1002 <cat2\+0xff3>, 15,SP
+ 3a2: 02
+ 3a3: 18 01 8f 10 movw 1002 <cat2\+0xff3>, 15,SP
+ 3a7: 02
+ 3a8: 18 01 8f 10 movw 1002 <cat2\+0xff3>, 15,SP
+ 3ac: 02
+ 3ad: 86 3d[ ]+ ldaa #61
+ 3af: 18 05 8f 10 movw 15,SP, 1002 <cat2\+0xff3>
+ 3b3: 02
+ 3b4: 18 05 8f 10 movw 15,SP, 1002 <cat2\+0xff3>
+ 3b8: 02
+ 3b9: 18 05 8f 10 movw 15,SP, 1002 <cat2\+0xff3>
+ 3bd: 02
+ 3be: 86 3e[ ]+ ldaa #62
+ 3c0: 18 01 90 10 movw 1002 <cat2\+0xff3>, \-16,SP
+ 3c4: 02
+ 3c5: 18 01 90 10 movw 1002 <cat2\+0xff3>, \-16,SP
+ 3c9: 02
+ 3ca: 18 01 90 10 movw 1002 <cat2\+0xff3>, \-16,SP
+ 3ce: 02
+ 3cf: 86 3f[ ]+ ldaa #63
+ 3d1: 18 05 90 10 movw \-16,SP, 1002 <cat2\+0xff3>
+ 3d5: 02
+ 3d6: 18 05 90 10 movw \-16,SP, 1002 <cat2\+0xff3>
+ 3da: 02
+ 3db: 18 05 90 10 movw \-16,SP, 1002 <cat2\+0xff3>
+ 3df: 02
+ 3e0: 86 40[ ]+ ldaa #64
+ 3e2: 18 08 07 aa movb #170, 7,X
+ 3e6: 18 08 07 aa movb #170, 7,X
+ 3ea: 18 08 07 aa movb #170, 7,X
+ 3ee: 86 41[ ]+ ldaa #65
+ 3f0: 18 08 18 aa movb #170, \-8,X
+ 3f4: 18 08 18 aa movb #170, \-8,X
+ 3f8: 18 08 18 aa movb #170, \-8,X
+ 3fc: 86 42[ ]+ ldaa #66
+ 3fe: 18 00 07 00 movw #44 <cat2\+0x35>, 7,X
+ 402: 44
+ 403: 18 00 07 00 movw #44 <cat2\+0x35>, 7,X
+ 407: 44
+ 408: 18 00 07 00 movw #44 <cat2\+0x35>, 7,X
+ 40c: 44
+ 40d: 86 43[ ]+ ldaa #67
+ 40f: 18 00 18 00 movw #44 <cat2\+0x35>, \-8,X
+ 413: 44
+ 414: 18 00 18 00 movw #44 <cat2\+0x35>, \-8,X
+ 418: 44
+ 419: 18 00 18 00 movw #44 <cat2\+0x35>, \-8,X
+ 41d: 44
+ 41e: 86 44[ ]+ ldaa #68
+ 420: 18 08 47 aa movb #170, 7,Y
+ 424: 18 08 47 aa movb #170, 7,Y
+ 428: 18 08 47 aa movb #170, 7,Y
+ 42c: 86 45[ ]+ ldaa #69
+ 42e: 18 08 58 aa movb #170, \-8,Y
+ 432: 18 08 58 aa movb #170, \-8,Y
+ 436: 18 08 58 aa movb #170, \-8,Y
+ 43a: 86 46[ ]+ ldaa #70
+ 43c: 18 00 47 00 movw #44 <cat2\+0x35>, 7,Y
+ 440: 44
+ 441: 18 00 47 00 movw #44 <cat2\+0x35>, 7,Y
+ 445: 44
+ 446: 18 00 47 00 movw #44 <cat2\+0x35>, 7,Y
+ 44a: 44
+ 44b: 86 47[ ]+ ldaa #71
+ 44d: 18 00 58 00 movw #44 <cat2\+0x35>, \-8,Y
+ 451: 44
+ 452: 18 00 58 00 movw #44 <cat2\+0x35>, \-8,Y
+ 456: 44
+ 457: 18 00 58 00 movw #44 <cat2\+0x35>, \-8,Y
+ 45b: 44
+ 45c: 86 48[ ]+ ldaa #72
+ 45e: 18 08 c7 aa movb #170, 7,PC \{468 <cat2\+0x459>\}
+ 462: 18 08 c7 aa movb #170, 7,PC \{46c <cat2\+0x45d>\}
+ 466: 18 08 c7 aa movb #170, 7,PC \{470 <cat2\+0x461>\}
+ 46a: 86 49[ ]+ ldaa #73
+ 46c: 18 08 d8 aa movb #170, \-8,PC \{467 <cat2\+0x458>\}
+ 470: 18 08 d8 aa movb #170, \-8,PC \{46b <cat2\+0x45c>\}
+ 474: 18 08 d8 aa movb #170, \-8,PC \{46f <cat2\+0x460>\}
+ 478: 86 4a[ ]+ ldaa #74
+ 47a: 18 00 c7 00 movw #44 <cat2\+0x35>, 7,PC \{484 <cat2\+0x475>\}
+ 47e: 44
+ 47f: 18 00 c7 00 movw #44 <cat2\+0x35>, 7,PC \{489 <cat2\+0x47a>\}
+ 483: 44
+ 484: 18 00 c7 00 movw #44 <cat2\+0x35>, 7,PC \{48e <cat2\+0x47f>\}
+ 488: 44
+ 489: 86 4b[ ]+ ldaa #75
+ 48b: 18 00 d8 00 movw #44 <cat2\+0x35>, \-8,PC \{486 <cat2\+0x477>\}
+ 48f: 44
+ 490: 18 00 d8 00 movw #44 <cat2\+0x35>, \-8,PC \{48b <cat2\+0x47c>\}
+ 494: 44
+ 495: 18 00 d8 00 movw #44 <cat2\+0x35>, \-8,PC \{490 <cat2\+0x481>\}
+ 499: 44
+ 49a: 86 4c[ ]+ ldaa #76
+ 49c: 18 08 87 aa movb #170, 7,SP
+ 4a0: 18 08 87 aa movb #170, 7,SP
+ 4a4: 18 08 87 aa movb #170, 7,SP
+ 4a8: 86 4d[ ]+ ldaa #77
+ 4aa: 18 08 98 aa movb #170, \-8,SP
+ 4ae: 18 08 98 aa movb #170, \-8,SP
+ 4b2: 18 08 98 aa movb #170, \-8,SP
+ 4b6: 86 4e[ ]+ ldaa #78
+ 4b8: 18 00 87 00 movw #44 <cat2\+0x35>, 7,SP
+ 4bc: 44
+ 4bd: 18 00 87 00 movw #44 <cat2\+0x35>, 7,SP
+ 4c1: 44
+ 4c2: 18 00 87 00 movw #44 <cat2\+0x35>, 7,SP
+ 4c6: 44
+ 4c7: 86 4f[ ]+ ldaa #79
+ 4c9: 18 00 98 00 movw #44 <cat2\+0x35>, \-8,SP
+ 4cd: 44
+ 4ce: 18 00 98 00 movw #44 <cat2\+0x35>, \-8,SP
+ 4d2: 44
+ 4d3: 18 00 98 00 movw #44 <cat2\+0x35>, \-8,SP
+ 4d7: 44
+ 4d8: 86 50[ ]+ ldaa #80
+
diff --git a/gas/testsuite/gas/m68hc11/movb.s b/gas/testsuite/gas/m68hc11/movb.s
new file mode 100644
index 0000000..c9aae0f
--- /dev/null
+++ b/gas/testsuite/gas/m68hc11/movb.s
@@ -0,0 +1,333 @@
+ dog2=15
+ dog3=-16
+ dog4=7
+ dog5=-8
+ ;; idx - idx
+ ldaa #0
+ movb 15,x,dog2,x
+ movb 15,x,cat2,x
+ movb 15,x,15,x
+ ldaa #1
+ movb dog2,x,15,x
+ movb cat2,x,15,x
+ movb 15,x,15,x
+ ldaa #2
+ movb 15,x,dog3,x
+ movb 15,x,cat3,x
+ movb 15,x,-16,x
+ ldaa #3
+ movb dog3,x,15,x
+ movb cat3,x,15,x
+ movb -16,x,15,x
+ ldaa #4
+ movw 15,x,dog2,x
+ movw 15,x,cat2,x
+ movw 15,x,15,x
+ ldaa #5
+ movw dog2,x,15,x
+ movw cat2,x,15,x
+ movw 15,x,15,x
+ ldaa #6
+ movw 15,x,dog3,x
+ movw 15,x,cat3,x
+ movw 15,x,-16,x
+ ldaa #7
+ movw dog3,x,15,x
+ movw cat3,x,15,x
+ movw -16,x,15,x
+ ldaa #8
+ movb 15,y,dog2,y
+ movb 15,y,cat2,y
+ movb 15,y,15,y
+ ldaa #9
+ movb dog2,y,15,y
+ movb cat2,y,15,y
+ movb 15,y,15,y
+ ldaa #10
+ movb 15,y,dog3,y
+ movb 15,y,cat3,y
+ movb 15,y,-16,y
+ ldaa #11
+ movb dog3,y,15,y
+ movb cat3,y,15,y
+ movb -16,y,15,y
+ ldaa #12
+ movw 15,y,dog2,y
+ movw 15,y,cat2,y
+ movw 15,y,15,y
+ ldaa #13
+ movw dog2,y,15,y
+ movw cat2,y,15,y
+ movw 15,y,15,y
+ ldaa #14
+ movw 15,y,dog3,y
+ movw 15,y,cat3,y
+ movw 15,y,-16,y
+ ldaa #15
+ movw dog3,y,15,y
+ movw cat3,y,15,y
+ movw -16,y,15,y
+ ldaa #16
+ movb 15,y,dog2,pc
+ movb 15,y,cat2,pc
+ movb 15,y,15,pc
+ ldaa #17
+ movb dog2,y,15,pc
+ movb cat2,y,15,pc
+ movb 15,y,15,pc
+ ldaa #18
+ movb 15,y,dog3,pc
+ movb 15,y,cat3,pc
+ movb 15,y,-16,pc
+ ldaa #19
+ movb dog3,y,15,pc
+ movb cat3,y,15,pc
+ movb -16,y,15,pc
+ ldaa #20
+ movw 15,y,dog2,pc
+ movw 15,y,cat2,pc
+ movw 15,y,15,pc
+ ldaa #21
+ movw dog2,y,15,pc
+ movw cat2,y,15,pc
+ movw 15,y,15,pc
+ ldaa #22
+ movw 15,y,dog3,pc
+ movw 15,y,cat3,pc
+ movw 15,y,-16,pc
+ ldaa #23
+ movw dog3,y,15,pc
+ movw cat3,y,15,pc
+ movw -16,y,15,pc
+ ldaa #24
+ movb 15,sp,dog2,pc
+ movb 15,sp,cat2,pc
+ movb 15,sp,15,pc
+ ldaa #25
+ movb dog2,sp,15,pc
+ movb cat2,sp,15,pc
+ movb 15,sp,15,pc
+ ldaa #26
+ movb 15,sp,dog3,pc
+ movb 15,sp,cat3,pc
+ movb 15,sp,-16,pc
+ ldaa #27
+ movb dog3,sp,15,pc
+ movb cat3,sp,15,pc
+ movb -16,sp,15,pc
+ ldaa #28
+ movw 15,sp,dog2,pc
+ movw 15,sp,cat2,pc
+ movw 15,sp,15,pc
+ ldaa #29
+ movw dog2,sp,15,pc
+ movw cat2,sp,15,pc
+ movw 15,sp,15,pc
+ ldaa #30
+ movw 15,sp,dog3,pc
+ movw 15,sp,cat3,pc
+ movw 15,sp,-16,pc
+ ldaa #31
+ movw dog3,sp,15,pc
+ movw cat3,sp,15,pc
+ movw -16,sp,15,pc
+ ldaa #32
+ ;; ext - idx
+ ;; idx - ext
+ movb 0x1000,dog2,x
+ movb 0x1000,cat2,x
+ movb 0x1000,15,x
+ ldaa #33
+ movb dog2,x,0x1000
+ movb cat2,x,0x1000
+ movb 15,x,0x1000
+ ldaa #34
+ movb 0x1000,dog3,x
+ movb 0x1000,cat3,x
+ movb 0x1000,-16,x
+ ldaa #35
+ movb dog3,x,0x1000
+ movb cat3,x,0x1000
+ movb -16,x,0x1000
+ ldaa #36
+ movw 0x1002,dog2,x
+ movw 0x1002,cat2,x
+ movw 0x1002,15,x
+ ldaa #37
+ movw dog2,x,0x1002
+ movw cat2,x,0x1002
+ movw 15,x,0x1002
+ ldaa #38
+ movw 0x1002,dog3,x
+ movw 0x1002,cat3,x
+ movw 0x1002,-16,x
+ ldaa #39
+ movw dog3,x,0x1002
+ movw cat3,x,0x1002
+ movw -16,x,0x1002
+ ldaa #40
+ movb 0x1000,dog2,y
+ movb 0x1000,cat2,y
+ movb 0x1000,15,y
+ ldaa #41
+ movb dog2,y,0x1000
+ movb cat2,y,0x1000
+ movb 15,y,0x1000
+ ldaa #42
+ movb 0x1000,dog3,y
+ movb 0x1000,cat3,y
+ movb 0x1000,-16,y
+ ldaa #43
+ movb dog3,y,0x1000
+ movb cat3,y,0x1000
+ movb -16,y,0x1000
+ ldaa #44
+ movw 0x1002,dog2,y
+ movw 0x1002,cat2,y
+ movw 0x1002,15,y
+ ldaa #45
+ movw dog2,y,0x1002
+ movw cat2,y,0x1002
+ movw 15,y,0x1002
+ ldaa #46
+ movw 0x1002,dog3,y
+ movw 0x1002,cat3,y
+ movw 0x1002,-16,y
+ ldaa #47
+ movw dog3,y,0x1002
+ movw cat3,y,0x1002
+ movw -16,y,0x1002
+ ldaa #48
+ movb 0x1000,dog2,pc
+ movb 0x1000,cat2,pc
+ movb 0x1000,15,pc
+ ldaa #49
+ movb dog2,pc,0x1000
+ movb cat2,pc,0x1000
+ movb 15,pc,0x1000
+ ldaa #50
+ movb 0x1000,dog3,pc
+ movb 0x1000,cat3,pc
+ movb 0x1000,-16,pc
+ ldaa #51
+ movb dog3,pc,0x1000
+ movb cat3,pc,0x1000
+ movb -16,pc,0x1000
+ ldaa #52
+ movw 0x1002,dog2,pc
+ movw 0x1002,cat2,pc
+ movw 0x1002,15,pc
+ ldaa #53
+ movw dog2,pc,0x1002
+ movw cat2,pc,0x1002
+ movw 15,pc,0x1002
+ ldaa #54
+ movw 0x1002,dog3,pc
+ movw 0x1002,cat3,pc
+ movw 0x1002,-16,pc
+ ldaa #55
+ movw dog3,pc,0x1002
+ movw cat3,pc,0x1002
+ movw -16,pc,0x1002
+ ldaa #56
+ movb 0x1000,dog2,sp
+ movb 0x1000,cat2,sp
+ movb 0x1000,15,sp
+ ldaa #57
+ movb dog2,sp,0x1000
+ movb cat2,sp,0x1000
+ movb 15,sp,0x1000
+ ldaa #58
+ movb 0x1000,dog3,sp
+ movb 0x1000,cat3,sp
+ movb 0x1000,-16,sp
+ ldaa #59
+ movb dog3,sp,0x1000
+ movb cat3,sp,0x1000
+ movb -16,sp,0x1000
+ ldaa #60
+ movw 0x1002,dog2,sp
+ movw 0x1002,cat2,sp
+ movw 0x1002,15,sp
+ ldaa #61
+ movw dog2,sp,0x1002
+ movw cat2,sp,0x1002
+ movw 15,sp,0x1002
+ ldaa #62
+ movw 0x1002,dog3,sp
+ movw 0x1002,cat3,sp
+ movw 0x1002,-16,sp
+ ldaa #63
+ movw dog3,sp,0x1002
+ movw cat3,sp,0x1002
+ movw -16,sp,0x1002
+ ldaa #64
+ ;; imm - idx
+ movb #0xaa,dog4,x
+ movb #0xaa,cat4,x
+ movb #0xaa,7,x
+ ldaa #65
+ movb #0xaa,dog5,x
+ movb #0xaa,cat5,x
+ movb #0xaa,-8,x
+ ldaa #66
+ movw #0x44,dog4,x
+ movw #0x44,cat4,x
+ movw #0x44,7,x
+ ldaa #67
+ movw #0x44,dog5,x
+ movw #0x44,cat5,x
+ movw #0x44,-8,x
+ ldaa #68
+ movb #0xaa,dog4,y
+ movb #0xaa,cat4,y
+ movb #0xaa,7,y
+ ldaa #69
+ movb #0xaa,dog5,y
+ movb #0xaa,cat5,y
+ movb #0xaa,-8,y
+ ldaa #70
+ movw #0x44,dog4,y
+ movw #0x44,cat4,y
+ movw #0x44,7,y
+ ldaa #71
+ movw #0x44,dog5,y
+ movw #0x44,cat5,y
+ movw #0x44,-8,y
+ ldaa #72
+ movb #0xaa,dog4,pc
+ movb #0xaa,cat4,pc
+ movb #0xaa,7,pc
+ ldaa #73
+ movb #0xaa,dog5,pc
+ movb #0xaa,cat5,pc
+ movb #0xaa,-8,pc
+ ldaa #74
+ movw #0x44,dog4,pc
+ movw #0x44,cat4,pc
+ movw #0x44,7,pc
+ ldaa #75
+ movw #0x44,dog5,pc
+ movw #0x44,cat5,pc
+ movw #0x44,-8,pc
+ ldaa #76
+ movb #0xaa,dog4,sp
+ movb #0xaa,cat4,sp
+ movb #0xaa,7,sp
+ ldaa #77
+ movb #0xaa,dog5,sp
+ movb #0xaa,cat5,sp
+ movb #0xaa,-8,sp
+ ldaa #78
+ movw #0x44,dog4,sp
+ movw #0x44,cat4,sp
+ movw #0x44,7,sp
+ ldaa #79
+ movw #0x44,dog5,sp
+ movw #0x44,cat5,sp
+ movw #0x44,-8,sp
+ ldaa #80
+ cat2=15
+ cat3=-16
+ cat4=7
+ cat5=-8