2003-06-05 Michael Snyder <msnyder@redhat.com>
authorMichael Snyder <msnyder@vmware.com>
Thu, 5 Jun 2003 18:52:00 +0000 (18:52 +0000)
committerMichael Snyder <msnyder@vmware.com>
Thu, 5 Jun 2003 18:52:00 +0000 (18:52 +0000)
* gas/h8300/t01_mov.s: New file, tests mov instructions.
* gas/h8300/t02_mova.s: New file, tests mova instructions.
* gas/h8300/t03_add.s: New file, tests add instructions.
* gas/h8300/t04_sub.s: New file, tests sub instructions.
* gas/h8300/t05_cmp.s: New file, tests cmp instructions.
* gas/h8300/t06_ari2.s: New file, tests arithmetic instructions.
* gas/h8300/t07_ari3.s: New file, tests arithmetic instructions.
* gas/h8300/t08_or.s: New file, tests or instructions.
* gas/h8300/t09_xor.s: New file, tests xor instructions.
* gas/h8300/t10_and.s: New file, tests and instructions.
* gas/h8300/t11_logs.s: New file, tests logical instructions.
* gas/h8300/t12_bit.s: New file, tests bit instructions.
* gas/h8300/t13_otr.s.s: New file, tests misc. instructions.
* gas/h8300/t01_mov.exp: New file.
* gas/h8300/t02_mova.exp: New file.
* gas/h8300/t03_add.exp: New file.
* gas/h8300/t04_sub.exp: New file.
* gas/h8300/t05_cmp.exp: New file.
* gas/h8300/t06_ari2.exp: New file.
* gas/h8300/t07_ari3.exp: New file.
* gas/h8300/t08_or.exp: New file.
* gas/h8300/t09_xor.exp: New file.
* gas/h8300/t10_and.exp: New file.
* gas/h8300/t11_logs.exp: New file.
* gas/h8300/t12_bit.exp: New file.
* gas/h8300/t13_otr.exp: New file.

27 files changed:
gas/testsuite/ChangeLog
gas/testsuite/gas/h8300/t01_mov.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t01_mov.s [new file with mode: 0644]
gas/testsuite/gas/h8300/t02_mova.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t02_mova.s [new file with mode: 0644]
gas/testsuite/gas/h8300/t03_add.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t03_add.s [new file with mode: 0644]
gas/testsuite/gas/h8300/t04_sub.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t04_sub.s [new file with mode: 0644]
gas/testsuite/gas/h8300/t05_cmp.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t05_cmp.s [new file with mode: 0644]
gas/testsuite/gas/h8300/t06_ari2.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t06_ari2.s [new file with mode: 0644]
gas/testsuite/gas/h8300/t07_ari3.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t07_ari3.s [new file with mode: 0644]
gas/testsuite/gas/h8300/t08_or.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t08_or.s [new file with mode: 0644]
gas/testsuite/gas/h8300/t09_xor.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t09_xor.s [new file with mode: 0644]
gas/testsuite/gas/h8300/t10_and.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t10_and.s [new file with mode: 0644]
gas/testsuite/gas/h8300/t11_logs.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t11_logs.s [new file with mode: 0644]
gas/testsuite/gas/h8300/t12_bit.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t12_bit.s [new file with mode: 0644]
gas/testsuite/gas/h8300/t13_otr.exp [new file with mode: 0644]
gas/testsuite/gas/h8300/t13_otr.s [new file with mode: 0644]

index 70d8fe8..665da6a 100644 (file)
@@ -1,3 +1,32 @@
+2003-06-05  Michael Snyder  <msnyder@redhat.com>
+
+       * gas/h8300/t01_mov.s: New file, tests mov instructions.
+       * gas/h8300/t02_mova.s: New file, tests mova instructions.
+       * gas/h8300/t03_add.s: New file, tests add instructions.
+       * gas/h8300/t04_sub.s: New file, tests sub instructions.
+       * gas/h8300/t05_cmp.s: New file, tests cmp instructions.
+       * gas/h8300/t06_ari2.s: New file, tests arithmetic instructions.
+       * gas/h8300/t07_ari3.s: New file, tests arithmetic instructions.
+       * gas/h8300/t08_or.s: New file, tests or instructions.
+       * gas/h8300/t09_xor.s: New file, tests xor instructions.
+       * gas/h8300/t10_and.s: New file, tests and instructions.
+       * gas/h8300/t11_logs.s: New file, tests logical instructions.
+       * gas/h8300/t12_bit.s: New file, tests bit instructions.
+       * gas/h8300/t13_otr.s.s: New file, tests misc. instructions.
+       * gas/h8300/t01_mov.exp: New file.
+       * gas/h8300/t02_mova.exp: New file.
+       * gas/h8300/t03_add.exp: New file.
+       * gas/h8300/t04_sub.exp: New file.
+       * gas/h8300/t05_cmp.exp: New file.
+       * gas/h8300/t06_ari2.exp: New file.
+       * gas/h8300/t07_ari3.exp: New file.
+       * gas/h8300/t08_or.exp: New file.
+       * gas/h8300/t09_xor.exp: New file.
+       * gas/h8300/t10_and.exp: New file.
+       * gas/h8300/t11_logs.exp: New file.
+       * gas/h8300/t12_bit.exp: New file.
+       * gas/h8300/t13_otr.exp: New file.
+
 2003-06-04  Richard Henderson  <rth@redhat.com>
 
        * gas/alpha/elf-usepv-1.[sd]: New.
diff --git a/gas/testsuite/gas/h8300/t01_mov.exp b/gas/testsuite/gas/h8300/t01_mov.exp
new file mode 100644 (file)
index 0000000..802fde3
--- /dev/null
@@ -0,0 +1,3014 @@
+#
+# Some h8300sx tests -- t01_mov
+#
+
+proc do_t01_mov_test {} {
+    set testname "t01_mov.s -- h8sx tests"
+
+    gas_start "t01_mov.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*   7 0000 F312" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8 0002 017D0312" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9 0006 017D1312" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10 000a 017DB312" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11 000e 017D8312" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12 0012 017DA312" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13 0016 017D9312" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14 001a 017DC312" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15 0020 017DCB12" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 0028 017DD312" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17 002e 017DE312" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18 0034 017DF312" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19 003a 017DDB12" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20 0042 017DEB12" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21 004a 017DFB12" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 0052 017D4012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23 0058 017D4812" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24              " {
+           if [expr $x == 27] then {
+               pass "$testname: mov.b #0x12:8, ..."
+           } else {
+               fail "$testname: mov.b #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  25 0060 6AD11234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  26 0064 6AF11234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  26      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27              " {
+           if [expr $x == 3] then {
+               pass "$testname: mov.b #0x1:4, ..."
+           } else {
+               fail "$testname: mov.b #0x1:4, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b #0x1:4, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  28 006a 0C31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29              " {
+           if [expr $x == 1] then {
+               pass "$testname: mov.b r3h, r1h"
+           } else {
+               fail "$testname: mov.b r3h, r1h ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b r3h, r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  30 006c 6893" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31 006e 01716893" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32 0072 6C93" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33 0074 01736C93" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34 0078 01716C93" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35 007c 01726C93" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 0080 6E931234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 0084 78106AA3" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38 008c 01716E93" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39 0092 01726E93" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40 0098 01736E93" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41 009e 78116AA3" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42 00a6 78126AA3" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43 00ae 78136AA3" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44 00b6 3312" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45 00b8 6A831234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46 00bc 6AA31234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47              " {
+           if [expr $x == 25] then {
+               pass "$testname: mov.b r3h, ..."
+           } else {
+               fail "$testname: mov.b r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  48 00c2 6831" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49 00c4 01716831" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50 00c8 6C31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51 00ca 01736C31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52 00ce 01716C31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53 00d2 01726C31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 00d6 6E311234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 00da 78306A21" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56 00e2 01716E31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57 00e8 01726E31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58 00ee 01736E31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59 00f4 78316A21" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60 00fc 78326A21" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61 0104 78336A21" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62 010c 2312" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63 010e 6A031234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64 0112 6A231234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65              " {
+           if [expr $x == 25] then {
+               pass "$testname: mov.b ..., r3h"
+           } else {
+               fail "$testname: mov.b ..., r3h ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b ..., r3h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  66 0118 01780301" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67 011c 01780311" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68 0120 01780381" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 0124 017803B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70 0128 01780391" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71 012c 017803A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72 0130 017803C1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73 0136 017803C9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74 013e 017803D1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75 0144 017803E1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76 014a 017803F1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77 0150 017803D9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78 0158 017803E9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79 0160 017803F9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80 0168 01780340" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81 016e 01780348" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.b @er3, ..."
+           } else {
+               fail "$testname: mov.b @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  83 0176 01781301" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84 017a 01781311" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85 017e 01781381" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86 0182 017813B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87 0186 01781391" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88 018a 017813A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89 018e 017813C1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90 0194 017813C9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91 019c 017813D1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92 01a2 017813E1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 01a8 017813F1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94 01ae 017813D9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95 01b6 017813E9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96 01be 017813F9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97 01c6 01781340" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98 01cc 01781348" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.b @(0x1:2,er3), ..."
+           } else {
+               fail "$testname: mov.b @(0x1:2,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @(0x1:2,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 100 01d4 0178B301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101 01d8 0178B311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102 01dc 0178B381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103 01e0 0178B3B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104 01e4 0178B391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105 01e8 0178B3A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106 01ec 0178B3C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107 01f2 0178B3C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108 01fa 0178B3D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109 0200 0178B3E1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110 0206 0178B3F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111 020c 0178B3D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112 0214 0178B3E9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113 021c 0178B3F9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114 0224 0178B340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115 022a 0178B348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.b @-er3, ..."
+           } else {
+               fail "$testname: mov.b @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 117 0232 01788301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118 0236 01788311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119 023a 01788381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120 023e 017883B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121 0242 01788391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122 0246 017883A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123 024a 017883C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124 0250 017883C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125 0258 017883D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126 025e 017883E1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127 0264 017883F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128 026a 017883D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129 0272 017883E9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130 027a 017883F9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131 0282 01788340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132 0288 01788348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.b @er3+, ..."
+           } else {
+               fail "$testname: mov.b @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 134 0290 0178A301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135 0294 0178A311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136 0298 0178A381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137 029c 0178A3B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138 02a0 0178A391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139 02a4 0178A3A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140 02a8 0178A3C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141 02ae 0178A3C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142 02b6 0178A3D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143 02bc 0178A3E1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144 02c2 0178A3F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145 02c8 0178A3D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146 02d0 0178A3E9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147 02d8 0178A3F9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148 02e0 0178A340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149 02e6 0178A348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.b @er3-, ..."
+           } else {
+               fail "$testname: mov.b @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 151 02ee 01789301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152 02f2 01789311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153 02f6 01789381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154 02fa 017893B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155 02fe 01789391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156 0302 017893A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157 0306 017893C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158 030c 017893C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159 0314 017893D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160 031a 017893E1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161 0320 017893F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162 0326 017893D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163 032e 017893E9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164 0336 017893F9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165 033e 01789340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166 0344 01789348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.b @+er3, ..."
+           } else {
+               fail "$testname: mov.b @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 168 034c 0178C301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169 0352 0178C311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170 0358 0178C381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171 035e 0178C3B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172 0364 0178C391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173 036a 0178C3A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174 0370 0178C3C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175 0378 0178C3C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176 0382 0178C3D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177 038a 0178C3E1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178 0392 0178C3F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179 039a 0178C3D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180 03a4 0178C3E9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181 03ae 0178C3F9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182 03b8 0178C340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183 03c0 0178C348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.b @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: mov.b @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 185 03ca 0178CB01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186 03d2 0178CB11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187 03da 0178CB81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188 03e2 0178CBB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189 03ea 0178CB91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190 03f2 0178CBA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191 03fa 0178CBC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192 0404 0178CBC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193 0410 0178CBD1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194 041a 0178CBE1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195 0424 0178CBF1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196 042e 0178CBD9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197 043a 0178CBE9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198 0446 0178CBF9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199 0452 0178CB40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200 045c 0178CB48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.b @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: mov.b @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 202 0468 0178D301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203 046e 0178D311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204 0474 0178D381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205 047a 0178D3B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206 0480 0178D391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207 0486 0178D3A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208 048c 0178D3D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209 0494 0178D3E1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210 049c 0178D3F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211 04a4 0178D3D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212 04ae 0178D3E9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213 04b8 0178D3F9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214 04c2 0178D340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215 04ca 0178D348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216              " {
+           if [expr $x == 32] then {
+               pass "$testname: mov.b @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: mov.b @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 217 04d4 0178E301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218 04da 0178E311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219 04e0 0178E381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220 04e6 0178E3B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221 04ec 0178E391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222 04f2 0178E3A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223 04f8 0178E3C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224 0500 0178E3C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225 050a 0178E3D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226 0512 0178E3E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227 051a 0178E3F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228 0522 0178E3DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229 052c 0178E3EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230 0536 0178E3FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231 0540 0178E340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232 0548 0178E348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.b @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: mov.b @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 234 0552 0178F301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235 0558 0178F311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236 055e 0178F381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237 0564 0178F3B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238 056a 0178F391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239 0570 0178F3A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240 0576 0178F3C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241 057e 0178F3C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242 0588 0178F3D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243 0590 0178F3E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244 0598 0178F3F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245 05a0 0178F3DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246 05aa 0178F3EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247 05b4 0178F3FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248 05be 0178F340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249 05c6 0178F348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 250              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.b @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: mov.b @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 251 05d0 0178DB01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252 05d8 0178DB11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253 05e0 0178DB81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254 05e8 0178DBB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255 05f0 0178DB91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256 05f8 0178DBA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257 0600 0178DBC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258 060a 0178DBC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259 0616 0178DBD3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260 0620 0178DBE3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261 062a 0178DBF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262 0634 0178DBDB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263 0640 0178DBEB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264 064c 0178DBFB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265 0658 0178DB40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266 0662 0178DB48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 267              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.b @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: mov.b @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 268 066e 0178EB01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269 0676 0178EB11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270 067e 0178EB81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271 0686 0178EBB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272 068e 0178EB91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273 0696 0178EBA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274 069e 0178EBC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275 06a8 0178EBC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276 06b4 0178EBD3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277 06be 0178EBE3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278 06c8 0178EBF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279 06d2 0178EBDB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280 06de 0178EBEB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281 06ea 0178EBFB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282 06f6 0178EB40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283 0700 0178EB48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 284              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.b @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: mov.b @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 285 070c 0178FB01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 285      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286 0714 0178FB11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287 071c 0178FB81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288 0724 0178FBB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289 072c 0178FB91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290 0734 0178FBA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291 073c 0178FBC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292 0746 0178FBC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293 0752 0178FBD3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294 075c 0178FBE3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295 0766 0178FBF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296 0770 0178FBDB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297 077c 0178FBEB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298 0788 0178FBFB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299 0794 0178FB40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300 079e 0178FB48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 301              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.b @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: mov.b @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 302 07aa 01784001" { set x [expr $x+1]; exp_continue; }
+       -re ".* 302      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303 07b0 01784011" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304 07b6 01784081" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305 07bc 017840B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306 07c2 01784091" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307 07c8 017840A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308 07ce 017840C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309 07d6 017840C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310 07e0 017840D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311 07e8 017840E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312 07f0 017840F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313 07f8 017840DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314 0802 017840EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315 080c 017840FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316 0816 01784040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317 081e 01784048" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 318              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.b @0x1234:16, ..."
+           } else {
+               fail "$testname: mov.b @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 319 0828 01784801" { set x [expr $x+1]; exp_continue; }
+       -re ".* 319      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320 0830 01784811" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321 0838 01784881" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322 0840 017848B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323 0848 01784891" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324 0850 017848A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325 0858 017848C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326 0862 017848C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327 086e 017848D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328 0878 017848E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329 0882 017848F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330 088c 017848DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331 0898 017848EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332 08a4 017848FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333 08b0 01784840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334 08ba 01784848" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.b @0x12345678:32, ..."
+           } else {
+               fail "$testname: mov.b @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.b @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 336 08c6 79011234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 337 08ca 0F13" { set x [expr $x+1]; exp_continue; }
+       -re ".* 338 08cc 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 338      0100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 339 08d2 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 339      1100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340 08d8 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340      8100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 341 08de 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 341      B100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 342 08e4 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 342      9100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 343 08ea 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 343      A100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 344 08f0 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 344      C1001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345 08f8 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345      C9001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346 0902 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346      D3001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347 090a 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347      E3001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348 0912 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348      F3001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349 091a 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349      DB001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350 0924 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350      EB001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351 092e 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351      FB001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352 0938 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352      40001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353 0940 79741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353      48001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354              " {
+           if [expr $x == 39] then {
+               pass "$testname: mov.w #0x1234:16, ..."
+           } else {
+               fail "$testname: mov.w #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 355 094a 015D0112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 356 094e 015D1112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357 0952 015D8112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358 0956 015DB112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 359 095a 015D9112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 360 095e 015DA112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 361 0962 015DC112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 361      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362 0968 015DC912" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 363 0970 015DD312" { set x [expr $x+1]; exp_continue; }
+       -re ".* 363      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364 0976 015DE312" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365 097c 015DF312" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366 0982 015DDB12" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367 098a 015DEB12" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368 0992 015DFB12" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369 099a 015D4012" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370 09a0 015D4812" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.w #0x12:8, ..."
+           } else {
+               fail "$testname: mov.w #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 372 09a8 6BD11234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 373 09ac 6BF11234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 373      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 374              " {
+           if [expr $x == 3] then {
+               pass "$testname: mov.w #0x1:4, ..."
+           } else {
+               fail "$testname: mov.w #0x1:4, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w #0x1:4, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 375 09b2 0D21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 376              " {
+           if [expr $x == 1] then {
+               pass "$testname: mov.w r2, r1"
+           } else {
+               fail "$testname: mov.w r2, r1 ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w r2, r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 377 09b4 6992" { set x [expr $x+1]; exp_continue; }
+       -re ".* 378 09b6 01516992" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379 09ba 01536D92" { set x [expr $x+1]; exp_continue; }
+       -re ".* 380 09be 6D92" { set x [expr $x+1]; exp_continue; }
+       -re ".* 381 09c0 01526D92" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382 09c4 01516D92" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383 09c8 6F921234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384 09cc 78106BA2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385 09d4 01516FB2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386 09da 01526FB2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387 09e0 01536FB2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388 09e6 78316BA2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389 09ee 78326BA2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390 09f6 78336BA2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391 09fe 6B821234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392 0a02 6BA21234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393              " {
+           if [expr $x == 24] then {
+               pass "$testname: mov.w r2, ..."
+           } else {
+               fail "$testname: mov.w r2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w r2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 394 0a08 6921" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395 0a0a 01516921" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396 0a0e 6D21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397 0a10 01536D21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398 0a14 01516D21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399 0a18 01526D21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400 0a1c 6F111234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401 0a20 78106B21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402 0a28 01516F31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403 0a2e 01526F31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404 0a34 01536F31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405 0a3a 78316B21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406 0a42 78326B21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407 0a4a 78336B21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408 0a52 6B011234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409 0a56 6B211234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410              " {
+           if [expr $x == 24] then {
+               pass "$testname: mov.w ..., r1"
+           } else {
+               fail "$testname: mov.w ..., r1 ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w ..., r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 411 0a5c 01580201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412 0a60 01580211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413 0a64 01580281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414 0a68 015802B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415 0a6c 01580291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416 0a70 015802A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417 0a74 015802C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418 0a7a 015802C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419 0a82 015802D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420 0a88 015802E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421 0a8e 015802F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422 0a94 015802DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423 0a9c 015802EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424 0aa4 015802FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425 0aac 01580240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426 0ab2 01580248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.w @er2, ..."
+           } else {
+               fail "$testname: mov.w @er2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @er2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 428 0aba 01581201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429 0abe 01581211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430 0ac2 01581281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431 0ac6 015812B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432 0aca 01581291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433 0ace 015812A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434 0ad2 015812C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435 0ad8 015812C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436 0ae0 015812D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437 0ae6 015812E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438 0aec 015812F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439 0af2 015812DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440 0afa 015812EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441 0b02 015812FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442 0b0a 01581240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443 0b10 01581248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.w @(0x2:2,er2), ..."
+           } else {
+               fail "$testname: mov.w @(0x2:2,er2), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @(0x2:2,er2), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 445 0b18 0158B201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446 0b1c 0158B211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447 0b20 0158B281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448 0b24 0158B2B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449 0b28 0158B291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450 0b2c 0158B2A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451 0b30 0158B2C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452 0b36 0158B2C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453 0b3e 0158B2D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454 0b44 0158B2E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455 0b4a 0158B2F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456 0b50 0158B2DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457 0b58 0158B2EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458 0b60 0158B2FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459 0b68 0158B240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460 0b6e 0158B248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.w @-er2, ..."
+           } else {
+               fail "$testname: mov.w @-er2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @-er2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 462 0b76 01588201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463 0b7a 01588211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464 0b7e 01588281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465 0b82 015882B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466 0b86 01588291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467 0b8a 015882A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468 0b8e 015882C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469 0b94 015882C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470 0b9c 015882D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471 0ba2 015882E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472 0ba8 015882F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473 0bae 015882DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474 0bb6 015882EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475 0bbe 015882FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476 0bc6 01588240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477 0bcc 01588248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.w @er2+, ..."
+           } else {
+               fail "$testname: mov.w @er2+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @er2+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 479 0bd4 0158A201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480 0bd8 0158A211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481 0bdc 0158A281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482 0be0 0158A2B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483 0be4 0158A291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484 0be8 0158A2A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485 0bec 0158A2C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486 0bf2 0158A2C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487 0bfa 0158A2D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488 0c00 0158A2E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489 0c06 0158A2F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490 0c0c 0158A2DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491 0c14 0158A2EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492 0c1c 0158A2FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493 0c24 0158A240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494 0c2a 0158A248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.w @er2-, ..."
+           } else {
+               fail "$testname: mov.w @er2-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @er2-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 496 0c32 01589201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497 0c36 01589211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498 0c3a 01589281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499 0c3e 015892B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500 0c42 01589291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501 0c46 015892A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502 0c4a 015892C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503 0c50 015892C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504 0c58 015892D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505 0c5e 015892E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506 0c64 015892F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507 0c6a 015892DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508 0c72 015892EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509 0c7a 015892FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510 0c82 01589240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511 0c88 01589248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.w @+er2, ..."
+           } else {
+               fail "$testname: mov.w @+er2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @+er2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 513 0c90 0158C201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514 0c96 0158C211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515 0c9c 0158C281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516 0ca2 0158C2B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517 0ca8 0158C291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518 0cae 0158C2A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519 0cb4 0158C2C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520 0cbc 0158C2C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521 0cc6 0158C2D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522 0cce 0158C2E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523 0cd6 0158C2F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524 0cde 0158C2DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525 0ce8 0158C2EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526 0cf2 0158C2FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527 0cfc 0158C240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528 0d04 0158C248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.w @(0x1234:16,er2), ..."
+           } else {
+               fail "$testname: mov.w @(0x1234:16,er2), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @(0x1234:16,er2), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 530 0d0e 0158CA01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531 0d16 0158CA11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532 0d1e 0158CA81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533 0d26 0158CAB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534 0d2e 0158CA91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535 0d36 0158CAA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536 0d3e 0158CAC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537 0d48 0158CAC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538 0d54 0158CAD3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539 0d5e 0158CAE3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540 0d68 0158CAF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541 0d72 0158CADB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542 0d7e 0158CAEB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543 0d8a 0158CAFB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544 0d96 0158CA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545 0da0 0158CA48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.w @(0x12345678:32,er2), ..."
+           } else {
+               fail "$testname: mov.w @(0x12345678:32,er2), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @(0x12345678:32,er2), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 547 0dac 0158D301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548 0db2 0158D311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549 0db8 0158D381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550 0dbe 0158D3B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551 0dc4 0158D391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552 0dca 0158D3A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553 0dd0 0158D3C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554 0dd8 0158D3C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555 0de2 0158D3D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556 0dea 0158D3E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557 0df2 0158D3F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558 0dfa 0158D3DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559 0e04 0158D3EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560 0e0e 0158D3FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561 0e18 0158D340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562 0e20 0158D348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.w @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: mov.w @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 564 0e2a 0158E301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565 0e30 0158E311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566 0e36 0158E381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567 0e3c 0158E3B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568 0e42 0158E391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569 0e48 0158E3A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570 0e4e 0158E3C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571 0e56 0158E3C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572 0e60 0158E3D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573 0e68 0158E3E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574 0e70 0158E3F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575 0e78 0158E3DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576 0e82 0158E3EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577 0e8c 0158E3FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578 0e96 0158E340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579 0e9e 0158E348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.w @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: mov.w @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 581 0ea8 0158F301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582 0eae 0158F311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583 0eb4 0158F381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584 0eba 0158F3B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585 0ec0 0158F391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586 0ec6 0158F3A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587 0ecc 0158F3C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588 0ed4 0158F3C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589 0ede 0158F3D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590 0ee6 0158F3E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591 0eee 0158F3F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592 0ef6 0158F3DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593 0f00 0158F3EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594 0f0a 0158F3FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595 0f14 0158F340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596 0f1c 0158F348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.w @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: mov.w @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 598 0f26 0158DB01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599 0f2e 0158DB11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600 0f36 0158DB81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601 0f3e 0158DBB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602 0f46 0158DB91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603 0f4e 0158DBA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604 0f56 0158DBC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605 0f60 0158DBC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606 0f6c 0158DBD3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607 0f76 0158DBE3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608 0f80 0158DBF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609 0f8a 0158DBDB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610 0f96 0158DBEB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611 0fa2 0158DBFB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612 0fae 0158DB40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613 0fb8 0158DB48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.w @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: mov.w @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 615 0fc4 0158EB01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 615      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616 0fcc 0158EB11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617 0fd4 0158EB81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618 0fdc 0158EBB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619 0fe4 0158EB91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620 0fec 0158EBA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621 0ff4 0158EBC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622 0ffe 0158EBC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623 100a 0158EBD3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624 1014 0158EBE3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625 101e 0158EBF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626 1028 0158EBDB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627 1034 0158EBEB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628 1040 0158EBFB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629 104c 0158EB40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630 1056 0158EB48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.w @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: mov.w @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 632 1062 0158FB01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 632      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633 106a 0158FB11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634 1072 0158FB81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635 107a 0158FBB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636 1082 0158FB91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637 108a 0158FBA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638 1092 0158FBC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639 109c 0158FBC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640 10a8 0158FBD3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641 10b2 0158FBE3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642 10bc 0158FBF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643 10c6 0158FBDB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644 10d2 0158FBEB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645 10de 0158FBFB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646 10ea 0158FB40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647 10f4 0158FB48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.w @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: mov.w @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 649 1100 01584001" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650 1106 01584011" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651 110c 01584081" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652 1112 015840B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653 1118 01584091" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654 111e 015840A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655 1124 015840C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656 112c 015840C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657 1136 015840D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658 113e 015840E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659 1146 015840F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660 114e 015840DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661 1158 015840EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662 1162 015840FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 663 116c 01584040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 663      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664 1174 01584048" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 665              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.w @0x1234:16, ..."
+           } else {
+               fail "$testname: mov.w @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 666 117e 01584801" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667 1186 01584811" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 668 118e 01584881" { set x [expr $x+1]; exp_continue; }
+       -re ".* 668      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 669 1196 015848B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 669      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 670 119e 01584891" { set x [expr $x+1]; exp_continue; }
+       -re ".* 670      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671 11a6 015848A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672 11ae 015848C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673 11b8 015848C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674 11c4 015848D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675 11ce 015848E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676 11d8 015848F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677 11e2 015848DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678 11ee 015848EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679 11fa 015848FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680 1206 01584840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 681 1210 01584848" { set x [expr $x+1]; exp_continue; }
+       -re ".* 681      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 681      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 682              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.w @0x12345678:32, ..."
+           } else {
+               fail "$testname: mov.w @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.w @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 683 121c 7A011234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 683      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 684              " {
+           if [expr $x == 2] then {
+               pass "$testname: mov.l #0x12345678:32, er1"
+           } else {
+               fail "$testname: mov.l #0x12345678:32, er1 ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l #0x12345678:32, er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 685 1222 7A091234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 686              " {
+           if [expr $x == 1] then {
+               pass "$testname: mov.l #0x1234:16, er1"
+           } else {
+               fail "$testname: mov.l #0x1234:16, er1 ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l #0x1234:16, er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 687 1226 0F9B" { set x [expr $x+1]; exp_continue; }
+       -re ".* 688              " {
+           if [expr $x == 1] then {
+               pass "$testname: mov.l #0x1:3, er3"
+           } else {
+               fail "$testname: mov.l #0x1:3, er3 ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l #0x1:3, er3 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 689 1228 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689      56780100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690 1230 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690      56781100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691 1238 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691      5678B100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692 1240 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692      56788100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693 1248 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693      5678A100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694 1250 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694      56789100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695 1258 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695      5678C100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696 1262 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696      5678C900" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697 126e 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697      5678D300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698 1278 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698      5678E300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 699 1282 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 699      5678F300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 699      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700 128c 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700      5678DB00" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701 1298 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701      5678EB00" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702 12a4 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702      5678FB00" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703 12b0 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703      56784000" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704 12ba 7A741234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704      56784800" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.l #0x12345678:32, ..."
+           } else {
+               fail "$testname: mov.l #0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l #0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 706 12c6 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706      0100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707 12cc 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707      1100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708 12d2 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708      B100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709 12d8 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709      8100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710 12de 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710      A100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711 12e4 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      9100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712 12ea 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      C1001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713 12f2 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713      C9001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714 12fc 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      D3001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715 1304 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715      E3001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716 130c 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716      F3001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717 1314 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717      DB001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718 131e 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718      EB001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719 1328 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719      FB001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720 1332 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720      40001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721 133a 7A7C1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721      48001234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.l #0x1234:16, ..."
+           } else {
+               fail "$testname: mov.l #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 723 1344 010D0112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724 1348 010D1112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725 134c 010DB112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726 1350 010D8112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727 1354 010DA112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728 1358 010D9112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729 135c 010DC112" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730 1362 010DC912" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731 136a 010DD312" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732 1370 010DE312" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733 1376 010DF312" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734 137c 010DDB12" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735 1384 010DEB12" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736 138c 010DFB12" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737 1394 010D4012" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738 139a 010D4812" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.l #0x12:8, ..."
+           } else {
+               fail "$testname: mov.l #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 740 13a2 0FA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741              " {
+           if [expr $x == 1] then {
+               pass "$testname: mov.l er2, er1"
+           } else {
+               fail "$testname: mov.l er2, er1 ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l er2, er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 742 13a4 01006992" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743 13a8 01016992" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744 13ac 01006D92" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745 13b0 01036D92" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746 13b4 01016D92" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747 13b8 01026D92" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748 13bc 01006F92" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749 13c2 78906BA2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750 13ca 01016FB2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751 13d0 01026FB2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752 13d6 01036FB2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753 13dc 78B16BA2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754 13e4 78B26BA2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 755 13ec 78B36BA2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 755      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756 13f4 01006B82" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757 13fa 01006BA2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.l er2, ..."
+           } else {
+               fail "$testname: mov.l er2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l er2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 759 1402 01006921" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760 1406 01016921" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761 140a 01006D21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762 140e 01036D21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763 1412 01016D21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764 1416 01026D21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765 141a 01006F11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766 1420 78906B21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767 1428 01016F31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768 142e 01026F31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769 1434 01036F31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770 143a 78B16B21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771 1442 78B26B21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772 144a 78B36B21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773 1452 01006B01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774 1458 01006B21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.l ..., er1"
+           } else {
+               fail "$testname: mov.l ..., er1 ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l ..., er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 776 1460 01080201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777 1464 01080211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778 1468 01080281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779 146c 010802B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780 1470 01080291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781 1474 010802A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782 1478 010802C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783 147e 010802C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784 1486 010802D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785 148c 010802E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786 1492 010802F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787 1498 010802DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788 14a0 010802EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789 14a8 010802FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790 14b0 01080240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791 14b6 01080248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.l @er2, ..."
+           } else {
+               fail "$testname: mov.l @er2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @er2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 793 14be 01081201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794 14c2 01081211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795 14c6 01081281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796 14ca 010812B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797 14ce 01081291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798 14d2 010812A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799 14d6 010812C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800 14dc 010812C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801 14e4 010812D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802 14ea 010812E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803 14f0 010812F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804 14f6 010812DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805 14fe 010812EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806 1506 010812FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807 150e 01081240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808 1514 01081248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.l @(0x4:2,er2), ..."
+           } else {
+               fail "$testname: mov.l @(0x4:2,er2), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @(0x4:2,er2), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 810 151c 0108B201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811 1520 0108B211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812 1524 0108B281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813 1528 0108B2B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814 152c 0108B291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815 1530 0108B2A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816 1534 0108B2C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817 153a 0108B2C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818 1542 0108B2D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819 1548 0108B2E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820 154e 0108B2F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821 1554 0108B2DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822 155c 0108B2EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823 1564 0108B2FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824 156c 0108B240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825 1572 0108B248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.l @-er2, ..."
+           } else {
+               fail "$testname: mov.l @-er2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @-er2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 827 157a 01088201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828 157e 01088211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829 1582 01088281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830 1586 010882B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831 158a 01088291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832 158e 010882A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833 1592 010882C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834 1598 010882C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835 15a0 010882D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836 15a6 010882E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837 15ac 010882F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838 15b2 010882DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839 15ba 010882EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840 15c2 010882FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841 15ca 01088240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842 15d0 01088248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.l @er2+, ..."
+           } else {
+               fail "$testname: mov.l @er2+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @er2+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 844 15d8 0108A201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845 15dc 0108A211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846 15e0 0108A281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847 15e4 0108A2B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848 15e8 0108A291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849 15ec 0108A2A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850 15f0 0108A2C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851 15f6 0108A2C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852 15fe 0108A2D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853 1604 0108A2E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854 160a 0108A2F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855 1610 0108A2DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856 1618 0108A2EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857 1620 0108A2FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858 1628 0108A240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859 162e 0108A248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.l @er2-, ..."
+           } else {
+               fail "$testname: mov.l @er2-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @er2-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 861 1636 01089201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862 163a 01089211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863 163e 01089281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864 1642 010892B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865 1646 01089291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866 164a 010892A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867 164e 010892C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868 1654 010892C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869 165c 010892D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870 1662 010892E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871 1668 010892F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872 166e 010892DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873 1676 010892EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874 167e 010892FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875 1686 01089240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876 168c 01089248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877              " {
+           if [expr $x == 26] then {
+               pass "$testname: mov.l @+er2, ..."
+           } else {
+               fail "$testname: mov.l @+er2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @+er2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 878 1694 0108C201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879 169a 0108C211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880 16a0 0108C281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881 16a6 0108C2B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882 16ac 0108C291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883 16b2 0108C2A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884 16b8 0108C2C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885 16c0 0108C2C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886 16ca 0108C2D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887 16d2 0108C2E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888 16da 0108C2F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889 16e2 0108C2DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890 16ec 0108C2EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891 16f6 0108C2FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892 1700 0108C240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893 1708 0108C248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.l @(0x1234:16,er2), ..."
+           } else {
+               fail "$testname: mov.l @(0x1234:16,er2), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @(0x1234:16,er2), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 895 1712 0108CA01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896 171a 0108CA11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897 1722 0108CA81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898 172a 0108CAB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899 1732 0108CA91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900 173a 0108CAA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901 1742 0108CAC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902 174c 0108CAC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903 1758 0108CAD3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904 1762 0108CAE3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905 176c 0108CAF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906 1776 0108CADB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907 1782 0108CAEB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908 178e 0108CAFB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909 179a 0108CA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910 17a4 0108CA48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.l @(0x12345678:32,er2), ..."
+           } else {
+               fail "$testname: mov.l @(0x12345678:32,er2), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @(0x12345678:32,er2), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 912 17b0 0108D301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913 17b6 0108D311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914 17bc 0108D381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915 17c2 0108D3B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916 17c8 0108D391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917 17ce 0108D3A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918 17d4 0108D3C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919 17dc 0108D3C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920 17e6 0108D3D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921 17ee 0108D3E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922 17f6 0108D3F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923 17fe 0108D3DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924 1808 0108D3EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925 1812 0108D3FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926 181c 0108D340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927 1824 0108D348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.l @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: mov.l @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 929 182e 0108E301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930 1834 0108E311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931 183a 0108E381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932 1840 0108E3B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933 1846 0108E391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934 184c 0108E3A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935 1852 0108E3C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936 185a 0108E3C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937 1864 0108E3D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938 186c 0108E3E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939 1874 0108E3F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940 187c 0108E3DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941 1886 0108E3EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942 1890 0108E3FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943 189a 0108E340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944 18a2 0108E348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.l @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: mov.l @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 946 18ac 0108F301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947 18b2 0108F311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948 18b8 0108F381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949 18be 0108F3B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950 18c4 0108F391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951 18ca 0108F3A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952 18d0 0108F3C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953 18d8 0108F3C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954 18e2 0108F3D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955 18ea 0108F3E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956 18f2 0108F3F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957 18fa 0108F3DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958 1904 0108F3EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959 190e 0108F3FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960 1918 0108F340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961 1920 0108F348" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962              " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.l @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: mov.l @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 963 192a 0108DB01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964 1932 0108DB11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965 193a 0108DB81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966 1942 0108DBB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967 194a 0108DB91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968 1952 0108DBA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969 195a 0108DBC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970 1964 0108DBC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 971 1970 0108DBD3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 971      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 971      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972 197a 0108DBE3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 973 1984 0108DBF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 973      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 973      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 974 198e 0108DBDB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 974      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 974      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 975 199a 0108DBEB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 975      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 975      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 976 19a6 0108DBFB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 976      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 976      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 977 19b2 0108DB40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 977      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 977      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 978 19bc 0108DB48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 978      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 978      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 979              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.l @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: mov.l @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 980 19c8 0108EB01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 980      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 981 19d0 0108EB11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 981      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 982 19d8 0108EB81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 982      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 983 19e0 0108EBB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 983      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 984 19e8 0108EB91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 984      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 985 19f0 0108EBA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 985      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 986 19f8 0108EBC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 986      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 986      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 987 1a02 0108EBC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 987      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 987      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 988 1a0e 0108EBD3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 988      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 988      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 989 1a18 0108EBE3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 989      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 989      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 990 1a22 0108EBF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 990      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 990      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 991 1a2c 0108EBDB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 991      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 991      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 992 1a38 0108EBEB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 992      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 992      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 993 1a44 0108EBFB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 993      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 993      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 994 1a50 0108EB40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 994      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 994      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 995 1a5a 0108EB48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 995      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 995      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 996              " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.l @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: mov.l @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 997 1a66 0108FB01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 997      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 998 1a6e 0108FB11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 998      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 999 1a76 0108FB81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 999      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1000 1a7e 0108FBB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1000      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1001 1a86 0108FB91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1001      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1002 1a8e 0108FBA1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1002      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1003 1a96 0108FBC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1003      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1003      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1004 1aa0 0108FBC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1004      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1004      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1005 1aac 0108FBD3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1005      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1005      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1006 1ab6 0108FBE3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1006      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1006      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1007 1ac0 0108FBF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1007      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1007      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1008 1aca 0108FBDB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1008      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1008      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1009 1ad6 0108FBEB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1009      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1009      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1010 1ae2 0108FBFB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1010      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1010      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1011 1aee 0108FB40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1011      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1011      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1012 1af8 0108FB48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1012      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1012      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1013             " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.l @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: mov.l @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1014 1b04 01084001" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1014      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1015 1b0a 01084011" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1015      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1016 1b10 01084081" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1016      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1017 1b16 010840B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1017      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1018 1b1c 01084091" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1018      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1019 1b22 010840A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1019      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1020 1b28 010840C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1020      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1021 1b30 010840C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1021      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1021      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1022 1b3a 010840D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1022      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1023 1b42 010840E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1023      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1024 1b4a 010840F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1024      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1025 1b52 010840DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1025      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1025      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1026 1b5c 010840EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1026      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1026      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1027 1b66 010840FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1027      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1027      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1028 1b70 01084040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1028      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1029 1b78 01084048" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1029      12349ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1029      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1030             " {
+           if [expr $x == 37] then {
+               pass "$testname: mov.l @0x1234:16, ..."
+           } else {
+               fail "$testname: mov.l @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1031 1b82 01084801" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1031      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1032 1b8a 01084811" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1032      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1033 1b92 01084881" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1033      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1034 1b9a 010848B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1034      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1035 1ba2 01084891" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1035      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1036 1baa 010848A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1036      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1037 1bb2 010848C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1037      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1037      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1038 1bbc 010848C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1038      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1038      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1039 1bc8 010848D3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1039      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1039      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1040 1bd2 010848E3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1040      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1040      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1041 1bdc 010848F3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1041      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1041      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1042 1be6 010848DB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1042      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1042      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1043 1bf2 010848EB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1043      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1043      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1044 1bfe 010848FB" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1044      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1044      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1045 1c0a 01084840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1045      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1045      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1046 1c14 01084848" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1046      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1046      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1047             " {
+           if [expr $x == 42] then {
+               pass "$testname: mov.l @0x12345678:32, ..."
+           } else {
+               fail "$testname: mov.l @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: mov.l @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1048 1c20 6AC21234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1049 1c24 6A411234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1050             " {
+           if [expr $x == 2] then {
+               pass "$testname: movfpe / movtpe"
+           } else {
+               fail "$testname: movfpe / movtpe ($x)"
+           }
+       }
+        default        { fail "$testname: movfpe / movtpe ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1051 1c28 01106D71" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1052 1c2c 01106D72" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1053 1c30 01106D73" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1054 1c34 01106D74" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1055 1c38 01106D75" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1056 1c3c 01106D76" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1057 1c40 01106D77" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1058             " {
+           if [expr $x == 7] then {
+               pass "$testname: ldm @sp+,(er0-er1)"
+           } else {
+               fail "$testname: ldm @sp+,(er0-er1) ($x)"
+           }
+       }
+        default        { fail "$testname: ldm @sp+,(er0-er1) ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1059 1c44 01206D72" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1060 1c48 01206D73" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1061 1c4c 01206D74" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1062 1c50 01206D75" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1063 1c54 01206D76" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1064 1c58 01206D77" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1065             " {
+           if [expr $x == 6] then {
+               pass "$testname: ldm @sp+,(er0-er2)"
+           } else {
+               fail "$testname: ldm @sp+,(er0-er2) ($x)"
+           }
+       }
+        default        { fail "$testname: ldm @sp+,(er0-er2) ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1066 1c5c 01306D73" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1067 1c60 01306D74" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1068 1c64 01306D75" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1069 1c68 01306D76" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1070 1c6c 01306D77" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1071             " {
+           if [expr $x == 5] then {
+               pass "$testname: ldm @sp+,(er0-er3)"
+           } else {
+               fail "$testname: ldm @sp+,(er0-er3) ($x)"
+           }
+       }
+        default        { fail "$testname: ldm @sp+,(er0-er3) ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1072 1c70 01106DF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1073 1c74 01106DF1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1074 1c78 01106DF2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1075 1c7c 01106DF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1076 1c80 01106DF4" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1077 1c84 01106DF5" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1078 1c88 01106DF6" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1079             " {
+           if [expr $x == 7] then {
+               pass "$testname: stm (er0-er1),@-sp"
+           } else {
+               fail "$testname: stm (er0-er1),@-sp ($x)"
+           }
+       }
+        default        { fail "$testname: stm (er0-er1),@-sp ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1080 1c8c 01206DF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1081 1c90 01206DF1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1082 1c94 01206DF2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1083 1c98 01206DF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1084 1c9c 01206DF4" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1085 1ca0 01206DF5" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1086             " {
+           if [expr $x == 6] then {
+               pass "$testname: stm (er0-er2),@-sp"
+           } else {
+               fail "$testname: stm (er0-er2),@-sp ($x)"
+           }
+       }
+        default        { fail "$testname: stm (er0-er2),@-sp ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1087 1ca4 01306DF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1088 1ca8 01306DF1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1089 1cac 01306DF2" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1090 1cb0 01306DF3" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1091 1cb4 01306DF4" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1092             " {
+           if [expr $x == 5] then {
+               pass "$testname: stm (er0-er3),@-sp"
+           } else {
+               fail "$testname: stm (er0-er3),@-sp ($x)"
+           }
+       }
+        default        { fail "$testname: stm (er0-er3),@-sp ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1093 1cb8 7B5C598F" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1094             " {
+           if [expr $x == 1] then {
+               pass "$testname: eepmov.b"
+           } else {
+               fail "$testname: eepmov.b ($x)"
+           }
+       }
+        default        { fail "$testname: eepmov.b ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1095 1cbc 7BD4598F" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1096             " {
+           if [expr $x == 1] then {
+               pass "$testname: eepmov.w"
+           } else {
+               fail "$testname: eepmov.w ($x)"
+           }
+       }
+        default        { fail "$testname: eepmov.w ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1097 1cc0 7B94" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1098 1cc2 7BA4" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1099 1cc4 7BB4" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1100 1cc6 7B840000" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1101 1cca 0000" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1102 1ccc 0000" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1104             " {
+           if [expr $x == 6] then {
+               pass "$testname: movmd"
+           } else {
+               fail "$testname: movmd ($x)"
+           }
+       }
+        default        { fail "$testname: movmd ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t01_mov_test
+}
+
diff --git a/gas/testsuite/gas/h8300/t01_mov.s b/gas/testsuite/gas/h8300/t01_mov.s
new file mode 100644 (file)
index 0000000..c8d35de
--- /dev/null
@@ -0,0 +1,1106 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;mov\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+_start:\r
+    mov.b #0x12:8,r3h                   ;f312\r
+    mov.b #0x12:8,@er3                 ;017d0312\r
+    mov.b #0x12:8,@(0x1:2,er3)           ;017d1312\r
+    mov.b #0x12:8,@-er3                ;017db312\r
+    mov.b #0x12:8,@er3+                ;017d8312\r
+    mov.b #0x12:8,@er3-                ;017da312\r
+    mov.b #0x12:8,@+er3                ;017d9312\r
+    mov.b #0x12:8,@(0x1234:16,er3)          ;017dc3121234\r
+    mov.b #0x12:8,@(0x12345678:32,er3)          ;017dcb1212345678\r
+    mov.b #0x12:8,@(0x1234:16,r3l.b)        ;017dd3121234\r
+    mov.b #0x12:8,@(0x1234:16,r3.w)        ;017de3121234\r
+    mov.b #0x12:8,@(0x1234:16,er3.l)        ;017df3121234\r
+    mov.b #0x12:8,@(0x12345678:32,r3l.b)        ;017ddb1212345678\r
+    mov.b #0x12:8,@(0x12345678:32,r3.w)        ;017deb1212345678\r
+    mov.b #0x12:8,@(0x12345678:32,er3.l)        ;017dfb1212345678\r
+    mov.b #0x12:8,@0x1234:16               ;017d40121234\r
+    mov.b #0x12:8,@0x12345678:32               ;017d481212345678\r
+\r
+    mov.b #0x1:4,@0x1234:16               ;6ad11234\r
+    mov.b #0x1:4,@0x12345678:32               ;6af112345678\r
+\r
+    mov.b r3h,r1h                        ;0c31\r
+\r
+    mov.b r3h,@er1                      ;6893\r
+    mov.b r3h,@(0x1:2,er1)                ;01716893\r
+    mov.b r3h,@-er1                     ;6c93\r
+    mov.b r3h,@er1+                     ;01736c93\r
+    mov.b r3h,@er1-                     ;01716c93\r
+    mov.b r3h,@+er1                     ;01726c93\r
+    mov.b r3h,@(0x1234:16,er1)               ;6e931234\r
+    mov.b r3h,@(0x12345678:32,er1)               ;78106aa312345678\r
+    mov.b r3h,@(0x1234:16,r1l.b)             ;01716e931234\r
+    mov.b r3h,@(0x1234:16,r1.w)             ;01726e931234\r
+    mov.b r3h,@(0x1234:16,er1.l)             ;01736e931234\r
+    mov.b r3h,@(0x12345678:32,r1l.b)             ;78116aa312345678\r
+    mov.b r3h,@(0x12345678:32,r1.w)             ;78126aa312345678\r
+    mov.b r3h,@(0x12345678:32,er1.l)             ;78136aa312345678\r
+    mov.b r3h,@0xffffff12:8                     ;3312\r
+    mov.b r3h,@0x1234:16                    ;6a831234\r
+    mov.b r3h,@0x12345678:32                    ;6aa312345678\r
+\r
+    mov.b @er3,r1h                      ;6831\r
+    mov.b @(0x1:2,er3),r1h               ;01716831\r
+    mov.b @er3+,r1h                    ;6c31\r
+    mov.b @-er3,r1h                    ;01736c31\r
+    mov.b @+er3,r1h                    ;01716c31\r
+    mov.b @er3-,r1h                    ;01726c31\r
+    mov.b @(0x1234:16,er3),r1h               ;6e311234\r
+    mov.b @(0x12345678:32,er3),r1h               ;78306a2112345678\r
+    mov.b @(0x1234:16,r3l.b),r1h             ;01716e311234\r
+    mov.b @(0x1234:16,r3.w),r1h             ;01726e311234\r
+    mov.b @(0x1234:16,er3.l),r1h             ;01736e311234\r
+    mov.b @(0x12345678:32,r3l.b),r1h             ;78316a2112345678\r
+    mov.b @(0x12345678:32,r3.w),r1h             ;78326a2112345678\r
+    mov.b @(0x12345678:32,er3.l),r1h             ;78336a2112345678\r
+    mov.b @0xffffff12:8,r3h                     ;2312\r
+    mov.b @0x1234:16,r3h                    ;6a031234\r
+    mov.b @0x12345678:32,r3h                    ;6a2312345678\r
+\r
+    mov.b @er3,@er1                   ;01780301\r
+    mov.b @er3,@(0x1:2,er1)            ;01780311\r
+    mov.b @er3,@er1+                  ;01780381\r
+    mov.b @er3,@-er1                  ;017803b1\r
+    mov.b @er3,@+er1                  ;01780391\r
+    mov.b @er3,@er1-                  ;017803a1\r
+    mov.b @er3,@(0x1234:16,er1)           ;017803c11234\r
+    mov.b @er3,@(0x12345678:32,er1)           ;017803c912345678\r
+    mov.b @er3,@(0x1234:16,r1l.b)         ;017803d11234\r
+    mov.b @er3,@(0x1234:16,r1.w)         ;017803e11234\r
+    mov.b @er3,@(0x1234:16,er1.l)         ;017803f11234\r
+    mov.b @er3,@(0x12345678:32,r1l.b)         ;017803d912345678\r
+    mov.b @er3,@(0x12345678:32,r1.w)         ;017803e912345678\r
+    mov.b @er3,@(0x12345678:32,er1.l)         ;017803f912345678\r
+    mov.b @er3,@0x1234:16                 ;017803401234\r
+    mov.b @er3,@0x12345678:32                 ;0178034812345678\r
+\r
+    mov.b @(0x1:2,er3),@er1            ;01781301            \r
+    mov.b @(0x1:2,er3),@(0x1:2,er1)     ;01781311            \r
+    mov.b @(0x1:2,er3),@er1+           ;01781381            \r
+    mov.b @(0x1:2,er3),@-er1           ;017813b1            \r
+    mov.b @(0x1:2,er3),@+er1           ;01781391            \r
+    mov.b @(0x1:2,er3),@er1-           ;017813a1            \r
+    mov.b @(0x1:2,er3),@(0x1234:16,er1)    ;017813c11234\r
+    mov.b @(0x1:2,er3),@(0x12345678:32,er1)    ;017813c912345678\r
+    mov.b @(0x1:2,er3),@(0x1234:16,r1l.b)  ;017813d11234\r
+    mov.b @(0x1:2,er3),@(0x1234:16,r1.w)  ;017813e11234\r
+    mov.b @(0x1:2,er3),@(0x1234:16,er1.l)  ;017813f11234\r
+    mov.b @(0x1:2,er3),@(0x12345678:32,r1l.b)  ;017813d912345678\r
+    mov.b @(0x1:2,er3),@(0x12345678:32,r1.w)  ;017813e912345678\r
+    mov.b @(0x1:2,er3),@(0x12345678:32,er1.l)  ;017813f912345678\r
+    mov.b @(0x1:2,er3),@0x1234:16          ;017813401234\r
+    mov.b @(0x1:2,er3),@0x12345678:32          ;0178134812345678\r
+\r
+    mov.b @-er3,@er1                  ;0178b301\r
+    mov.b @-er3,@(0x1:2,er1)           ;0178b311            \r
+    mov.b @-er3,@er1+                 ;0178b381            \r
+    mov.b @-er3,@-er1                 ;0178b3b1            \r
+    mov.b @-er3,@+er1                 ;0178b391            \r
+    mov.b @-er3,@er1-                 ;0178b3a1            \r
+    mov.b @-er3,@(0x1234:16,er1)          ;0178b3c11234\r
+    mov.b @-er3,@(0x12345678:32,er1)          ;0178b3c912345678\r
+    mov.b @-er3,@(0x1234:16,r1l.b)        ;0178b3d11234\r
+    mov.b @-er3,@(0x1234:16,r1.w)        ;0178b3e11234\r
+    mov.b @-er3,@(0x1234:16,er1.l)        ;0178b3f11234\r
+    mov.b @-er3,@(0x12345678:32,r1l.b)        ;0178b3d912345678\r
+    mov.b @-er3,@(0x12345678:32,r1.w)        ;0178b3e912345678\r
+    mov.b @-er3,@(0x12345678:32,er1.l)        ;0178b3f912345678\r
+    mov.b @-er3,@0x1234:16                ;0178b3401234\r
+    mov.b @-er3,@0x12345678:32                ;0178b34812345678\r
+\r
+    mov.b @er3+,@er1                  ;01788301\r
+    mov.b @er3+,@(0x1:2,er1)           ;01788311            \r
+    mov.b @er3+,@er1+                 ;01788381            \r
+    mov.b @er3+,@-er1                 ;017883b1            \r
+    mov.b @er3+,@+er1                 ;01788391            \r
+    mov.b @er3+,@er1-                 ;017883a1            \r
+    mov.b @er3+,@(0x1234:16,er1)          ;017883c11234\r
+    mov.b @er3+,@(0x12345678:32,er1)          ;017883c912345678\r
+    mov.b @er3+,@(0x1234:16,r1l.b)        ;017883d11234\r
+    mov.b @er3+,@(0x1234:16,r1.w)        ;017883e11234\r
+    mov.b @er3+,@(0x1234:16,er1.l)        ;017883f11234\r
+    mov.b @er3+,@(0x12345678:32,r1l.b)        ;017883d912345678\r
+    mov.b @er3+,@(0x12345678:32,r1.w)        ;017883e912345678\r
+    mov.b @er3+,@(0x12345678:32,er1.l)        ;017883f912345678\r
+    mov.b @er3+,@0x1234:16                ;017883401234\r
+    mov.b @er3+,@0x12345678:32                ;0178834812345678\r
+\r
+    mov.b @er3-,@er1                  ;0178a301\r
+    mov.b @er3-,@(0x1:2,er1)           ;0178a311            \r
+    mov.b @er3-,@er1+                 ;0178a381            \r
+    mov.b @er3-,@-er1                 ;0178a3b1            \r
+    mov.b @er3-,@+er1                 ;0178a391            \r
+    mov.b @er3-,@er1-                 ;0178a3a1            \r
+    mov.b @er3-,@(0x1234:16,er1)          ;0178a3c11234\r
+    mov.b @er3-,@(0x12345678:32,er1)          ;0178a3c912345678\r
+    mov.b @er3-,@(0x1234:16,r1l.b)        ;0178a3d11234\r
+    mov.b @er3-,@(0x1234:16,r1.w)        ;0178a3e11234\r
+    mov.b @er3-,@(0x1234:16,er1.l)        ;0178a3f11234\r
+    mov.b @er3-,@(0x12345678:32,r1l.b)        ;0178a3d912345678\r
+    mov.b @er3-,@(0x12345678:32,r1.w)        ;0178a3e912345678\r
+    mov.b @er3-,@(0x12345678:32,er1.l)        ;0178a3f912345678\r
+    mov.b @er3-,@0x1234:16                ;0178a3401234\r
+    mov.b @er3-,@0x12345678:32                ;0178a34812345678\r
+\r
+    mov.b @+er3,@er1                  ;01789301\r
+    mov.b @+er3,@(0x1:2,er1)           ;01789311            \r
+    mov.b @+er3,@er1+                 ;01789381            \r
+    mov.b @+er3,@-er1                 ;017893b1            \r
+    mov.b @+er3,@+er1                 ;01789391            \r
+    mov.b @+er3,@er1-                 ;017893a1            \r
+    mov.b @+er3,@(0x1234:16,er1)          ;017893c11234\r
+    mov.b @+er3,@(0x12345678:32,er1)          ;017893c912345678\r
+    mov.b @+er3,@(0x1234:16,r1l.b)        ;017893d11234\r
+    mov.b @+er3,@(0x1234:16,r1.w)        ;017893e11234\r
+    mov.b @+er3,@(0x1234:16,er1.l)        ;017893f11234\r
+    mov.b @+er3,@(0x12345678:32,r1l.b)        ;017893d912345678\r
+    mov.b @+er3,@(0x12345678:32,r1.w)        ;017893e912345678\r
+    mov.b @+er3,@(0x12345678:32,er1.l)        ;017893f912345678\r
+    mov.b @+er3,@0x1234:16                ;017893401234\r
+    mov.b @+er3,@0x12345678:32                ;0178934812345678\r
+\r
+    mov.b @(0x1234:16,er3),@er1           ;0178c3011234\r
+    mov.b @(0x1234:16,er3),@(0x1:2,er1)    ;0178c3111234\r
+    mov.b @(0x1234:16,er3),@er1+          ;0178c3811234\r
+    mov.b @(0x1234:16,er3),@-er1          ;0178c3b11234\r
+    mov.b @(0x1234:16,er3),@+er1          ;0178c3911234\r
+    mov.b @(0x1234:16,er3),@er1-          ;0178c3a11234\r
+    mov.b @(0x1234:16,er3),@(0xffff9abc:16,er1)   ;0178c3c112349abc\r
+    mov.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)   ;0178c3c912349abcdef0\r
+    mov.b @(0x1234:16,er3),@(0xffff9abc:16,r1l.b) ;0178c3d112349abc\r
+    mov.b @(0x1234:16,er3),@(0xffff9abc:16,r1.w) ;0178c3e112349abc\r
+    mov.b @(0x1234:16,er3),@(0xffff9abc:16,er1.l) ;0178c3f112349abc\r
+    mov.b @(0x1234:16,er3),@(0x9abcdef0:32,r1l.b) ;0178c3d912349abcdef0\r
+    mov.b @(0x1234:16,er3),@(0x9abcdef0:32,r1.w) ;0178c3e912349abcdef0\r
+    mov.b @(0x1234:16,er3),@(0x9abcdef0:32,er1.l) ;0178c3f912349abcdef0\r
+    mov.b @(0x1234:16,er3),@0xffff9abc:16         ;0178c34012349abc\r
+    mov.b @(0x1234:16,er3),@0x9abcdef0:32         ;0178c34812349abcdef0\r
+\r
+    mov.b @(0x12345678:32,er3),@er1           ;0178cb0112345678\r
+    mov.b @(0x12345678:32,er3),@(0x1:2,er1)    ;0178cb1112345678\r
+    mov.b @(0x12345678:32,er3),@er1+          ;0178cb8112345678\r
+    mov.b @(0x12345678:32,er3),@-er1          ;0178cbb112345678\r
+    mov.b @(0x12345678:32,er3),@+er1          ;0178cb9112345678\r
+    mov.b @(0x12345678:32,er3),@er1-          ;0178cba112345678\r
+    mov.b @(0x12345678:32,er3),@(0xffff9abc:16,er1)   ;0178cbc1123456789abc\r
+    mov.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)   ;0178cbc9123456789abcdef0\r
+    mov.b @(0x12345678:32,er3),@(0xffff9abc:16,r1l.b) ;0178cbd1123456789abc\r
+    mov.b @(0x12345678:32,er3),@(0xffff9abc:16,r1.w) ;0178cbe1123456789abc\r
+    mov.b @(0x12345678:32,er3),@(0xffff9abc:16,er1.l) ;0178cbf1123456789abc\r
+    mov.b @(0x12345678:32,er3),@(0x9abcdef0:32,r1l.b) ;0178cbd9123456789abcdef0\r
+    mov.b @(0x12345678:32,er3),@(0x9abcdef0:32,r1.w) ;0178cbe9123456789abcdef0\r
+    mov.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1.l) ;0178cbf9123456789abcdef0\r
+    mov.b @(0x12345678:32,er3),@0xffff9abc:16         ;0178cb40123456789abc\r
+    mov.b @(0x12345678:32,er3),@0x9abcdef0:32         ;0178cb48123456789abcdef0\r
+\r
+    mov.b @(0x1234:16,r3l.b),@er1         ;0178d3011234\r
+    mov.b @(0x1234:16,r3l.b),@(0x1:2,er1)  ;0178d3111234\r
+    mov.b @(0x1234:16,r3l.b),@er1+        ;0178d3811234\r
+    mov.b @(0x1234:16,r3l.b),@-er1        ;0178d3b11234\r
+    mov.b @(0x1234:16,r3l.b),@+er1        ;0178d3911234\r
+    mov.b @(0x1234:16,r3l.b),@er1-        ;0178d3a11234\r
+    mov.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r1l.b)    ;0178d3d112349abc\r
+    mov.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r1.w)    ;0178d3e112349abc\r
+    mov.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1.l)    ;0178d3f112349abc\r
+    mov.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r1l.b)    ;0178d3d912349abcdef0\r
+    mov.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r1.w)    ;0178d3e912349abcdef0\r
+    mov.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1.l)    ;0178d3f912349abcdef0\r
+    mov.b @(0x1234:16,r3l.b),@0xffff9abc:16            ;0178d34012349abc\r
+    mov.b @(0x1234:16,r3l.b),@0x9abcdef0:32            ;0178d34812349abcdef0\r
+\r
+    mov.b @(0x1234:16,r3.w),@er1              ;0178e3011234\r
+    mov.b @(0x1234:16,r3.w),@(0x1:2,er1)       ;0178e3111234\r
+    mov.b @(0x1234:16,r3.w),@er1+             ;0178e3811234\r
+    mov.b @(0x1234:16,r3.w),@-er1             ;0178e3b11234\r
+    mov.b @(0x1234:16,r3.w),@+er1             ;0178e3911234\r
+    mov.b @(0x1234:16,r3.w),@er1-             ;0178e3a11234\r
+    mov.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1)      ;0178e3c112349abc\r
+    mov.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)      ;0178e3c912349abcdef0\r
+    mov.b @(0x1234:16,r3.w),@(0xffff9abc:16,r3l.b)    ;0178e3d312349abc\r
+    mov.b @(0x1234:16,r3.w),@(0xffff9abc:16,r3.w)    ;0178e3e312349abc\r
+    mov.b @(0x1234:16,r3.w),@(0xffff9abc:16,er3.l)    ;0178e3f312349abc\r
+    mov.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r3l.b)    ;0178e3db12349abcdef0\r
+    mov.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r3.w)    ;0178e3eb12349abcdef0\r
+    mov.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er3.l)    ;0178e3fb12349abcdef0\r
+    mov.b @(0x1234:16,r3.w),@0xffff9abc:16            ;0178e34012349abc\r
+    mov.b @(0x1234:16,r3.w),@0x9abcdef0:32            ;0178e34812349abcdef0\r
+\r
+    mov.b @(0x1234:16,er3.l),@er1              ;0178f3011234\r
+    mov.b @(0x1234:16,er3.l),@(0x1:2,er1)       ;0178f3111234\r
+    mov.b @(0x1234:16,er3.l),@er1+             ;0178f3811234\r
+    mov.b @(0x1234:16,er3.l),@-er1             ;0178f3b11234\r
+    mov.b @(0x1234:16,er3.l),@+er1             ;0178f3911234\r
+    mov.b @(0x1234:16,er3.l),@er1-             ;0178f3a11234\r
+    mov.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1)      ;0178f3c112349abc\r
+    mov.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)      ;0178f3c912349abcdef0\r
+    mov.b @(0x1234:16,er3.l),@(0xffff9abc:16,r3l.b)    ;0178f3d312349abc\r
+    mov.b @(0x1234:16,er3.l),@(0xffff9abc:16,r3.w)    ;0178f3e312349abc\r
+    mov.b @(0x1234:16,er3.l),@(0xffff9abc:16,er3.l)    ;0178f3f312349abc\r
+    mov.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r3l.b)    ;0178f3db12349abcdef0\r
+    mov.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r3.w)    ;0178f3eb12349abcdef0\r
+    mov.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er3.l)    ;0178f3fb12349abcdef0\r
+    mov.b @(0x1234:16,er3.l),@0xffff9abc:16            ;0178f34012349abc\r
+    mov.b @(0x1234:16,er3.l),@0x9abcdef0:32            ;0178f34812349abcdef0\r
+\r
+    mov.b @(0x12345678:32,r3l.b),@er1              ;0178db0112345678\r
+    mov.b @(0x12345678:32,r3l.b),@(0x1:2,er1)       ;0178db1112345678\r
+    mov.b @(0x12345678:32,r3l.b),@er1+             ;0178db8112345678\r
+    mov.b @(0x12345678:32,r3l.b),@-er1             ;0178dbb112345678\r
+    mov.b @(0x12345678:32,r3l.b),@+er1             ;0178db9112345678\r
+    mov.b @(0x12345678:32,r3l.b),@er1-             ;0178dba112345678\r
+    mov.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)      ;0178dbc1123456789abc\r
+    mov.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)      ;0178dbc9123456789abcdef0\r
+    mov.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r3l.b)    ;0178dbd3123456789abc\r
+    mov.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r3.w)    ;0178dbe3123456789abc\r
+    mov.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er3.l)    ;0178dbf3123456789abc\r
+    mov.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3l.b)    ;0178dbdb123456789abcdef0\r
+    mov.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3.w)    ;0178dbeb123456789abcdef0\r
+    mov.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er3.l)    ;0178dbfb123456789abcdef0\r
+    mov.b @(0x12345678:32,r3l.b),@0xffff9abc:16            ;0178db40123456789abc\r
+    mov.b @(0x12345678:32,r3l.b),@0x9abcdef0:32            ;0178db48123456789abcdef0\r
+\r
+    mov.b @(0x12345678:32,r3.w),@er1              ;0178eb0112345678\r
+    mov.b @(0x12345678:32,r3.w),@(0x1:2,er1)       ;0178eb1112345678\r
+    mov.b @(0x12345678:32,r3.w),@er1+             ;0178eb8112345678\r
+    mov.b @(0x12345678:32,r3.w),@-er1             ;0178ebb112345678\r
+    mov.b @(0x12345678:32,r3.w),@+er1             ;0178eb9112345678\r
+    mov.b @(0x12345678:32,r3.w),@er1-             ;0178eba112345678\r
+    mov.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)      ;0178ebc1123456789abc\r
+    mov.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)      ;0178ebc9123456789abcdef0\r
+    mov.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r3l.b)    ;0178ebd3123456789abc\r
+    mov.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r3.w)    ;0178ebe3123456789abc\r
+    mov.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er3.l)    ;0178ebf3123456789abc\r
+    mov.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3l.b)    ;0178ebdb123456789abcdef0\r
+    mov.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3.w)    ;0178ebeb123456789abcdef0\r
+    mov.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er3.l)    ;0178ebfb123456789abcdef0\r
+    mov.b @(0x12345678:32,r3.w),@0xffff9abc:16            ;0178eb40123456789abc\r
+    mov.b @(0x12345678:32,r3.w),@0x9abcdef0:32            ;0178eb48123456789abcdef0\r
+\r
+    mov.b @(0x12345678:32,er3.l),@er1              ;0178fb0112345678\r
+    mov.b @(0x12345678:32,er3.l),@(0x1:2,er1)       ;0178fb1112345678\r
+    mov.b @(0x12345678:32,er3.l),@er1+             ;0178fb8112345678\r
+    mov.b @(0x12345678:32,er3.l),@-er1             ;0178fbb112345678\r
+    mov.b @(0x12345678:32,er3.l),@+er1             ;0178fb9112345678\r
+    mov.b @(0x12345678:32,er3.l),@er1-             ;0178fba112345678\r
+    mov.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)      ;0178fbc1123456789abc\r
+    mov.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)      ;0178fbc9123456789abcdef0\r
+    mov.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r3l.b)    ;0178fbd3123456789abc\r
+    mov.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r3.w)    ;0178fbe3123456789abc\r
+    mov.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er3.l)    ;0178fbf3123456789abc\r
+    mov.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3l.b)    ;0178fbdb123456789abcdef0\r
+    mov.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3.w)    ;0178fbeb123456789abcdef0\r
+    mov.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er3.l)    ;0178fbfb123456789abcdef0\r
+    mov.b @(0x12345678:32,er3.l),@0xffff9abc:16            ;0178fb40123456789abc\r
+    mov.b @(0x12345678:32,er3.l),@0x9abcdef0:32            ;0178fb48123456789abcdef0\r
+\r
+    mov.b @0x1234:16,@er1                      ;017840011234\r
+    mov.b @0x1234:16,@(0x1:2,er1)               ;017840111234\r
+    mov.b @0x1234:16,@er1+                     ;017840811234\r
+    mov.b @0x1234:16,@-er1                     ;017840b11234\r
+    mov.b @0x1234:16,@+er1                     ;017840911234\r
+    mov.b @0x1234:16,@er1-                     ;017840a11234\r
+    mov.b @0x1234:16,@(0xffff9abc:16,er1)              ;017840c112349abc\r
+    mov.b @0x1234:16,@(0x9abcdef0:32,er1)              ;017840c912349abcdef0\r
+    mov.b @0x1234:16,@(0xffff9abc:16,r3l.b)            ;017840d312349abc\r
+    mov.b @0x1234:16,@(0xffff9abc:16,r3.w)            ;017840e312349abc\r
+    mov.b @0x1234:16,@(0xffff9abc:16,er3.l)            ;017840f312349abc\r
+    mov.b @0x1234:16,@(0x9abcdef0:32,r3l.b)            ;017840db12349abcdef0\r
+    mov.b @0x1234:16,@(0x9abcdef0:32,r3.w)            ;017840eb12349abcdef0\r
+    mov.b @0x1234:16,@(0x9abcdef0:32,er3.l)            ;017840fb12349abcdef0\r
+    mov.b @0x1234:16,@0xffff9abc:16                    ;0178404012349abc\r
+    mov.b @0x1234:16,@0x9abcdef0:32                    ;0178404812349abcdef0\r
+\r
+    mov.b @0x12345678:32,@er1                      ;0178480112345678\r
+    mov.b @0x12345678:32,@(0x1:2,er1)               ;0178481112345678\r
+    mov.b @0x12345678:32,@er1+                     ;0178488112345678\r
+    mov.b @0x12345678:32,@-er1                     ;017848b112345678\r
+    mov.b @0x12345678:32,@+er1                     ;0178489112345678\r
+    mov.b @0x12345678:32,@er1-                     ;017848a112345678\r
+    mov.b @0x12345678:32,@(0xffff9abc:16,er1)              ;017848c1123456789abc\r
+    mov.b @0x12345678:32,@(0x9abcdef0:32,er1)              ;017848c9123456789abcdef0\r
+    mov.b @0x12345678:32,@(0xffff9abc:16,r3l.b)            ;017848d3123456789abc\r
+    mov.b @0x12345678:32,@(0xffff9abc:16,r3.w)            ;017848e3123456789abc\r
+    mov.b @0x12345678:32,@(0xffff9abc:16,er3.l)            ;017848f3123456789abc\r
+    mov.b @0x12345678:32,@(0x9abcdef0:32,r3l.b)            ;017848db123456789abcdef0\r
+    mov.b @0x12345678:32,@(0x9abcdef0:32,r3.w)            ;017848eb123456789abcdef0\r
+    mov.b @0x12345678:32,@(0x9abcdef0:32,er3.l)            ;017848fb123456789abcdef0\r
+    mov.b @0x12345678:32,@0xffff9abc:16                    ;01784840123456789abc\r
+    mov.b @0x12345678:32,@0x9abcdef0:32                    ;01784848123456789abcdef0\r
+\r
+    mov.w #0x1234:16,r1                        ;79011234\r
+    mov.w #0x1:3,r3                         ;0f13\r
+    mov.w #0x1234:16,@er1                      ;797412340100\r
+    mov.w #0x1234:16,@(0x2:2,er1)            ;797412341100\r
+    mov.w #0x1234:16,@er1+                     ;797412348100\r
+    mov.w #0x1234:16,@-er1                     ;79741234b100\r
+    mov.w #0x1234:16,@+er1                     ;797412349100\r
+    mov.w #0x1234:16,@er1-                     ;79741234a100\r
+    mov.w #0x1234:16,@(0x1234:16,er1)              ;79741234c1001234\r
+    mov.w #0x1234:16,@(0x12345678:32,er1)              ;79741234c90012345678\r
+    mov.w #0x1234:16,@(0x1234:16,r3l.b)            ;79741234d3001234\r
+    mov.w #0x1234:16,@(0x1234:16,r3.w)            ;79741234e3001234\r
+    mov.w #0x1234:16,@(0x1234:16,er3.l)            ;79741234f3001234\r
+    mov.w #0x1234:16,@(0x12345678:32,r3l.b)            ;79741234db0012345678\r
+    mov.w #0x1234:16,@(0x12345678:32,r3.w)            ;79741234eb0012345678\r
+    mov.w #0x1234:16,@(0x12345678:32,er3.l)            ;79741234fb0012345678\r
+    mov.w #0x1234:16,@0x1234:16                    ;7974123440001234\r
+    mov.w #0x1234:16,@0x12345678:32                    ;79741234480012345678\r
+\r
+    mov.w #0x12:8,@er1                       ;015d0112\r
+    mov.w #0x12:8,@(0x2:2,er1)             ;015d1112\r
+    mov.w #0x12:8,@er1+                      ;015d8112\r
+    mov.w #0x12:8,@-er1                      ;015db112\r
+    mov.w #0x12:8,@+er1                      ;015d9112\r
+    mov.w #0x12:8,@er1-                      ;015da112\r
+    mov.w #0x12:8,@(0x1234:16,er1)               ;015dc1121234\r
+    mov.w #0x12:8,@(0x12345678:32,er1)               ;015dc91212345678\r
+    mov.w #0x12:8,@(0x1234:16,r3l.b)             ;015dd3121234\r
+    mov.w #0x12:8,@(0x1234:16,r3.w)             ;015de3121234\r
+    mov.w #0x12:8,@(0x1234:16,er3.l)             ;015df3121234\r
+    mov.w #0x12:8,@(0x12345678:32,r3l.b)             ;015ddb1212345678\r
+    mov.w #0x12:8,@(0x12345678:32,r3.w)             ;015deb1212345678\r
+    mov.w #0x12:8,@(0x12345678:32,er3.l)             ;015dfb1212345678\r
+    mov.w #0x12:8,@0x1234:16                     ;015d40121234\r
+    mov.w #0x12:8,@0x12345678:32                     ;015d481212345678\r
+\r
+    mov.w #0x1:4,@0x1234:16                     ;6bd11234\r
+    mov.w #0x1:4,@0x12345678:32                     ;6bf112345678\r
+\r
+    mov.w r2,r1                            ;0d21\r
+\r
+    mov.w r2,@er1                          ;6992\r
+    mov.w r2,@(0x2:2,er1)                ;01516992\r
+    mov.w r2,@er1+                         ;01536d92\r
+    mov.w r2,@-er1                         ;6d92\r
+    mov.w r2,@+er1                         ;01526d92\r
+    mov.w r2,@er1-                         ;01516d92\r
+    mov.w r2,@(0x1234:16,er1)                  ;6f921234\r
+    mov.w r2,@(0x12345678:32,er1)                  ;78106ba212345678\r
+    mov.w r2,@(0x1234:16,r3l.b)                ;01516fb21234\r
+    mov.w r2,@(0x1234:16,r3.w)                ;01526fb21234\r
+    mov.w r2,@(0x1234:16,er3.l)                ;01536fb21234\r
+    mov.w r2,@(0x12345678:32,r3l.b)                ;78316ba212345678\r
+    mov.w r2,@(0x12345678:32,r3.w)                ;78326ba212345678\r
+    mov.w r2,@(0x12345678:32,er3.l)                ;78336ba212345678\r
+    mov.w r2,@0x1234:16                        ;6b821234\r
+    mov.w r2,@0x12345678:32                        ;6ba212345678\r
+\r
+    mov.w @er2,r1                         ;6921\r
+    mov.w @(0x2:2,er2),r1              ;01516921\r
+    mov.w @er2+,r1                       ;6d21\r
+    mov.w @-er2,r1                       ;01536d21\r
+    mov.w @+er2,r1                       ;01516d21\r
+    mov.w @er2-,r1                       ;01526d21\r
+    mov.w @(0x1234:16,er1),r1                 ;6f111234\r
+    mov.w @(0x12345678:32,er1),r1                 ;78106b2112345678\r
+    mov.w @(0x1234:16,r3l.b),r1               ;01516f311234\r
+    mov.w @(0x1234:16,r3.w),r1               ;01526f311234\r
+    mov.w @(0x1234:16,er3.l),r1               ;01536f311234\r
+    mov.w @(0x12345678:32,r3l.b),r1               ;78316b2112345678\r
+    mov.w @(0x12345678:32,r3.w),r1               ;78326b2112345678\r
+    mov.w @(0x12345678:32,er3.l),r1               ;78336b2112345678\r
+    mov.w @0x1234:16,r1                       ;6b011234\r
+    mov.w @0x12345678:32,r1                       ;6b2112345678\r
+\r
+    mov.w @er2,@er1                       ;01580201 \r
+    mov.w @er2,@(0x2:2,er1)             ;01580211\r
+    mov.w @er2,@er1+                      ;01580281\r
+    mov.w @er2,@-er1                      ;015802b1\r
+    mov.w @er2,@+er1                      ;01580291\r
+    mov.w @er2,@er1-                      ;015802a1\r
+    mov.w @er2,@(0x1234:16,er1)               ;015802c11234\r
+    mov.w @er2,@(0x12345678:32,er1)               ;015802c912345678\r
+    mov.w @er2,@(0x1234:16,r3l.b)             ;015802d31234\r
+    mov.w @er2,@(0x1234:16,r3.w)             ;015802e31234\r
+    mov.w @er2,@(0x1234:16,er3.l)             ;015802f31234\r
+    mov.w @er2,@(0x12345678:32,r3l.b)             ;015802db12345678\r
+    mov.w @er2,@(0x12345678:32,r3.w)             ;015802eb12345678\r
+    mov.w @er2,@(0x12345678:32,er3.l)             ;015802fb12345678\r
+    mov.w @er2,@0x1234:16                     ;015802401234\r
+    mov.w @er2,@0x12345678:32                     ;0158024812345678\r
+\r
+    mov.w @(0x2:2,er2),@er1             ;01581201\r
+    mov.w @(0x2:2,er2),@(0x2:2,er1)   ;01581211\r
+    mov.w @(0x2:2,er2),@er1+            ;01581281\r
+    mov.w @(0x2:2,er2),@-er1            ;015812b1\r
+    mov.w @(0x2:2,er2),@+er1            ;01581291\r
+    mov.w @(0x2:2,er2),@er1-            ;015812a1\r
+    mov.w @(0x2:2,er2),@(0x1234:16,er1)     ;015812c11234\r
+    mov.w @(0x2:2,er2),@(0x12345678:32,er1)     ;015812c912345678\r
+    mov.w @(0x2:2,er2),@(0x1234:16,r3l.b)   ;015812d31234\r
+    mov.w @(0x2:2,er2),@(0x1234:16,r3.w)   ;015812e31234\r
+    mov.w @(0x2:2,er2),@(0x1234:16,er3.l)   ;015812f31234\r
+    mov.w @(0x2:2,er2),@(0x12345678:32,r3l.b)   ;015812db12345678\r
+    mov.w @(0x2:2,er2),@(0x12345678:32,r3.w)   ;015812eb12345678\r
+    mov.w @(0x2:2,er2),@(0x12345678:32,er3.l)   ;015812fb12345678\r
+    mov.w @(0x2:2,er2),@0x1234:16           ;015812401234\r
+    mov.w @(0x2:2,er2),@0x12345678:32           ;0158124812345678\r
+\r
+    mov.w @-er2,@er1                      ;0158b201 \r
+    mov.w @-er2,@(0x2:2,er1)            ;0158b211\r
+    mov.w @-er2,@er1+                     ;0158b281\r
+    mov.w @-er2,@-er1                     ;0158b2b1\r
+    mov.w @-er2,@+er1                     ;0158b291\r
+    mov.w @-er2,@er1-                     ;0158b2a1\r
+    mov.w @-er2,@(0x1234:16,er1)              ;0158b2c11234\r
+    mov.w @-er2,@(0x12345678:32,er1)              ;0158b2c912345678\r
+    mov.w @-er2,@(0x1234:16,r3l.b)            ;0158b2d31234\r
+    mov.w @-er2,@(0x1234:16,r3.w)            ;0158b2e31234\r
+    mov.w @-er2,@(0x1234:16,er3.l)            ;0158b2f31234\r
+    mov.w @-er2,@(0x12345678:32,r3l.b)            ;0158b2db12345678\r
+    mov.w @-er2,@(0x12345678:32,r3.w)            ;0158b2eb12345678\r
+    mov.w @-er2,@(0x12345678:32,er3.l)            ;0158b2fb12345678\r
+    mov.w @-er2,@0x1234:16                    ;0158b2401234\r
+    mov.w @-er2,@0x12345678:32                    ;0158b24812345678\r
+\r
+    mov.w @er2+,@er1                      ;01588201\r
+    mov.w @er2+,@(0x2:2,er1)            ;01588211\r
+    mov.w @er2+,@er1+                     ;01588281\r
+    mov.w @er2+,@-er1                     ;015882b1\r
+    mov.w @er2+,@+er1                     ;01588291\r
+    mov.w @er2+,@er1-                     ;015882a1\r
+    mov.w @er2+,@(0x1234:16,er1)              ;015882c11234\r
+    mov.w @er2+,@(0x12345678:32,er1)              ;015882c912345678\r
+    mov.w @er2+,@(0x1234:16,r3l.b)            ;015882d31234\r
+    mov.w @er2+,@(0x1234:16,r3.w)            ;015882e31234\r
+    mov.w @er2+,@(0x1234:16,er3.l)            ;015882f31234\r
+    mov.w @er2+,@(0x12345678:32,r3l.b)            ;015882db12345678\r
+    mov.w @er2+,@(0x12345678:32,r3.w)            ;015882eb12345678\r
+    mov.w @er2+,@(0x12345678:32,er3.l)            ;015882fb12345678\r
+    mov.w @er2+,@0x1234:16                    ;015882401234\r
+    mov.w @er2+,@0x12345678:32                    ;0158824812345678\r
+\r
+    mov.w @er2-,@er1                      ;0158a201\r
+    mov.w @er2-,@(0x2:2,er1)            ;0158a211\r
+    mov.w @er2-,@er1+                     ;0158a281\r
+    mov.w @er2-,@-er1                     ;0158a2b1\r
+    mov.w @er2-,@+er1                     ;0158a291\r
+    mov.w @er2-,@er1-                     ;0158a2a1\r
+    mov.w @er2-,@(0x1234:16,er1)              ;0158a2c11234\r
+    mov.w @er2-,@(0x12345678:32,er1)              ;0158a2c912345678\r
+    mov.w @er2-,@(0x1234:16,r3l.b)            ;0158a2d31234\r
+    mov.w @er2-,@(0x1234:16,r3.w)            ;0158a2e31234\r
+    mov.w @er2-,@(0x1234:16,er3.l)            ;0158a2f31234\r
+    mov.w @er2-,@(0x12345678:32,r3l.b)            ;0158a2db12345678\r
+    mov.w @er2-,@(0x12345678:32,r3.w)            ;0158a2eb12345678\r
+    mov.w @er2-,@(0x12345678:32,er3.l)            ;0158a2fb12345678\r
+    mov.w @er2-,@0x1234:16                    ;0158a2401234\r
+    mov.w @er2-,@0x12345678:32                    ;0158a24812345678\r
+\r
+    mov.w @+er2,@er1                      ;01589201\r
+    mov.w @+er2,@(0x2:2,er1)            ;01589211\r
+    mov.w @+er2,@er1+                     ;01589281\r
+    mov.w @+er2,@-er1                     ;015892b1\r
+    mov.w @+er2,@+er1                     ;01589291\r
+    mov.w @+er2,@er1-                     ;015892a1\r
+    mov.w @+er2,@(0x1234:16,er1)              ;015892c11234\r
+    mov.w @+er2,@(0x12345678:32,er1)              ;015892c912345678\r
+    mov.w @+er2,@(0x1234:16,r3l.b)            ;015892d31234\r
+    mov.w @+er2,@(0x1234:16,r3.w)            ;015892e31234\r
+    mov.w @+er2,@(0x1234:16,er3.l)            ;015892f31234\r
+    mov.w @+er2,@(0x12345678:32,r3l.b)            ;015892db12345678\r
+    mov.w @+er2,@(0x12345678:32,r3.w)            ;015892eb12345678\r
+    mov.w @+er2,@(0x12345678:32,er3.l)            ;015892fb12345678\r
+    mov.w @+er2,@0x1234:16                    ;015892401234\r
+    mov.w @+er2,@0x12345678:32                    ;0158924812345678\r
+\r
+    mov.w @(0x1234:16,er2),@er1               ;0158c2011234\r
+    mov.w @(0x1234:16,er2),@(0x2:2,er1)     ;0158c2111234\r
+    mov.w @(0x1234:16,er2),@er1+              ;0158c2811234\r
+    mov.w @(0x1234:16,er2),@-er1              ;0158c2b11234\r
+    mov.w @(0x1234:16,er2),@+er1              ;0158c2911234\r
+    mov.w @(0x1234:16,er2),@er1-              ;0158c2a11234\r
+    mov.w @(0x1234:16,er2),@(0xffff9abc:16,er1)       ;0158c2c112349abc\r
+    mov.w @(0x1234:16,er2),@(0x9abcdef0:32,er1)       ;0158c2c912349abcdef0\r
+    mov.w @(0x1234:16,er2),@(0xffff9abc:16,r3l.b)     ;0158c2d312349abc\r
+    mov.w @(0x1234:16,er2),@(0xffff9abc:16,r3.w)     ;0158c2e312349abc\r
+    mov.w @(0x1234:16,er2),@(0xffff9abc:16,er3.l)     ;0158c2f312349abc\r
+    mov.w @(0x1234:16,er2),@(0x9abcdef0:32,r3l.b)     ;0158c2db12349abcdef0\r
+    mov.w @(0x1234:16,er2),@(0x9abcdef0:32,r3.w)     ;0158c2eb12349abcdef0\r
+    mov.w @(0x1234:16,er2),@(0x9abcdef0:32,er3.l)     ;0158c2fb12349abcdef0\r
+    mov.w @(0x1234:16,er2),@0xffff9abc:16             ;0158c24012349abc\r
+    mov.w @(0x1234:16,er2),@0x9abcdef0:32             ;0158c24812349abcdef0\r
+\r
+    mov.w @(0x12345678:32,er2),@er1               ;0158ca0112345678\r
+    mov.w @(0x12345678:32,er2),@(0x2:2,er1)     ;0158ca1112345678\r
+    mov.w @(0x12345678:32,er2),@er1+              ;0158ca8112345678\r
+    mov.w @(0x12345678:32,er2),@-er1              ;0158cab112345678\r
+    mov.w @(0x12345678:32,er2),@+er1              ;0158ca9112345678\r
+    mov.w @(0x12345678:32,er2),@er1-              ;0158caa112345678\r
+    mov.w @(0x12345678:32,er2),@(0xffff9abc:16,er1)       ;0158cac1123456789abc\r
+    mov.w @(0x12345678:32,er2),@(0x9abcdef0:32,er1)       ;0158cac9123456789abcdef0\r
+    mov.w @(0x12345678:32,er2),@(0xffff9abc:16,r3l.b)     ;0158cad3123456789abc\r
+    mov.w @(0x12345678:32,er2),@(0xffff9abc:16,r3.w)     ;0158cae3123456789abc\r
+    mov.w @(0x12345678:32,er2),@(0xffff9abc:16,er3.l)     ;0158caf3123456789abc\r
+    mov.w @(0x12345678:32,er2),@(0x9abcdef0:32,r3l.b)     ;0158cadb123456789abcdef0\r
+    mov.w @(0x12345678:32,er2),@(0x9abcdef0:32,r3.w)     ;0158caeb123456789abcdef0\r
+    mov.w @(0x12345678:32,er2),@(0x9abcdef0:32,er3.l)     ;0158cafb123456789abcdef0\r
+    mov.w @(0x12345678:32,er2),@0xffff9abc:16             ;0158ca40123456789abc\r
+    mov.w @(0x12345678:32,er2),@0x9abcdef0:32             ;0158ca48123456789abcdef0\r
+\r
+    mov.w @(0x1234:16,r3l.b),@er1             ;0158d3011234\r
+    mov.w @(0x1234:16,r3l.b),@(0x2:2,er1)   ;0158d3111234\r
+    mov.w @(0x1234:16,r3l.b),@er1+            ;0158d3811234\r
+    mov.w @(0x1234:16,r3l.b),@-er1            ;0158d3b11234\r
+    mov.w @(0x1234:16,r3l.b),@+er1            ;0158d3911234\r
+    mov.w @(0x1234:16,r3l.b),@er1-            ;0158d3a11234\r
+    mov.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)     ;0158d3c112349abc\r
+    mov.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)     ;0158d3c912349abcdef0\r
+    mov.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r3l.b)   ;0158d3d312349abc\r
+    mov.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r3.w)   ;0158d3e312349abc\r
+    mov.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er3.l)   ;0158d3f312349abc\r
+    mov.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r3l.b)   ;0158d3db12349abcdef0\r
+    mov.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r3.w)   ;0158d3eb12349abcdef0\r
+    mov.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er3.l)   ;0158d3fb12349abcdef0\r
+    mov.w @(0x1234:16,r3l.b),@0xffff9abc:16           ;0158d34012349abc\r
+    mov.w @(0x1234:16,r3l.b),@0x9abcdef0:32           ;0158d34812349abcdef0\r
+\r
+    mov.w @(0x1234:16,r3.w),@er1             ;0158e3011234\r
+    mov.w @(0x1234:16,r3.w),@(0x2:2,er1)   ;0158e3111234\r
+    mov.w @(0x1234:16,r3.w),@er1+            ;0158e3811234\r
+    mov.w @(0x1234:16,r3.w),@-er1            ;0158e3b11234\r
+    mov.w @(0x1234:16,r3.w),@+er1            ;0158e3911234\r
+    mov.w @(0x1234:16,r3.w),@er1-            ;0158e3a11234\r
+    mov.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1)     ;0158e3c112349abc\r
+    mov.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)     ;0158e3c912349abcdef0\r
+    mov.w @(0x1234:16,r3.w),@(0xffff9abc:16,r3l.b)   ;0158e3d312349abc\r
+    mov.w @(0x1234:16,r3.w),@(0xffff9abc:16,r3.w)   ;0158e3e312349abc\r
+    mov.w @(0x1234:16,r3.w),@(0xffff9abc:16,er3.l)   ;0158e3f312349abc\r
+    mov.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r3l.b)   ;0158e3db12349abcdef0\r
+    mov.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r3.w)   ;0158e3eb12349abcdef0\r
+    mov.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er3.l)   ;0158e3fb12349abcdef0\r
+    mov.w @(0x1234:16,r3.w),@0xffff9abc:16           ;0158e34012349abc\r
+    mov.w @(0x1234:16,r3.w),@0x9abcdef0:32           ;0158e34812349abcdef0\r
+\r
+    mov.w @(0x1234:16,er3.l),@er1             ;0158f3011234\r
+    mov.w @(0x1234:16,er3.l),@(0x2:2,er1)   ;0158f3111234\r
+    mov.w @(0x1234:16,er3.l),@er1+            ;0158f3811234\r
+    mov.w @(0x1234:16,er3.l),@-er1            ;0158f3b11234\r
+    mov.w @(0x1234:16,er3.l),@+er1            ;0158f3911234\r
+    mov.w @(0x1234:16,er3.l),@er1-            ;0158f3a11234\r
+    mov.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1)     ;0158f3c112349abc\r
+    mov.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)     ;0158f3c912349abcdef0\r
+    mov.w @(0x1234:16,er3.l),@(0xffff9abc:16,r3l.b)   ;0158f3d312349abc\r
+    mov.w @(0x1234:16,er3.l),@(0xffff9abc:16,r3.w)   ;0158f3e312349abc\r
+    mov.w @(0x1234:16,er3.l),@(0xffff9abc:16,er3.l)   ;0158f3f312349abc\r
+    mov.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r3l.b)   ;0158f3db12349abcdef0\r
+    mov.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r3.w)   ;0158f3eb12349abcdef0\r
+    mov.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er3.l)   ;0158f3fb12349abcdef0\r
+    mov.w @(0x1234:16,er3.l),@0xffff9abc:16           ;0158f34012349abc\r
+    mov.w @(0x1234:16,er3.l),@0x9abcdef0:32           ;0158f34812349abcdef0\r
+\r
+    mov.w @(0x12345678:32,r3l.b),@er1             ;0158db0112345678\r
+    mov.w @(0x12345678:32,r3l.b),@(0x2:2,er1)   ;0158db1112345678\r
+    mov.w @(0x12345678:32,r3l.b),@er1+            ;0158db8112345678\r
+    mov.w @(0x12345678:32,r3l.b),@-er1            ;0158dbb112345678\r
+    mov.w @(0x12345678:32,r3l.b),@+er1            ;0158db9112345678\r
+    mov.w @(0x12345678:32,r3l.b),@er1-            ;0158dba112345678\r
+    mov.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)     ;0158dbc1123456789abc\r
+    mov.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)     ;0158dbc9123456789abcdef0\r
+    mov.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r3l.b)   ;0158dbd3123456789abc\r
+    mov.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r3.w)   ;0158dbe3123456789abc\r
+    mov.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er3.l)   ;0158dbf3123456789abc\r
+    mov.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3l.b)   ;0158dbdb123456789abcdef0\r
+    mov.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3.w)   ;0158dbeb123456789abcdef0\r
+    mov.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er3.l)   ;0158dbfb123456789abcdef0\r
+    mov.w @(0x12345678:32,r3l.b),@0xffff9abc:16           ;0158db40123456789abc\r
+    mov.w @(0x12345678:32,r3l.b),@0x9abcdef0:32           ;0158db48123456789abcdef0\r
+\r
+    mov.w @(0x12345678:32,r3.w),@er1             ;0158eb0112345678\r
+    mov.w @(0x12345678:32,r3.w),@(0x2:2,er1)   ;0158eb1112345678\r
+    mov.w @(0x12345678:32,r3.w),@er1+            ;0158eb8112345678\r
+    mov.w @(0x12345678:32,r3.w),@-er1            ;0158ebb112345678\r
+    mov.w @(0x12345678:32,r3.w),@+er1            ;0158eb9112345678\r
+    mov.w @(0x12345678:32,r3.w),@er1-            ;0158eba112345678\r
+    mov.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)     ;0158ebc1123456789abc\r
+    mov.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)     ;0158ebc9123456789abcdef0\r
+    mov.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r3l.b)   ;0158ebd3123456789abc\r
+    mov.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r3.w)   ;0158ebe3123456789abc\r
+    mov.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er3.l)   ;0158ebf3123456789abc\r
+    mov.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3l.b)   ;0158ebdb123456789abcdef0\r
+    mov.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3.w)   ;0158ebeb123456789abcdef0\r
+    mov.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er3.l)   ;0158ebfb123456789abcdef0\r
+    mov.w @(0x12345678:32,r3.w),@0xffff9abc:16           ;0158eb40123456789abc\r
+    mov.w @(0x12345678:32,r3.w),@0x9abcdef0:32           ;0158eb48123456789abcdef0\r
+\r
+    mov.w @(0x12345678:32,er3.l),@er1             ;0158fb0112345678\r
+    mov.w @(0x12345678:32,er3.l),@(0x2:2,er1)   ;0158fb1112345678\r
+    mov.w @(0x12345678:32,er3.l),@er1+            ;0158fb8112345678\r
+    mov.w @(0x12345678:32,er3.l),@-er1            ;0158fbb112345678\r
+    mov.w @(0x12345678:32,er3.l),@+er1            ;0158fb9112345678\r
+    mov.w @(0x12345678:32,er3.l),@er1-            ;0158fba112345678\r
+    mov.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)     ;0158fbc1123456789abc\r
+    mov.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)     ;0158fbc9123456789abcdef0\r
+    mov.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r3l.b)   ;0158fbd3123456789abc\r
+    mov.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r3.w)   ;0158fbe3123456789abc\r
+    mov.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er3.l)   ;0158fbf3123456789abc\r
+    mov.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3l.b)   ;0158fbdb123456789abcdef0\r
+    mov.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3.w)   ;0158fbeb123456789abcdef0\r
+    mov.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er3.l)   ;0158fbfb123456789abcdef0\r
+    mov.w @(0x12345678:32,er3.l),@0xffff9abc:16           ;0158fb40123456789abc\r
+    mov.w @(0x12345678:32,er3.l),@0x9abcdef0:32           ;0158fb48123456789abcdef0\r
+\r
+    mov.w @0x1234:16,@er1                     ;015840011234\r
+    mov.w @0x1234:16,@(0x2:2,er1)           ;015840111234\r
+    mov.w @0x1234:16,@er1+                    ;015840811234\r
+    mov.w @0x1234:16,@-er1                    ;015840b11234\r
+    mov.w @0x1234:16,@+er1                    ;015840911234\r
+    mov.w @0x1234:16,@er1-                    ;015840a11234\r
+    mov.w @0x1234:16,@(0xffff9abc:16,er1)             ;015840c112349abc\r
+    mov.w @0x1234:16,@(0x9abcdef0:32,er1)             ;015840c912349abcdef0\r
+    mov.w @0x1234:16,@(0xffff9abc:16,r3l.b)           ;015840d312349abc\r
+    mov.w @0x1234:16,@(0xffff9abc:16,r3.w)           ;015840e312349abc\r
+    mov.w @0x1234:16,@(0xffff9abc:16,er3.l)           ;015840f312349abc\r
+    mov.w @0x1234:16,@(0x9abcdef0:32,r3l.b)           ;015840db12349abcdef0\r
+    mov.w @0x1234:16,@(0x9abcdef0:32,r3.w)           ;015840eb12349abcdef0\r
+    mov.w @0x1234:16,@(0x9abcdef0:32,er3.l)           ;015840fb12349abcdef0\r
+    mov.w @0x1234:16,@0xffff9abc:16                   ;0158404012349abc\r
+    mov.w @0x1234:16,@0x9abcdef0:32                   ;0158404812349abcdef0\r
+\r
+    mov.w @0x12345678:32,@er1                     ;0158480112345678\r
+    mov.w @0x12345678:32,@(0x2:2,er1)           ;0158481112345678\r
+    mov.w @0x12345678:32,@er1+                    ;0158488112345678\r
+    mov.w @0x12345678:32,@-er1                    ;015848b112345678\r
+    mov.w @0x12345678:32,@+er1                    ;0158489112345678\r
+    mov.w @0x12345678:32,@er1-                    ;015848a112345678\r
+    mov.w @0x12345678:32,@(0xffff9abc:16,er1)             ;015848c1123456789abc\r
+    mov.w @0x12345678:32,@(0x9abcdef0:32,er1)             ;015848c9123456789abcdef0\r
+    mov.w @0x12345678:32,@(0xffff9abc:16,r3l.b)           ;015848d3123456789abc\r
+    mov.w @0x12345678:32,@(0xffff9abc:16,r3.w)           ;015848e3123456789abc\r
+    mov.w @0x12345678:32,@(0xffff9abc:16,er3.l)           ;015848f3123456789abc\r
+    mov.w @0x12345678:32,@(0x9abcdef0:32,r3l.b)           ;015848db123456789abcdef0\r
+    mov.w @0x12345678:32,@(0x9abcdef0:32,r3.w)           ;015848eb123456789abcdef0\r
+    mov.w @0x12345678:32,@(0x9abcdef0:32,er3.l)           ;015848fb123456789abcdef0\r
+    mov.w @0x12345678:32,@0xffff9abc:16                   ;01584840123456789abc\r
+    mov.w @0x12345678:32,@0x9abcdef0:32                   ;01584848123456789abcdef0\r
+\r
+    mov.l #0x12345678:32,er1                      ;7a0112345678\r
+\r
+    mov.l #0x1234:16,er1                      ;7a091234\r
+\r
+    mov.l #0x1:3,er3                       ;0f9b\r
+\r
+    mov.l #0x12345678:32,@er1                     ;7a74123456780100 \r
+    mov.l #0x12345678:32,@(0x4:2,er1)             ;7a74123456781100\r
+    mov.l #0x12345678:32,@-er1                    ;7a7412345678b100 \r
+    mov.l #0x12345678:32,@er1+                    ;7a74123456788100 \r
+    mov.l #0x12345678:32,@er1-                    ;7a7412345678a100 \r
+    mov.l #0x12345678:32,@+er1                    ;7a74123456789100 \r
+    mov.l #0x12345678:32,@(0x1234:16,er1)             ;7a7412345678c1001234\r
+    mov.l #0x12345678:32,@(0x12345678:32,er1)             ;7a7412345678c90012345678\r
+    mov.l #0x12345678:32,@(0x1234:16,r3l.b)           ;7a7412345678d3001234\r
+    mov.l #0x12345678:32,@(0x1234:16,r3.w)           ;7a7412345678e3001234\r
+    mov.l #0x12345678:32,@(0x1234:16,er3.l)           ;7a7412345678f3001234\r
+    mov.l #0x12345678:32,@(0x12345678:32,r3l.b)           ;7a7412345678db0012345678\r
+    mov.l #0x12345678:32,@(0x12345678:32,r3.w)           ;7a7412345678eb0012345678\r
+    mov.l #0x12345678:32,@(0x12345678:32,er3.l)           ;7a7412345678fb0012345678\r
+    mov.l #0x12345678:32,@0x1234:16                   ;7a741234567840001234\r
+    mov.l #0x12345678:32,@0x12345678:32                   ;7a7412345678480012345678\r
+\r
+    mov.l #0x1234:16,@er1                     ;7a7c12340100  \r
+    mov.l #0x1234:16,@(0x4:2,er1)           ;7a7c12341100\r
+    mov.l #0x1234:16,@-er1                    ;7a7c1234b100  \r
+    mov.l #0x1234:16,@er1+                    ;7a7c12348100  \r
+    mov.l #0x1234:16,@er1-                    ;7a7c1234a100  \r
+    mov.l #0x1234:16,@+er1                    ;7a7c12349100  \r
+    mov.l #0x1234:16,@(0x1234:16,er1)             ;7a7c1234c1001234\r
+    mov.l #0x1234:16,@(0x12345678:32,er1)             ;7a7c1234c90012345678\r
+    mov.l #0x1234:16,@(0x1234:16,r3l.b)           ;7a7c1234d3001234\r
+    mov.l #0x1234:16,@(0x1234:16,r3.w)           ;7a7c1234e3001234\r
+    mov.l #0x1234:16,@(0x1234:16,er3.l)           ;7a7c1234f3001234\r
+    mov.l #0x1234:16,@(0x12345678:32,r3l.b)           ;7a7c1234db0012345678\r
+    mov.l #0x1234:16,@(0x12345678:32,r3.w)           ;7a7c1234eb0012345678\r
+    mov.l #0x1234:16,@(0x12345678:32,er3.l)           ;7a7c1234fb0012345678\r
+    mov.l #0x1234:16,@0x1234:16                   ;7a7c123440001234\r
+    mov.l #0x1234:16,@0x12345678:32                   ;7a7c1234480012345678\r
+\r
+    mov.l #0x12:8,@er1                      ;010d0112\r
+    mov.l #0x12:8,@(0x4:2,er1)            ;010d1112\r
+    mov.l #0x12:8,@-er1                     ;010db112\r
+    mov.l #0x12:8,@er1+                     ;010d8112\r
+    mov.l #0x12:8,@er1-                     ;010da112\r
+    mov.l #0x12:8,@+er1                     ;010d9112\r
+    mov.l #0x12:8,@(0x1234:16,er1)              ;010dc1121234\r
+    mov.l #0x12:8,@(0x12345678:32,er1)              ;010dc91212345678\r
+    mov.l #0x12:8,@(0x1234:16,r3l.b)            ;010dd3121234\r
+    mov.l #0x12:8,@(0x1234:16,r3.w)            ;010de3121234\r
+    mov.l #0x12:8,@(0x1234:16,er3.l)            ;010df3121234\r
+    mov.l #0x12:8,@(0x12345678:32,r3l.b)            ;010ddb1212345678\r
+    mov.l #0x12:8,@(0x12345678:32,r3.w)            ;010deb1212345678\r
+    mov.l #0x12:8,@(0x12345678:32,er3.l)            ;010dfb1212345678\r
+    mov.l #0x12:8,@0x1234:16                    ;010d40121234\r
+    mov.l #0x12:8,@0x12345678:32                    ;010d481212345678\r
+\r
+    mov.l er2,er1                         ;0fa1\r
+\r
+    mov.l er2,@er1                         ;01006992\r
+    mov.l er2,@(0x4:2,er1)               ;01016992\r
+    mov.l er2,@-er1                        ;01006d92\r
+    mov.l er2,@er1+                        ;01036d92\r
+    mov.l er2,@er1-                        ;01016d92\r
+    mov.l er2,@+er1                        ;01026d92\r
+    mov.l er2,@(0x1234:16,er1)                 ;01006f921234\r
+    mov.l er2,@(0x12345678:32,er1)                 ;78906ba212345678\r
+    mov.l er2,@(0x1234:16,r3l.b)               ;01016fb21234\r
+    mov.l er2,@(0x1234:16,r3.w)               ;01026fb21234\r
+    mov.l er2,@(0x1234:16,er3.l)               ;01036fb21234\r
+    mov.l er2,@(0x12345678:32,r3l.b)               ;78b16ba212345678\r
+    mov.l er2,@(0x12345678:32,r3.w)               ;78b26ba212345678\r
+    mov.l er2,@(0x12345678:32,er3.l)               ;78b36ba212345678\r
+    mov.l er2,@0x1234:16                       ;01006b821234\r
+    mov.l er2,@0x12345678:32                       ;01006ba212345678\r
+\r
+    mov.l @er2,er1                         ;01006921  \r
+    mov.l @(0x4:2,er2),er1              ;01016921\r
+    mov.l @er2+,er1                       ;01006d21  \r
+    mov.l @-er2,er1                       ;01036d21  \r
+    mov.l @+er2,er1                       ;01016d21  \r
+    mov.l @er2-,er1                       ;01026d21  \r
+    mov.l @(0x1234:16,er1),er1                 ;01006f111234\r
+    mov.l @(0x12345678:32,er1),er1                 ;78906b2112345678\r
+    mov.l @(0x1234:16,r3l.b),er1               ;01016f311234\r
+    mov.l @(0x1234:16,r3.w),er1               ;01026f311234\r
+    mov.l @(0x1234:16,er3.l),er1               ;01036f311234\r
+    mov.l @(0x12345678:32,r3l.b),er1               ;78b16b2112345678\r
+    mov.l @(0x12345678:32,r3.w),er1               ;78b26b2112345678\r
+    mov.l @(0x12345678:32,er3.l),er1               ;78b36b2112345678\r
+    mov.l @0x1234:16,er1                       ;01006b011234\r
+    mov.l @0x12345678:32,er1                       ;01006b2112345678\r
+\r
+    mov.l @er2,@er1                       ;01080201 \r
+    mov.l @er2,@(0x4:2,er1)             ;01080211\r
+    mov.l @er2,@er1+                      ;01080281\r
+    mov.l @er2,@-er1                      ;010802b1\r
+    mov.l @er2,@+er1                      ;01080291\r
+    mov.l @er2,@er1-                      ;010802a1\r
+    mov.l @er2,@(0x1234:16,er1)               ;010802c11234\r
+    mov.l @er2,@(0x12345678:32,er1)               ;010802c912345678\r
+    mov.l @er2,@(0x1234:16,r3l.b)             ;010802d31234\r
+    mov.l @er2,@(0x1234:16,r3.w)             ;010802e31234\r
+    mov.l @er2,@(0x1234:16,er3.l)             ;010802f31234\r
+    mov.l @er2,@(0x12345678:32,r3l.b)             ;010802db12345678\r
+    mov.l @er2,@(0x12345678:32,r3.w)             ;010802eb12345678\r
+    mov.l @er2,@(0x12345678:32,er3.l)             ;010802fb12345678\r
+    mov.l @er2,@0x1234:16                     ;010802401234\r
+    mov.l @er2,@0x12345678:32                     ;0108024812345678\r
+\r
+    mov.l @(0x4:2,er2),@er1             ;01081201\r
+    mov.l @(0x4:2,er2),@(0x4:2,er1)   ;01081211\r
+    mov.l @(0x4:2,er2),@er1+            ;01081281\r
+    mov.l @(0x4:2,er2),@-er1            ;010812b1\r
+    mov.l @(0x4:2,er2),@+er1            ;01081291\r
+    mov.l @(0x4:2,er2),@er1-            ;010812a1\r
+    mov.l @(0x4:2,er2),@(0x1234:16,er1)     ;010812c11234\r
+    mov.l @(0x4:2,er2),@(0x12345678:32,er1)     ;010812c912345678\r
+    mov.l @(0x4:2,er2),@(0x1234:16,r3l.b)   ;010812d31234\r
+    mov.l @(0x4:2,er2),@(0x1234:16,r3.w)   ;010812e31234\r
+    mov.l @(0x4:2,er2),@(0x1234:16,er3.l)   ;010812f31234\r
+    mov.l @(0x4:2,er2),@(0x12345678:32,r3l.b)   ;010812db12345678\r
+    mov.l @(0x4:2,er2),@(0x12345678:32,r3.w)   ;010812eb12345678\r
+    mov.l @(0x4:2,er2),@(0x12345678:32,er3.l)   ;010812fb12345678\r
+    mov.l @(0x4:2,er2),@0x1234:16           ;010812401234\r
+    mov.l @(0x4:2,er2),@0x12345678:32           ;0108124812345678\r
+\r
+    mov.l @-er2,@er1                      ;0108b201\r
+    mov.l @-er2,@(0x4:2,er1)            ;0108b211\r
+    mov.l @-er2,@er1+                     ;0108b281\r
+    mov.l @-er2,@-er1                     ;0108b2b1\r
+    mov.l @-er2,@+er1                     ;0108b291\r
+    mov.l @-er2,@er1-                     ;0108b2a1\r
+    mov.l @-er2,@(0x1234:16,er1)              ;0108b2c11234\r
+    mov.l @-er2,@(0x12345678:32,er1)              ;0108b2c912345678\r
+    mov.l @-er2,@(0x1234:16,r3l.b)            ;0108b2d31234\r
+    mov.l @-er2,@(0x1234:16,r3.w)            ;0108b2e31234\r
+    mov.l @-er2,@(0x1234:16,er3.l)            ;0108b2f31234\r
+    mov.l @-er2,@(0x12345678:32,r3l.b)            ;0108b2db12345678\r
+    mov.l @-er2,@(0x12345678:32,r3.w)            ;0108b2eb12345678\r
+    mov.l @-er2,@(0x12345678:32,er3.l)            ;0108b2fb12345678\r
+    mov.l @-er2,@0x1234:16                    ;0108b2401234\r
+    mov.l @-er2,@0x12345678:32                    ;0108b24812345678\r
+\r
+    mov.l @er2+,@er1                      ;01088201 \r
+    mov.l @er2+,@(0x4:2,er1)            ;01088211\r
+    mov.l @er2+,@er1+                     ;01088281\r
+    mov.l @er2+,@-er1                     ;010882b1\r
+    mov.l @er2+,@+er1                     ;01088291\r
+    mov.l @er2+,@er1-                     ;010882a1\r
+    mov.l @er2+,@(0x1234:16,er1)              ;010882c11234\r
+    mov.l @er2+,@(0x12345678:32,er1)              ;010882c912345678\r
+    mov.l @er2+,@(0x1234:16,r3l.b)            ;010882d31234\r
+    mov.l @er2+,@(0x1234:16,r3.w)            ;010882e31234\r
+    mov.l @er2+,@(0x1234:16,er3.l)            ;010882f31234\r
+    mov.l @er2+,@(0x12345678:32,r3l.b)            ;010882db12345678\r
+    mov.l @er2+,@(0x12345678:32,r3.w)            ;010882eb12345678\r
+    mov.l @er2+,@(0x12345678:32,er3.l)            ;010882fb12345678\r
+    mov.l @er2+,@0x1234:16                    ;010882401234\r
+    mov.l @er2+,@0x12345678:32                    ;0108824812345678\r
+\r
+    mov.l @er2-,@er1                      ;0108a201 \r
+    mov.l @er2-,@(0x4:2,er1)            ;0108a211\r
+    mov.l @er2-,@er1+                     ;0108a281\r
+    mov.l @er2-,@-er1                     ;0108a2b1\r
+    mov.l @er2-,@+er1                     ;0108a291\r
+    mov.l @er2-,@er1-                     ;0108a2a1\r
+    mov.l @er2-,@(0x1234:16,er1)              ;0108a2c11234\r
+    mov.l @er2-,@(0x12345678:32,er1)              ;0108a2c912345678\r
+    mov.l @er2-,@(0x1234:16,r3l.b)            ;0108a2d31234\r
+    mov.l @er2-,@(0x1234:16,r3.w)            ;0108a2e31234\r
+    mov.l @er2-,@(0x1234:16,er3.l)            ;0108a2f31234\r
+    mov.l @er2-,@(0x12345678:32,r3l.b)            ;0108a2db12345678\r
+    mov.l @er2-,@(0x12345678:32,r3.w)            ;0108a2eb12345678\r
+    mov.l @er2-,@(0x12345678:32,er3.l)            ;0108a2fb12345678\r
+    mov.l @er2-,@0x1234:16                    ;0108a2401234\r
+    mov.l @er2-,@0x12345678:32                    ;0108a24812345678\r
+\r
+    mov.l @+er2,@er1                      ;01089201 \r
+    mov.l @+er2,@(0x4:2,er1)            ;01089211\r
+    mov.l @+er2,@er1+                     ;01089281\r
+    mov.l @+er2,@-er1                     ;010892b1\r
+    mov.l @+er2,@+er1                     ;01089291\r
+    mov.l @+er2,@er1-                     ;010892a1\r
+    mov.l @+er2,@(0x1234:16,er1)              ;010892c11234\r
+    mov.l @+er2,@(0x12345678:32,er1)              ;010892c912345678\r
+    mov.l @+er2,@(0x1234:16,r3l.b)            ;010892d31234\r
+    mov.l @+er2,@(0x1234:16,r3.w)            ;010892e31234\r
+    mov.l @+er2,@(0x1234:16,er3.l)            ;010892f31234\r
+    mov.l @+er2,@(0x12345678:32,r3l.b)            ;010892db12345678\r
+    mov.l @+er2,@(0x12345678:32,r3.w)            ;010892eb12345678\r
+    mov.l @+er2,@(0x12345678:32,er3.l)            ;010892fb12345678\r
+    mov.l @+er2,@0x1234:16                    ;010892401234\r
+    mov.l @+er2,@0x12345678:32                    ;0108924812345678\r
+\r
+    mov.l @(0x1234:16,er2),@er1               ;0108c2011234\r
+    mov.l @(0x1234:16,er2),@(0x4:2,er1)     ;0108c2111234\r
+    mov.l @(0x1234:16,er2),@er1+              ;0108c2811234\r
+    mov.l @(0x1234:16,er2),@-er1              ;0108c2b11234\r
+    mov.l @(0x1234:16,er2),@+er1              ;0108c2911234\r
+    mov.l @(0x1234:16,er2),@er1-              ;0108c2a11234\r
+    mov.l @(0x1234:16,er2),@(0xffff9abc:16,er1)       ;0108c2c112349abc\r
+    mov.l @(0x1234:16,er2),@(0x9abcdef0:32,er1)       ;0108c2c912349abcdef0\r
+    mov.l @(0x1234:16,er2),@(0xffff9abc:16,r3l.b)     ;0108c2d312349abc\r
+    mov.l @(0x1234:16,er2),@(0xffff9abc:16,r3.w)     ;0108c2e312349abc\r
+    mov.l @(0x1234:16,er2),@(0xffff9abc:16,er3.l)     ;0108c2f312349abc\r
+    mov.l @(0x1234:16,er2),@(0x9abcdef0:32,r3l.b)     ;0108c2db12349abcdef0\r
+    mov.l @(0x1234:16,er2),@(0x9abcdef0:32,r3.w)     ;0108c2eb12349abcdef0\r
+    mov.l @(0x1234:16,er2),@(0x9abcdef0:32,er3.l)     ;0108c2fb12349abcdef0\r
+    mov.l @(0x1234:16,er2),@0xffff9abc:16             ;0108c24012349abc\r
+    mov.l @(0x1234:16,er2),@0x9abcdef0:32             ;0108c24812349abcdef0\r
+\r
+    mov.l @(0x12345678:32,er2),@er1               ;0108ca0112345678\r
+    mov.l @(0x12345678:32,er2),@(0x4:2,er1)     ;0108ca1112345678\r
+    mov.l @(0x12345678:32,er2),@er1+              ;0108ca8112345678\r
+    mov.l @(0x12345678:32,er2),@-er1              ;0108cab112345678\r
+    mov.l @(0x12345678:32,er2),@+er1              ;0108ca9112345678\r
+    mov.l @(0x12345678:32,er2),@er1-              ;0108caa112345678\r
+    mov.l @(0x12345678:32,er2),@(0xffff9abc:16,er1)       ;0108cac1123456789abc\r
+    mov.l @(0x12345678:32,er2),@(0x9abcdef0:32,er1)       ;0108cac9123456789abcdef0\r
+    mov.l @(0x12345678:32,er2),@(0xffff9abc:16,r3l.b)     ;0108cad3123456789abc\r
+    mov.l @(0x12345678:32,er2),@(0xffff9abc:16,r3.w)     ;0108cae3123456789abc\r
+    mov.l @(0x12345678:32,er2),@(0xffff9abc:16,er3.l)     ;0108caf3123456789abc\r
+    mov.l @(0x12345678:32,er2),@(0x9abcdef0:32,r3l.b)     ;0108cadb123456789abcdef0\r
+    mov.l @(0x12345678:32,er2),@(0x9abcdef0:32,r3.w)     ;0108caeb123456789abcdef0\r
+    mov.l @(0x12345678:32,er2),@(0x9abcdef0:32,er3.l)     ;0108cafb123456789abcdef0\r
+    mov.l @(0x12345678:32,er2),@0xffff9abc:16             ;0108ca40123456789abc\r
+    mov.l @(0x12345678:32,er2),@0x9abcdef0:32             ;0108ca48123456789abcdef0\r
+\r
+    mov.l @(0x1234:16,r3l.b),@er1             ;0108d3011234\r
+    mov.l @(0x1234:16,r3l.b),@(0x4:2,er1)   ;0108d3111234\r
+    mov.l @(0x1234:16,r3l.b),@er1+            ;0108d3811234\r
+    mov.l @(0x1234:16,r3l.b),@-er1            ;0108d3b11234\r
+    mov.l @(0x1234:16,r3l.b),@+er1            ;0108d3911234\r
+    mov.l @(0x1234:16,r3l.b),@er1-            ;0108d3a11234\r
+    mov.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)     ;0108d3c112349abc\r
+    mov.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)     ;0108d3c912349abcdef0\r
+    mov.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r3l.b)   ;0108d3d312349abc\r
+    mov.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r3.w)   ;0108d3e312349abc\r
+    mov.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er3.l)   ;0108d3f312349abc\r
+    mov.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r3l.b)   ;0108d3db12349abcdef0\r
+    mov.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r3.w)   ;0108d3eb12349abcdef0\r
+    mov.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er3.l)   ;0108d3fb12349abcdef0\r
+    mov.l @(0x1234:16,r3l.b),@0xffff9abc:16           ;0108d34012349abc\r
+    mov.l @(0x1234:16,r3l.b),@0x9abcdef0:32           ;0108d34812349abcdef0\r
+\r
+    mov.l @(0x1234:16,r3.w),@er1             ;0108e3011234\r
+    mov.l @(0x1234:16,r3.w),@(0x4:2,er1)   ;0108e3111234\r
+    mov.l @(0x1234:16,r3.w),@er1+            ;0108e3811234\r
+    mov.l @(0x1234:16,r3.w),@-er1            ;0108e3b11234\r
+    mov.l @(0x1234:16,r3.w),@+er1            ;0108e3911234\r
+    mov.l @(0x1234:16,r3.w),@er1-            ;0108e3a11234\r
+    mov.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1)     ;0108e3c112349abc\r
+    mov.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)     ;0108e3c912349abcdef0\r
+    mov.l @(0x1234:16,r3.w),@(0xffff9abc:16,r3l.b)   ;0108e3d312349abc\r
+    mov.l @(0x1234:16,r3.w),@(0xffff9abc:16,r3.w)   ;0108e3e312349abc\r
+    mov.l @(0x1234:16,r3.w),@(0xffff9abc:16,er3.l)   ;0108e3f312349abc\r
+    mov.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r3l.b)   ;0108e3db12349abcdef0\r
+    mov.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r3.w)   ;0108e3eb12349abcdef0\r
+    mov.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er3.l)   ;0108e3fb12349abcdef0\r
+    mov.l @(0x1234:16,r3.w),@0xffff9abc:16           ;0108e34012349abc\r
+    mov.l @(0x1234:16,r3.w),@0x9abcdef0:32           ;0108e34812349abcdef0\r
+\r
+    mov.l @(0x1234:16,er3.l),@er1             ;0108f3011234\r
+    mov.l @(0x1234:16,er3.l),@(0x4:2,er1)   ;0108f3111234\r
+    mov.l @(0x1234:16,er3.l),@er1+            ;0108f3811234\r
+    mov.l @(0x1234:16,er3.l),@-er1            ;0108f3b11234\r
+    mov.l @(0x1234:16,er3.l),@+er1            ;0108f3911234\r
+    mov.l @(0x1234:16,er3.l),@er1-            ;0108f3a11234\r
+    mov.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1)     ;0108f3c112349abc\r
+    mov.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)     ;0108f3c912349abcdef0\r
+    mov.l @(0x1234:16,er3.l),@(0xffff9abc:16,r3l.b)   ;0108f3d312349abc\r
+    mov.l @(0x1234:16,er3.l),@(0xffff9abc:16,r3.w)   ;0108f3e312349abc\r
+    mov.l @(0x1234:16,er3.l),@(0xffff9abc:16,er3.l)   ;0108f3f312349abc\r
+    mov.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r3l.b)   ;0108f3db12349abcdef0\r
+    mov.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r3.w)   ;0108f3eb12349abcdef0\r
+    mov.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er3.l)   ;0108f3fb12349abcdef0\r
+    mov.l @(0x1234:16,er3.l),@0xffff9abc:16           ;0108f34012349abc\r
+    mov.l @(0x1234:16,er3.l),@0x9abcdef0:32           ;0108f34812349abcdef0\r
+\r
+    mov.l @(0x12345678:32,r3l.b),@er1             ;0108db0112345678\r
+    mov.l @(0x12345678:32,r3l.b),@(0x4:2,er1)   ;0108db1112345678\r
+    mov.l @(0x12345678:32,r3l.b),@er1+            ;0108db8112345678\r
+    mov.l @(0x12345678:32,r3l.b),@-er1            ;0108dbb112345678\r
+    mov.l @(0x12345678:32,r3l.b),@+er1            ;0108db9112345678\r
+    mov.l @(0x12345678:32,r3l.b),@er1-            ;0108dba112345678\r
+    mov.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)     ;0108dbc1123456789abc\r
+    mov.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)     ;0108dbc9123456789abcdef0\r
+    mov.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r3l.b)   ;0108dbd3123456789abc\r
+    mov.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r3.w)   ;0108dbe3123456789abc\r
+    mov.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er3.l)   ;0108dbf3123456789abc\r
+    mov.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3l.b)   ;0108dbdb123456789abcdef0\r
+    mov.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3.w)   ;0108dbeb123456789abcdef0\r
+    mov.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er3.l)   ;0108dbfb123456789abcdef0\r
+    mov.l @(0x12345678:32,r3l.b),@0xffff9abc:16           ;0108db40123456789abc\r
+    mov.l @(0x12345678:32,r3l.b),@0x9abcdef0:32           ;0108db48123456789abcdef0\r
+\r
+    mov.l @(0x12345678:32,r3.w),@er1             ;0108eb0112345678\r
+    mov.l @(0x12345678:32,r3.w),@(0x4:2,er1)   ;0108eb1112345678\r
+    mov.l @(0x12345678:32,r3.w),@er1+            ;0108eb8112345678\r
+    mov.l @(0x12345678:32,r3.w),@-er1            ;0108ebb112345678\r
+    mov.l @(0x12345678:32,r3.w),@+er1            ;0108eb9112345678\r
+    mov.l @(0x12345678:32,r3.w),@er1-            ;0108eba112345678\r
+    mov.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)     ;0108ebc1123456789abc\r
+    mov.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)     ;0108ebc9123456789abcdef0\r
+    mov.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r3l.b)   ;0108ebd3123456789abc\r
+    mov.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r3.w)   ;0108ebe3123456789abc\r
+    mov.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er3.l)   ;0108ebf3123456789abc\r
+    mov.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3l.b)   ;0108ebdb123456789abcdef0\r
+    mov.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3.w)   ;0108ebeb123456789abcdef0\r
+    mov.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er3.l)   ;0108ebfb123456789abcdef0\r
+    mov.l @(0x12345678:32,r3.w),@0xffff9abc:16           ;0108eb40123456789abc\r
+    mov.l @(0x12345678:32,r3.w),@0x9abcdef0:32           ;0108eb48123456789abcdef0\r
+\r
+    mov.l @(0x12345678:32,er3.l),@er1             ;0108fb0112345678\r
+    mov.l @(0x12345678:32,er3.l),@(0x4:2,er1)   ;0108fb1112345678\r
+    mov.l @(0x12345678:32,er3.l),@er1+            ;0108fb8112345678\r
+    mov.l @(0x12345678:32,er3.l),@-er1            ;0108fbb112345678\r
+    mov.l @(0x12345678:32,er3.l),@+er1            ;0108fb9112345678\r
+    mov.l @(0x12345678:32,er3.l),@er1-            ;0108fba112345678\r
+    mov.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)     ;0108fbc1123456789abc\r
+    mov.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)     ;0108fbc9123456789abcdef0\r
+    mov.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r3l.b)   ;0108fbd3123456789abc\r
+    mov.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r3.w)   ;0108fbe3123456789abc\r
+    mov.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er3.l)   ;0108fbf3123456789abc\r
+    mov.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3l.b)   ;0108fbdb123456789abcdef0\r
+    mov.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3.w)   ;0108fbeb123456789abcdef0\r
+    mov.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er3.l)   ;0108fbfb123456789abcdef0\r
+    mov.l @(0x12345678:32,er3.l),@0xffff9abc:16           ;0108fb40123456789abc\r
+    mov.l @(0x12345678:32,er3.l),@0x9abcdef0:32           ;0108fb48123456789abcdef0\r
+\r
+    mov.l @0x1234:16,@er1                     ;010840011234\r
+    mov.l @0x1234:16,@(0x4:2,er1)           ;010840111234\r
+    mov.l @0x1234:16,@er1+                    ;010840811234\r
+    mov.l @0x1234:16,@-er1                    ;010840b11234\r
+    mov.l @0x1234:16,@+er1                    ;010840911234\r
+    mov.l @0x1234:16,@er1-                    ;010840a11234\r
+    mov.l @0x1234:16,@(0xffff9abc:16,er1)             ;010840c112349abc\r
+    mov.l @0x1234:16,@(0x9abcdef0:32,er1)             ;010840c912349abcdef0\r
+    mov.l @0x1234:16,@(0xffff9abc:16,r3l.b)           ;010840d312349abc\r
+    mov.l @0x1234:16,@(0xffff9abc:16,r3.w)           ;010840e312349abc\r
+    mov.l @0x1234:16,@(0xffff9abc:16,er3.l)           ;010840f312349abc\r
+    mov.l @0x1234:16,@(0x9abcdef0:32,r3l.b)           ;010840db12349abcdef0\r
+    mov.l @0x1234:16,@(0x9abcdef0:32,r3.w)           ;010840eb12349abcdef0\r
+    mov.l @0x1234:16,@(0x9abcdef0:32,er3.l)           ;010840fb12349abcdef0\r
+    mov.l @0x1234:16,@0xffff9abc:16                   ;0108404012349abc\r
+    mov.l @0x1234:16,@0x9abcdef0:32                   ;0108404812349abcdef0\r
+\r
+    mov.l @0x12345678:32,@er1                     ;0108480112345678\r
+    mov.l @0x12345678:32,@(0x4:2,er1)           ;0108481112345678\r
+    mov.l @0x12345678:32,@er1+                    ;0108488112345678\r
+    mov.l @0x12345678:32,@-er1                    ;010848b112345678\r
+    mov.l @0x12345678:32,@+er1                    ;0108489112345678\r
+    mov.l @0x12345678:32,@er1-                    ;010848a112345678\r
+    mov.l @0x12345678:32,@(0xffff9abc:16,er1)             ;010848c1123456789abc\r
+    mov.l @0x12345678:32,@(0x9abcdef0:32,er1)             ;010848c9123456789abcdef0\r
+    mov.l @0x12345678:32,@(0xffff9abc:16,r3l.b)           ;010848d3123456789abc\r
+    mov.l @0x12345678:32,@(0xffff9abc:16,r3.w)           ;010848e3123456789abc\r
+    mov.l @0x12345678:32,@(0xffff9abc:16,er3.l)           ;010848f3123456789abc\r
+    mov.l @0x12345678:32,@(0x9abcdef0:32,r3l.b)           ;010848db123456789abcdef0\r
+    mov.l @0x12345678:32,@(0x9abcdef0:32,r3.w)           ;010848eb123456789abcdef0\r
+    mov.l @0x12345678:32,@(0x9abcdef0:32,er3.l)           ;010848fb123456789abcdef0\r
+    mov.l @0x12345678:32,@0xffff9abc:16                   ;01084840123456789abc\r
+    mov.l @0x12345678:32,@0x9abcdef0:32                   ;01084848123456789abcdef0\r
+\r
+    movtpe.b r2h,@0x1234:16                    ;6ac21234\r
+    movfpe.b @0x1234:16,r1h                    ;6a411234\r
+\r
+    ldm @sp+,(er0-er1)                  ;01106d71\r
+    ldm @sp+,(er1-er2)                  ;01106d72\r
+    ldm @sp+,(er2-er3)                  ;01106d73\r
+    ldm @sp+,(er3-er4)                  ;01106d74\r
+    ldm @sp+,(er4-er5)                  ;01106d75\r
+    ldm @sp+,(er5-er6)                  ;01106d76\r
+    ldm @sp+,(er6-er7)                  ;01106d77\r
+\r
+    ldm @sp+,(er0-er2)                  ;01206d72\r
+    ldm @sp+,(er1-er3)                  ;01206d73\r
+    ldm @sp+,(er2-er4)                  ;01206d74\r
+    ldm @sp+,(er3-er5)                  ;01206d75\r
+    ldm @sp+,(er4-er6)                  ;01206d76\r
+    ldm @sp+,(er5-er7)                  ;01206d77\r
+\r
+    ldm @sp+,(er0-er3)                  ;01306d73\r
+    ldm @sp+,(er1-er4)                  ;01306d74\r
+    ldm @sp+,(er2-er5)                  ;01306d75\r
+    ldm @sp+,(er3-er6)                  ;01306d76\r
+    ldm @sp+,(er4-er7)                  ;01306d77\r
+\r
+    stm (er0-er1),@-sp                  ;01106df0\r
+    stm (er1-er2),@-sp                  ;01106df1\r
+    stm (er2-er3),@-sp                  ;01106df2\r
+    stm (er3-er4),@-sp                  ;01106df3\r
+    stm (er4-er5),@-sp                  ;01106df4\r
+    stm (er5-er6),@-sp                  ;01106df5\r
+    stm (er6-er7),@-sp                  ;01106df6\r
+\r
+    stm (er0-er2),@-sp                  ;01206df0\r
+    stm (er1-er3),@-sp                  ;01206df1\r
+    stm (er2-er4),@-sp                  ;01206df2\r
+    stm (er3-er5),@-sp                  ;01206df3\r
+    stm (er4-er6),@-sp                  ;01206df4\r
+    stm (er5-er7),@-sp                  ;01206df5\r
+\r
+    stm (er0-er3),@-sp                  ;01306df0\r
+    stm (er1-er4),@-sp                  ;01306df1\r
+    stm (er2-er5),@-sp                  ;01306df2\r
+    stm (er3-er6),@-sp                  ;01306df3\r
+    stm (er4-er7),@-sp                  ;01306df4\r
+\r
+    eepmov.b                            ;7b5c598f\r
+\r
+    eepmov.w                            ;7bd4598f\r
+\r
+    movmd.b                              ;7b94\r
+    movmd.w                              ;7ba4\r
+    movmd.l                              ;7bb4\r
+    movsd.b  label                       ;7b840004\r
+    nop                                  ;0000\r
+    nop                                  ;0000\r
+label:\r
+\r
+    .end\r
+\r
diff --git a/gas/testsuite/gas/h8300/t02_mova.exp b/gas/testsuite/gas/h8300/t02_mova.exp
new file mode 100644 (file)
index 0000000..d556779
--- /dev/null
@@ -0,0 +1,714 @@
+#
+# Some h8300sx tests -- t02_mova
+#
+
+proc do_t02_mova_test {} {
+    set testname "t02_mova.s -- h8sx mova tests"
+
+    gas_start "t02_mova.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*   7 0000 78B87A89" { set x [expr $x+1]; exp_continue; }
+       -re ".*   7      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*   8 0006 78397A99" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*   9 000c 78B87AA9" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  10 0012 78397AB9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  11 0018 78B87AC9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  12 001e 78397AD9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  13 0024 78B87A81" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14 002c 78397A91" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15 0034 78B87AA1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 003c 78397AB1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17 0044 78B87AC1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18 004c 78397AD1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19              " {
+           if [expr $x == 24] then {
+               pass "$testname: a"
+           } else {
+               fail "$testname: a ($x)"
+           }
+       }
+        default        { fail "$testname: a ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  20 0054 78B87A89" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  21 005a 78397A99" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 0060 78B87AA9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  23 0066 78397AB9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  24 006c 78B87AC9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  25 0072 78397AD9" { set x [expr $x+1]; exp_continue; }
+       -re ".*  25      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  26 0078 78B87A81" { set x [expr $x+1]; exp_continue; }
+       -re ".*  26      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27 0080 78397A91" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  28 0088 78B87AA1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  28      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29 0090 78397AB1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30 0098 78B87AC1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31 00a0 78397AD1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32              " {
+           if [expr $x == 24] then {
+               pass "$testname: b"
+           } else {
+               fail "$testname: b ($x)"
+           }
+       }
+        default        { fail "$testname: b ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  33 00a8 017F0281" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  34 00ae 017F1281" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  35 00b4 017F8281" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 00ba 017FB281" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 00c0 017F9281" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  38 00c6 017FA281" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  39 00cc 017FC281" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40 00d4 017FCA81" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  41 00de 017FD281" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42 00e6 017FE281" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43 00ee 017FF281" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44 00f6 017FDA81" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  45 0100 017FEA81" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  46 010a 017FFA81" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  47 0114 017F4081" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48 011c 017F4881" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  49              " {
+           if [expr $x == 37] then {
+               pass "$testname: c"
+           } else {
+               fail "$testname: c ($x)"
+           }
+       }
+        default        { fail "$testname: c ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  50 0126 015F0291" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  51 012c 015F1291" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  52 0132 015F8291" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  53 0138 015FB291" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 013e 015F9291" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 0144 015FA291" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  56 014a 015FC291" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57 0152 015FCA91" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  58 015c 015FD291" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59 0164 015FE291" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60 016c 015FF291" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61 0174 015FDA91" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  62 017e 015FEA91" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  63 0188 015FFA91" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  64 0192 015F4091" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65 019a 015F4891" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  66              " {
+           if [expr $x == 37] then {
+               pass "$testname: d"
+           } else {
+               fail "$testname: d ($x)"
+           }
+       }
+        default        { fail "$testname: d ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  67 01a4 017F02A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  68 01aa 017F12A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 01b0 017F82A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  70 01b6 017FB2A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  71 01bc 017F92A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  72 01c2 017FA2A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  73 01c8 017FC2A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74 01d0 017FCAA1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  75 01da 017FD2A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76 01e2 017FE2A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77 01ea 017FF2A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78 01f2 017FDAA1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  79 01fc 017FEAA1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  80 0206 017FFAA1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  81 0210 017F40A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82 0218 017F48A1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  83              " {
+           if [expr $x == 37] then {
+               pass "$testname: e"
+           } else {
+               fail "$testname: e ($x)"
+           }
+       }
+        default        { fail "$testname: e ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  84 0222 015F02B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  85 0228 015F12B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  86 022e 015F82B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  87 0234 015FB2B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  88 023a 015F92B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  89 0240 015FA2B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  90 0246 015FC2B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91 024e 015FCAB1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  92 0258 015FD2B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 0260 015FE2B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94 0268 015FF2B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95 0270 015FDAB1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  96 027a 015FEAB1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  97 0284 015FFAB1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".*  98 028e 015F40B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99 0296 015F48B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 100              " {
+           if [expr $x == 37] then {
+               pass "$testname: f"
+           } else {
+               fail "$testname: f ($x)"
+           }
+       }
+        default        { fail "$testname: f ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 101 02a0 017F02C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 102 02a6 017F12C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 103 02ac 017F82C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 104 02b2 017FB2C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 105 02b8 017F92C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 106 02be 017FA2C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 107 02c4 017FC2C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108 02cc 017FCAC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 109 02d6 017FD2C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110 02de 017FE2C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111 02e6 017FF2C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112 02ee 017FDAC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 113 02f8 017FEAC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 114 0302 017FFAC1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 115 030c 017F40C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116 0314 017F48C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 117              " {
+           if [expr $x == 37] then {
+               pass "$testname: g"
+           } else {
+               fail "$testname: g ($x)"
+           }
+       }
+        default        { fail "$testname: g ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 118 031e 015F02D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 119 0324 015F12D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 120 032a 015F82D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 121 0330 015FB2D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 122 0336 015F92D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 123 033c 015FA2D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 124 0342 015FC2D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125 034a 015FCAD1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 126 0354 015FD2D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127 035c 015FE2D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128 0364 015FF2D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129 036c 015FDAD1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 130 0376 015FEAD1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 131 0380 015FFAD1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 132 038a 015F40D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133 0392 015F48D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133      1234"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 134              " {
+           if [expr $x == 37] then {
+               pass "$testname: h"
+           } else {
+               fail "$testname: h ($x)"
+           }
+       }
+        default        { fail "$testname: h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 135 039c 017F0289" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136 03a4 017F1289" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137 03ac 017F8289" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138 03b4 017FB289" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139 03bc 017F9289" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140 03c4 017FA289" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141 03cc 017FC289" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 142 03d6 017FCA89" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143 03e2 017FD289" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 144 03ec 017FE289" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 145 03f6 017FF289" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 146 0400 017FDA89" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147 040c 017FEA89" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148 0418 017FFA89" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149 0424 017F4089" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 150 042e 017F4889" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151              " {
+           if [expr $x == 42] then {
+               pass "$testname: i"
+           } else {
+               fail "$testname: i ($x)"
+           }
+       }
+        default        { fail "$testname: i ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 152 043a 015F0299" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153 0442 015F1299" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154 044a 015F8299" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155 0452 015FB299" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156 045a 015F9299" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157 0462 015FA299" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158 046a 015FC299" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 159 0474 015FCA99" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160 0480 015FD299" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 161 048a 015FE299" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 162 0494 015FF299" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 163 049e 015FDA99" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164 04aa 015FEA99" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165 04b6 015FFA99" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166 04c2 015F4099" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 167 04cc 015F4899" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168              " {
+           if [expr $x == 42] then {
+               pass "$testname: j"
+           } else {
+               fail "$testname: j ($x)"
+           }
+       }
+        default        { fail "$testname: j ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 169 04d8 017F02A9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170 04e0 017F12A9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171 04e8 017F82A9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172 04f0 017FB2A9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173 04f8 017F92A9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174 0500 017FA2A9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175 0508 017FC2A9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 176 0512 017FCAA9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177 051e 017FD2A9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 178 0528 017FE2A9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 179 0532 017FF2A9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 180 053c 017FDAA9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181 0548 017FEAA9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182 0554 017FFAA9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183 0560 017F40A9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 184 056a 017F48A9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185              " {
+           if [expr $x == 42] then {
+               pass "$testname: k"
+           } else {
+               fail "$testname: k ($x)"
+           }
+       }
+        default        { fail "$testname: k ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 186 0576 015F02B9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187 057e 015F12B9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188 0586 015F82B9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189 058e 015FB2B9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190 0596 015F92B9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191 059e 015FA2B9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192 05a6 015FC2B9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 193 05b0 015FCAB9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194 05bc 015FD2B9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 195 05c6 015FE2B9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 196 05d0 015FF2B9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 197 05da 015FDAB9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198 05e6 015FEAB9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199 05f2 015FFAB9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200 05fe 015F40B9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 201 0608 015F48B9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202              " {
+           if [expr $x == 42] then {
+               pass "$testname: l"
+           } else {
+               fail "$testname: l ($x)"
+           }
+       }
+        default        { fail "$testname: l ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 203 0614 017F02C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204 061c 017F12C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205 0624 017F82C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206 062c 017FB2C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207 0634 017F92C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208 063c 017FA2C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209 0644 017FC2C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 210 064e 017FCAC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211 065a 017FD2C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 212 0664 017FE2C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 213 066e 017FF2C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 214 0678 017FDAC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215 0684 017FEAC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216 0690 017FFAC9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217 069c 017F40C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 218 06a6 017F48C9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219              " {
+           if [expr $x == 42] then {
+               pass "$testname: m"
+           } else {
+               fail "$testname: m ($x)"
+           }
+       }
+        default        { fail "$testname: m ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 220 06b2 015F02D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221 06ba 015F12D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222 06c2 015F82D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223 06ca 015FB2D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224 06d2 015F92D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225 06da 015FA2D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226 06e2 015FC2D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 227 06ec 015FCAD9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228 06f8 015FD2D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 229 0702 015FE2D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 230 070c 015FF2D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 231 0716 015FDAD9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232 0722 015FEAD9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233 072e 015FFAD9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234 073a 015F40D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      5678"     { set x [expr $x+1]; exp_continue; }
+       -re ".* 235 0744 015F48D9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236              " {
+           if [expr $x == 42] then {
+               pass "$testname: n"
+           } else {
+               fail "$testname: n ($x)"
+           }
+       }
+        default        { fail "$testname: n ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t02_mova_test
+}
+
diff --git a/gas/testsuite/gas/h8300/t02_mova.s b/gas/testsuite/gas/h8300/t02_mova.s
new file mode 100644 (file)
index 0000000..945e6f7
--- /dev/null
@@ -0,0 +1,237 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;mova\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+_start:\r
+    mova/b.c @(0x1234:16,r3l.b),er1              ;7A891234\r
+    mova/b.c @(0x1234:16,r3.w),er1              ;7A991234\r
+    mova/w.c @(0x1234:16,r3l.b),er1           ;7AA91234\r
+    mova/w.c @(0x1234:16,r3.w),er1           ;7AB91234\r
+    mova/l.c @(0x1234:16,r3l.b),er1           ;7AC91234\r
+    mova/l.c @(0x1234:16,r3.w),er1           ;7AD91234\r
+    mova/b.c @(0x12345678:32,r3l.b),er1              ;7A8112345678\r
+    mova/b.c @(0x12345678:32,r3.w),er1              ;7A9112345678\r
+    mova/w.c @(0x12345678:32,r3l.b),er1           ;7AA112345678\r
+    mova/w.c @(0x12345678:32,r3.w),er1           ;7AB112345678\r
+    mova/l.c @(0x12345678:32,r3l.b),er1           ;7AC112345678\r
+    mova/l.c @(0x12345678:32,r3.w),er1           ;7AD112345678\r
+\r
+    mova/b.l @(0x1234:16,r3l.b),er1              ;78B87A891234\r
+    mova/b.l @(0x1234:16,r3.w),er1              ;78397A991234\r
+    mova/w.l @(0x1234:16,r3l.b),er1           ;78B87AA91234\r
+    mova/w.l @(0x1234:16,r3.w),er1           ;78397AB91234\r
+    mova/l.l @(0x1234:16,r3l.b),er1           ;78B87AC91234\r
+    mova/l.l @(0x1234:16,r3.w),er1           ;78397AD91234\r
+    mova/b.l @(0x12345678:32,r3l.b),er1              ;78B87A8112345678\r
+    mova/b.l @(0x12345678:32,r3.w),er1              ;78397A9112345678\r
+    mova/w.l @(0x12345678:32,r3l.b),er1           ;78B87AA112345678\r
+    mova/w.l @(0x12345678:32,r3.w),er1           ;78397AB112345678\r
+    mova/l.l @(0x12345678:32,r3l.b),er1           ;78B87AC112345678\r
+    mova/l.l @(0x12345678:32,r3.w),er1           ;78397AD112345678\r
+\r
+    mova/b.l @(0x1234:16,@er2.b),er1              ;017F02811234\r
+    mova/b.l @(0x1234:16,@(0x1:2,er2).b),er1       ;017F12811234\r
+    mova/b.l @(0x1234:16,@er2+.b),er1             ;017F82811234\r
+    mova/b.l @(0x1234:16,@-er2.b),er1             ;017FB2811234\r
+    mova/b.l @(0x1234:16,@+er2.b),er1             ;017F92811234\r
+    mova/b.l @(0x1234:16,@er2-.b),er1             ;017FA2811234\r
+    mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,er2).b),er1      ;017FC2819ABC1234\r
+    mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,er2).b),er1      ;017FCA819ABCDEF01234\r
+    mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,r2L.b).b),er1    ;017FD2819ABC1234\r
+    mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,r2.w).b),er1    ;017FE2819ABC1234\r
+    mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,er2.l).b),er1    ;017FF2819ABC1234\r
+    mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,r2L.b).b),er1    ;017FDA819ABCDEF01234\r
+    mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,r2.w).b),er1    ;017FEA819ABCDEF01234\r
+    mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,er2.l).b),er1    ;017FFA819ABCDEF01234\r
+    mova/b.l @(0x1234:16,@0xFFFF9ABC:16.b),er1            ;017F40819ABC1234\r
+    mova/b.l @(0x1234:16,@0x9ABCDEF0:32.b),er1            ;017F48819ABCDEF01234\r
+\r
+    mova/b.l @(0x1234:16,@er2.w),er1              ;015F02911234\r
+    mova/b.l @(0x1234:16,@(0x2:2,er2).w),er1    ;015F12911234\r
+    mova/b.l @(0x1234:16,@er2+.w),er1             ;015F82911234\r
+    mova/b.l @(0x1234:16,@-er2.w),er1             ;015FB2911234\r
+    mova/b.l @(0x1234:16,@+er2.w),er1             ;015F92911234\r
+    mova/b.l @(0x1234:16,@er2-.w),er1             ;015FA2911234\r
+    mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,er2).w),er1      ;015FC2919ABC1234\r
+    mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,er2).w),er1      ;015FCA919ABCDEF01234\r
+    mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,r2L.b).w),er1    ;015FD2919ABC1234\r
+    mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,r2.w).w),er1    ;015FE2919ABC1234\r
+    mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,er2.l).w),er1    ;015FF2919ABC1234\r
+    mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,r2L.b).w),er1    ;015FDA919ABCDEF01234\r
+    mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,r2.w).w),er1    ;015FEA919ABCDEF01234\r
+    mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,er2.l).w),er1    ;015FFA919ABCDEF01234\r
+    mova/b.l @(0x1234:16,@0xFFFF9ABC:16.w),er1            ;015F40919ABC1234\r
+    mova/b.l @(0x1234:16,@0x9ABCDEF0:32.w),er1            ;015F48919ABCDEF01234\r
+\r
+    mova/w.l @(0x1234:16,@er2.b),er1           ;017F02A11234\r
+    mova/w.l @(0x1234:16,@(0x1:2,er2).b),er1    ;017F12A11234\r
+    mova/w.l @(0x1234:16,@er2+.b),er1          ;017F82A11234\r
+    mova/w.l @(0x1234:16,@-er2.b),er1          ;017FB2A11234\r
+    mova/w.l @(0x1234:16,@+er2.b),er1          ;017F92A11234\r
+    mova/w.l @(0x1234:16,@er2-.b),er1          ;017FA2A11234\r
+    mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,er2).b),er1   ;017FC2A19ABC1234\r
+    mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,er2).b),er1   ;017FCAA19ABCDEF01234\r
+    mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,r2L.b).b),er1 ;017FD2A19ABC1234\r
+    mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,r2.w).b),er1 ;017FE2A19ABC1234\r
+    mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,er2.l).b),er1 ;017FF2A19ABC1234\r
+    mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,r2L.b).b),er1 ;017FDAA19ABCDEF01234\r
+    mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,r2.w).b),er1 ;017FEAA19ABCDEF01234\r
+    mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,er2.l).b),er1 ;017FFAA19ABCDEF01234\r
+    mova/w.l @(0x1234:16,@0xFFFF9ABC:16.b),er1         ;017F40A19ABC1234\r
+    mova/w.l @(0x1234:16,@0x9ABCDEF0:32.b),er1         ;017F48A19ABCDEF01234\r
+\r
+    mova/w.l @(0x1234:16,@er2.w),er1           ;015F02B11234\r
+    mova/w.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12B11234\r
+    mova/w.l @(0x1234:16,@er2+.w),er1          ;015F82B11234\r
+    mova/w.l @(0x1234:16,@-er2.w),er1          ;015FB2B11234\r
+    mova/w.l @(0x1234:16,@+er2.w),er1          ;015F92B11234\r
+    mova/w.l @(0x1234:16,@er2-.w),er1          ;015FA2B11234\r
+    mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,er2).w),er1   ;015FC2B19ABC1234\r
+    mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,er2).w),er1   ;015FCAB19ABCDEF01234\r
+    mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,r2L.b).w),er1 ;015FD2B19ABC1234\r
+    mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,r2.w).w),er1 ;015FE2B19ABC1234\r
+    mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,er2.l).w),er1 ;015FF2B19ABC1234\r
+    mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,r2L.b).w),er1 ;015FDAB19ABCDEF01234\r
+    mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,r2.w).w),er1 ;015FEAB19ABCDEF01234\r
+    mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,er2.l).w),er1 ;015FFAB19ABCDEF01234\r
+    mova/w.l @(0x1234:16,@0xFFFF9ABC:16.w),er1         ;015F40B19ABC1234\r
+    mova/w.l @(0x1234:16,@0x9ABCDEF0:32.w),er1         ;015F48B19ABCDEF01234\r
+\r
+    mova/l.l @(0x1234:16,@er2.b),er1           ;017F02C11234\r
+    mova/l.l @(0x1234:16,@(0x1:2,er2).b),er1    ;017F12C11234\r
+    mova/l.l @(0x1234:16,@er2+.b),er1          ;017F82C11234\r
+    mova/l.l @(0x1234:16,@-er2.b),er1          ;017FB2C11234\r
+    mova/l.l @(0x1234:16,@+er2.b),er1          ;017F92C11234\r
+    mova/l.l @(0x1234:16,@er2-.b),er1          ;017FA2C11234\r
+    mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,er2).b),er1   ;017FC2C19ABC1234\r
+    mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,er2).b),er1   ;017FCAC19ABCDEF01234\r
+    mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,r2L.b).b),er1 ;017FD2C19ABC1234\r
+    mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,r2.w).b),er1 ;017FE2C19ABC1234\r
+    mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,er2.l).b),er1 ;017FF2C19ABC1234\r
+    mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,r2L.b).b),er1 ;017FDAC19ABCDEF01234\r
+    mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,r2.w).b),er1 ;017FEAC19ABCDEF01234\r
+    mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,er2.l).b),er1 ;017FFAC19ABCDEF01234\r
+    mova/l.l @(0x1234:16,@0xFFFF9ABC:16.b),er1         ;017F40C19ABC1234\r
+    mova/l.l @(0x1234:16,@0x9ABCDEF0:32.b),er1         ;017F48C19ABCDEF01234\r
+\r
+    mova/l.l @(0x1234:16,@er2.w),er1           ;015F02D11234\r
+    mova/l.l @(0x1234:16,@(0x2:2,er2).w),er1   ;015F12D11234\r
+    mova/l.l @(0x1234:16,@er2+.w),er1          ;015F82D11234\r
+    mova/l.l @(0x1234:16,@-er2.w),er1          ;015FB2D11234\r
+    mova/l.l @(0x1234:16,@+er2.w),er1          ;015F92D11234\r
+    mova/l.l @(0x1234:16,@er2-.w),er1          ;015FA2D11234\r
+    mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,er2).w),er1   ;015FC2D19ABC1234\r
+    mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,er2).w),er1   ;015FCAD19ABCDEF01234\r
+    mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,r2L.b).w),er1 ;015FD2D19ABC1234\r
+    mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,r2.w).w),er1 ;015FE2D19ABC1234\r
+    mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,er2.l).w),er1 ;015FF2D19ABC1234\r
+    mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,r2L.b).w),er1 ;015FDAD19ABCDEF01234\r
+    mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,r2.w).w),er1 ;015FEAD19ABCDEF01234\r
+    mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,er2.l).w),er1 ;015FFAD19ABCDEF01234\r
+    mova/l.l @(0x1234:16,@0xFFFF9ABC:16.w),er1         ;015F40D19ABC1234\r
+    mova/l.l @(0x1234:16,@0x9ABCDEF0:32.w),er1         ;015F48D19ABCDEF01234\r
+\r
+    mova/b.l @(0x12345678:32,@er2.b),er1              ;017F028912345678\r
+    mova/b.l @(0x12345678:32,@(0x1:2,er2).b),er1       ;017F128912345678\r
+    mova/b.l @(0x12345678:32,@er2+.b),er1             ;017F828912345678\r
+    mova/b.l @(0x12345678:32,@-er2.b),er1             ;017FB28912345678\r
+    mova/b.l @(0x12345678:32,@+er2.b),er1             ;017F928912345678\r
+    mova/b.l @(0x12345678:32,@er2-.b),er1             ;017FA28912345678\r
+    mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,er2).b),er1      ;017FC2899ABC12345678\r
+    mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,er2).b),er1      ;017FCA899ABCDEF012345678\r
+    mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,r2L.b).b),er1    ;017FD2899ABC12345678\r
+    mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,r2.w).b),er1    ;017FE2899ABC12345678\r
+    mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,er2.l).b),er1    ;017FF2899ABC12345678\r
+    mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,r2L.b).b),er1    ;017FDA899ABCDEF012345678\r
+    mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,r2.w).b),er1    ;017FEA899ABCDEF012345678\r
+    mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,er2.l).b),er1    ;017FFA899ABCDEF012345678\r
+    mova/b.l @(0x12345678:32,@0xFFFF9ABC:16.b),er1            ;017F40899ABC12345678\r
+    mova/b.l @(0x12345678:32,@0x9ABCDEF0:32.b),er1            ;017F48899ABCDEF012345678\r
+\r
+    mova/b.l @(0x12345678:32,@er2.w),er1              ;015F029912345678\r
+    mova/b.l @(0x12345678:32,@(0x2:2,er2).w),er1      ;015F129912345678\r
+    mova/b.l @(0x12345678:32,@er2+.w),er1             ;015F829912345678\r
+    mova/b.l @(0x12345678:32,@-er2.w),er1             ;015FB29912345678\r
+    mova/b.l @(0x12345678:32,@+er2.w),er1             ;015F929912345678\r
+    mova/b.l @(0x12345678:32,@er2-.w),er1             ;015FA29912345678\r
+    mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,er2).w),er1      ;015FC2999ABC12345678\r
+    mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,er2).w),er1      ;015FCA999ABCDEF012345678\r
+    mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,r2L.b).w),er1    ;015FD2999ABC12345678\r
+    mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,r2.w).w),er1    ;015FE2999ABC12345678\r
+    mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,er2.l).w),er1    ;015FF2999ABC12345678\r
+    mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,r2L.b).w),er1    ;015FDA999ABCDEF012345678\r
+    mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,r2.w).w),er1    ;015FEA999ABCDEF012345678\r
+    mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,er2.l).w),er1    ;015FFA999ABCDEF012345678\r
+    mova/b.l @(0x12345678:32,@0xFFFF9ABC:16.w),er1            ;015F40999ABC12345678\r
+    mova/b.l @(0x12345678:32,@0x9ABCDEF0:32.w),er1            ;015F48999ABCDEF012345678\r
+\r
+    mova/w.l @(0x12345678:32,@er2.b),er1           ;017F02A912345678\r
+    mova/w.l @(0x12345678:32,@(0x1:2,er2).b),er1   ;017F12A912345678\r
+    mova/w.l @(0x12345678:32,@er2+.b),er1          ;017F82A912345678\r
+    mova/w.l @(0x12345678:32,@-er2.b),er1          ;017FB2A912345678\r
+    mova/w.l @(0x12345678:32,@+er2.b),er1          ;017F92A912345678\r
+    mova/w.l @(0x12345678:32,@er2-.b),er1          ;017FA2A912345678\r
+    mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,er2).b),er1   ;017FC2A99ABC12345678\r
+    mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,er2).b),er1   ;017FCAA99ABCDEF012345678\r
+    mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,r2L.b).b),er1 ;017FD2A99ABC12345678\r
+    mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,r2.w).b),er1 ;017FE2A99ABC12345678\r
+    mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,er2.l).b),er1 ;017FF2A99ABC12345678\r
+    mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,r2L.b).b),er1 ;017FDAA99ABCDEF012345678\r
+    mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,r2.w).b),er1 ;017FEAA99ABCDEF012345678\r
+    mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,er2.l).b),er1 ;017FFAA99ABCDEF012345678\r
+    mova/w.l @(0x12345678:32,@0xFFFF9ABC:16.b),er1         ;017F40A99ABC12345678\r
+    mova/w.l @(0x12345678:32,@0x9ABCDEF0:32.b),er1         ;017F48A99ABCDEF012345678\r
+\r
+    mova/w.l @(0x12345678:32,@er2.w),er1           ;015F02B912345678\r
+    mova/w.l @(0x12345678:32,@(0x2:2,er2).w),er1   ;015F12B912345678\r
+    mova/w.l @(0x12345678:32,@er2+.w),er1          ;015F82B912345678\r
+    mova/w.l @(0x12345678:32,@-er2.w),er1          ;015FB2B912345678\r
+    mova/w.l @(0x12345678:32,@+er2.w),er1          ;015F92B912345678\r
+    mova/w.l @(0x12345678:32,@er2-.w),er1          ;015FA2B912345678\r
+    mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,er2).w),er1   ;015FC2B99ABC12345678\r
+    mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,er2).w),er1   ;015FCAB99ABCDEF012345678\r
+    mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,r2L.b).w),er1 ;015FD2B99ABC12345678\r
+    mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,r2.w).w),er1 ;015FE2B99ABC12345678\r
+    mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,er2.l).w),er1 ;015FF2B99ABC12345678\r
+    mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,r2L.b).w),er1 ;015FDAB99ABCDEF012345678\r
+    mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,r2.w).w),er1 ;015FEAB99ABCDEF012345678\r
+    mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,er2.l).w),er1 ;015FFAB99ABCDEF012345678\r
+    mova/w.l @(0x12345678:32,@0xFFFF9ABC:16.w),er1         ;015F40B99ABC12345678\r
+    mova/w.l @(0x12345678:32,@0x9ABCDEF0:32.w),er1         ;015F48B99ABCDEF012345678\r
+\r
+    mova/l.l @(0x12345678:32,@er2.b),er1           ;017F02C912345678\r
+    mova/l.l @(0x12345678:32,@(0x1:2,er2).b),er1   ;017F12C912345678\r
+    mova/l.l @(0x12345678:32,@er2+.b),er1          ;017F82C912345678\r
+    mova/l.l @(0x12345678:32,@-er2.b),er1          ;017FB2C912345678\r
+    mova/l.l @(0x12345678:32,@+er2.b),er1          ;017F92C912345678\r
+    mova/l.l @(0x12345678:32,@er2-.b),er1          ;017FA2C912345678\r
+    mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,er2).b),er1   ;017FC2C99ABC12345678\r
+    mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,er2).b),er1   ;017FCAC99ABCDEF012345678\r
+    mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,r2L.b).b),er1 ;017FD2C99ABC12345678\r
+    mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,r2.w).b),er1 ;017FE2C99ABC12345678\r
+    mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,er2.l).b),er1 ;017FF2C99ABC12345678\r
+    mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,r2L.b).b),er1 ;017FDAC99ABCDEF012345678\r
+    mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,r2.w).b),er1 ;017FEAC99ABCDEF012345678\r
+    mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,er2.l).b),er1 ;017FFAC99ABCDEF012345678\r
+    mova/l.l @(0x12345678:32,@0xFFFF9ABC:16.b),er1         ;017F40C99ABC12345678\r
+    mova/l.l @(0x12345678:32,@0x9ABCDEF0:32.b),er1         ;017F48C99ABCDEF012345678\r
+\r
+    mova/l.l @(0x12345678:32,@er2.w),er1           ;015F02D912345678\r
+    mova/l.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F12D912345678\r
+    mova/l.l @(0x12345678:32,@er2+.w),er1          ;015F82D912345678\r
+    mova/l.l @(0x12345678:32,@-er2.w),er1          ;015FB2D912345678\r
+    mova/l.l @(0x12345678:32,@+er2.w),er1          ;015F92D912345678\r
+    mova/l.l @(0x12345678:32,@er2-.w),er1          ;015FA2D912345678\r
+    mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,er2).w),er1   ;015FC2D99ABC12345678\r
+    mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,er2).w),er1   ;015FCAD99ABCDEF012345678\r
+    mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,r2L.b).w),er1 ;015FD2D99ABC12345678\r
+    mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,r2.w).w),er1 ;015FE2D99ABC12345678\r
+    mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,er2.l).w),er1 ;015FF2D99ABC12345678\r
+    mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,r2L.b).w),er1 ;015FDAD99ABCDEF012345678\r
+    mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,r2.w).w),er1 ;015FEAD99ABCDEF012345678\r
+    mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,er2.l).w),er1 ;015FFAD99ABCDEF012345678\r
+    mova/l.l @(0x12345678:32,@0xFFFF9ABC:16.w),er1         ;015F40D99ABC12345678\r
+    mova/l.l @(0x12345678:32,@0x9ABCDEF0:32.w),er1         ;015F48D99ABCDEF012345678\r
+\r
+       .end\r
diff --git a/gas/testsuite/gas/h8300/t03_add.exp b/gas/testsuite/gas/h8300/t03_add.exp
new file mode 100644 (file)
index 0000000..635daab
--- /dev/null
@@ -0,0 +1,3021 @@
+#
+# Some h8300sx tests -- t03_add
+#
+
+proc do_t03_add_test {} {
+    set testname "t03_add.s -- h8sx tests"
+
+    gas_start "t03_add.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*   7 0000 8112" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8 0002 7D108012" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9 0006 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9      8012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10 000c 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10      8012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11 0012 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11      8012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12 0018 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12      8012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13 001e 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13      8012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14 0024 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14      12348012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15 002c 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      8012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 0036 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16      12348012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17 003e 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17      12348012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18 0046 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18      12348012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19 004e 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      8012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20 0058 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      8012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21 0062 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      8012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 006c 7F9A8012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23 0070 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23      8012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24 0076 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24      56788012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  25              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.b #0x12:8, ..."
+           } else {
+               fail "$testname: add.b #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  26 007e 0831" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27              " {
+           if [expr $x == 1] then {
+               pass "$testname: add.b r3h, r1h"
+           } else {
+               fail "$testname: add.b r3h, r1h ($x)"
+           }
+       }
+        default        { fail "$testname: add.b r3h, r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  28 0080 7D100830" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29 0084 01793113" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30 0088 01798113" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31 008c 0179B113" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32 0090 01799113" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33 0094 0179A113" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34 0098 0179C113" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35 009e 0179C913" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 00a6 0179D213" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 00ac 0179E213" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38 00b2 0179F213" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39 00b8 0179DA13" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40 00c0 0179EA13" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41 00c8 0179FA13" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42 00d0 7F120830" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43 00d4 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43      0830" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44 00da 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44      56780830" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45              " {
+           if [expr $x == 27] then {
+               pass "$testname: add.b r3h, ..."
+           } else {
+               fail "$testname: add.b r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  46 00e2 7C300801" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47 00e6 017A3311" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48 00ea 017A8311" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49 00ee 017AB311" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50 00f2 017A9311" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51 00f6 017AA311" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52 00fa 017AC111" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53 0100 017AC911" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 0108 017AD211" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 010e 017AE211" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56 0114 017AF211" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57 011a 017ADA11" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58 0122 017AEA11" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59 012a 017AFA11" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60 0132 7E120801" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61 0136 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61      0801" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62 013c 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62      56780801" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63              " {
+           if [expr $x == 27] then {
+               pass "$testname: add.b ..., r1h"
+           } else {
+               fail "$testname: add.b ..., r1h ($x)"
+           }
+       }
+        default        { fail "$testname: add.b ..., r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  64 0144 7C350110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65 0148 7C353110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66 014c 7C35B110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67 0150 7C358110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68 0154 7C35A110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 0158 7C359110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70 015c 7C35C110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71 0162 7C35C910" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72 016a 7C35D210" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73 0170 7C35E210" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74 0176 7C35F210" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75 017c 7C35DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76 0184 7C35EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77 018c 7C35FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78 0194 7C354010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79 019a 7C354810" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80              " {
+           if [expr $x == 26] then {
+               pass "$testname: add.b @er3, ..."
+           } else {
+               fail "$testname: add.b @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  81 01a2 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82 01a8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83 01ae 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84 01b4 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85 01ba 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86 01c0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87 01c6 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88 01ce 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89 01d8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90 01e0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91 01e8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92 01f0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 01fa 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94 0204 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95 020e 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96 0216 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.b @-er3, ..."
+           } else {
+               fail "$testname: add.b @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  98 0220 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99 0226 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100 022c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101 0232 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102 0238 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103 023e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104 0244 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105 024c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106 0256 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107 025e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108 0266 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109 026e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110 0278 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111 0282 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112 028c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113 0294 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.b @er3+, ..."
+           } else {
+               fail "$testname: add.b @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 115 029e 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116 02a4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117 02aa 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118 02b0 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119 02b6 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120 02bc 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121 02c2 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122 02ca 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123 02d4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124 02dc 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125 02e4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126 02ec 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127 02f6 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128 0300 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129 030a 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130 0312 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.b @er3-, ..."
+           } else {
+               fail "$testname: add.b @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 132 031c 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133 0322 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134 0328 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135 032e 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136 0334 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137 033a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138 0340 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139 0348 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140 0352 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141 035a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142 0362 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143 036a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144 0374 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145 037e 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146 0388 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147 0390 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.b @+er3, ..."
+           } else {
+               fail "$testname: add.b @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 149 039a 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150 03a2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151 03aa 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152 03b2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153 03ba 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154 03c2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155 03ca 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156 03d4 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157 03e0 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158 03ea 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159 03f4 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160 03fe 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161 040a 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162 0416 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163 0422 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164 042c 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.b @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: add.b @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 166 0438 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167 0442 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168 044c 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169 0456 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170 0460 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171 046a 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172 0474 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173 0480 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174 048e 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175 049a 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176 04a6 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177 04b2 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178 04c0 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179 04ce 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180 04dc 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181 04e8 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.b @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: add.b @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 183 04f6 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184 04fe 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185 0506 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186 050e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187 0516 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188 051e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189 0526 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190 0530 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191 053c 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192 0546 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193 0550 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194 055a 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195 0566 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196 0572 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197 057e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198 0588 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.b @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: add.b @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 200 0594 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201 059c 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202 05a4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203 05ac 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204 05b4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205 05bc 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206 05c4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207 05ce 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208 05da 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209 05e4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210 05ee 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211 05f8 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212 0604 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213 0610 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214 061c 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215 0626 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.b @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: add.b @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 217 0632 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218 063a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219 0642 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220 064a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221 0652 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222 065a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223 0662 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224 066c 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225 0678 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226 0682 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227 068c 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228 0696 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229 06a2 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230 06ae 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231 06ba 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232 06c4 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.b @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: add.b @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 234 06d0 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235 06da 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236 06e4 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237 06ee 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238 06f8 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239 0702 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240 070c 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241 0718 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242 0726 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243 0732 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244 073e 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245 074a 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246 0758 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247 0766 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248 0774 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249 0780 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 250              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.b @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: add.b @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 251 078e 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252 0798 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253 07a2 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254 07ac 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255 07b6 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256 07c0 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257 07ca 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258 07d6 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259 07e4 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260 07f0 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261 07fc 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262 0808 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263 0816 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264 0824 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265 0832 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266 083e 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 267              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.b @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: add.b @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 268 084c 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269 0856 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270 0860 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271 086a 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272 0874 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273 087e 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274 0888 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275 0894 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276 08a2 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277 08ae 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278 08ba 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279 08c6 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280 08d4 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281 08e2 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282 08f0 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283 08fc 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 284              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.b @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: add.b @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 285 090a 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 285      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286 0910 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287 0916 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288 091c 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289 0922 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290 0928 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291 092e 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292 0936 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293 0940 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294 0948 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295 0950 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296 0958 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297 0962 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298 096c 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299 0976 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300 097e 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 301              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.b @0x1234:16, ..."
+           } else {
+               fail "$testname: add.b @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 302 0988 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 302      56780110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303 0990 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303      56783110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304 0998 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304      5678B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305 09a0 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305      56788110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306 09a8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306      5678A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307 09b0 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307      56789110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308 09b8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308      5678C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309 09c2 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309      5678C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310 09ce 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      5678D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311 09d8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      5678E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312 09e2 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      5678F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313 09ec 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      5678DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314 09f8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      5678EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315 0a04 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      5678FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316 0a10 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      56784010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317 0a1a 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317      56784810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 318              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.b @0x12345678:32, ..."
+           } else {
+               fail "$testname: add.b @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.b @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 319 0a26 79111234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320 0a2a 0A72" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321 0a2c 015E0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322 0a32 015E3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323 0a38 015E8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324 0a3e 015EB110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325 0a44 015E9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326 0a4a 015EA110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327 0a50 015EC110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328 0a58 015EC910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329 0a62 015ED210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330 0a6a 015EE210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331 0a72 015EF210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332 0a7a 015EDA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333 0a84 015EEA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334 0a8e 015EFA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335 0a98 015E4010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 336 0aa0 015E4810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 336      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 336      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 337              " {
+           if [expr $x == 39] then {
+               pass "$testname: add.w #0x1234:16, ..."
+           } else {
+               fail "$testname: add.w #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 338 0aaa 7D900A70" { set x [expr $x+1]; exp_continue; }
+       -re ".* 339 0aae 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 339      0A70" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340 0ab4 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340      56780A70" { set x [expr $x+1]; exp_continue; }
+       -re ".* 341              " {
+           if [expr $x == 5] then {
+               pass "$testname: add.w #0x7:3, ..."
+           } else {
+               fail "$testname: add.w #0x7:3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w #0x7:3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 342 0abc 0931" { set x [expr $x+1]; exp_continue; }
+       -re ".* 343              " {
+           if [expr $x == 1] then {
+               pass "$testname: add.w r3, r1"
+           } else {
+               fail "$testname: add.w r3, r1 ($x)"
+           }
+       }
+        default        { fail "$testname: add.w r3, r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 344 0abe 7D900930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345 0ac2 01593113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346 0ac6 01598113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347 0aca 0159B113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348 0ace 01599113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349 0ad2 0159A113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350 0ad6 0159C113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351 0adc 0159C913" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352 0ae4 0159D213" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353 0aea 0159E213" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354 0af0 0159F213" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 355 0af6 0159DA13" { set x [expr $x+1]; exp_continue; }
+       -re ".* 355      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 356 0afe 0159EA13" { set x [expr $x+1]; exp_continue; }
+       -re ".* 356      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357 0b06 0159FA13" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358 0b0e 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358      0930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 359 0b14 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 359      56780930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 360              " {
+           if [expr $x == 26] then {
+               pass "$testname: add.w r3, ..."
+           } else {
+               fail "$testname: add.w r3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w r3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 361 0b1c 7CB00901" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362 0b20 015A3111" { set x [expr $x+1]; exp_continue; }
+       -re ".* 363 0b24 015A8311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364 0b28 015AB311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365 0b2c 015A9311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366 0b30 015AA311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367 0b34 015AC111" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368 0b3a 015AC911" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369 0b42 015AD211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370 0b48 015AE211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371 0b4e 015AF211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 372 0b54 015ADA11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 372      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 373 0b5c 015AEA11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 373      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 374 0b64 015AFA11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 374      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 375 0b6c 6B101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 375      0901" { set x [expr $x+1]; exp_continue; }
+       -re ".* 376 0b72 6B301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 376      56780901" { set x [expr $x+1]; exp_continue; }
+       -re ".* 377              " {
+           if [expr $x == 26] then {
+               pass "$testname: add.w ..., r1"
+           } else {
+               fail "$testname: add.w ..., r1 ($x)"
+           }
+       }
+        default        { fail "$testname: add.w ..., r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 378 0b7a 7CB50110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379 0b7e 7CB53110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 380 0b82 7CB5B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 381 0b86 7CB58110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382 0b8a 7CB5A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383 0b8e 7CB59110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384 0b92 7CB5C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385 0b98 7CB5C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386 0ba0 7CB5D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387 0ba6 7CB5E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388 0bac 7CB5F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389 0bb2 7CB5DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390 0bba 7CB5EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391 0bc2 7CB5FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392 0bca 7CB54010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393 0bd0 7CB54810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394              " {
+           if [expr $x == 26] then {
+               pass "$testname: add.w @er3, ..."
+           } else {
+               fail "$testname: add.w @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 395 0bd8 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396 0bde 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397 0be4 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398 0bea 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399 0bf0 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400 0bf6 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401 0bfc 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402 0c04 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403 0c0e 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404 0c16 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405 0c1e 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406 0c26 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407 0c30 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408 0c3a 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409 0c44 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410 0c4c 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.w @-er3, ..."
+           } else {
+               fail "$testname: add.w @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 412 0c56 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413 0c5c 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414 0c62 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415 0c68 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416 0c6e 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417 0c74 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418 0c7a 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419 0c82 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420 0c8c 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421 0c94 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422 0c9c 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423 0ca4 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424 0cae 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425 0cb8 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426 0cc2 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427 0cca 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.w @er3+, ..."
+           } else {
+               fail "$testname: add.w @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 429 0cd4 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430 0cda 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431 0ce0 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432 0ce6 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433 0cec 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434 0cf2 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435 0cf8 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436 0d00 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437 0d0a 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438 0d12 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439 0d1a 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440 0d22 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441 0d2c 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442 0d36 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443 0d40 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444 0d48 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 445              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.w @er3-, ..."
+           } else {
+               fail "$testname: add.w @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 446 0d52 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447 0d58 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448 0d5e 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449 0d64 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450 0d6a 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451 0d70 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452 0d76 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453 0d7e 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454 0d88 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455 0d90 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456 0d98 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457 0da0 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458 0daa 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459 0db4 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460 0dbe 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461 0dc6 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.w @+er3, ..."
+           } else {
+               fail "$testname: add.w @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 463 0dd0 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464 0dd8 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465 0de0 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466 0de8 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467 0df0 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468 0df8 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469 0e00 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470 0e0a 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471 0e16 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472 0e20 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473 0e2a 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474 0e34 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475 0e40 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476 0e4c 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477 0e58 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478 0e62 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.w @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: add.w @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 480 0e6e 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481 0e78 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482 0e82 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483 0e8c 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484 0e96 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485 0ea0 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486 0eaa 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487 0eb6 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488 0ec4 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489 0ed0 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490 0edc 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491 0ee8 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492 0ef6 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493 0f04 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494 0f12 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495 0f1e 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.w @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: add.w @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 497 0f2c 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498 0f34 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499 0f3c 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500 0f44 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501 0f4c 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502 0f54 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503 0f5c 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504 0f66 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505 0f72 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506 0f7c 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507 0f86 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508 0f90 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509 0f9c 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510 0fa8 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511 0fb4 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512 0fbe 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.w @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: add.w @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 514 0fca 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515 0fd2 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516 0fda 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517 0fe2 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518 0fea 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519 0ff2 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520 0ffa 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521 1004 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522 1010 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523 101a 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524 1024 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525 102e 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526 103a 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527 1046 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528 1052 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529 105c 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.w @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: add.w @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 531 1068 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532 1070 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533 1078 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534 1080 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535 1088 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536 1090 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537 1098 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538 10a2 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539 10ae 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540 10b8 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541 10c2 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542 10cc 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543 10d8 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544 10e4 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545 10f0 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546 10fa 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.w @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: add.w @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 548 1106 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549 1110 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550 111a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551 1124 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552 112e 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553 1138 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554 1142 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555 114e 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556 115c 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557 1168 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558 1174 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559 1180 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560 118e 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561 119c 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562 11aa 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563 11b6 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.w @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: add.w @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 565 11c4 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566 11ce 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567 11d8 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568 11e2 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569 11ec 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570 11f6 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571 1200 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572 120c 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573 121a 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574 1226 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575 1232 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576 123e 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577 124c 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578 125a 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579 1268 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580 1274 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.w @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: add.w @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 582 1282 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583 128c 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584 1296 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585 12a0 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586 12aa 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587 12b4 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588 12be 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589 12ca 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590 12d8 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591 12e4 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592 12f0 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593 12fc 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594 130a 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595 1318 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596 1326 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597 1332 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.w @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: add.w @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 599 1340 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600 1346 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601 134c 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602 1352 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603 1358 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604 135e 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605 1364 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606 136c 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607 1376 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608 137e 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609 1386 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610 138e 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611 1398 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612 13a2 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613 13ac 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614 13b4 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 615              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.w @0x1234:16, ..."
+           } else {
+               fail "$testname: add.w @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 616 13be 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616      56780110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617 13c6 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617      56783110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618 13ce 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618      5678B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619 13d6 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619      56788110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620 13de 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620      5678A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621 13e6 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      56789110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622 13ee 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      5678C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623 13f8 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      5678C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624 1404 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      5678D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625 140e 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      5678E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626 1418 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      5678F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627 1422 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627      5678DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628 142e 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628      5678EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629 143a 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629      5678FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630 1446 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630      56784010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631 1450 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631      56784810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 632              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.w @0x12345678:32, ..."
+           } else {
+               fail "$testname: add.w @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.w @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 633 145c 7A111234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634 1462 7A191234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635 1466 0AFA" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636 1468 010E0118" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637 1470 010E3118" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638 1478 010E8118" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639 1480 010EB118" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640 1488 010E9118" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641 1490 010EA118" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642 1498 010EC118" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643 14a2 010EC918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644 14ae 010ED218" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645 14b8 010EE218" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646 14c2 010EF218" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647 14cc 010EDA18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648 14d8 010EEA18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649 14e4 010EFA18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650 14f0 010E4018" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651 14fa 010E4818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652 1506 010E0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653 150c 010E3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654 1512 010E8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655 1518 010EB110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656 151e 010E9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657 1524 010EA110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658 152a 010EC110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659 1532 010EC910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660 153c 010ED210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661 1544 010EE210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662 154c 010EF210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 663 1554 010EDA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 663      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 663      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664 155e 010EEA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 665 1568 010EFA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 665      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 665      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666 1572 010E4010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667 157a 010E4810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 668              " {
+           if [expr $x == 83] then {
+               pass "$testname: add.l #0x1234:16, ..."
+           } else {
+               fail "$testname: add.l #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 669 1584 0AB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 670              " {
+           if [expr $x == 1] then {
+               pass "$testname: add.l er3, er1"
+           } else {
+               fail "$testname: add.l er3, er1 ($x)"
+           }
+       }
+        default        { fail "$testname: add.l er3, er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 671 1586 01090113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672 158a 01093113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673 158e 01098113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674 1592 0109B113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675 1596 01099113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676 159a 0109A113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677 159e 0109C113" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678 15a4 0109C913" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679 15ac 0109D213" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680 15b2 0109E213" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 681 15b8 0109F213" { set x [expr $x+1]; exp_continue; }
+       -re ".* 681      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 682 15be 0109DA13" { set x [expr $x+1]; exp_continue; }
+       -re ".* 682      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 683 15c6 0109EA13" { set x [expr $x+1]; exp_continue; }
+       -re ".* 683      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 684 15ce 0109FA13" { set x [expr $x+1]; exp_continue; }
+       -re ".* 684      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 685 15d6 01094013" { set x [expr $x+1]; exp_continue; }
+       -re ".* 685      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 686 15dc 01094813" { set x [expr $x+1]; exp_continue; }
+       -re ".* 686      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 687              " {
+           if [expr $x == 26] then {
+               pass "$testname: add.l er3, ..."
+           } else {
+               fail "$testname: add.l er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 688 15e4 010A0311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689 15e8 010A3311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690 15ec 010A8311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691 15f0 010AB311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692 15f4 010A9311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693 15f8 010AA311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694 15fc 010AC111" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695 1602 010AC911" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696 160a 010AD211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697 1610 010AE211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698 1616 010AF211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 699 161c 010ADA11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 699      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700 1624 010AEA11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701 162c 010AFA11" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702 1634 010A4011" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703 163a 010A4811" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704              " {
+           if [expr $x == 26] then {
+               pass "$testname: add.l ..., er1"
+           } else {
+               fail "$testname: add.l ..., er1 ($x)"
+           }
+       }
+        default        { fail "$testname: add.l ..., er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 705 1642 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706 1648 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707 164e 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708 1654 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709 165a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710 1660 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711 1666 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712 166e 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713 1678 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714 1680 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715 1688 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716 1690 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717 169a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718 16a4 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719 16ae 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720 16b6 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.l @er3, ..."
+           } else {
+               fail "$testname: add.l @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 722 16c0 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723 16c6 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724 16cc 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725 16d2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726 16d8 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727 16de 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728 16e4 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729 16ec 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730 16f6 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731 16fe 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732 1706 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733 170e 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734 1718 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735 1722 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736 172c 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737 1734 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.l @(0xc:2,er3), ..."
+           } else {
+               fail "$testname: add.l @(0xc:2,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @(0xc:2,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 739 173e 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740 1744 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741 174a 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742 1750 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743 1756 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744 175c 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745 1762 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746 176a 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747 1774 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748 177c 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749 1784 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750 178c 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751 1796 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752 17a0 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753 17aa 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754 17b2 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 755              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.l @-er3, ..."
+           } else {
+               fail "$testname: add.l @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 756 17bc 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757 17c2 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758 17c8 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759 17ce 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760 17d4 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761 17da 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762 17e0 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763 17e8 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764 17f2 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765 17fa 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766 1802 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767 180a 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768 1814 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769 181e 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770 1828 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771 1830 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.l @er3+, ..."
+           } else {
+               fail "$testname: add.l @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 773 183a 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774 1840 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775 1846 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776 184c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777 1852 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778 1858 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779 185e 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780 1866 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781 1870 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782 1878 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783 1880 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784 1888 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785 1892 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786 189c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787 18a6 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788 18ae 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.l @er3-, ..."
+           } else {
+               fail "$testname: add.l @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 790 18b8 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791 18be 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792 18c4 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793 18ca 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794 18d0 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795 18d6 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796 18dc 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797 18e4 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798 18ee 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799 18f6 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800 18fe 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801 1906 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802 1910 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803 191a 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804 1924 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805 192c 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806              " {
+           if [expr $x == 37] then {
+               pass "$testname: add.l @+er3, ..."
+           } else {
+               fail "$testname: add.l @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 807 1936 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808 193e 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809 1946 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810 194e 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811 1956 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812 195e 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813 1966 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814 1970 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815 197c 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816 1986 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817 1990 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818 199a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819 19a6 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820 19b2 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821 19be 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822 19c8 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.l @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: add.l @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 824 19d4 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825 19de 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826 19e8 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827 19f2 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828 19fc 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829 1a06 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830 1a10 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831 1a1c 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832 1a2a 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833 1a36 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834 1a42 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835 1a4e 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836 1a5c 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837 1a6a 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838 1a78 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839 1a84 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.l @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: add.l @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 841 1a92 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842 1a9a 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843 1aa2 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844 1aaa 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845 1ab2 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846 1aba 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847 1ac2 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848 1acc 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849 1ad8 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850 1ae2 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851 1aec 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852 1af6 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853 1b02 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854 1b0e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855 1b1a 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856 1b24 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.l @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: add.l @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 858 1b30 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859 1b38 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860 1b40 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861 1b48 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862 1b50 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863 1b58 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864 1b60 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865 1b6a 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866 1b76 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867 1b80 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868 1b8a 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869 1b94 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870 1ba0 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871 1bac 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872 1bb8 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873 1bc2 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.l @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: add.l @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 875 1bce 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876 1bd6 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877 1bde 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878 1be6 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879 1bee 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880 1bf6 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881 1bfe 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882 1c08 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883 1c14 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884 1c1e 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885 1c28 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886 1c32 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887 1c3e 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888 1c4a 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889 1c56 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890 1c60 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.l @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: add.l @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 892 1c6c 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893 1c76 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894 1c80 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895 1c8a 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896 1c94 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897 1c9e 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898 1ca8 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899 1cb4 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900 1cc2 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901 1cce 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902 1cda 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903 1ce6 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904 1cf4 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905 1d02 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906 1d10 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907 1d1c 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.l @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: add.l @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 909 1d2a 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910 1d34 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911 1d3e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912 1d48 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913 1d52 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914 1d5c 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915 1d66 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916 1d72 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917 1d80 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918 1d8c 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919 1d98 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920 1da4 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921 1db2 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922 1dc0 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923 1dce 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924 1dda 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.l @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: add.l @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 926 1de8 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927 1df2 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928 1dfc 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929 1e06 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930 1e10 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931 1e1a 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932 1e24 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933 1e30 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934 1e3e 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935 1e4a 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936 1e56 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937 1e62 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938 1e70 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939 1e7e 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940 1e8c 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941 1e98 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.l @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: add.l @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 943 1ea6 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943      12340110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944 1eae 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944      12343110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945 1eb6 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945      1234B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946 1ebe 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946      12348110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947 1ec6 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947      1234A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948 1ece 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948      12349110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949 1ed6 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949      1234C110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950 1ee0 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      1234C910" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951 1eec 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      1234D210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952 1ef6 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      1234E210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953 1f00 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953      1234F210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954 1f0a 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      1234DA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955 1f16 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955      1234EA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956 1f22 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956      1234FA10" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957 1f2e 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957      12344010" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958 1f38 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958      12344810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959              " {
+           if [expr $x == 42] then {
+               pass "$testname: add.l @0x1234:16, ..."
+           } else {
+               fail "$testname: add.l @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @0x1234:16, ... ($x)" }
+    }
+    # FIXME return early, expect bombs out on the next group.
+    return;
+    set x 0
+    expect {
+       -re ".* 960 1f44 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961 1f4e 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      3110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962 1f58 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962      B110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963 1f62 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963      8110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964 1f6c 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965 1f76 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      9110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966 1f80 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      C1109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967 1f8c 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      C9109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968 1f9a 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      D2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969 1fa6 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      E2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970 1fb2 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970      F2109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 971 1fbe 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 971      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 971      DA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 971      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972 1fcc 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972      EA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 973 1fda 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 973      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 973      FA109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 973      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 974 1fe8 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 974      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 974      40109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 975 1ff4 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 975      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 975      48109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 975      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 976              " {
+           if [expr $x == 53] then {
+               pass "$testname: add.l @0x12345678:32, ..."
+           } else {
+               fail "$testname: add.l @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: add.l @0x12345678:32, ... ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t03_add_test
+}
+
diff --git a/gas/testsuite/gas/h8300/t03_add.s b/gas/testsuite/gas/h8300/t03_add.s
new file mode 100644 (file)
index 0000000..80d433a
--- /dev/null
@@ -0,0 +1,977 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;arith_1\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+_start:\r
+    add.b #0x12:8,r1h                            ;8112\r
+    add.b #0x12:8,@er1                           ;7d108012\r
+    add.b #0x12:8,@(0x3:2,er1)               ;017768188012\r
+    add.b #0x12:8,@er1+                      ;01746c188012\r
+    add.b #0x12:8,@-er1                      ;01776c188012\r
+    add.b #0x12:8,@+er1                      ;01756c188012\r
+    add.b #0x12:8,@er1-                      ;01766c188012\r
+    add.b #0x12:8,@(0x1234:16,er1)           ;01746e1812348012\r
+    add.b #0x12:8,@(0x12345678:32,er1)       ;78146a28123456788012\r
+    add.b #0x12:8,@(0x1234:16,r2l.b)         ;01756e2812348012\r
+    add.b #0x12:8,@(0x1234:16,r2.w)         ;01766e2812348012\r
+    add.b #0x12:8,@(0x1234:16,er2.l)         ;01776e2812348012\r
+    add.b #0x12:8,@(0x12345678:32,r2l.b)     ;78256a28123456788012\r
+    add.b #0x12:8,@(0x12345678:32,r2.w)     ;78266a28123456788012\r
+    add.b #0x12:8,@(0x12345678:32,er2.l)     ;78276a28123456788012\r
+    add.b #0x12:8,@0xffffff9a:8                  ;7f9a8012\r
+    add.b #0x12:8,@0x1234:16                     ;6a1812348012\r
+    add.b #0x12:8,@0x12345678:32                 ;6a38123456788012\r
+\r
+    add.b r3h,r1h                                ;0831\r
+\r
+    add.b r3h,@er1                               ;7d100830\r
+    add.b r3h,@(0x3:2,er1)                   ;01793113\r
+    add.b r3h,@er1+                          ;01798113\r
+    add.b r3h,@-er1                          ;0179b113\r
+    add.b r3h,@+er1                          ;01799113\r
+    add.b r3h,@er1-                          ;0179a113\r
+    add.b r3h,@(0x1234:16,er1)               ;0179c1131234\r
+    add.b r3h,@(0x12345678:32,er1)           ;0179c91312345678\r
+    add.b r3h,@(0x1234:16,r2l.b)             ;0179d2131234\r
+    add.b r3h,@(0x1234:16,r2.w)             ;0179e2131234\r
+    add.b r3h,@(0x1234:16,er2.l)             ;0179f2131234\r
+    add.b r3h,@(0x12345678:32,r2l.b)         ;0179da1312345678\r
+    add.b r3h,@(0x12345678:32,r2.w)         ;0179ea1312345678\r
+    add.b r3h,@(0x12345678:32,er2.l)         ;0179fa1312345678\r
+    add.b r3h,@0xffffff12:8                      ;7f120830\r
+    add.b r3h,@0x1234:16                         ;6a1812340830\r
+    add.b r3h,@0x12345678:32                     ;6a38123456780830\r
+\r
+    add.b @er3,r1h                               ;7c300801\r
+    add.b @(0x3:2,er3),r1h                   ;017a3311\r
+    add.b @er3+,r1h                          ;017a8311\r
+    add.b @-er3,r1h                          ;017ab311\r
+    add.b @+er3,r1h                          ;017a9311\r
+    add.b @er3-,r1h                          ;017aa311\r
+    add.b @(0x1234:16,er1),r1h               ;017ac1111234\r
+    add.b @(0x12345678:32,er1),r1h           ;017ac91112345678\r
+    add.b @(0x1234:16,r2l.b),r1h             ;017ad2111234\r
+    add.b @(0x1234:16,r2.w),r1h             ;017ae2111234\r
+    add.b @(0x1234:16,er2.l),r1h             ;017af2111234\r
+    add.b @(0x12345678:32,r2l.b),r1h         ;017ada1112345678\r
+    add.b @(0x12345678:32,r2.w),r1h         ;017aea1112345678\r
+    add.b @(0x12345678:32,er2.l),r1h         ;017afa1112345678\r
+    add.b @0xffffff12:8,r1h                      ;7e120801\r
+    add.b @0x1234:16,r1h                         ;6a1012340801\r
+    add.b @0x12345678:32,r1h                     ;6a30123456780801\r
+\r
+    add.b @er3,@er1                                ;7c350110\r
+    add.b @er3,@(3:2,er1)                          ;7c353110\r
+    add.b @er3,@-er1                               ;7c35b110\r
+    add.b @er3,@er1+                               ;7c358110\r
+    add.b @er3,@er1-                               ;7c35a110\r
+    add.b @er3,@+er1                               ;7c359110\r
+    add.b @er3,@(0xffff9abc:16,er1)                ;7c35c1109abc\r
+    add.b @er3,@(0x9abcdef0:32,er1)                ;7c35c9109abcdef0\r
+    add.b @er3,@(0xffff9abc:16,r2l.b)              ;7c35d2109abc\r
+    add.b @er3,@(0xffff9abc:16,r2.w)              ;7c35e2109abc\r
+    add.b @er3,@(0xffff9abc:16,er2.l)              ;7c35f2109abc\r
+    add.b @er3,@(0x9abcdef0:32,r2l.b)              ;7c35da109abcdef0\r
+    add.b @er3,@(0x9abcdef0:32,r2.w)              ;7c35ea109abcdef0\r
+    add.b @er3,@(0x9abcdef0:32,er2.l)              ;7c35fa109abcdef0\r
+    add.b @er3,@0xffff9abc:16                      ;7c3540109abc\r
+    add.b @er3,@0x9abcdef0:32                      ;7c3548109abcdef0\r
+\r
+    add.b @-er3,@er1                               ;01776c3c0110\r
+    add.b @-er3,@(3:2,er1)                         ;01776c3c3110\r
+    add.b @-er3,@-er1                              ;01776c3cb110\r
+    add.b @-er3,@er1+                              ;01776c3c8110\r
+    add.b @-er3,@er1-                              ;01776c3ca110\r
+    add.b @-er3,@+er1                              ;01776c3c9110\r
+    add.b @-er3,@(0xffff9abc:16,er1)               ;01776c3cc1109abc\r
+    add.b @-er3,@(0x9abcdef0:32,er1)               ;01776c3cc9109abcdef0\r
+    add.b @-er3,@(0xffff9abc:16,r2l.b)             ;01776c3cd2109abc\r
+    add.b @-er3,@(0xffff9abc:16,r2.w)             ;01776c3ce2109abc\r
+    add.b @-er3,@(0xffff9abc:16,er2.l)             ;01776c3cf2109abc\r
+    add.b @-er3,@(0x9abcdef0:32,r2l.b)             ;01776c3cda109abcdef0\r
+    add.b @-er3,@(0x9abcdef0:32,r2.w)             ;01776c3cea109abcdef0\r
+    add.b @-er3,@(0x9abcdef0:32,er2.l)             ;01776c3cfa109abcdef0\r
+    add.b @-er3,@0xffff9abc:16                     ;01776c3c40109abc\r
+    add.b @-er3,@0x9abcdef0:32                     ;01776c3c48109abcdef0\r
+\r
+    add.b @er3+,@er1                               ;01746c3c0110\r
+    add.b @er3+,@(3:2,er1)                         ;01746c3c3110\r
+    add.b @er3+,@-er1                              ;01746c3cb110\r
+    add.b @er3+,@er1+                              ;01746c3c8110\r
+    add.b @er3+,@er1-                              ;01746c3ca110\r
+    add.b @er3+,@+er1                              ;01746c3c9110\r
+    add.b @er3+,@(0xffff9abc:16,er1)               ;01746c3cc1109abc\r
+    add.b @er3+,@(0x9abcdef0:32,er1)               ;01746c3cc9109abcdef0\r
+    add.b @er3+,@(0xffff9abc:16,r2l.b)             ;01746c3cd2109abc\r
+    add.b @er3+,@(0xffff9abc:16,r2.w)             ;01746c3ce2109abc\r
+    add.b @er3+,@(0xffff9abc:16,er2.l)             ;01746c3cf2109abc\r
+    add.b @er3+,@(0x9abcdef0:32,r2l.b)             ;01746c3cda109abcdef0\r
+    add.b @er3+,@(0x9abcdef0:32,r2.w)             ;01746c3cea109abcdef0\r
+    add.b @er3+,@(0x9abcdef0:32,er2.l)             ;01746c3cfa109abcdef0\r
+    add.b @er3+,@0xffff9abc:16                     ;01746c3c40109abc\r
+    add.b @er3+,@0x9abcdef0:32                     ;01746c3c48109abcdef0\r
+\r
+    add.b @er3-,@er1                               ;01766c3c0110\r
+    add.b @er3-,@(3:2,er1)                         ;01766c3c3110\r
+    add.b @er3-,@-er1                              ;01766c3cb110\r
+    add.b @er3-,@er1+                              ;01766c3c8110\r
+    add.b @er3-,@er1-                              ;01766c3ca110\r
+    add.b @er3-,@+er1                              ;01766c3c9110\r
+    add.b @er3-,@(0xffff9abc:16,er1)               ;01766c3cc1109abc\r
+    add.b @er3-,@(0x9abcdef0:32,er1)               ;01766c3cc9109abcdef0\r
+    add.b @er3-,@(0xffff9abc:16,r2l.b)             ;01766c3cd2109abc\r
+    add.b @er3-,@(0xffff9abc:16,r2.w)             ;01766c3ce2109abc\r
+    add.b @er3-,@(0xffff9abc:16,er2.l)             ;01766c3cf2109abc\r
+    add.b @er3-,@(0x9abcdef0:32,r2l.b)             ;01766c3cda109abcdef0\r
+    add.b @er3-,@(0x9abcdef0:32,r2.w)             ;01766c3cea109abcdef0\r
+    add.b @er3-,@(0x9abcdef0:32,er2.l)             ;01766c3cfa109abcdef0\r
+    add.b @er3-,@0xffff9abc:16                     ;01766c3c40109abc\r
+    add.b @er3-,@0x9abcdef0:32                     ;01766c3c48109abcdef0\r
+\r
+    add.b @+er3,@er1                               ;01756c3c0110\r
+    add.b @+er3,@(3:2,er1)                         ;01756c3c3110\r
+    add.b @+er3,@-er1                              ;01756c3cb110\r
+    add.b @+er3,@er1+                              ;01756c3c8110\r
+    add.b @+er3,@er1-                              ;01756c3ca110\r
+    add.b @+er3,@+er1                              ;01756c3c9110\r
+    add.b @+er3,@(0xffff9abc:16,er1)               ;01756c3cc1109abc\r
+    add.b @+er3,@(0x9abcdef0:32,er1)               ;01756c3cc9109abcdef0\r
+    add.b @+er3,@(0xffff9abc:16,r2l.b)             ;01756c3cd2109abc\r
+    add.b @+er3,@(0xffff9abc:16,r2.w)             ;01756c3ce2109abc\r
+    add.b @+er3,@(0xffff9abc:16,er2.l)             ;01756c3cf2109abc\r
+    add.b @+er3,@(0x9abcdef0:32,r2l.b)             ;01756c3cda109abcdef0\r
+    add.b @+er3,@(0x9abcdef0:32,r2.w)             ;01756c3cea109abcdef0\r
+    add.b @+er3,@(0x9abcdef0:32,er2.l)             ;01756c3cfa109abcdef0\r
+    add.b @+er3,@0xffff9abc:16                     ;01756c3c40109abc\r
+    add.b @+er3,@0x9abcdef0:32                     ;01756c3c48109abcdef0\r
+\r
+    add.b @(0x1234:16,er3),@er1                         ;01746e3c12340110\r
+    add.b @(0x1234:16,er3),@(3:2,er1)                   ;01746e3c12343110\r
+    add.b @(0x1234:16,er3),@-er1                        ;01746e3c1234b110\r
+    add.b @(0x1234:16,er3),@er1+                        ;01746e3c12348110\r
+    add.b @(0x1234:16,er3),@er1-                        ;01746e3c1234a110\r
+    add.b @(0x1234:16,er3),@+er1                        ;01746e3c12349110\r
+    add.b @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01746e3c1234c1109abc\r
+    add.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01746e3c1234c9109abcdef0\r
+    add.b @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01746e3c1234d2109abc\r
+    add.b @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01746e3c1234e2109abc\r
+    add.b @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01746e3c1234f2109abc\r
+    add.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01746e3c1234da109abcdef0\r
+    add.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01746e3c1234ea109abcdef0\r
+    add.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01746e3c1234fa109abcdef0\r
+    add.b @(0x1234:16,er3),@0xffff9abc:16               ;01746e3c123440109abc\r
+    add.b @(0x1234:16,er3),@0x9abcdef0:32               ;01746e3c123448109abcdef0\r
+\r
+    add.b @(0x12345678:32,er3),@er1                         ;78346a2c123456780110\r
+    add.b @(0x12345678:32,er3),@(3:2,er1)                   ;78346a2c123456783110\r
+    add.b @(0x12345678:32,er3),@-er1                        ;78346a2c12345678b110\r
+    add.b @(0x12345678:32,er3),@er1+                        ;78346a2c123456788110\r
+    add.b @(0x12345678:32,er3),@er1-                        ;78346a2c12345678a110\r
+    add.b @(0x12345678:32,er3),@+er1                        ;78346a2c123456789110\r
+    add.b @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78346a2c12345678c1109abc\r
+    add.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78346a2c12345678c9109abcdef0\r
+    add.b @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78346a2c12345678d2109abc\r
+    add.b @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78346a2c12345678e2109abc\r
+    add.b @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78346a2c12345678f2109abc\r
+    add.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78346a2c12345678da109abcdef0\r
+    add.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78346a2c12345678ea109abcdef0\r
+    add.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78346a2c12345678fa109abcdef0\r
+    add.b @(0x12345678:32,er3),@0xffff9abc:16               ;78346a2c1234567840109abc\r
+    add.b @(0x12345678:32,er3),@0x9abcdef0:32               ;78346a2c1234567848109abcdef0\r
+\r
+    add.b @(0x1234:16,r3l.b),@er1                       ;01756e3c12340110\r
+    add.b @(0x1234:16,r3l.b),@(3:2,er1)                 ;01756e3c12343110\r
+    add.b @(0x1234:16,r3l.b),@-er1                      ;01756e3c1234b110\r
+    add.b @(0x1234:16,r3l.b),@er1+                      ;01756e3c12348110\r
+    add.b @(0x1234:16,r3l.b),@er1-                      ;01756e3c1234a110\r
+    add.b @(0x1234:16,r3l.b),@+er1                      ;01756e3c12349110\r
+    add.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01756e3c1234c1109abc\r
+    add.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01756e3c1234c9109abcdef0\r
+    add.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01756e3c1234d2109abc\r
+    add.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01756e3c1234e2109abc\r
+    add.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01756e3c1234f2109abc\r
+    add.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01756e3c1234da109abcdef0\r
+    add.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01756e3c1234ea109abcdef0\r
+    add.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01756e3c1234fa109abcdef0\r
+    add.b @(0x1234:16,r3l.b),@0xffff9abc:16             ;01756e3c123440109abc\r
+    add.b @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01756e3c123448109abcdef0\r
+\r
+    add.b @(0x1234:16,r3.w),@er1                       ;01766e3c12340110\r
+    add.b @(0x1234:16,r3.w),@(3:2,er1)                 ;01766e3c12343110\r
+    add.b @(0x1234:16,r3.w),@-er1                      ;01766e3c1234b110\r
+    add.b @(0x1234:16,r3.w),@er1+                      ;01766e3c12348110\r
+    add.b @(0x1234:16,r3.w),@er1-                      ;01766e3c1234a110\r
+    add.b @(0x1234:16,r3.w),@+er1                      ;01766e3c12349110\r
+    add.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01766e3c1234c1109abc\r
+    add.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01766e3c1234c9109abcdef0\r
+    add.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01766e3c1234d2109abc\r
+    add.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01766e3c1234e2109abc\r
+    add.b @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01766e3c1234f2109abc\r
+    add.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01766e3c1234da109abcdef0\r
+    add.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01766e3c1234ea109abcdef0\r
+    add.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01766e3c1234fa109abcdef0\r
+    add.b @(0x1234:16,r3.w),@0xffff9abc:16             ;01766e3c123440109abc\r
+    add.b @(0x1234:16,r3.w),@0x9abcdef0:32             ;01766e3c123448109abcdef0\r
+\r
+    add.b @(0x1234:16,er3.l),@er1                       ;01776e3c12340110\r
+    add.b @(0x1234:16,er3.l),@(3:2,er1)                 ;01776e3c12343110\r
+    add.b @(0x1234:16,er3.l),@-er1                      ;01776e3c1234b110\r
+    add.b @(0x1234:16,er3.l),@er1+                      ;01776e3c12348110\r
+    add.b @(0x1234:16,er3.l),@er1-                      ;01776e3c1234a110\r
+    add.b @(0x1234:16,er3.l),@+er1                      ;01776e3c12349110\r
+    add.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01776e3c1234c1109abc\r
+    add.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01776e3c1234c9109abcdef0\r
+    add.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01776e3c1234d2109abc\r
+    add.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01776e3c1234e2109abc\r
+    add.b @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01776e3c1234f2109abc\r
+    add.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01776e3c1234da109abcdef0\r
+    add.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01776e3c1234ea109abcdef0\r
+    add.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01776e3c1234fa109abcdef0\r
+    add.b @(0x1234:16,er3.l),@0xffff9abc:16             ;01776e3c123440109abc\r
+    add.b @(0x1234:16,er3.l),@0x9abcdef0:32             ;01776e3c123448109abcdef0\r
+\r
+    add.b @(0x12345678:32,r3l.b),@er1                       ;78356a2c123456780110\r
+    add.b @(0x12345678:32,r3l.b),@(3:2,er1)                 ;78356a2c123456783110\r
+    add.b @(0x12345678:32,r3l.b),@-er1                      ;78356a2c12345678b110\r
+    add.b @(0x12345678:32,r3l.b),@er1+                      ;78356a2c123456788110\r
+    add.b @(0x12345678:32,r3l.b),@er1-                      ;78356a2c12345678a110\r
+    add.b @(0x12345678:32,r3l.b),@+er1                      ;78356a2c123456789110\r
+    add.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78356a2c12345678c1109abc\r
+    add.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78356a2c12345678c9109abcdef0\r
+    add.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78356a2c12345678d2109abc\r
+    add.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78356a2c12345678e2109abc\r
+    add.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78356a2c12345678f2109abc\r
+    add.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78356a2c12345678da109abcdef0\r
+    add.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78356a2c12345678ea109abcdef0\r
+    add.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78356a2c12345678fa109abcdef0\r
+    add.b @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78356a2c1234567840109abc\r
+    add.b @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78356a2c1234567848109abcdef0\r
+\r
+    add.b @(0x12345678:32,r3.w),@er1                       ;78366a2c123456780110\r
+    add.b @(0x12345678:32,r3.w),@(3:2,er1)                 ;78366a2c123456783110\r
+    add.b @(0x12345678:32,r3.w),@-er1                      ;78366a2c12345678b110\r
+    add.b @(0x12345678:32,r3.w),@er1+                      ;78366a2c123456788110\r
+    add.b @(0x12345678:32,r3.w),@er1-                      ;78366a2c12345678a110\r
+    add.b @(0x12345678:32,r3.w),@+er1                      ;78366a2c123456789110\r
+    add.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78366a2c12345678c1109abc\r
+    add.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78366a2c12345678c9109abcdef0\r
+    add.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78366a2c12345678d2109abc\r
+    add.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78366a2c12345678e2109abc\r
+    add.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78366a2c12345678f2109abc\r
+    add.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78366a2c12345678da109abcdef0\r
+    add.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78366a2c12345678ea109abcdef0\r
+    add.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78366a2c12345678fa109abcdef0\r
+    add.b @(0x12345678:32,r3.w),@0xffff9abc:16             ;78366a2c1234567840109abc\r
+    add.b @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78366a2c1234567848109abcdef0\r
+\r
+    add.b @(0x12345678:32,er3.l),@er1                       ;78376a2c123456780110\r
+    add.b @(0x12345678:32,er3.l),@(3:2,er1)                 ;78376a2c123456783110\r
+    add.b @(0x12345678:32,er3.l),@-er1                      ;78376a2c12345678b110\r
+    add.b @(0x12345678:32,er3.l),@er1+                      ;78376a2c123456788110\r
+    add.b @(0x12345678:32,er3.l),@er1-                      ;78376a2c12345678a110\r
+    add.b @(0x12345678:32,er3.l),@+er1                      ;78376a2c123456789110\r
+    add.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78376a2c12345678c1109abc\r
+    add.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78376a2c12345678c9109abcdef0\r
+    add.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78376a2c12345678d2109abc\r
+    add.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78376a2c12345678e2109abc\r
+    add.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78376a2c12345678f2109abc\r
+    add.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78376a2c12345678da109abcdef0\r
+    add.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78376a2c12345678ea109abcdef0\r
+    add.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78376a2c12345678fa109abcdef0\r
+    add.b @(0x12345678:32,er3.l),@0xffff9abc:16             ;78376a2c1234567840109abc\r
+    add.b @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78376a2c1234567848109abcdef0\r
+\r
+    add.b @0x1234:16,@er1                              ;6a1512340110\r
+    add.b @0x1234:16,@(3:2,er1)                        ;6a1512343110\r
+    add.b @0x1234:16,@-er1                             ;6a151234b110\r
+    add.b @0x1234:16,@er1+                             ;6a1512348110\r
+    add.b @0x1234:16,@er1-                             ;6a151234a110\r
+    add.b @0x1234:16,@+er1                             ;6a1512349110\r
+    add.b @0x1234:16,@(0xffff9abc:16,er1)              ;6a151234c1109abc\r
+    add.b @0x1234:16,@(0x9abcdef0:32,er1)              ;6a151234c9109abcdef0\r
+    add.b @0x1234:16,@(0xffff9abc:16,r2l.b)            ;6a151234d2109abc\r
+    add.b @0x1234:16,@(0xffff9abc:16,r2.w)            ;6a151234e2109abc\r
+    add.b @0x1234:16,@(0xffff9abc:16,er2.l)            ;6a151234f2109abc\r
+    add.b @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;6a151234da109abcdef0\r
+    add.b @0x1234:16,@(0x9abcdef0:32,r2.w)            ;6a151234ea109abcdef0\r
+    add.b @0x1234:16,@(0x9abcdef0:32,er2.l)            ;6a151234fa109abcdef0\r
+    add.b @0x1234:16,@0xffff9abc:16                    ;6a15123440109abc\r
+    add.b @0x1234:16,@0x9abcdef0:32                    ;6a15123448109abcdef0\r
+\r
+    add.b @0x12345678:32,@er1                              ;6a35123456780110\r
+    add.b @0x12345678:32,@(3:2,er1)                        ;6a35123456783110\r
+    add.b @0x12345678:32,@-er1                             ;6a3512345678b110\r
+    add.b @0x12345678:32,@er1+                             ;6a35123456788110\r
+    add.b @0x12345678:32,@er1-                             ;6a3512345678a110\r
+    add.b @0x12345678:32,@+er1                             ;6a35123456789110\r
+    add.b @0x12345678:32,@(0xffff9abc:16,er1)              ;6a3512345678c1109abc\r
+    add.b @0x12345678:32,@(0x9abcdef0:32,er1)              ;6a3512345678c9109abcdef0\r
+    add.b @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;6a3512345678d2109abc\r
+    add.b @0x12345678:32,@(0xffff9abc:16,r2.w)            ;6a3512345678e2109abc\r
+    add.b @0x12345678:32,@(0xffff9abc:16,er2.l)            ;6a3512345678f2109abc\r
+    add.b @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;6a3512345678da109abcdef0\r
+    add.b @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;6a3512345678ea109abcdef0\r
+    add.b @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;6a3512345678fa109abcdef0\r
+    add.b @0x12345678:32,@0xffff9abc:16                    ;6a351234567840109abc\r
+    add.b @0x12345678:32,@0x9abcdef0:32                    ;6a351234567848109abcdef0\r
+\r
+    add.w #0x1234:16,r1                                    ;79111234\r
+    add.w #0x7:3,r2                                        ;0a72\r
+    add.w #0x1234:16,@er1                              ;015e01101234\r
+    add.w #0x1234:16,@(0x6:2,er1)                      ;015e31101234\r
+    add.w #0x1234:16,@er1+                             ;015e81101234\r
+    add.w #0x1234:16,@-er1                             ;015eb1101234\r
+    add.w #0x1234:16,@+er1                             ;015e91101234\r
+    add.w #0x1234:16,@er1-                             ;015ea1101234\r
+    add.w #0x1234:16,@(0xffff9abc:16,er1)           ;015ec1109abc1234\r
+    add.w #0x1234:16,@(0x9abcdef0:32,er1)           ;015ec9109abcdef01234\r
+    add.w #0x1234:16,@(0xffff9abc:16,r2l.b)         ;015ed2109abc1234\r
+    add.w #0x1234:16,@(0xffff9abc:16,r2.w)         ;015ee2109abc1234\r
+    add.w #0x1234:16,@(0xffff9abc:16,er2.l)         ;015ef2109abc1234\r
+    add.w #0x1234:16,@(0x9abcdef0:32,r2l.b)         ;015eda109abcdef01234\r
+    add.w #0x1234:16,@(0x9abcdef0:32,r2.w)         ;015eea109abcdef01234\r
+    add.w #0x1234:16,@(0x9abcdef0:32,er2.l)         ;015efa109abcdef01234\r
+    add.w #0x1234:16,@0xffff9abc:16                    ;015e40109abc1234\r
+    add.w #0x1234:16,@0x9abcdef0:32                    ;015e48109abcdef01234\r
+\r
+    add.w #0x7:3,@er1                       ;7d900a70\r
+    add.w #0x7:3,@0x1234:16                     ;6b1812340a70\r
+    add.w #0x7:3,@0x12345678:32                     ;6b38123456780a70\r
+\r
+    add.w r3,r1                           ;0931\r
+\r
+    add.w r3,@er1                         ;7d900930\r
+    add.w r3,@(0x6:2,er1)                ;01593113\r
+    add.w r3,@er1+                        ;01598113\r
+    add.w r3,@-er1                        ;0159b113\r
+    add.w r3,@+er1                        ;01599113\r
+    add.w r3,@er1-                        ;0159a113\r
+    add.w r3,@(0x1234:16,er1)                  ;0159c1131234\r
+    add.w r3,@(0x12345678:32,er1)                  ;0159c91312345678\r
+    add.w r3,@(0x1234:16,r2l.b)                ;0159d2131234\r
+    add.w r3,@(0x1234:16,r2.w)                ;0159e2131234\r
+    add.w r3,@(0x1234:16,er2.l)                ;0159f2131234\r
+    add.w r3,@(0x12345678:32,r2l.b)                ;0159da1312345678\r
+    add.w r3,@(0x12345678:32,r2.w)                ;0159ea1312345678\r
+    add.w r3,@(0x12345678:32,er2.l)                ;0159fa1312345678\r
+    add.w r3,@0x1234:16                       ;6b1812340930\r
+    add.w r3,@0x12345678:32                       ;6b38123456780930\r
+\r
+    add.w @er3,r1                         ;7cb00901\r
+    add.w @(0x6:2,er1),r1               ;015a3111\r
+    add.w @er3+,r1                       ;015a8311\r
+    add.w @-er3,r1                       ;015ab311\r
+    add.w @+er3,r1                       ;015a9311\r
+    add.w @er3-,r1                       ;015aa311\r
+    add.w @(0x1234:16,er1),r1                  ;015ac1111234\r
+    add.w @(0x12345678:32,er1),r1                  ;015ac91112345678\r
+    add.w @(0x1234:16,r2l.b),r1                ;015ad2111234\r
+    add.w @(0x1234:16,r2.w),r1                ;015ae2111234\r
+    add.w @(0x1234:16,er2.l),r1                ;015af2111234\r
+    add.w @(0x12345678:32,r2l.b),r1                ;015ada1112345678\r
+    add.w @(0x12345678:32,r2.w),r1                ;015aea1112345678\r
+    add.w @(0x12345678:32,er2.l),r1                ;015afa1112345678\r
+    add.w @0x1234:16,r1                       ;6b1012340901\r
+    add.w @0x12345678:32,r1                       ;6b30123456780901\r
+\r
+    add.w @er3,@er1                                ;7cb50110\r
+    add.w @er3,@(6:2,er1)                          ;7cb53110\r
+    add.w @er3,@-er1                               ;7cb5b110\r
+    add.w @er3,@er1+                               ;7cb58110\r
+    add.w @er3,@er1-                               ;7cb5a110\r
+    add.w @er3,@+er1                               ;7cb59110\r
+    add.w @er3,@(0xffff9abc:16,er1)                ;7cb5c1109abc\r
+    add.w @er3,@(0x9abcdef0:32,er1)                ;7cb5c9109abcdef0\r
+    add.w @er3,@(0xffff9abc:16,r2l.b)              ;7cb5d2109abc\r
+    add.w @er3,@(0xffff9abc:16,r2.w)              ;7cb5e2109abc\r
+    add.w @er3,@(0xffff9abc:16,er2.l)              ;7cb5f2109abc\r
+    add.w @er3,@(0x9abcdef0:32,r2l.b)              ;7cb5da109abcdef0\r
+    add.w @er3,@(0x9abcdef0:32,r2.w)              ;7cb5ea109abcdef0\r
+    add.w @er3,@(0x9abcdef0:32,er2.l)              ;7cb5fa109abcdef0\r
+    add.w @er3,@0xffff9abc:16                      ;7cb540109abc\r
+    add.w @er3,@0x9abcdef0:32                      ;7cb548109abcdef0\r
+\r
+    add.w @-er3,@er1                               ;01576d3c0110\r
+    add.w @-er3,@(6:2,er1)                         ;01576d3c3110\r
+    add.w @-er3,@-er1                              ;01576d3cb110\r
+    add.w @-er3,@er1+                              ;01576d3c8110\r
+    add.w @-er3,@er1-                              ;01576d3ca110\r
+    add.w @-er3,@+er1                              ;01576d3c9110\r
+    add.w @-er3,@(0xffff9abc:16,er1)               ;01576d3cc1109abc\r
+    add.w @-er3,@(0x9abcdef0:32,er1)               ;01576d3cc9109abcdef0\r
+    add.w @-er3,@(0xffff9abc:16,r2l.b)             ;01576d3cd2109abc\r
+    add.w @-er3,@(0xffff9abc:16,r2.w)             ;01576d3ce2109abc\r
+    add.w @-er3,@(0xffff9abc:16,er2.l)             ;01576d3cf2109abc\r
+    add.w @-er3,@(0x9abcdef0:32,r2l.b)             ;01576d3cda109abcdef0\r
+    add.w @-er3,@(0x9abcdef0:32,r2.w)             ;01576d3cea109abcdef0\r
+    add.w @-er3,@(0x9abcdef0:32,er2.l)             ;01576d3cfa109abcdef0\r
+    add.w @-er3,@0xffff9abc:16                     ;01576d3c40109abc\r
+    add.w @-er3,@0x9abcdef0:32                     ;01576d3c48109abcdef0\r
+\r
+    add.w @er3+,@er1                               ;01546d3c0110\r
+    add.w @er3+,@(6:2,er1)                         ;01546d3c3110\r
+    add.w @er3+,@-er1                              ;01546d3cb110\r
+    add.w @er3+,@er1+                              ;01546d3c8110\r
+    add.w @er3+,@er1-                              ;01546d3ca110\r
+    add.w @er3+,@+er1                              ;01546d3c9110\r
+    add.w @er3+,@(0xffff9abc:16,er1)               ;01546d3cc1109abc\r
+    add.w @er3+,@(0x9abcdef0:32,er1)               ;01546d3cc9109abcdef0\r
+    add.w @er3+,@(0xffff9abc:16,r2l.b)             ;01546d3cd2109abc\r
+    add.w @er3+,@(0xffff9abc:16,r2.w)             ;01546d3ce2109abc\r
+    add.w @er3+,@(0xffff9abc:16,er2.l)             ;01546d3cf2109abc\r
+    add.w @er3+,@(0x9abcdef0:32,r2l.b)             ;01546d3cda109abcdef0\r
+    add.w @er3+,@(0x9abcdef0:32,r2.w)             ;01546d3cea109abcdef0\r
+    add.w @er3+,@(0x9abcdef0:32,er2.l)             ;01546d3cfa109abcdef0\r
+    add.w @er3+,@0xffff9abc:16                     ;01546d3c40109abc\r
+    add.w @er3+,@0x9abcdef0:32                     ;01546d3c48109abcdef0\r
+\r
+    add.w @er3-,@er1                               ;01566d3c0110\r
+    add.w @er3-,@(6:2,er1)                         ;01566d3c3110\r
+    add.w @er3-,@-er1                              ;01566d3cb110\r
+    add.w @er3-,@er1+                              ;01566d3c8110\r
+    add.w @er3-,@er1-                              ;01566d3ca110\r
+    add.w @er3-,@+er1                              ;01566d3c9110\r
+    add.w @er3-,@(0xffff9abc:16,er1)               ;01566d3cc1109abc\r
+    add.w @er3-,@(0x9abcdef0:32,er1)               ;01566d3cc9109abcdef0\r
+    add.w @er3-,@(0xffff9abc:16,r2l.b)             ;01566d3cd2109abc\r
+    add.w @er3-,@(0xffff9abc:16,r2.w)             ;01566d3ce2109abc\r
+    add.w @er3-,@(0xffff9abc:16,er2.l)             ;01566d3cf2109abc\r
+    add.w @er3-,@(0x9abcdef0:32,r2l.b)             ;01566d3cda109abcdef0\r
+    add.w @er3-,@(0x9abcdef0:32,r2.w)             ;01566d3cea109abcdef0\r
+    add.w @er3-,@(0x9abcdef0:32,er2.l)             ;01566d3cfa109abcdef0\r
+    add.w @er3-,@0xffff9abc:16                     ;01566d3c40109abc\r
+    add.w @er3-,@0x9abcdef0:32                     ;01566d3c48109abcdef0\r
+\r
+    add.w @+er3,@er1                               ;01556d3c0110\r
+    add.w @+er3,@(6:2,er1)                         ;01556d3c3110\r
+    add.w @+er3,@-er1                              ;01556d3cb110\r
+    add.w @+er3,@er1+                              ;01556d3c8110\r
+    add.w @+er3,@er1-                              ;01556d3ca110\r
+    add.w @+er3,@+er1                              ;01556d3c9110\r
+    add.w @+er3,@(0xffff9abc:16,er1)               ;01556d3cc1109abc\r
+    add.w @+er3,@(0x9abcdef0:32,er1)               ;01556d3cc9109abcdef0\r
+    add.w @+er3,@(0xffff9abc:16,r2l.b)             ;01556d3cd2109abc\r
+    add.w @+er3,@(0xffff9abc:16,r2.w)             ;01556d3ce2109abc\r
+    add.w @+er3,@(0xffff9abc:16,er2.l)             ;01556d3cf2109abc\r
+    add.w @+er3,@(0x9abcdef0:32,r2l.b)             ;01556d3cda109abcdef0\r
+    add.w @+er3,@(0x9abcdef0:32,r2.w)             ;01556d3cea109abcdef0\r
+    add.w @+er3,@(0x9abcdef0:32,er2.l)             ;01556d3cfa109abcdef0\r
+    add.w @+er3,@0xffff9abc:16                     ;01556d3c40109abc\r
+    add.w @+er3,@0x9abcdef0:32                     ;01556d3c48109abcdef0\r
+\r
+    add.w @(0x1234:16,er3),@er1                         ;01546f3c12340110\r
+    add.w @(0x1234:16,er3),@(6:2,er1)                   ;01546f3c12343110\r
+    add.w @(0x1234:16,er3),@-er1                        ;01546f3c1234b110\r
+    add.w @(0x1234:16,er3),@er1+                        ;01546f3c12348110\r
+    add.w @(0x1234:16,er3),@er1-                        ;01546f3c1234a110\r
+    add.w @(0x1234:16,er3),@+er1                        ;01546f3c12349110\r
+    add.w @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01546f3c1234c1109abc\r
+    add.w @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01546f3c1234c9109abcdef0\r
+    add.w @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01546f3c1234d2109abc\r
+    add.w @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01546f3c1234e2109abc\r
+    add.w @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01546f3c1234f2109abc\r
+    add.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01546f3c1234da109abcdef0\r
+    add.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01546f3c1234ea109abcdef0\r
+    add.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01546f3c1234fa109abcdef0\r
+    add.w @(0x1234:16,er3),@0xffff9abc:16               ;01546f3c123440109abc\r
+    add.w @(0x1234:16,er3),@0x9abcdef0:32               ;01546f3c123448109abcdef0\r
+\r
+    add.w @(0x12345678:32,er3),@er1                         ;78346b2c123456780110\r
+    add.w @(0x12345678:32,er3),@(6:2,er1)                   ;78346b2c123456783110\r
+    add.w @(0x12345678:32,er3),@-er1                        ;78346b2c12345678b110\r
+    add.w @(0x12345678:32,er3),@er1+                        ;78346b2c123456788110\r
+    add.w @(0x12345678:32,er3),@er1-                        ;78346b2c12345678a110\r
+    add.w @(0x12345678:32,er3),@+er1                        ;78346b2c123456789110\r
+    add.w @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78346b2c12345678c1109abc\r
+    add.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78346b2c12345678c9109abcdef0\r
+    add.w @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78346b2c12345678d2109abc\r
+    add.w @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78346b2c12345678e2109abc\r
+    add.w @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78346b2c12345678f2109abc\r
+    add.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78346b2c12345678da109abcdef0\r
+    add.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78346b2c12345678ea109abcdef0\r
+    add.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78346b2c12345678fa109abcdef0\r
+    add.w @(0x12345678:32,er3),@0xffff9abc:16               ;78346b2c1234567840109abc\r
+    add.w @(0x12345678:32,er3),@0x9abcdef0:32               ;78346b2c1234567848109abcdef0\r
+\r
+    add.w @(0x1234:16,r3l.b),@er1                       ;01556f3c12340110\r
+    add.w @(0x1234:16,r3l.b),@(6:2,er1)                 ;01556f3c12343110\r
+    add.w @(0x1234:16,r3l.b),@-er1                      ;01556f3c1234b110\r
+    add.w @(0x1234:16,r3l.b),@er1+                      ;01556f3c12348110\r
+    add.w @(0x1234:16,r3l.b),@er1-                      ;01556f3c1234a110\r
+    add.w @(0x1234:16,r3l.b),@+er1                      ;01556f3c12349110\r
+    add.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01556f3c1234c1109abc\r
+    add.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01556f3c1234c9109abcdef0\r
+    add.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01556f3c1234d2109abc\r
+    add.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01556f3c1234e2109abc\r
+    add.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01556f3c1234f2109abc\r
+    add.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01556f3c1234da109abcdef0\r
+    add.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01556f3c1234ea109abcdef0\r
+    add.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01556f3c1234fa109abcdef0\r
+    add.w @(0x1234:16,r3l.b),@0xffff9abc:16             ;01556f3c123440109abc\r
+    add.w @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01556f3c123448109abcdef0\r
+\r
+    add.w @(0x1234:16,r3.w),@er1                       ;01566f3c12340110\r
+    add.w @(0x1234:16,r3.w),@(6:2,er1)                 ;01566f3c12343110\r
+    add.w @(0x1234:16,r3.w),@-er1                      ;01566f3c1234b110\r
+    add.w @(0x1234:16,r3.w),@er1+                      ;01566f3c12348110\r
+    add.w @(0x1234:16,r3.w),@er1-                      ;01566f3c1234a110\r
+    add.w @(0x1234:16,r3.w),@+er1                      ;01566f3c12349110\r
+    add.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01566f3c1234c1109abc\r
+    add.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01566f3c1234c9109abcdef0\r
+    add.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01566f3c1234d2109abc\r
+    add.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01566f3c1234e2109abc\r
+    add.w @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01566f3c1234f2109abc\r
+    add.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01566f3c1234da109abcdef0\r
+    add.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01566f3c1234ea109abcdef0\r
+    add.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01566f3c1234fa109abcdef0\r
+    add.w @(0x1234:16,r3.w),@0xffff9abc:16             ;01566f3c123440109abc\r
+    add.w @(0x1234:16,r3.w),@0x9abcdef0:32             ;01566f3c123448109abcdef0\r
+\r
+    add.w @(0x1234:16,er3.l),@er1                       ;01576f3c12340110\r
+    add.w @(0x1234:16,er3.l),@(6:2,er1)                 ;01576f3c12343110\r
+    add.w @(0x1234:16,er3.l),@-er1                      ;01576f3c1234b110\r
+    add.w @(0x1234:16,er3.l),@er1+                      ;01576f3c12348110\r
+    add.w @(0x1234:16,er3.l),@er1-                      ;01576f3c1234a110\r
+    add.w @(0x1234:16,er3.l),@+er1                      ;01576f3c12349110\r
+    add.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01576f3c1234c1109abc\r
+    add.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01576f3c1234c9109abcdef0\r
+    add.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01576f3c1234d2109abc\r
+    add.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01576f3c1234e2109abc\r
+    add.w @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01576f3c1234f2109abc\r
+    add.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01576f3c1234da109abcdef0\r
+    add.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01576f3c1234ea109abcdef0\r
+    add.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01576f3c1234fa109abcdef0\r
+    add.w @(0x1234:16,er3.l),@0xffff9abc:16             ;01576f3c123440109abc\r
+    add.w @(0x1234:16,er3.l),@0x9abcdef0:32             ;01576f3c123448109abcdef0\r
+\r
+    add.w @(0x12345678:32,r3l.b),@er1                       ;78356b2c123456780110\r
+    add.w @(0x12345678:32,r3l.b),@(6:2,er1)                 ;78356b2c123456783110\r
+    add.w @(0x12345678:32,r3l.b),@-er1                      ;78356b2c12345678b110\r
+    add.w @(0x12345678:32,r3l.b),@er1+                      ;78356b2c123456788110\r
+    add.w @(0x12345678:32,r3l.b),@er1-                      ;78356b2c12345678a110\r
+    add.w @(0x12345678:32,r3l.b),@+er1                      ;78356b2c123456789110\r
+    add.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78356b2c12345678c1109abc\r
+    add.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78356b2c12345678c9109abcdef0\r
+    add.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78356b2c12345678d2109abc\r
+    add.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78356b2c12345678e2109abc\r
+    add.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78356b2c12345678f2109abc\r
+    add.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78356b2c12345678da109abcdef0\r
+    add.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78356b2c12345678ea109abcdef0\r
+    add.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78356b2c12345678fa109abcdef0\r
+    add.w @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78356b2c1234567840109abc\r
+    add.w @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78356b2c1234567848109abcdef0\r
+\r
+    add.w @(0x12345678:32,r3.w),@er1                       ;78366b2c123456780110\r
+    add.w @(0x12345678:32,r3.w),@(6:2,er1)                 ;78366b2c123456783110\r
+    add.w @(0x12345678:32,r3.w),@-er1                      ;78366b2c12345678b110\r
+    add.w @(0x12345678:32,r3.w),@er1+                      ;78366b2c123456788110\r
+    add.w @(0x12345678:32,r3.w),@er1-                      ;78366b2c12345678a110\r
+    add.w @(0x12345678:32,r3.w),@+er1                      ;78366b2c123456789110\r
+    add.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78366b2c12345678c1109abc\r
+    add.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78366b2c12345678c9109abcdef0\r
+    add.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78366b2c12345678d2109abc\r
+    add.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78366b2c12345678e2109abc\r
+    add.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78366b2c12345678f2109abc\r
+    add.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78366b2c12345678da109abcdef0\r
+    add.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78366b2c12345678ea109abcdef0\r
+    add.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78366b2c12345678fa109abcdef0\r
+    add.w @(0x12345678:32,r3.w),@0xffff9abc:16             ;78366b2c1234567840109abc\r
+    add.w @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78366b2c1234567848109abcdef0\r
+\r
+    add.w @(0x12345678:32,er3.l),@er1                       ;78376b2c123456780110\r
+    add.w @(0x12345678:32,er3.l),@(6:2,er1)                 ;78376b2c123456783110\r
+    add.w @(0x12345678:32,er3.l),@-er1                      ;78376b2c12345678b110\r
+    add.w @(0x12345678:32,er3.l),@er1+                      ;78376b2c123456788110\r
+    add.w @(0x12345678:32,er3.l),@er1-                      ;78376b2c12345678a110\r
+    add.w @(0x12345678:32,er3.l),@+er1                      ;78376b2c123456789110\r
+    add.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78376b2c12345678c1109abc\r
+    add.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78376b2c12345678c9109abcdef0\r
+    add.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78376b2c12345678d2109abc\r
+    add.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78376b2c12345678e2109abc\r
+    add.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78376b2c12345678f2109abc\r
+    add.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78376b2c12345678da109abcdef0\r
+    add.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78376b2c12345678ea109abcdef0\r
+    add.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78376b2c12345678fa109abcdef0\r
+    add.w @(0x12345678:32,er3.l),@0xffff9abc:16             ;78376b2c1234567840109abc\r
+    add.w @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78376b2c1234567848109abcdef0\r
+\r
+    add.w @0x1234:16,@er1                              ;6b1512340110\r
+    add.w @0x1234:16,@(6:2,er1)                        ;6b1512343110\r
+    add.w @0x1234:16,@-er1                             ;6b151234b110\r
+    add.w @0x1234:16,@er1+                             ;6b1512348110\r
+    add.w @0x1234:16,@er1-                             ;6b151234a110\r
+    add.w @0x1234:16,@+er1                             ;6b1512349110\r
+    add.w @0x1234:16,@(0xffff9abc:16,er1)              ;6b151234c1109abc\r
+    add.w @0x1234:16,@(0x9abcdef0:32,er1)              ;6b151234c9109abcdef0\r
+    add.w @0x1234:16,@(0xffff9abc:16,r2l.b)            ;6b151234d2109abc\r
+    add.w @0x1234:16,@(0xffff9abc:16,r2.w)            ;6b151234e2109abc\r
+    add.w @0x1234:16,@(0xffff9abc:16,er2.l)            ;6b151234f2109abc\r
+    add.w @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;6b151234da109abcdef0\r
+    add.w @0x1234:16,@(0x9abcdef0:32,r2.w)            ;6b151234ea109abcdef0\r
+    add.w @0x1234:16,@(0x9abcdef0:32,er2.l)            ;6b151234fa109abcdef0\r
+    add.w @0x1234:16,@0xffff9abc:16                    ;6b15123440109abc\r
+    add.w @0x1234:16,@0x9abcdef0:32                    ;6b15123448109abcdef0\r
+\r
+    add.w @0x12345678:32,@er1                              ;6b35123456780110\r
+    add.w @0x12345678:32,@(6:2,er1)                        ;6b35123456783110\r
+    add.w @0x12345678:32,@-er1                             ;6b3512345678b110\r
+    add.w @0x12345678:32,@er1+                             ;6b35123456788110\r
+    add.w @0x12345678:32,@er1-                             ;6b3512345678a110\r
+    add.w @0x12345678:32,@+er1                             ;6b35123456789110\r
+    add.w @0x12345678:32,@(0xffff9abc:16,er1)              ;6b3512345678c1109abc\r
+    add.w @0x12345678:32,@(0x9abcdef0:32,er1)              ;6b3512345678c9109abcdef0\r
+    add.w @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;6b3512345678d2109abc\r
+    add.w @0x12345678:32,@(0xffff9abc:16,r2.w)            ;6b3512345678e2109abc\r
+    add.w @0x12345678:32,@(0xffff9abc:16,er2.l)            ;6b3512345678f2109abc\r
+    add.w @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;6b3512345678da109abcdef0\r
+    add.w @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;6b3512345678ea109abcdef0\r
+    add.w @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;6b3512345678fa109abcdef0\r
+    add.w @0x12345678:32,@0xffff9abc:16                    ;6b351234567840109abc\r
+    add.w @0x12345678:32,@0x9abcdef0:32                    ;6b351234567848109abcdef0\r
+\r
+    add.l #0x12345678:32,er1                      ;7a1112345678\r
+    add.l #0x1234:16,er1                       ;7a191234\r
+    add.l #0x7:3,er2                         ;0afa\r
+    add.l #0x12345678:32,@er1                      ;010e011812345678\r
+    add.l #0x12345678:32,@(0xc:2,er1)             ;010e311812345678\r
+    add.l #0x12345678:32,@er1+                     ;010e811812345678\r
+    add.l #0x12345678:32,@-er1                     ;010eb11812345678\r
+    add.l #0x12345678:32,@+er1                     ;010e911812345678\r
+    add.l #0x12345678:32,@er1-                     ;010ea11812345678\r
+    add.l #0x12345678:32,@(0xffff9abc:16,er1)               ;010ec1189abc12345678\r
+    add.l #0x12345678:32,@(0x9abcdef0:32,er1)               ;010ec9189abcdef012345678\r
+    add.l #0x12345678:32,@(0xffff9abc:16,r2l.b)             ;010ed2189abc12345678\r
+    add.l #0x12345678:32,@(0xffff9abc:16,r2.w)             ;010ee2189abc12345678\r
+    add.l #0x12345678:32,@(0xffff9abc:16,er2.l)             ;010ef2189abc12345678\r
+    add.l #0x12345678:32,@(0x9abcdef0:32,r2l.b)             ;010eda189abcdef012345678\r
+    add.l #0x12345678:32,@(0x9abcdef0:32,r2.w)             ;010eea189abcdef012345678\r
+    add.l #0x12345678:32,@(0x9abcdef0:32,er2.l)             ;010efa189abcdef012345678\r
+    add.l #0x12345678:32,@0xffff9abc:16                     ;010e40189abc12345678\r
+    add.l #0x12345678:32,@0x9abcdef0:32                     ;010e48189abcdef012345678\r
+    add.l #0x1234:16,@er1                      ;010e01101234\r
+    add.l #0x1234:16,@(0xc:2,er1)             ;010e31101234\r
+    add.l #0x1234:16,@er1+                     ;010e81101234\r
+    add.l #0x1234:16,@-er1                     ;010eb1101234\r
+    add.l #0x1234:16,@+er1                     ;010e91101234\r
+    add.l #0x1234:16,@er1-                     ;010ea1101234\r
+    add.l #0x1234:16,@(0xffff9abc:16,er1)               ;010ec1109abc1234\r
+    add.l #0x1234:16,@(0x9abcdef0:32,er1)               ;010ec9109abcdef01234\r
+    add.l #0x1234:16,@(0xffff9abc:16,r2l.b)             ;010ed2109abc1234\r
+    add.l #0x1234:16,@(0xffff9abc:16,r2.w)             ;010ee2109abc1234\r
+    add.l #0x1234:16,@(0xffff9abc:16,er2.l)             ;010ef2109abc1234\r
+    add.l #0x1234:16,@(0x9abcdef0:32,r2l.b)             ;010eda109abcdef01234\r
+    add.l #0x1234:16,@(0x9abcdef0:32,r2.w)             ;010eea109abcdef01234\r
+    add.l #0x1234:16,@(0x9abcdef0:32,er2.l)             ;010efa109abcdef01234\r
+    add.l #0x1234:16,@0xffff9abc:16                     ;010e40109abc1234\r
+    add.l #0x1234:16,@0x9abcdef0:32                     ;010e48109abcdef01234\r
+\r
+    add.l er3,er1                           ;0ab1\r
+\r
+    add.l er3,@er1                         ;01090113\r
+    add.l er3,@(0xc:2,er1)                ;01093113\r
+    add.l er3,@er1+                        ;01098113\r
+    add.l er3,@-er1                        ;0109b113\r
+    add.l er3,@+er1                        ;01099113\r
+    add.l er3,@er1-                        ;0109a113\r
+    add.l er3,@(0x1234:16,er1)                  ;0109c1131234\r
+    add.l er3,@(0x12345678:32,er1)                  ;0109c91312345678\r
+    add.l er3,@(0x1234:16,r2l.b)                ;0109d2131234\r
+    add.l er3,@(0x1234:16,r2.w)                ;0109e2131234\r
+    add.l er3,@(0x1234:16,er2.l)                ;0109f2131234\r
+    add.l er3,@(0x12345678:32,r2l.b)                ;0109da1312345678\r
+    add.l er3,@(0x12345678:32,r2.w)                ;0109ea1312345678\r
+    add.l er3,@(0x12345678:32,er2.l)                ;0109fa1312345678\r
+    add.l er3,@0x1234:16                       ;010940131234\r
+    add.l er3,@0x12345678:32                       ;0109481312345678\r
+\r
+    add.l @er3,er1                         ;010a0311\r
+    add.l @(0xc:2,er3),er1               ;010a3311\r
+    add.l @er3+,er1                       ;010a8311\r
+    add.l @-er3,er1                       ;010ab311\r
+    add.l @+er3,er1                       ;010a9311\r
+    add.l @er3-,er1                       ;010aa311\r
+    add.l @(0x1234:16,er1),er1                  ;010ac1111234\r
+    add.l @(0x12345678:32,er1),er1                  ;010ac91112345678\r
+    add.l @(0x1234:16,r2l.b),er1                ;010ad2111234\r
+    add.l @(0x1234:16,r2.w),er1                ;010ae2111234\r
+    add.l @(0x1234:16,er2.l),er1                ;010af2111234\r
+    add.l @(0x12345678:32,r2l.b),er1                ;010ada1112345678\r
+    add.l @(0x12345678:32,r2.w),er1                ;010aea1112345678\r
+    add.l @(0x12345678:32,er2.l),er1                ;010afa1112345678\r
+    add.l @0x1234:16,er1                       ;010a40111234\r
+    add.l @0x12345678:32,er1                       ;010a481112345678\r
+\r
+    add.l @er3,@er1                                ;0104693c0110\r
+    add.l @er3,@(0xc:2,er1)                          ;0104693c3110\r
+    add.l @er3,@-er1                               ;0104693cb110\r
+    add.l @er3,@er1+                               ;0104693c8110\r
+    add.l @er3,@er1-                               ;0104693ca110\r
+    add.l @er3,@+er1                               ;0104693c9110\r
+    add.l @er3,@(0xffff9abc:16,er1)                ;0104693cc1109abc\r
+    add.l @er3,@(0x9abcdef0:32,er1)                ;0104693cc9109abcdef0\r
+    add.l @er3,@(0xffff9abc:16,r2l.b)              ;0104693cd2109abc\r
+    add.l @er3,@(0xffff9abc:16,r2.w)              ;0104693ce2109abc\r
+    add.l @er3,@(0xffff9abc:16,er2.l)              ;0104693cf2109abc\r
+    add.l @er3,@(0x9abcdef0:32,r2l.b)              ;0104693cda109abcdef0\r
+    add.l @er3,@(0x9abcdef0:32,r2.w)              ;0104693cea109abcdef0\r
+    add.l @er3,@(0x9abcdef0:32,er2.l)              ;0104693cfa109abcdef0\r
+    add.l @er3,@0xffff9abc:16                      ;0104693c40109abc\r
+    add.l @er3,@0x9abcdef0:32                      ;0104693c48109abcdef0\r
+\r
+    add.l @(0xc:2,er3),@er1                       ;0107693c0110\r
+    add.l @(0xc:2,er3),@(0xc:2,er1)                 ;0107693c3110\r
+    add.l @(0xc:2,er3),@-er1                      ;0107693cb110\r
+    add.l @(0xc:2,er3),@er1+                      ;0107693c8110\r
+    add.l @(0xc:2,er3),@er1-                      ;0107693ca110\r
+    add.l @(0xc:2,er3),@+er1                      ;0107693c9110\r
+    add.l @(0xc:2,er3),@(0xffff9abc:16,er1)       ;0107693cc1109abc\r
+    add.l @(0xc:2,er3),@(0x9abcdef0:32,er1)       ;0107693cc9109abcdef0\r
+    add.l @(0xc:2,er3),@(0xffff9abc:16,r2l.b)     ;0107693cd2109abc\r
+    add.l @(0xc:2,er3),@(0xffff9abc:16,r2.w)     ;0107693ce2109abc\r
+    add.l @(0xc:2,er3),@(0xffff9abc:16,er2.l)     ;0107693cf2109abc\r
+    add.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b)     ;0107693cda109abcdef0\r
+    add.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w)     ;0107693cea109abcdef0\r
+    add.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l)     ;0107693cfa109abcdef0\r
+    add.l @(0xc:2,er3),@0xffff9abc:16             ;0107693c40109abc\r
+    add.l @(0xc:2,er3),@0x9abcdef0:32             ;0107693c48109abcdef0\r
+\r
+    add.l @-er3,@er1                               ;01076d3c0110\r
+    add.l @-er3,@(0xc:2,er1)                         ;01076d3c3110\r
+    add.l @-er3,@-er1                              ;01076d3cb110\r
+    add.l @-er3,@er1+                              ;01076d3c8110\r
+    add.l @-er3,@er1-                              ;01076d3ca110\r
+    add.l @-er3,@+er1                              ;01076d3c9110\r
+    add.l @-er3,@(0xffff9abc:16,er1)               ;01076d3cc1109abc\r
+    add.l @-er3,@(0x9abcdef0:32,er1)               ;01076d3cc9109abcdef0\r
+    add.l @-er3,@(0xffff9abc:16,r2l.b)             ;01076d3cd2109abc\r
+    add.l @-er3,@(0xffff9abc:16,r2.w)             ;01076d3ce2109abc\r
+    add.l @-er3,@(0xffff9abc:16,er2.l)             ;01076d3cf2109abc\r
+    add.l @-er3,@(0x9abcdef0:32,r2l.b)             ;01076d3cda109abcdef0\r
+    add.l @-er3,@(0x9abcdef0:32,r2.w)             ;01076d3cea109abcdef0\r
+    add.l @-er3,@(0x9abcdef0:32,er2.l)             ;01076d3cfa109abcdef0\r
+    add.l @-er3,@0xffff9abc:16                     ;01076d3c40109abc\r
+    add.l @-er3,@0x9abcdef0:32                     ;01076d3c48109abcdef0\r
+\r
+    add.l @er3+,@er1                               ;01046d3c0110\r
+    add.l @er3+,@(0xc:2,er1)                         ;01046d3c3110\r
+    add.l @er3+,@-er1                              ;01046d3cb110\r
+    add.l @er3+,@er1+                              ;01046d3c8110\r
+    add.l @er3+,@er1-                              ;01046d3ca110\r
+    add.l @er3+,@+er1                              ;01046d3c9110\r
+    add.l @er3+,@(0xffff9abc:16,er1)               ;01046d3cc1109abc\r
+    add.l @er3+,@(0x9abcdef0:32,er1)               ;01046d3cc9109abcdef0\r
+    add.l @er3+,@(0xffff9abc:16,r2l.b)             ;01046d3cd2109abc\r
+    add.l @er3+,@(0xffff9abc:16,r2.w)             ;01046d3ce2109abc\r
+    add.l @er3+,@(0xffff9abc:16,er2.l)             ;01046d3cf2109abc\r
+    add.l @er3+,@(0x9abcdef0:32,r2l.b)             ;01046d3cda109abcdef0\r
+    add.l @er3+,@(0x9abcdef0:32,r2.w)             ;01046d3cea109abcdef0\r
+    add.l @er3+,@(0x9abcdef0:32,er2.l)             ;01046d3cfa109abcdef0\r
+    add.l @er3+,@0xffff9abc:16                     ;01046d3c40109abc\r
+    add.l @er3+,@0x9abcdef0:32                     ;01046d3c48109abcdef0\r
+\r
+    add.l @er3-,@er1                               ;01066d3c0110\r
+    add.l @er3-,@(0xc:2,er1)                         ;01066d3c3110\r
+    add.l @er3-,@-er1                              ;01066d3cb110\r
+    add.l @er3-,@er1+                              ;01066d3c8110\r
+    add.l @er3-,@er1-                              ;01066d3ca110\r
+    add.l @er3-,@+er1                              ;01066d3c9110\r
+    add.l @er3-,@(0xffff9abc:16,er1)               ;01066d3cc1109abc\r
+    add.l @er3-,@(0x9abcdef0:32,er1)               ;01066d3cc9109abcdef0\r
+    add.l @er3-,@(0xffff9abc:16,r2l.b)             ;01066d3cd2109abc\r
+    add.l @er3-,@(0xffff9abc:16,r2.w)             ;01066d3ce2109abc\r
+    add.l @er3-,@(0xffff9abc:16,er2.l)             ;01066d3cf2109abc\r
+    add.l @er3-,@(0x9abcdef0:32,r2l.b)             ;01066d3cda109abcdef0\r
+    add.l @er3-,@(0x9abcdef0:32,r2.w)             ;01066d3cea109abcdef0\r
+    add.l @er3-,@(0x9abcdef0:32,er2.l)             ;01066d3cfa109abcdef0\r
+    add.l @er3-,@0xffff9abc:16                     ;01066d3c40109abc\r
+    add.l @er3-,@0x9abcdef0:32                     ;01066d3c48109abcdef0\r
+\r
+    add.l @+er3,@er1                               ;01056d3c0110\r
+    add.l @+er3,@(0xc:2,er1)                         ;01056d3c3110\r
+    add.l @+er3,@-er1                              ;01056d3cb110\r
+    add.l @+er3,@er1+                              ;01056d3c8110\r
+    add.l @+er3,@er1-                              ;01056d3ca110\r
+    add.l @+er3,@+er1                              ;01056d3c9110\r
+    add.l @+er3,@(0xffff9abc:16,er1)               ;01056d3cc1109abc\r
+    add.l @+er3,@(0x9abcdef0:32,er1)               ;01056d3cc9109abcdef0\r
+    add.l @+er3,@(0xffff9abc:16,r2l.b)             ;01056d3cd2109abc\r
+    add.l @+er3,@(0xffff9abc:16,r2.w)             ;01056d3ce2109abc\r
+    add.l @+er3,@(0xffff9abc:16,er2.l)             ;01056d3cf2109abc\r
+    add.l @+er3,@(0x9abcdef0:32,r2l.b)             ;01056d3cda109abcdef0\r
+    add.l @+er3,@(0x9abcdef0:32,r2.w)             ;01056d3cea109abcdef0\r
+    add.l @+er3,@(0x9abcdef0:32,er2.l)             ;01056d3cfa109abcdef0\r
+    add.l @+er3,@0xffff9abc:16                     ;01056d3c40109abc\r
+    add.l @+er3,@0x9abcdef0:32                     ;01056d3c48109abcdef0\r
+\r
+    add.l @(0x1234:16,er3),@er1                         ;01046f3c12340110\r
+    add.l @(0x1234:16,er3),@(0xc:2,er1)                   ;01046f3c12343110\r
+    add.l @(0x1234:16,er3),@-er1                        ;01046f3c1234b110\r
+    add.l @(0x1234:16,er3),@er1+                        ;01046f3c12348110\r
+    add.l @(0x1234:16,er3),@er1-                        ;01046f3c1234a110\r
+    add.l @(0x1234:16,er3),@+er1                        ;01046f3c12349110\r
+    add.l @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01046f3c1234c1109abc\r
+    add.l @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01046f3c1234c9109abcdef0\r
+    add.l @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01046f3c1234d2109abc\r
+    add.l @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01046f3c1234e2109abc\r
+    add.l @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01046f3c1234f2109abc\r
+    add.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01046f3c1234da109abcdef0\r
+    add.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01046f3c1234ea109abcdef0\r
+    add.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01046f3c1234fa109abcdef0\r
+    add.l @(0x1234:16,er3),@0xffff9abc:16               ;01046f3c123440109abc\r
+    add.l @(0x1234:16,er3),@0x9abcdef0:32               ;01046f3c123448109abcdef0\r
+\r
+    add.l @(0x12345678:32,er3),@er1                         ;78b46b2c123456780110\r
+    add.l @(0x12345678:32,er3),@(0xc:2,er1)                   ;78b46b2c123456783110\r
+    add.l @(0x12345678:32,er3),@-er1                        ;78b46b2c12345678b110\r
+    add.l @(0x12345678:32,er3),@er1+                        ;78b46b2c123456788110\r
+    add.l @(0x12345678:32,er3),@er1-                        ;78b46b2c12345678a110\r
+    add.l @(0x12345678:32,er3),@+er1                        ;78b46b2c123456789110\r
+    add.l @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78b46b2c12345678c1109abc\r
+    add.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78b46b2c12345678c9109abcdef0\r
+    add.l @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78b46b2c12345678d2109abc\r
+    add.l @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78b46b2c12345678e2109abc\r
+    add.l @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78b46b2c12345678f2109abc\r
+    add.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78b46b2c12345678da109abcdef0\r
+    add.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78b46b2c12345678ea109abcdef0\r
+    add.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78b46b2c12345678fa109abcdef0\r
+    add.l @(0x12345678:32,er3),@0xffff9abc:16               ;78b46b2c1234567840109abc\r
+    add.l @(0x12345678:32,er3),@0x9abcdef0:32               ;78b46b2c1234567848109abcdef0\r
+\r
+    add.l @(0x1234:16,r3l.b),@er1                       ;01056f3c12340110\r
+    add.l @(0x1234:16,r3l.b),@(0xc:2,er1)                 ;01056f3c12343110\r
+    add.l @(0x1234:16,r3l.b),@-er1                      ;01056f3c1234b110\r
+    add.l @(0x1234:16,r3l.b),@er1+                      ;01056f3c12348110\r
+    add.l @(0x1234:16,r3l.b),@er1-                      ;01056f3c1234a110\r
+    add.l @(0x1234:16,r3l.b),@+er1                      ;01056f3c12349110\r
+    add.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01056f3c1234c1109abc\r
+    add.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01056f3c1234c9109abcdef0\r
+    add.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01056f3c1234d2109abc\r
+    add.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01056f3c1234e2109abc\r
+    add.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01056f3c1234f2109abc\r
+    add.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01056f3c1234da109abcdef0\r
+    add.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01056f3c1234ea109abcdef0\r
+    add.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01056f3c1234fa109abcdef0\r
+    add.l @(0x1234:16,r3l.b),@0xffff9abc:16             ;01056f3c123440109abc\r
+    add.l @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01056f3c123448109abcdef0\r
+\r
+    add.l @(0x1234:16,r3.w),@er1                       ;01066f3c12340110\r
+    add.l @(0x1234:16,r3.w),@(0xc:2,er1)                 ;01066f3c12343110\r
+    add.l @(0x1234:16,r3.w),@-er1                      ;01066f3c1234b110\r
+    add.l @(0x1234:16,r3.w),@er1+                      ;01066f3c12348110\r
+    add.l @(0x1234:16,r3.w),@er1-                      ;01066f3c1234a110\r
+    add.l @(0x1234:16,r3.w),@+er1                      ;01066f3c12349110\r
+    add.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01066f3c1234c1109abc\r
+    add.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01066f3c1234c9109abcdef0\r
+    add.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01066f3c1234d2109abc\r
+    add.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01066f3c1234e2109abc\r
+    add.l @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01066f3c1234f2109abc\r
+    add.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01066f3c1234da109abcdef0\r
+    add.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01066f3c1234ea109abcdef0\r
+    add.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01066f3c1234fa109abcdef0\r
+    add.l @(0x1234:16,r3.w),@0xffff9abc:16             ;01066f3c123440109abc\r
+    add.l @(0x1234:16,r3.w),@0x9abcdef0:32             ;01066f3c123448109abcdef0\r
+\r
+    add.l @(0x1234:16,er3.l),@er1                       ;01076f3c12340110\r
+    add.l @(0x1234:16,er3.l),@(0xc:2,er1)                 ;01076f3c12343110\r
+    add.l @(0x1234:16,er3.l),@-er1                      ;01076f3c1234b110\r
+    add.l @(0x1234:16,er3.l),@er1+                      ;01076f3c12348110\r
+    add.l @(0x1234:16,er3.l),@er1-                      ;01076f3c1234a110\r
+    add.l @(0x1234:16,er3.l),@+er1                      ;01076f3c12349110\r
+    add.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01076f3c1234c1109abc\r
+    add.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01076f3c1234c9109abcdef0\r
+    add.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01076f3c1234d2109abc\r
+    add.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01076f3c1234e2109abc\r
+    add.l @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01076f3c1234f2109abc\r
+    add.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01076f3c1234da109abcdef0\r
+    add.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01076f3c1234ea109abcdef0\r
+    add.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01076f3c1234fa109abcdef0\r
+    add.l @(0x1234:16,er3.l),@0xffff9abc:16             ;01076f3c123440109abc\r
+    add.l @(0x1234:16,er3.l),@0x9abcdef0:32             ;01076f3c123448109abcdef0\r
+\r
+    add.l @(0x12345678:32,r3l.b),@er1                       ;78b56b2c123456780110\r
+    add.l @(0x12345678:32,r3l.b),@(0xc:2,er1)                 ;78b56b2c123456783110\r
+    add.l @(0x12345678:32,r3l.b),@-er1                      ;78b56b2c12345678b110\r
+    add.l @(0x12345678:32,r3l.b),@er1+                      ;78b56b2c123456788110\r
+    add.l @(0x12345678:32,r3l.b),@er1-                      ;78b56b2c12345678a110\r
+    add.l @(0x12345678:32,r3l.b),@+er1                      ;78b56b2c123456789110\r
+    add.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78b56b2c12345678c1109abc\r
+    add.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78b56b2c12345678c9109abcdef0\r
+    add.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78b56b2c12345678d2109abc\r
+    add.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78b56b2c12345678e2109abc\r
+    add.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78b56b2c12345678f2109abc\r
+    add.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78b56b2c12345678da109abcdef0\r
+    add.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78b56b2c12345678ea109abcdef0\r
+    add.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78b56b2c12345678fa109abcdef0\r
+    add.l @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78b56b2c1234567840109abc\r
+    add.l @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78b56b2c1234567848109abcdef0\r
+\r
+    add.l @(0x12345678:32,r3.w),@er1                       ;78b66b2c123456780110\r
+    add.l @(0x12345678:32,r3.w),@(0xc:2,er1)                 ;78b66b2c123456783110\r
+    add.l @(0x12345678:32,r3.w),@-er1                      ;78b66b2c12345678b110\r
+    add.l @(0x12345678:32,r3.w),@er1+                      ;78b66b2c123456788110\r
+    add.l @(0x12345678:32,r3.w),@er1-                      ;78b66b2c12345678a110\r
+    add.l @(0x12345678:32,r3.w),@+er1                      ;78b66b2c123456789110\r
+    add.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78b66b2c12345678c1109abc\r
+    add.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78b66b2c12345678c9109abcdef0\r
+    add.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78b66b2c12345678d2109abc\r
+    add.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78b66b2c12345678e2109abc\r
+    add.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78b66b2c12345678f2109abc\r
+    add.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78b66b2c12345678da109abcdef0\r
+    add.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78b66b2c12345678ea109abcdef0\r
+    add.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78b66b2c12345678fa109abcdef0\r
+    add.l @(0x12345678:32,r3.w),@0xffff9abc:16             ;78b66b2c1234567840109abc\r
+    add.l @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78b66b2c1234567848109abcdef0\r
+\r
+    add.l @(0x12345678:32,er3.l),@er1                       ;78b76b2c123456780110\r
+    add.l @(0x12345678:32,er3.l),@(0xc:2,er1)                 ;78b76b2c123456783110\r
+    add.l @(0x12345678:32,er3.l),@-er1                      ;78b76b2c12345678b110\r
+    add.l @(0x12345678:32,er3.l),@er1+                      ;78b76b2c123456788110\r
+    add.l @(0x12345678:32,er3.l),@er1-                      ;78b76b2c12345678a110\r
+    add.l @(0x12345678:32,er3.l),@+er1                      ;78b76b2c123456789110\r
+    add.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78b76b2c12345678c1109abc\r
+    add.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78b76b2c12345678c9109abcdef0\r
+    add.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78b76b2c12345678d2109abc\r
+    add.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78b76b2c12345678e2109abc\r
+    add.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78b76b2c12345678f2109abc\r
+    add.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78b76b2c12345678da109abcdef0\r
+    add.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78b76b2c12345678ea109abcdef0\r
+    add.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78b76b2c12345678fa109abcdef0\r
+    add.l @(0x12345678:32,er3.l),@0xffff9abc:16             ;78b76b2c1234567840109abc\r
+    add.l @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78b76b2c1234567848109abcdef0\r
+\r
+    add.l @0x1234:16,@er1                              ;01046b0c12340110\r
+    add.l @0x1234:16,@(0xc:2,er1)                        ;01046b0c12343110\r
+    add.l @0x1234:16,@-er1                             ;01046b0c1234b110\r
+    add.l @0x1234:16,@er1+                             ;01046b0c12348110\r
+    add.l @0x1234:16,@er1-                             ;01046b0c1234a110\r
+    add.l @0x1234:16,@+er1                             ;01046b0c12349110\r
+    add.l @0x1234:16,@(0xffff9abc:16,er1)              ;01046b0c1234c1109abc\r
+    add.l @0x1234:16,@(0x9abcdef0:32,er1)              ;01046b0c1234c9109abcdef0\r
+    add.l @0x1234:16,@(0xffff9abc:16,r2l.b)            ;01046b0c1234d2109abc\r
+    add.l @0x1234:16,@(0xffff9abc:16,r2.w)            ;01046b0c1234e2109abc\r
+    add.l @0x1234:16,@(0xffff9abc:16,er2.l)            ;01046b0c1234f2109abc\r
+    add.l @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;01046b0c1234da109abcdef0\r
+    add.l @0x1234:16,@(0x9abcdef0:32,r2.w)            ;01046b0c1234ea109abcdef0\r
+    add.l @0x1234:16,@(0x9abcdef0:32,er2.l)            ;01046b0c1234fa109abcdef0\r
+    add.l @0x1234:16,@0xffff9abc:16                    ;01046b0c123440109abc\r
+    add.l @0x1234:16,@0x9abcdef0:32                    ;01046b0c123448109abcdef0\r
+\r
+    add.l @0x12345678:32,@er1                              ;01046b2c123456780110\r
+    add.l @0x12345678:32,@(0xc:2,er1)                        ;01046b2c123456783110\r
+    add.l @0x12345678:32,@-er1                             ;01046b2c12345678b110\r
+    add.l @0x12345678:32,@er1+                             ;01046b2c123456788110\r
+    add.l @0x12345678:32,@er1-                             ;01046b2c12345678a110\r
+    add.l @0x12345678:32,@+er1                             ;01046b2c123456789110\r
+    add.l @0x12345678:32,@(0xffff9abc:16,er1)              ;01046b2c12345678c1109abc\r
+    add.l @0x12345678:32,@(0x9abcdef0:32,er1)              ;01046b2c12345678c9109abcdef0\r
+    add.l @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;01046b2c12345678d2109abc\r
+    add.l @0x12345678:32,@(0xffff9abc:16,r2.w)            ;01046b2c12345678e2109abc\r
+    add.l @0x12345678:32,@(0xffff9abc:16,er2.l)            ;01046b2c12345678f2109abc\r
+    add.l @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;01046b2c12345678da109abcdef0\r
+    add.l @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;01046b2c12345678ea109abcdef0\r
+    add.l @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;01046b2c12345678fa109abcdef0\r
+    add.l @0x12345678:32,@0xffff9abc:16                    ;01046b2c1234567840109abc\r
+    add.l @0x12345678:32,@0x9abcdef0:32                    ;01046b2c1234567848109abcdef0\r
+\r
+       .end\r
diff --git a/gas/testsuite/gas/h8300/t04_sub.exp b/gas/testsuite/gas/h8300/t04_sub.exp
new file mode 100644 (file)
index 0000000..a5d134c
--- /dev/null
@@ -0,0 +1,3020 @@
+#
+# Some h8300sx tests -- t04_sub
+#
+
+proc do_t04_sub_test {} {
+    set testname "t04_sub.s -- h8sx tests"
+
+    gas_start "t04_sub.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*   7 0000 7D10A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8 0004 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8      A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9 000a 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9      A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10 0010 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10      A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11 0016 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11      A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12 001c 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12      A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13 0022 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13      1234A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14 002a 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14      A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15 0034 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      1234A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 003c 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16      1234A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17 0044 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17      1234A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18 004c 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18      A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19 0056 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20 0060 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21 006a 7F9AA112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 006e 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22      A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23 0074 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23      5678A112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24              " {
+           if [expr $x == 36] then {
+               pass "$testname: sub.b #0x12:8, ..."
+           } else {
+               fail "$testname: sub.b #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  25 007c 1831" { set x [expr $x+1]; exp_continue; }
+       -re ".*  26              " {
+           if [expr $x == 1] then {
+               pass "$testname: sub.b r3h, r1h"
+           } else {
+               fail "$testname: sub.b r3h, r1h ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b r3h, r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  27 007e 7D101830" { set x [expr $x+1]; exp_continue; }
+       -re ".*  28 0082 01793133" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29 0086 01798133" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30 008a 0179B133" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31 008e 01799133" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32 0092 0179A133" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33 0096 0179C133" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34 009c 0179C933" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35 00a4 0179D233" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 00aa 0179E233" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 00b0 0179F233" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38 00b6 0179DA33" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39 00be 0179EA33" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40 00c6 0179FA33" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41 00ce 7F121830" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42 00d2 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42      1830" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43 00d8 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43      56781830" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44              " {
+           if [expr $x == 27] then {
+               pass "$testname: sub.b r3h, ..."
+           } else {
+               fail "$testname: sub.b r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  45 00e0 7C301801" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46 00e4 017A3331" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47 00e8 017A8331" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48 00ec 017AB331" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49 00f0 017A9331" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50 00f4 017AA331" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51 00f8 017AC131" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52 00fe 017AC931" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53 0106 017AD231" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 010c 017AE231" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 0112 017AF231" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56 0118 017ADA31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57 0120 017AEA31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58 0128 017AFA31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59 0130 7E121801" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60 0134 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60      1801" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61 013a 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61      56781801" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62              " {
+           if [expr $x == 27] then {
+               pass "$testname: sub.b ..., r1h"
+           } else {
+               fail "$testname: sub.b ..., r1h ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b ..., r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  63 0142 7C350130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64 0146 7C353130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65 014a 7C35B130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66 014e 7C358130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67 0152 7C35A130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68 0156 7C359130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 015a 7C35C130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70 0160 7C35C930" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71 0168 7C35D230" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72 016e 7C35E230" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73 0174 7C35F230" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74 017a 7C35DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75 0182 7C35EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76 018a 7C35FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77 0192 7C354030" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78 0198 7C354830" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79              " {
+           if [expr $x == 26] then {
+               pass "$testname: sub.b @er3, ..."
+           } else {
+               fail "$testname: sub.b @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  80 01a0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81 01a6 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82 01ac 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83 01b2 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84 01b8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85 01be 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86 01c4 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87 01cc 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88 01d6 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89 01de 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90 01e6 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91 01ee 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92 01f8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 0202 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94 020c 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95 0214 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.b @-er3, ..."
+           } else {
+               fail "$testname: sub.b @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  97 021e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98 0224 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99 022a 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100 0230 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101 0236 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102 023c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103 0242 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104 024a 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105 0254 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106 025c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107 0264 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108 026c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109 0276 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110 0280 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111 028a 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112 0292 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.b @er3+, ..."
+           } else {
+               fail "$testname: sub.b @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 114 029c 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115 02a2 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116 02a8 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117 02ae 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118 02b4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119 02ba 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120 02c0 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121 02c8 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122 02d2 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123 02da 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124 02e2 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125 02ea 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126 02f4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127 02fe 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128 0308 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129 0310 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.b @er3-, ..."
+           } else {
+               fail "$testname: sub.b @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 131 031a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132 0320 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133 0326 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134 032c 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135 0332 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136 0338 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137 033e 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138 0346 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139 0350 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140 0358 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141 0360 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142 0368 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143 0372 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144 037c 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145 0386 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146 038e 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.b @+er3, ..."
+           } else {
+               fail "$testname: sub.b @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 148 0398 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149 03a0 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150 03a8 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151 03b0 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152 03b8 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153 03c0 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154 03c8 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155 03d2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156 03de 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157 03e8 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158 03f2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159 03fc 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160 0408 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161 0414 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162 0420 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163 042a 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.b @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: sub.b @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 165 0436 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166 0440 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167 044a 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168 0454 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169 045e 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170 0468 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171 0472 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172 047e 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173 048c 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174 0498 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175 04a4 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176 04b0 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177 04be 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178 04cc 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179 04da 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180 04e6 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.b @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: sub.b @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 182 04f4 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183 04fc 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184 0504 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185 050c 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186 0514 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187 051c 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188 0524 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189 052e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190 053a 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191 0544 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192 054e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193 0558 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194 0564 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195 0570 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196 057c 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197 0586 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.b @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: sub.b @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 199 0592 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200 059a 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201 05a2 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202 05aa 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203 05b2 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204 05ba 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205 05c2 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206 05cc 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207 05d8 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208 05e2 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209 05ec 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210 05f6 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211 0602 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212 060e 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213 061a 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214 0624 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.b @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: sub.b @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 216 0630 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217 0638 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218 0640 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219 0648 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220 0650 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221 0658 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222 0660 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223 066a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224 0676 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225 0680 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226 068a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227 0694 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228 06a0 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229 06ac 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230 06b8 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231 06c2 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.b @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: sub.b @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 233 06ce 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234 06d8 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235 06e2 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236 06ec 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237 06f6 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238 0700 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239 070a 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240 0716 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241 0724 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242 0730 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243 073c 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244 0748 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245 0756 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246 0764 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247 0772 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248 077e 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.b @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: sub.b @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 250 078c 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 250      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 250      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251 0796 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252 07a0 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253 07aa 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254 07b4 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255 07be 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256 07c8 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257 07d4 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258 07e2 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259 07ee 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260 07fa 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261 0806 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262 0814 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263 0822 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264 0830 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265 083c 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.b @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: sub.b @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 267 084a 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 267      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 267      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268 0854 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269 085e 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270 0868 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271 0872 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272 087c 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273 0886 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274 0892 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275 08a0 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276 08ac 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277 08b8 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278 08c4 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279 08d2 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280 08e0 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281 08ee 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282 08fa 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.b @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: sub.b @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 284 0908 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 284      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 285 090e 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 285      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286 0914 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287 091a 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288 0920 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289 0926 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290 092c 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291 0934 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292 093e 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293 0946 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294 094e 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295 0956 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296 0960 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297 096a 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298 0974 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299 097c 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.b @0x1234:16, ..."
+           } else {
+               fail "$testname: sub.b @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 301 0986 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 301      56780130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 302 098e 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 302      56783130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303 0996 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303      5678B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304 099e 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304      56788130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305 09a6 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305      5678A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306 09ae 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306      56789130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307 09b6 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307      5678C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308 09c0 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308      5678C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309 09cc 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309      5678D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310 09d6 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      5678E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311 09e0 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      5678F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312 09ea 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      5678DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313 09f6 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      5678EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314 0a02 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      5678FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315 0a0e 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      56784030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316 0a18 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      56784830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.b @0x12345678:32, ..."
+           } else {
+               fail "$testname: sub.b @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.b @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 318 0a24 79311234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 319 0a28 1A72" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320 0a2a 015E0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321 0a30 015E3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322 0a36 015E8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323 0a3c 015EB130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324 0a42 015E9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325 0a48 015EA130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326 0a4e 015EC130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327 0a56 015EC930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328 0a60 015ED230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329 0a68 015EE230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330 0a70 015EF230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331 0a78 015EDA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332 0a82 015EEA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333 0a8c 015EFA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334 0a96 015E4030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335 0a9e 015E4830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 336              " {
+           if [expr $x == 39] then {
+               pass "$testname: sub.w #0x1234:16, ..."
+           } else {
+               fail "$testname: sub.w #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 337 0aa8 7D901A70" { set x [expr $x+1]; exp_continue; }
+       -re ".* 338 0aac 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 338      1A70" { set x [expr $x+1]; exp_continue; }
+       -re ".* 339 0ab2 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 339      56781A70" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340              " {
+           if [expr $x == 5] then {
+               pass "$testname: sub.w #0x7:3, ..."
+           } else {
+               fail "$testname: sub.w #0x7:3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w #0x7:3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 341 0aba 1931" { set x [expr $x+1]; exp_continue; }
+       -re ".* 342              " {
+           if [expr $x == 1] then {
+               pass "$testname: sub.w r3, r1"
+           } else {
+               fail "$testname: sub.w r3, r1 ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w r3, r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 343 0abc 7D901930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 344 0ac0 01593133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345 0ac4 01598133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346 0ac8 0159B133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347 0acc 01599133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348 0ad0 0159A133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349 0ad4 0159C133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350 0ada 0159C933" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351 0ae2 0159D233" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352 0ae8 0159E233" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353 0aee 0159F233" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354 0af4 0159DA33" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 355 0afc 0159EA33" { set x [expr $x+1]; exp_continue; }
+       -re ".* 355      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 356 0b04 0159FA33" { set x [expr $x+1]; exp_continue; }
+       -re ".* 356      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357 0b0c 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357      1930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358 0b12 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358      56781930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 359              " {
+           if [expr $x == 26] then {
+               pass "$testname: sub.w r3, ..."
+           } else {
+               fail "$testname: sub.w r3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w r3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 360 0b1a 7CB01901" { set x [expr $x+1]; exp_continue; }
+       -re ".* 361 0b1e 015A3331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362 0b22 015A8331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 363 0b26 015AB331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364 0b2a 015A9331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365 0b2e 015AA331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366 0b32 015AC131" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367 0b38 015AC931" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368 0b40 015AD231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369 0b46 015AE231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370 0b4c 015AF231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371 0b52 015ADA31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 372 0b5a 015AEA31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 372      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 373 0b62 015AFA31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 373      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 374 0b6a 6B101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 374      1901" { set x [expr $x+1]; exp_continue; }
+       -re ".* 375 0b70 6B301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 375      56781901" { set x [expr $x+1]; exp_continue; }
+       -re ".* 376              " {
+           if [expr $x == 26] then {
+               pass "$testname: sub.w ..., r1"
+           } else {
+               fail "$testname: sub.w ..., r1 ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w ..., r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 377 0b78 7CB50130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 378 0b7c 7CB53130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379 0b80 7CB5B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 380 0b84 7CB58130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 381 0b88 7CB5A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382 0b8c 7CB59130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383 0b90 7CB5C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384 0b96 7CB5C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385 0b9e 7CB5D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386 0ba4 7CB5E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387 0baa 7CB5F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388 0bb0 7CB5DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389 0bb8 7CB5EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390 0bc0 7CB5FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391 0bc8 7CB54030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392 0bce 7CB54830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393              " {
+           if [expr $x == 26] then {
+               pass "$testname: sub.w @er3, ..."
+           } else {
+               fail "$testname: sub.w @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 394 0bd6 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395 0bdc 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396 0be2 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397 0be8 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398 0bee 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399 0bf4 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400 0bfa 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401 0c02 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402 0c0c 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403 0c14 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404 0c1c 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405 0c24 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406 0c2e 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407 0c38 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408 0c42 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409 0c4a 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.w @-er3, ..."
+           } else {
+               fail "$testname: sub.w @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 411 0c54 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412 0c5a 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413 0c60 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414 0c66 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415 0c6c 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416 0c72 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417 0c78 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418 0c80 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419 0c8a 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420 0c92 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421 0c9a 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422 0ca2 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423 0cac 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424 0cb6 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425 0cc0 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426 0cc8 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.w @er3+, ..."
+           } else {
+               fail "$testname: sub.w @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 428 0cd2 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429 0cd8 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430 0cde 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431 0ce4 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432 0cea 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433 0cf0 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434 0cf6 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435 0cfe 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436 0d08 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437 0d10 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438 0d18 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439 0d20 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440 0d2a 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441 0d34 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442 0d3e 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443 0d46 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.w @er3-, ..."
+           } else {
+               fail "$testname: sub.w @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 445 0d50 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 445      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446 0d56 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447 0d5c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448 0d62 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449 0d68 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450 0d6e 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451 0d74 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452 0d7c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453 0d86 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454 0d8e 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455 0d96 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456 0d9e 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457 0da8 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458 0db2 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459 0dbc 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460 0dc4 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.w @+er3, ..."
+           } else {
+               fail "$testname: sub.w @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 462 0dce 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463 0dd6 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464 0dde 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465 0de6 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466 0dee 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467 0df6 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468 0dfe 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469 0e08 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470 0e14 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471 0e1e 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472 0e28 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473 0e32 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474 0e3e 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475 0e4a 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476 0e56 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477 0e60 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.w @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: sub.w @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 479 0e6c 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480 0e76 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481 0e80 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482 0e8a 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483 0e94 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484 0e9e 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485 0ea8 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486 0eb4 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487 0ec2 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488 0ece 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489 0eda 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490 0ee6 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491 0ef4 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492 0f02 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493 0f10 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494 0f1c 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.w @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: sub.w @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 496 0f2a 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497 0f32 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498 0f3a 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499 0f42 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500 0f4a 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501 0f52 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502 0f5a 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503 0f64 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504 0f70 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505 0f7a 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506 0f84 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507 0f8e 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508 0f9a 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509 0fa6 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510 0fb2 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511 0fbc 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.w @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: sub.w @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 513 0fc8 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514 0fd0 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515 0fd8 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516 0fe0 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517 0fe8 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518 0ff0 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519 0ff8 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520 1002 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521 100e 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522 1018 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523 1022 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524 102c 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525 1038 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526 1044 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527 1050 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528 105a 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.w @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: sub.w @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 530 1066 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531 106e 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532 1076 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533 107e 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534 1086 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535 108e 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536 1096 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537 10a0 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538 10ac 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539 10b6 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540 10c0 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541 10ca 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542 10d6 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543 10e2 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544 10ee 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545 10f8 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.w @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: sub.w @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 547 1104 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548 110e 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549 1118 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550 1122 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551 112c 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552 1136 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553 1140 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554 114c 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555 115a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556 1166 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557 1172 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558 117e 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559 118c 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560 119a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561 11a8 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562 11b4 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.w @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: sub.w @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 564 11c2 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565 11cc 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566 11d6 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567 11e0 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568 11ea 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569 11f4 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570 11fe 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571 120a 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572 1218 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573 1224 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574 1230 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575 123c 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576 124a 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577 1258 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578 1266 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579 1272 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.w @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: sub.w @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 581 1280 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582 128a 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583 1294 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584 129e 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585 12a8 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586 12b2 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587 12bc 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588 12c8 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589 12d6 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590 12e2 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591 12ee 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592 12fa 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593 1308 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594 1316 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595 1324 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596 1330 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.w @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: sub.w @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 598 133e 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599 1344 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600 134a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601 1350 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602 1356 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603 135c 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604 1362 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605 136a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606 1374 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607 137c 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608 1384 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609 138c 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610 1396 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611 13a0 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612 13aa 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613 13b2 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.w @0x1234:16, ..."
+           } else {
+               fail "$testname: sub.w @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 615 13bc 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 615      56780130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616 13c4 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616      56783130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617 13cc 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617      5678B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618 13d4 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618      56788130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619 13dc 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619      5678A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620 13e4 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620      56789130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621 13ec 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      5678C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622 13f6 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      5678C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623 1402 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      5678D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624 140c 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      5678E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625 1416 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      5678F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626 1420 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      5678DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627 142c 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627      5678EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628 1438 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628      5678FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629 1444 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629      56784030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630 144e 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630      56784830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.w @0x12345678:32, ..."
+           } else {
+               fail "$testname: sub.w @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.w @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 632 145a 7A311234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 632      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633 1460 7A391234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634 1464 1AFA" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635 1466 010E0138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636 146e 010E3138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637 1476 010E8138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638 147e 010EB138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639 1486 010E9138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640 148e 010EA138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641 1496 010EC138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642 14a0 010EC938" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643 14ac 010ED238" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644 14b6 010EE238" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645 14c0 010EF238" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646 14ca 010EDA38" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647 14d6 010EEA38" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648 14e2 010EFA38" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649 14ee 010E4038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650 14f8 010E4838" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651 1504 010E0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652 150a 010E3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653 1510 010E8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654 1516 010EB130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655 151c 010E9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656 1522 010EA130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657 1528 010EC130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658 1530 010EC930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659 153a 010ED230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660 1542 010EE230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661 154a 010EF230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662 1552 010EDA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 663 155c 010EEA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 663      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 663      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664 1566 010EFA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 665 1570 010E4030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 665      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666 1578 010E4830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667              " {
+           if [expr $x == 83] then {
+               pass "$testname: sub.l #0x1234:16, ..."
+           } else {
+               fail "$testname: sub.l #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 668 1582 1AB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 669              " {
+           if [expr $x == 1] then {
+               pass "$testname: sub.l er3, er1"
+           } else {
+               fail "$testname: sub.l er3, er1 ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l er3, er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 670 1584 01090133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671 1588 01093133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672 158c 01098133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673 1590 0109B133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674 1594 01099133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675 1598 0109A133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676 159c 0109C133" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677 15a2 0109C933" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678 15aa 0109D233" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679 15b0 0109E233" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680 15b6 0109F233" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 681 15bc 0109DA33" { set x [expr $x+1]; exp_continue; }
+       -re ".* 681      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 682 15c4 0109EA33" { set x [expr $x+1]; exp_continue; }
+       -re ".* 682      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 683 15cc 0109FA33" { set x [expr $x+1]; exp_continue; }
+       -re ".* 683      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 684 15d4 01094033" { set x [expr $x+1]; exp_continue; }
+       -re ".* 684      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 685 15da 01094833" { set x [expr $x+1]; exp_continue; }
+       -re ".* 685      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 686              " {
+           if [expr $x == 26] then {
+               pass "$testname: sub.l er3, ..."
+           } else {
+               fail "$testname: sub.l er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 687 15e2 010A0331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 688 15e6 010A3331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689 15ea 010A8331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690 15ee 010AB331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691 15f2 010A9331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692 15f6 010AA331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693 15fa 010AC131" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694 1600 010AC931" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695 1608 010AD231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696 160e 010AE231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697 1614 010AF231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698 161a 010ADA31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 699 1622 010AEA31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 699      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700 162a 010AFA31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701 1632 010A4031" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702 1638 010A4831" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703              " {
+           if [expr $x == 26] then {
+               pass "$testname: sub.l ..., er1"
+           } else {
+               fail "$testname: sub.l ..., er1 ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l ..., er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 704 1640 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705 1646 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706 164c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707 1652 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708 1658 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709 165e 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710 1664 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711 166c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712 1676 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713 167e 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714 1686 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715 168e 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716 1698 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717 16a2 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718 16ac 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719 16b4 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.l @er3, ..."
+           } else {
+               fail "$testname: sub.l @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 721 16be 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722 16c4 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723 16ca 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724 16d0 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725 16d6 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726 16dc 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727 16e2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728 16ea 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729 16f4 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730 16fc 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731 1704 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732 170c 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733 1716 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734 1720 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735 172a 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736 1732 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.l @(0xc:2,er3), ..."
+           } else {
+               fail "$testname: sub.l @(0xc:2,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @(0xc:2,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 738 173c 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739 1742 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740 1748 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741 174e 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742 1754 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743 175a 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744 1760 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745 1768 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746 1772 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747 177a 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748 1782 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749 178a 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750 1794 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751 179e 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752 17a8 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753 17b0 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.l @-er3, ..."
+           } else {
+               fail "$testname: sub.l @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 755 17ba 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 755      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756 17c0 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757 17c6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758 17cc 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759 17d2 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760 17d8 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761 17de 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762 17e6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763 17f0 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764 17f8 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765 1800 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766 1808 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767 1812 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768 181c 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769 1826 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770 182e 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.l @er3+, ..."
+           } else {
+               fail "$testname: sub.l @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 772 1838 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773 183e 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774 1844 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775 184a 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776 1850 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777 1856 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778 185c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779 1864 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780 186e 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781 1876 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782 187e 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783 1886 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784 1890 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785 189a 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786 18a4 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787 18ac 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.l @er3-, ..."
+           } else {
+               fail "$testname: sub.l @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 789 18b6 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790 18bc 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791 18c2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792 18c8 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793 18ce 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794 18d4 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795 18da 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796 18e2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797 18ec 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798 18f4 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799 18fc 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800 1904 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801 190e 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802 1918 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803 1922 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804 192a 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805              " {
+           if [expr $x == 37] then {
+               pass "$testname: sub.l @+er3, ..."
+           } else {
+               fail "$testname: sub.l @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 806 1934 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807 193c 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808 1944 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809 194c 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810 1954 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811 195c 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812 1964 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813 196e 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814 197a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815 1984 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816 198e 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817 1998 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818 19a4 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819 19b0 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820 19bc 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821 19c6 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.l @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: sub.l @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 823 19d2 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824 19dc 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825 19e6 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826 19f0 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827 19fa 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828 1a04 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829 1a0e 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830 1a1a 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831 1a28 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832 1a34 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833 1a40 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834 1a4c 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835 1a5a 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836 1a68 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837 1a76 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838 1a82 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.l @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: sub.l @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 840 1a90 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841 1a98 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842 1aa0 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843 1aa8 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844 1ab0 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845 1ab8 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846 1ac0 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847 1aca 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848 1ad6 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849 1ae0 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850 1aea 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851 1af4 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852 1b00 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853 1b0c 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854 1b18 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855 1b22 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.l @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: sub.l @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 857 1b2e 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858 1b36 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859 1b3e 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860 1b46 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861 1b4e 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862 1b56 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863 1b5e 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864 1b68 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865 1b74 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866 1b7e 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867 1b88 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868 1b92 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869 1b9e 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870 1baa 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871 1bb6 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872 1bc0 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.l @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: sub.l @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 874 1bcc 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875 1bd4 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876 1bdc 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877 1be4 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878 1bec 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879 1bf4 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880 1bfc 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881 1c06 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882 1c12 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883 1c1c 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884 1c26 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885 1c30 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886 1c3c 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887 1c48 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888 1c54 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889 1c5e 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.l @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: sub.l @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 891 1c6a 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892 1c74 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893 1c7e 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894 1c88 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895 1c92 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896 1c9c 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897 1ca6 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898 1cb2 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899 1cc0 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900 1ccc 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901 1cd8 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902 1ce4 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903 1cf2 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904 1d00 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905 1d0e 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906 1d1a 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.l @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: sub.l @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 908 1d28 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909 1d32 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910 1d3c 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911 1d46 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912 1d50 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913 1d5a 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914 1d64 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915 1d70 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916 1d7e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917 1d8a 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918 1d96 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919 1da2 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920 1db0 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921 1dbe 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922 1dcc 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923 1dd8 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.l @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: sub.l @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 925 1de6 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926 1df0 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927 1dfa 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928 1e04 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929 1e0e 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930 1e18 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931 1e22 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932 1e2e 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933 1e3c 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934 1e48 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935 1e54 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936 1e60 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937 1e6e 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938 1e7c 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939 1e8a 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940 1e96 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.l @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: sub.l @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 942 1ea4 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942      12340130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943 1eac 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943      12343130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944 1eb4 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944      1234B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945 1ebc 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945      12348130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946 1ec4 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946      1234A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947 1ecc 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947      12349130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948 1ed4 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948      1234C130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949 1ede 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949      1234C930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950 1eea 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      1234D230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951 1ef4 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      1234E230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952 1efe 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      1234F230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953 1f08 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953      1234DA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954 1f14 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      1234EA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955 1f20 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955      1234FA30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956 1f2c 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956      12344030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957 1f36 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957      12344830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958              " {
+           if [expr $x == 42] then {
+               pass "$testname: sub.l @0x1234:16, ..."
+           } else {
+               fail "$testname: sub.l @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @0x1234:16, ... ($x)" }
+    }
+    # FIXME return early, expect bombs out on the next group.
+    return;
+    set x 0
+    expect {
+       -re ".* 959 1f42 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960 1f4c 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960      3130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961 1f56 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      B130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962 1f60 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962      8130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963 1f6a 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964 1f74 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      9130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965 1f7e 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      C1309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966 1f8a 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      C9309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967 1f98 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      D2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968 1fa4 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      E2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969 1fb0 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      F2309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970 1fbc 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970      DA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 971 1fca 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 971      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 971      EA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 971      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972 1fd8 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972      FA309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 973 1fe6 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 973      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 973      40309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 974 1ff2 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 974      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 974      48309ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 974      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 975              " {
+           if [expr $x == 53] then {
+               pass "$testname: sub.l @0x12345678:32, ..."
+           } else {
+               fail "$testname: sub.l @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: sub.l @0x12345678:32, ... ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t04_sub_test
+}
+
diff --git a/gas/testsuite/gas/h8300/t04_sub.s b/gas/testsuite/gas/h8300/t04_sub.s
new file mode 100644 (file)
index 0000000..c9c064c
--- /dev/null
@@ -0,0 +1,976 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;arith_1\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+_start:\r
+    sub.b #0x12:8,@er1                       ;7d10a112\r
+    sub.b #0x12:8,@(0x3:2,er1)                 ;01776818a112\r
+    sub.b #0x12:8,@er1+                      ;01746c18a112\r
+    sub.b #0x12:8,@-er1                      ;01776c18a112\r
+    sub.b #0x12:8,@+er1                      ;01756c18a112\r
+    sub.b #0x12:8,@er1-                      ;01766c18a112\r
+    sub.b #0x12:8,@(0x1234:16,er1)                ;01746e181234a112\r
+    sub.b #0x12:8,@(0x12345678:32,er1)                ;78146a2812345678a112\r
+    sub.b #0x12:8,@(0x1234:16,r2l.b)              ;01756e281234a112\r
+    sub.b #0x12:8,@(0x1234:16,r2.w)              ;01766e281234a112\r
+    sub.b #0x12:8,@(0x1234:16,er2.l)              ;01776e281234a112\r
+    sub.b #0x12:8,@(0x12345678:32,r2l.b)              ;78256a2812345678a112\r
+    sub.b #0x12:8,@(0x12345678:32,r2.w)              ;78266a2812345678a112\r
+    sub.b #0x12:8,@(0x12345678:32,er2.l)              ;78276a2812345678a112\r
+    sub.b #0x12:8,@0xffffff9a:8                      ;7f9aa112\r
+    sub.b #0x12:8,@0x1234:16                     ;6a181234a112\r
+    sub.b #0x12:8,@0x12345678:32                     ;6a3812345678a112\r
+\r
+    sub.b r3h,r1h                           ;1831\r
+\r
+    sub.b r3h,@er1                         ;7d101830\r
+    sub.b r3h,@(0x3:2,er1)                   ;01793133\r
+    sub.b r3h,@er1+                        ;01798133\r
+    sub.b r3h,@-er1                        ;0179b133\r
+    sub.b r3h,@+er1                        ;01799133\r
+    sub.b r3h,@er1-                        ;0179a133\r
+    sub.b r3h,@(0x1234:16,er1)                  ;0179c1331234\r
+    sub.b r3h,@(0x12345678:32,er1)                  ;0179c93312345678\r
+    sub.b r3h,@(0x1234:16,r2l.b)                ;0179d2331234\r
+    sub.b r3h,@(0x1234:16,r2.w)                ;0179e2331234\r
+    sub.b r3h,@(0x1234:16,er2.l)                ;0179f2331234\r
+    sub.b r3h,@(0x12345678:32,r2l.b)                ;0179da3312345678\r
+    sub.b r3h,@(0x12345678:32,r2.w)                ;0179ea3312345678\r
+    sub.b r3h,@(0x12345678:32,er2.l)                ;0179fa3312345678\r
+    sub.b r3h,@0xffffff12:8                        ;7f121830\r
+    sub.b r3h,@0x1234:16                       ;6a1812341830\r
+    sub.b r3h,@0x12345678:32                        ;6a38123456781830\r
+\r
+    sub.b @er3,r1h                         ;7c301801\r
+    sub.b @(0x3:2,er3),r1h                  ;017a3331\r
+    sub.b @er3+,r1h                       ;017a8331\r
+    sub.b @-er3,r1h                       ;017ab331\r
+    sub.b @+er3,r1h                       ;017a9331\r
+    sub.b @er3-,r1h                       ;017aa331\r
+    sub.b @(0x1234:16,er1),r1h                  ;017ac1311234\r
+    sub.b @(0x12345678:32,er1),r1h                  ;017ac93112345678\r
+    sub.b @(0x1234:16,r2l.b),r1h                ;017ad2311234\r
+    sub.b @(0x1234:16,r2.w),r1h                ;017ae2311234\r
+    sub.b @(0x1234:16,er2.l),r1h                ;017af2311234\r
+    sub.b @(0x12345678:32,r2l.b),r1h                ;017ada3112345678\r
+    sub.b @(0x12345678:32,r2.w),r1h                ;017aea3112345678\r
+    sub.b @(0x12345678:32,er2.l),r1h                ;017afa3112345678\r
+    sub.b @0xffffff12:8,r1h                        ;7e121801\r
+    sub.b @0x1234:16,r1h                       ;6a1012341801\r
+    sub.b @0x12345678:32,r1h                       ;6a30123456781801\r
+\r
+    sub.b @er3,@er1                                ;7c350130\r
+    sub.b @er3,@(3:2,er1)                          ;7c353130\r
+    sub.b @er3,@-er1                               ;7c35b130\r
+    sub.b @er3,@er1+                               ;7c358130\r
+    sub.b @er3,@er1-                               ;7c35a130\r
+    sub.b @er3,@+er1                               ;7c359130\r
+    sub.b @er3,@(0xffff9abc:16,er1)                ;7c35c1309abc\r
+    sub.b @er3,@(0x9abcdef0:32,er1)                ;7c35c9309abcdef0\r
+    sub.b @er3,@(0xffff9abc:16,r2l.b)              ;7c35d2309abc\r
+    sub.b @er3,@(0xffff9abc:16,r2.w)              ;7c35e2309abc\r
+    sub.b @er3,@(0xffff9abc:16,er2.l)              ;7c35f2309abc\r
+    sub.b @er3,@(0x9abcdef0:32,r2l.b)              ;7c35da309abcdef0\r
+    sub.b @er3,@(0x9abcdef0:32,r2.w)              ;7c35ea309abcdef0\r
+    sub.b @er3,@(0x9abcdef0:32,er2.l)              ;7c35fa309abcdef0\r
+    sub.b @er3,@0xffff9abc:16                      ;7c3540309abc\r
+    sub.b @er3,@0x9abcdef0:32                      ;7c3548309abcdef0\r
+\r
+    sub.b @-er3,@er1                               ;01776c3c0130\r
+    sub.b @-er3,@(3:2,er1)                         ;01776c3c3130\r
+    sub.b @-er3,@-er1                              ;01776c3cb130\r
+    sub.b @-er3,@er1+                              ;01776c3c8130\r
+    sub.b @-er3,@er1-                              ;01776c3ca130\r
+    sub.b @-er3,@+er1                              ;01776c3c9130\r
+    sub.b @-er3,@(0xffff9abc:16,er1)               ;01776c3cc1309abc\r
+    sub.b @-er3,@(0x9abcdef0:32,er1)               ;01776c3cc9309abcdef0\r
+    sub.b @-er3,@(0xffff9abc:16,r2l.b)             ;01776c3cd2309abc\r
+    sub.b @-er3,@(0xffff9abc:16,r2.w)             ;01776c3ce2309abc\r
+    sub.b @-er3,@(0xffff9abc:16,er2.l)             ;01776c3cf2309abc\r
+    sub.b @-er3,@(0x9abcdef0:32,r2l.b)             ;01776c3cda309abcdef0\r
+    sub.b @-er3,@(0x9abcdef0:32,r2.w)             ;01776c3cea309abcdef0\r
+    sub.b @-er3,@(0x9abcdef0:32,er2.l)             ;01776c3cfa309abcdef0\r
+    sub.b @-er3,@0xffff9abc:16                     ;01776c3c40309abc\r
+    sub.b @-er3,@0x9abcdef0:32                     ;01776c3c48309abcdef0\r
+\r
+    sub.b @er3+,@er1                               ;01746c3c0130\r
+    sub.b @er3+,@(3:2,er1)                         ;01746c3c3130\r
+    sub.b @er3+,@-er1                              ;01746c3cb130\r
+    sub.b @er3+,@er1+                              ;01746c3c8130\r
+    sub.b @er3+,@er1-                              ;01746c3ca130\r
+    sub.b @er3+,@+er1                              ;01746c3c9130\r
+    sub.b @er3+,@(0xffff9abc:16,er1)               ;01746c3cc1309abc\r
+    sub.b @er3+,@(0x9abcdef0:32,er1)               ;01746c3cc9309abcdef0\r
+    sub.b @er3+,@(0xffff9abc:16,r2l.b)             ;01746c3cd2309abc\r
+    sub.b @er3+,@(0xffff9abc:16,r2.w)             ;01746c3ce2309abc\r
+    sub.b @er3+,@(0xffff9abc:16,er2.l)             ;01746c3cf2309abc\r
+    sub.b @er3+,@(0x9abcdef0:32,r2l.b)             ;01746c3cda309abcdef0\r
+    sub.b @er3+,@(0x9abcdef0:32,r2.w)             ;01746c3cea309abcdef0\r
+    sub.b @er3+,@(0x9abcdef0:32,er2.l)             ;01746c3cfa309abcdef0\r
+    sub.b @er3+,@0xffff9abc:16                     ;01746c3c40309abc\r
+    sub.b @er3+,@0x9abcdef0:32                     ;01746c3c48309abcdef0\r
+\r
+    sub.b @er3-,@er1                               ;01766c3c0130\r
+    sub.b @er3-,@(3:2,er1)                         ;01766c3c3130\r
+    sub.b @er3-,@-er1                              ;01766c3cb130\r
+    sub.b @er3-,@er1+                              ;01766c3c8130\r
+    sub.b @er3-,@er1-                              ;01766c3ca130\r
+    sub.b @er3-,@+er1                              ;01766c3c9130\r
+    sub.b @er3-,@(0xffff9abc:16,er1)               ;01766c3cc1309abc\r
+    sub.b @er3-,@(0x9abcdef0:32,er1)               ;01766c3cc9309abcdef0\r
+    sub.b @er3-,@(0xffff9abc:16,r2l.b)             ;01766c3cd2309abc\r
+    sub.b @er3-,@(0xffff9abc:16,r2.w)             ;01766c3ce2309abc\r
+    sub.b @er3-,@(0xffff9abc:16,er2.l)             ;01766c3cf2309abc\r
+    sub.b @er3-,@(0x9abcdef0:32,r2l.b)             ;01766c3cda309abcdef0\r
+    sub.b @er3-,@(0x9abcdef0:32,r2.w)             ;01766c3cea309abcdef0\r
+    sub.b @er3-,@(0x9abcdef0:32,er2.l)             ;01766c3cfa309abcdef0\r
+    sub.b @er3-,@0xffff9abc:16                     ;01766c3c40309abc\r
+    sub.b @er3-,@0x9abcdef0:32                     ;01766c3c48309abcdef0\r
+\r
+    sub.b @+er3,@er1                               ;01756c3c0130\r
+    sub.b @+er3,@(3:2,er1)                         ;01756c3c3130\r
+    sub.b @+er3,@-er1                              ;01756c3cb130\r
+    sub.b @+er3,@er1+                              ;01756c3c8130\r
+    sub.b @+er3,@er1-                              ;01756c3ca130\r
+    sub.b @+er3,@+er1                              ;01756c3c9130\r
+    sub.b @+er3,@(0xffff9abc:16,er1)               ;01756c3cc1309abc\r
+    sub.b @+er3,@(0x9abcdef0:32,er1)               ;01756c3cc9309abcdef0\r
+    sub.b @+er3,@(0xffff9abc:16,r2l.b)             ;01756c3cd2309abc\r
+    sub.b @+er3,@(0xffff9abc:16,r2.w)             ;01756c3ce2309abc\r
+    sub.b @+er3,@(0xffff9abc:16,er2.l)             ;01756c3cf2309abc\r
+    sub.b @+er3,@(0x9abcdef0:32,r2l.b)             ;01756c3cda309abcdef0\r
+    sub.b @+er3,@(0x9abcdef0:32,r2.w)             ;01756c3cea309abcdef0\r
+    sub.b @+er3,@(0x9abcdef0:32,er2.l)             ;01756c3cfa309abcdef0\r
+    sub.b @+er3,@0xffff9abc:16                     ;01756c3c40309abc\r
+    sub.b @+er3,@0x9abcdef0:32                     ;01756c3c48309abcdef0\r
+\r
+    sub.b @(0x1234:16,er3),@er1                         ;01746e3c12340130\r
+    sub.b @(0x1234:16,er3),@(3:2,er1)                   ;01746e3c12343130\r
+    sub.b @(0x1234:16,er3),@-er1                        ;01746e3c1234b130\r
+    sub.b @(0x1234:16,er3),@er1+                        ;01746e3c12348130\r
+    sub.b @(0x1234:16,er3),@er1-                        ;01746e3c1234a130\r
+    sub.b @(0x1234:16,er3),@+er1                        ;01746e3c12349130\r
+    sub.b @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01746e3c1234c1309abc\r
+    sub.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01746e3c1234c9309abcdef0\r
+    sub.b @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01746e3c1234d2309abc\r
+    sub.b @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01746e3c1234e2309abc\r
+    sub.b @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01746e3c1234f2309abc\r
+    sub.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01746e3c1234da309abcdef0\r
+    sub.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01746e3c1234ea309abcdef0\r
+    sub.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01746e3c1234fa309abcdef0\r
+    sub.b @(0x1234:16,er3),@0xffff9abc:16               ;01746e3c123440309abc\r
+    sub.b @(0x1234:16,er3),@0x9abcdef0:32               ;01746e3c123448309abcdef0\r
+\r
+    sub.b @(0x12345678:32,er3),@er1                         ;78346a2c123456780130\r
+    sub.b @(0x12345678:32,er3),@(3:2,er1)                   ;78346a2c123456783130\r
+    sub.b @(0x12345678:32,er3),@-er1                        ;78346a2c12345678b130\r
+    sub.b @(0x12345678:32,er3),@er1+                        ;78346a2c123456788130\r
+    sub.b @(0x12345678:32,er3),@er1-                        ;78346a2c12345678a130\r
+    sub.b @(0x12345678:32,er3),@+er1                        ;78346a2c123456789130\r
+    sub.b @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78346a2c12345678c1309abc\r
+    sub.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78346a2c12345678c9309abcdef0\r
+    sub.b @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78346a2c12345678d2309abc\r
+    sub.b @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78346a2c12345678e2309abc\r
+    sub.b @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78346a2c12345678f2309abc\r
+    sub.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78346a2c12345678da309abcdef0\r
+    sub.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78346a2c12345678ea309abcdef0\r
+    sub.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78346a2c12345678fa309abcdef0\r
+    sub.b @(0x12345678:32,er3),@0xffff9abc:16               ;78346a2c1234567840309abc\r
+    sub.b @(0x12345678:32,er3),@0x9abcdef0:32               ;78346a2c1234567848309abcdef0\r
+\r
+    sub.b @(0x1234:16,r3l.b),@er1                       ;01756e3c12340130\r
+    sub.b @(0x1234:16,r3l.b),@(3:2,er1)                 ;01756e3c12343130\r
+    sub.b @(0x1234:16,r3l.b),@-er1                      ;01756e3c1234b130\r
+    sub.b @(0x1234:16,r3l.b),@er1+                      ;01756e3c12348130\r
+    sub.b @(0x1234:16,r3l.b),@er1-                      ;01756e3c1234a130\r
+    sub.b @(0x1234:16,r3l.b),@+er1                      ;01756e3c12349130\r
+    sub.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01756e3c1234c1309abc\r
+    sub.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01756e3c1234c9309abcdef0\r
+    sub.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01756e3c1234d2309abc\r
+    sub.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01756e3c1234e2309abc\r
+    sub.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01756e3c1234f2309abc\r
+    sub.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01756e3c1234da309abcdef0\r
+    sub.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01756e3c1234ea309abcdef0\r
+    sub.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01756e3c1234fa309abcdef0\r
+    sub.b @(0x1234:16,r3l.b),@0xffff9abc:16             ;01756e3c123440309abc\r
+    sub.b @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01756e3c123448309abcdef0\r
+\r
+    sub.b @(0x1234:16,r3.w),@er1                       ;01766e3c12340130\r
+    sub.b @(0x1234:16,r3.w),@(3:2,er1)                 ;01766e3c12343130\r
+    sub.b @(0x1234:16,r3.w),@-er1                      ;01766e3c1234b130\r
+    sub.b @(0x1234:16,r3.w),@er1+                      ;01766e3c12348130\r
+    sub.b @(0x1234:16,r3.w),@er1-                      ;01766e3c1234a130\r
+    sub.b @(0x1234:16,r3.w),@+er1                      ;01766e3c12349130\r
+    sub.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01766e3c1234c1309abc\r
+    sub.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01766e3c1234c9309abcdef0\r
+    sub.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01766e3c1234d2309abc\r
+    sub.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01766e3c1234e2309abc\r
+    sub.b @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01766e3c1234f2309abc\r
+    sub.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01766e3c1234da309abcdef0\r
+    sub.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01766e3c1234ea309abcdef0\r
+    sub.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01766e3c1234fa309abcdef0\r
+    sub.b @(0x1234:16,r3.w),@0xffff9abc:16             ;01766e3c123440309abc\r
+    sub.b @(0x1234:16,r3.w),@0x9abcdef0:32             ;01766e3c123448309abcdef0\r
+\r
+    sub.b @(0x1234:16,er3.l),@er1                       ;01776e3c12340130\r
+    sub.b @(0x1234:16,er3.l),@(3:2,er1)                 ;01776e3c12343130\r
+    sub.b @(0x1234:16,er3.l),@-er1                      ;01776e3c1234b130\r
+    sub.b @(0x1234:16,er3.l),@er1+                      ;01776e3c12348130\r
+    sub.b @(0x1234:16,er3.l),@er1-                      ;01776e3c1234a130\r
+    sub.b @(0x1234:16,er3.l),@+er1                      ;01776e3c12349130\r
+    sub.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01776e3c1234c1309abc\r
+    sub.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01776e3c1234c9309abcdef0\r
+    sub.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01776e3c1234d2309abc\r
+    sub.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01776e3c1234e2309abc\r
+    sub.b @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01776e3c1234f2309abc\r
+    sub.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01776e3c1234da309abcdef0\r
+    sub.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01776e3c1234ea309abcdef0\r
+    sub.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01776e3c1234fa309abcdef0\r
+    sub.b @(0x1234:16,er3.l),@0xffff9abc:16             ;01776e3c123440309abc\r
+    sub.b @(0x1234:16,er3.l),@0x9abcdef0:32             ;01776e3c123448309abcdef0\r
+\r
+    sub.b @(0x12345678:32,r3l.b),@er1                       ;78356a2c123456780130\r
+    sub.b @(0x12345678:32,r3l.b),@(3:2,er1)                 ;78356a2c123456783130\r
+    sub.b @(0x12345678:32,r3l.b),@-er1                      ;78356a2c12345678b130\r
+    sub.b @(0x12345678:32,r3l.b),@er1+                      ;78356a2c123456788130\r
+    sub.b @(0x12345678:32,r3l.b),@er1-                      ;78356a2c12345678a130\r
+    sub.b @(0x12345678:32,r3l.b),@+er1                      ;78356a2c123456789130\r
+    sub.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78356a2c12345678c1309abc\r
+    sub.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78356a2c12345678c9309abcdef0\r
+    sub.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78356a2c12345678d2309abc\r
+    sub.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78356a2c12345678e2309abc\r
+    sub.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78356a2c12345678f2309abc\r
+    sub.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78356a2c12345678da309abcdef0\r
+    sub.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78356a2c12345678ea309abcdef0\r
+    sub.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78356a2c12345678fa309abcdef0\r
+    sub.b @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78356a2c1234567840309abc\r
+    sub.b @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78356a2c1234567848309abcdef0\r
+\r
+    sub.b @(0x12345678:32,r3.w),@er1                       ;78366a2c123456780130\r
+    sub.b @(0x12345678:32,r3.w),@(3:2,er1)                 ;78366a2c123456783130\r
+    sub.b @(0x12345678:32,r3.w),@-er1                      ;78366a2c12345678b130\r
+    sub.b @(0x12345678:32,r3.w),@er1+                      ;78366a2c123456788130\r
+    sub.b @(0x12345678:32,r3.w),@er1-                      ;78366a2c12345678a130\r
+    sub.b @(0x12345678:32,r3.w),@+er1                      ;78366a2c123456789130\r
+    sub.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78366a2c12345678c1309abc\r
+    sub.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78366a2c12345678c9309abcdef0\r
+    sub.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78366a2c12345678d2309abc\r
+    sub.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78366a2c12345678e2309abc\r
+    sub.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78366a2c12345678f2309abc\r
+    sub.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78366a2c12345678da309abcdef0\r
+    sub.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78366a2c12345678ea309abcdef0\r
+    sub.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78366a2c12345678fa309abcdef0\r
+    sub.b @(0x12345678:32,r3.w),@0xffff9abc:16             ;78366a2c1234567840309abc\r
+    sub.b @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78366a2c1234567848309abcdef0\r
+\r
+    sub.b @(0x12345678:32,er3.l),@er1                       ;78376a2c123456780130\r
+    sub.b @(0x12345678:32,er3.l),@(3:2,er1)                 ;78376a2c123456783130\r
+    sub.b @(0x12345678:32,er3.l),@-er1                      ;78376a2c12345678b130\r
+    sub.b @(0x12345678:32,er3.l),@er1+                      ;78376a2c123456788130\r
+    sub.b @(0x12345678:32,er3.l),@er1-                      ;78376a2c12345678a130\r
+    sub.b @(0x12345678:32,er3.l),@+er1                      ;78376a2c123456789130\r
+    sub.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78376a2c12345678c1309abc\r
+    sub.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78376a2c12345678c9309abcdef0\r
+    sub.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78376a2c12345678d2309abc\r
+    sub.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78376a2c12345678e2309abc\r
+    sub.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78376a2c12345678f2309abc\r
+    sub.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78376a2c12345678da309abcdef0\r
+    sub.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78376a2c12345678ea309abcdef0\r
+    sub.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78376a2c12345678fa309abcdef0\r
+    sub.b @(0x12345678:32,er3.l),@0xffff9abc:16             ;78376a2c1234567840309abc\r
+    sub.b @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78376a2c1234567848309abcdef0\r
+\r
+    sub.b @0x1234:16,@er1                              ;6a1512340130\r
+    sub.b @0x1234:16,@(3:2,er1)                        ;6a1512343130\r
+    sub.b @0x1234:16,@-er1                             ;6a151234b130\r
+    sub.b @0x1234:16,@er1+                             ;6a1512348130\r
+    sub.b @0x1234:16,@er1-                             ;6a151234a130\r
+    sub.b @0x1234:16,@+er1                             ;6a1512349130\r
+    sub.b @0x1234:16,@(0xffff9abc:16,er1)              ;6a151234c1309abc\r
+    sub.b @0x1234:16,@(0x9abcdef0:32,er1)              ;6a151234c9309abcdef0\r
+    sub.b @0x1234:16,@(0xffff9abc:16,r2l.b)            ;6a151234d2309abc\r
+    sub.b @0x1234:16,@(0xffff9abc:16,r2.w)            ;6a151234e2309abc\r
+    sub.b @0x1234:16,@(0xffff9abc:16,er2.l)            ;6a151234f2309abc\r
+    sub.b @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;6a151234da309abcdef0\r
+    sub.b @0x1234:16,@(0x9abcdef0:32,r2.w)            ;6a151234ea309abcdef0\r
+    sub.b @0x1234:16,@(0x9abcdef0:32,er2.l)            ;6a151234fa309abcdef0\r
+    sub.b @0x1234:16,@0xffff9abc:16                    ;6a15123440309abc\r
+    sub.b @0x1234:16,@0x9abcdef0:32                    ;6a15123448309abcdef0\r
+\r
+    sub.b @0x12345678:32,@er1                              ;6a35123456780130\r
+    sub.b @0x12345678:32,@(3:2,er1)                        ;6a35123456783130\r
+    sub.b @0x12345678:32,@-er1                             ;6a3512345678b130\r
+    sub.b @0x12345678:32,@er1+                             ;6a35123456788130\r
+    sub.b @0x12345678:32,@er1-                             ;6a3512345678a130\r
+    sub.b @0x12345678:32,@+er1                             ;6a35123456789130\r
+    sub.b @0x12345678:32,@(0xffff9abc:16,er1)              ;6a3512345678c1309abc\r
+    sub.b @0x12345678:32,@(0x9abcdef0:32,er1)              ;6a3512345678c9309abcdef0\r
+    sub.b @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;6a3512345678d2309abc\r
+    sub.b @0x12345678:32,@(0xffff9abc:16,r2.w)            ;6a3512345678e2309abc\r
+    sub.b @0x12345678:32,@(0xffff9abc:16,er2.l)            ;6a3512345678f2309abc\r
+    sub.b @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;6a3512345678da309abcdef0\r
+    sub.b @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;6a3512345678ea309abcdef0\r
+    sub.b @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;6a3512345678fa309abcdef0\r
+    sub.b @0x12345678:32,@0xffff9abc:16                    ;6a351234567840309abc\r
+    sub.b @0x12345678:32,@0x9abcdef0:32                    ;6a351234567848309abcdef0\r
+\r
+    sub.w #0x1234:16,r1                       ;79311234\r
+    sub.w #7:3,r2                         ;1a72\r
+    sub.w #0x1234:16,@er1                      ;015e01301234\r
+    sub.w #0x1234:16,@(0x6:2,er1)             ;015e31301234\r
+    sub.w #0x1234:16,@er1+                     ;015e81301234\r
+    sub.w #0x1234:16,@-er1                     ;015eb1301234\r
+    sub.w #0x1234:16,@+er1                     ;015e91301234\r
+    sub.w #0x1234:16,@er1-                     ;015ea1301234\r
+    sub.w #0x1234:16,@(0xffff9abc:16,er1)               ;015ec1309abc1234\r
+    sub.w #0x1234:16,@(0x9abcdef0:32,er1)               ;015ec9309abcdef01234\r
+    sub.w #0x1234:16,@(0xffff9abc:16,r2l.b)             ;015ed2309abc1234\r
+    sub.w #0x1234:16,@(0xffff9abc:16,r2.w)             ;015ee2309abc1234\r
+    sub.w #0x1234:16,@(0xffff9abc:16,er2.l)             ;015ef2309abc1234\r
+    sub.w #0x1234:16,@(0x9abcdef0:32,r2l.b)             ;015eda309abcdef01234\r
+    sub.w #0x1234:16,@(0x9abcdef0:32,r2.w)             ;015eea309abcdef01234\r
+    sub.w #0x1234:16,@(0x9abcdef0:32,er2.l)             ;015efa309abcdef01234\r
+    sub.w #0x1234:16,@0xffff9abc:16                     ;015e40309abc1234\r
+    sub.w #0x1234:16,@0x9abcdef0:32                     ;015e48309abcdef01234\r
+\r
+    sub.w #0x7:3,@er1                       ;7d901a70\r
+    sub.w #0x7:3,@0x1234:16                     ;6b1812341a70\r
+    sub.w #0x7:3,@0x12345678:32                     ;6b38123456781a70\r
+\r
+    sub.w r3,r1                           ;1931\r
+\r
+    sub.w r3,@er1                         ;7d901930\r
+    sub.w r3,@(0x6:2,er1)                ;01593133\r
+    sub.w r3,@er1+                        ;01598133\r
+    sub.w r3,@-er1                        ;0159b133\r
+    sub.w r3,@+er1                        ;01599133\r
+    sub.w r3,@er1-                        ;0159a133\r
+    sub.w r3,@(0x1234:16,er1)                  ;0159c1331234\r
+    sub.w r3,@(0x12345678:32,er1)                  ;0159c93312345678\r
+    sub.w r3,@(0x1234:16,r2l.b)                ;0159d2331234\r
+    sub.w r3,@(0x1234:16,r2.w)                ;0159e2331234\r
+    sub.w r3,@(0x1234:16,er2.l)                ;0159f2331234\r
+    sub.w r3,@(0x12345678:32,r2l.b)                ;0159da3312345678\r
+    sub.w r3,@(0x12345678:32,r2.w)                ;0159ea3312345678\r
+    sub.w r3,@(0x12345678:32,er2.l)                ;0159fa3312345678\r
+    sub.w r3,@0x1234:16                       ;6b1812341930\r
+    sub.w r3,@0x12345678:32                       ;6b38123456781930\r
+\r
+    sub.w @er3,r1                         ;7cb01901\r
+    sub.w @(0x6:2,er3),r1               ;015a3331\r
+    sub.w @er3+,r1                       ;015a8331\r
+    sub.w @-er3,r1                       ;015ab331\r
+    sub.w @+er3,r1                       ;015a9331\r
+    sub.w @er3-,r1                       ;015aa331\r
+    sub.w @(0x1234:16,er1),r1                  ;015ac1311234\r
+    sub.w @(0x12345678:32,er1),r1                  ;015ac93112345678\r
+    sub.w @(0x1234:16,r2l.b),r1                ;015ad2311234\r
+    sub.w @(0x1234:16,r2.w),r1                ;015ae2311234\r
+    sub.w @(0x1234:16,er2.l),r1                ;015af2311234\r
+    sub.w @(0x12345678:32,r2l.b),r1                ;015ada3112345678\r
+    sub.w @(0x12345678:32,r2.w),r1                ;015aea3112345678\r
+    sub.w @(0x12345678:32,er2.l),r1                ;015afa3112345678\r
+    sub.w @0x1234:16,r1                       ;6b1012341901\r
+    sub.w @0x12345678:32,r1                       ;6b30123456781901\r
+\r
+    sub.w @er3,@er1                                ;7cb50130\r
+    sub.w @er3,@(6:2,er1)                          ;7cb53130\r
+    sub.w @er3,@-er1                               ;7cb5b130\r
+    sub.w @er3,@er1+                               ;7cb58130\r
+    sub.w @er3,@er1-                               ;7cb5a130\r
+    sub.w @er3,@+er1                               ;7cb59130\r
+    sub.w @er3,@(0xffff9abc:16,er1)                ;7cb5c1309abc\r
+    sub.w @er3,@(0x9abcdef0:32,er1)                ;7cb5c9309abcdef0\r
+    sub.w @er3,@(0xffff9abc:16,r2l.b)              ;7cb5d2309abc\r
+    sub.w @er3,@(0xffff9abc:16,r2.w)              ;7cb5e2309abc\r
+    sub.w @er3,@(0xffff9abc:16,er2.l)              ;7cb5f2309abc\r
+    sub.w @er3,@(0x9abcdef0:32,r2l.b)              ;7cb5da309abcdef0\r
+    sub.w @er3,@(0x9abcdef0:32,r2.w)              ;7cb5ea309abcdef0\r
+    sub.w @er3,@(0x9abcdef0:32,er2.l)              ;7cb5fa309abcdef0\r
+    sub.w @er3,@0xffff9abc:16                      ;7cb540309abc\r
+    sub.w @er3,@0x9abcdef0:32                      ;7cb548309abcdef0\r
+\r
+    sub.w @-er3,@er1                               ;01576d3c0130\r
+    sub.w @-er3,@(6:2,er1)                         ;01576d3c3130\r
+    sub.w @-er3,@-er1                              ;01576d3cb130\r
+    sub.w @-er3,@er1+                              ;01576d3c8130\r
+    sub.w @-er3,@er1-                              ;01576d3ca130\r
+    sub.w @-er3,@+er1                              ;01576d3c9130\r
+    sub.w @-er3,@(0xffff9abc:16,er1)               ;01576d3cc1309abc\r
+    sub.w @-er3,@(0x9abcdef0:32,er1)               ;01576d3cc9309abcdef0\r
+    sub.w @-er3,@(0xffff9abc:16,r2l.b)             ;01576d3cd2309abc\r
+    sub.w @-er3,@(0xffff9abc:16,r2.w)             ;01576d3ce2309abc\r
+    sub.w @-er3,@(0xffff9abc:16,er2.l)             ;01576d3cf2309abc\r
+    sub.w @-er3,@(0x9abcdef0:32,r2l.b)             ;01576d3cda309abcdef0\r
+    sub.w @-er3,@(0x9abcdef0:32,r2.w)             ;01576d3cea309abcdef0\r
+    sub.w @-er3,@(0x9abcdef0:32,er2.l)             ;01576d3cfa309abcdef0\r
+    sub.w @-er3,@0xffff9abc:16                     ;01576d3c40309abc\r
+    sub.w @-er3,@0x9abcdef0:32                     ;01576d3c48309abcdef0\r
+\r
+    sub.w @er3+,@er1                               ;01546d3c0130\r
+    sub.w @er3+,@(6:2,er1)                         ;01546d3c3130\r
+    sub.w @er3+,@-er1                              ;01546d3cb130\r
+    sub.w @er3+,@er1+                              ;01546d3c8130\r
+    sub.w @er3+,@er1-                              ;01546d3ca130\r
+    sub.w @er3+,@+er1                              ;01546d3c9130\r
+    sub.w @er3+,@(0xffff9abc:16,er1)               ;01546d3cc1309abc\r
+    sub.w @er3+,@(0x9abcdef0:32,er1)               ;01546d3cc9309abcdef0\r
+    sub.w @er3+,@(0xffff9abc:16,r2l.b)             ;01546d3cd2309abc\r
+    sub.w @er3+,@(0xffff9abc:16,r2.w)             ;01546d3ce2309abc\r
+    sub.w @er3+,@(0xffff9abc:16,er2.l)             ;01546d3cf2309abc\r
+    sub.w @er3+,@(0x9abcdef0:32,r2l.b)             ;01546d3cda309abcdef0\r
+    sub.w @er3+,@(0x9abcdef0:32,r2.w)             ;01546d3cea309abcdef0\r
+    sub.w @er3+,@(0x9abcdef0:32,er2.l)             ;01546d3cfa309abcdef0\r
+    sub.w @er3+,@0xffff9abc:16                     ;01546d3c40309abc\r
+    sub.w @er3+,@0x9abcdef0:32                     ;01546d3c48309abcdef0\r
+\r
+    sub.w @er3-,@er1                               ;01566d3c0130\r
+    sub.w @er3-,@(6:2,er1)                         ;01566d3c3130\r
+    sub.w @er3-,@-er1                              ;01566d3cb130\r
+    sub.w @er3-,@er1+                              ;01566d3c8130\r
+    sub.w @er3-,@er1-                              ;01566d3ca130\r
+    sub.w @er3-,@+er1                              ;01566d3c9130\r
+    sub.w @er3-,@(0xffff9abc:16,er1)               ;01566d3cc1309abc\r
+    sub.w @er3-,@(0x9abcdef0:32,er1)               ;01566d3cc9309abcdef0\r
+    sub.w @er3-,@(0xffff9abc:16,r2l.b)             ;01566d3cd2309abc\r
+    sub.w @er3-,@(0xffff9abc:16,r2.w)             ;01566d3ce2309abc\r
+    sub.w @er3-,@(0xffff9abc:16,er2.l)             ;01566d3cf2309abc\r
+    sub.w @er3-,@(0x9abcdef0:32,r2l.b)             ;01566d3cda309abcdef0\r
+    sub.w @er3-,@(0x9abcdef0:32,r2.w)             ;01566d3cea309abcdef0\r
+    sub.w @er3-,@(0x9abcdef0:32,er2.l)             ;01566d3cfa309abcdef0\r
+    sub.w @er3-,@0xffff9abc:16                     ;01566d3c40309abc\r
+    sub.w @er3-,@0x9abcdef0:32                     ;01566d3c48309abcdef0\r
+\r
+    sub.w @+er3,@er1                               ;01556d3c0130\r
+    sub.w @+er3,@(6:2,er1)                         ;01556d3c3130\r
+    sub.w @+er3,@-er1                              ;01556d3cb130\r
+    sub.w @+er3,@er1+                              ;01556d3c8130\r
+    sub.w @+er3,@er1-                              ;01556d3ca130\r
+    sub.w @+er3,@+er1                              ;01556d3c9130\r
+    sub.w @+er3,@(0xffff9abc:16,er1)               ;01556d3cc1309abc\r
+    sub.w @+er3,@(0x9abcdef0:32,er1)               ;01556d3cc9309abcdef0\r
+    sub.w @+er3,@(0xffff9abc:16,r2l.b)             ;01556d3cd2309abc\r
+    sub.w @+er3,@(0xffff9abc:16,r2.w)             ;01556d3ce2309abc\r
+    sub.w @+er3,@(0xffff9abc:16,er2.l)             ;01556d3cf2309abc\r
+    sub.w @+er3,@(0x9abcdef0:32,r2l.b)             ;01556d3cda309abcdef0\r
+    sub.w @+er3,@(0x9abcdef0:32,r2.w)             ;01556d3cea309abcdef0\r
+    sub.w @+er3,@(0x9abcdef0:32,er2.l)             ;01556d3cfa309abcdef0\r
+    sub.w @+er3,@0xffff9abc:16                     ;01556d3c40309abc\r
+    sub.w @+er3,@0x9abcdef0:32                     ;01556d3c48309abcdef0\r
+\r
+    sub.w @(0x1234:16,er3),@er1                         ;01546f3c12340130\r
+    sub.w @(0x1234:16,er3),@(6:2,er1)                   ;01546f3c12343130\r
+    sub.w @(0x1234:16,er3),@-er1                        ;01546f3c1234b130\r
+    sub.w @(0x1234:16,er3),@er1+                        ;01546f3c12348130\r
+    sub.w @(0x1234:16,er3),@er1-                        ;01546f3c1234a130\r
+    sub.w @(0x1234:16,er3),@+er1                        ;01546f3c12349130\r
+    sub.w @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01546f3c1234c1309abc\r
+    sub.w @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01546f3c1234c9309abcdef0\r
+    sub.w @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01546f3c1234d2309abc\r
+    sub.w @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01546f3c1234e2309abc\r
+    sub.w @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01546f3c1234f2309abc\r
+    sub.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01546f3c1234da309abcdef0\r
+    sub.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01546f3c1234ea309abcdef0\r
+    sub.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01546f3c1234fa309abcdef0\r
+    sub.w @(0x1234:16,er3),@0xffff9abc:16               ;01546f3c123440309abc\r
+    sub.w @(0x1234:16,er3),@0x9abcdef0:32               ;01546f3c123448309abcdef0\r
+\r
+    sub.w @(0x12345678:32,er3),@er1                         ;78346b2c123456780130\r
+    sub.w @(0x12345678:32,er3),@(6:2,er1)                   ;78346b2c123456783130\r
+    sub.w @(0x12345678:32,er3),@-er1                        ;78346b2c12345678b130\r
+    sub.w @(0x12345678:32,er3),@er1+                        ;78346b2c123456788130\r
+    sub.w @(0x12345678:32,er3),@er1-                        ;78346b2c12345678a130\r
+    sub.w @(0x12345678:32,er3),@+er1                        ;78346b2c123456789130\r
+    sub.w @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78346b2c12345678c1309abc\r
+    sub.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78346b2c12345678c9309abcdef0\r
+    sub.w @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78346b2c12345678d2309abc\r
+    sub.w @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78346b2c12345678e2309abc\r
+    sub.w @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78346b2c12345678f2309abc\r
+    sub.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78346b2c12345678da309abcdef0\r
+    sub.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78346b2c12345678ea309abcdef0\r
+    sub.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78346b2c12345678fa309abcdef0\r
+    sub.w @(0x12345678:32,er3),@0xffff9abc:16               ;78346b2c1234567840309abc\r
+    sub.w @(0x12345678:32,er3),@0x9abcdef0:32               ;78346b2c1234567848309abcdef0\r
+\r
+    sub.w @(0x1234:16,r3l.b),@er1                       ;01556f3c12340130\r
+    sub.w @(0x1234:16,r3l.b),@(6:2,er1)                 ;01556f3c12343130\r
+    sub.w @(0x1234:16,r3l.b),@-er1                      ;01556f3c1234b130\r
+    sub.w @(0x1234:16,r3l.b),@er1+                      ;01556f3c12348130\r
+    sub.w @(0x1234:16,r3l.b),@er1-                      ;01556f3c1234a130\r
+    sub.w @(0x1234:16,r3l.b),@+er1                      ;01556f3c12349130\r
+    sub.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01556f3c1234c1309abc\r
+    sub.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01556f3c1234c9309abcdef0\r
+    sub.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01556f3c1234d2309abc\r
+    sub.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01556f3c1234e2309abc\r
+    sub.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01556f3c1234f2309abc\r
+    sub.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01556f3c1234da309abcdef0\r
+    sub.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01556f3c1234ea309abcdef0\r
+    sub.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01556f3c1234fa309abcdef0\r
+    sub.w @(0x1234:16,r3l.b),@0xffff9abc:16             ;01556f3c123440309abc\r
+    sub.w @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01556f3c123448309abcdef0\r
+\r
+    sub.w @(0x1234:16,r3.w),@er1                       ;01566f3c12340130\r
+    sub.w @(0x1234:16,r3.w),@(6:2,er1)                 ;01566f3c12343130\r
+    sub.w @(0x1234:16,r3.w),@-er1                      ;01566f3c1234b130\r
+    sub.w @(0x1234:16,r3.w),@er1+                      ;01566f3c12348130\r
+    sub.w @(0x1234:16,r3.w),@er1-                      ;01566f3c1234a130\r
+    sub.w @(0x1234:16,r3.w),@+er1                      ;01566f3c12349130\r
+    sub.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01566f3c1234c1309abc\r
+    sub.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01566f3c1234c9309abcdef0\r
+    sub.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01566f3c1234d2309abc\r
+    sub.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01566f3c1234e2309abc\r
+    sub.w @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01566f3c1234f2309abc\r
+    sub.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01566f3c1234da309abcdef0\r
+    sub.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01566f3c1234ea309abcdef0\r
+    sub.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01566f3c1234fa309abcdef0\r
+    sub.w @(0x1234:16,r3.w),@0xffff9abc:16             ;01566f3c123440309abc\r
+    sub.w @(0x1234:16,r3.w),@0x9abcdef0:32             ;01566f3c123448309abcdef0\r
+\r
+    sub.w @(0x1234:16,er3.l),@er1                       ;01576f3c12340130\r
+    sub.w @(0x1234:16,er3.l),@(6:2,er1)                 ;01576f3c12343130\r
+    sub.w @(0x1234:16,er3.l),@-er1                      ;01576f3c1234b130\r
+    sub.w @(0x1234:16,er3.l),@er1+                      ;01576f3c12348130\r
+    sub.w @(0x1234:16,er3.l),@er1-                      ;01576f3c1234a130\r
+    sub.w @(0x1234:16,er3.l),@+er1                      ;01576f3c12349130\r
+    sub.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01576f3c1234c1309abc\r
+    sub.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01576f3c1234c9309abcdef0\r
+    sub.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01576f3c1234d2309abc\r
+    sub.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01576f3c1234e2309abc\r
+    sub.w @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01576f3c1234f2309abc\r
+    sub.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01576f3c1234da309abcdef0\r
+    sub.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01576f3c1234ea309abcdef0\r
+    sub.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01576f3c1234fa309abcdef0\r
+    sub.w @(0x1234:16,er3.l),@0xffff9abc:16             ;01576f3c123440309abc\r
+    sub.w @(0x1234:16,er3.l),@0x9abcdef0:32             ;01576f3c123448309abcdef0\r
+\r
+    sub.w @(0x12345678:32,r3l.b),@er1                       ;78356b2c123456780130\r
+    sub.w @(0x12345678:32,r3l.b),@(6:2,er1)                 ;78356b2c123456783130\r
+    sub.w @(0x12345678:32,r3l.b),@-er1                      ;78356b2c12345678b130\r
+    sub.w @(0x12345678:32,r3l.b),@er1+                      ;78356b2c123456788130\r
+    sub.w @(0x12345678:32,r3l.b),@er1-                      ;78356b2c12345678a130\r
+    sub.w @(0x12345678:32,r3l.b),@+er1                      ;78356b2c123456789130\r
+    sub.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78356b2c12345678c1309abc\r
+    sub.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78356b2c12345678c9309abcdef0\r
+    sub.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78356b2c12345678d2309abc\r
+    sub.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78356b2c12345678e2309abc\r
+    sub.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78356b2c12345678f2309abc\r
+    sub.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78356b2c12345678da309abcdef0\r
+    sub.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78356b2c12345678ea309abcdef0\r
+    sub.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78356b2c12345678fa309abcdef0\r
+    sub.w @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78356b2c1234567840309abc\r
+    sub.w @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78356b2c1234567848309abcdef0\r
+\r
+    sub.w @(0x12345678:32,r3.w),@er1                       ;78366b2c123456780130\r
+    sub.w @(0x12345678:32,r3.w),@(6:2,er1)                 ;78366b2c123456783130\r
+    sub.w @(0x12345678:32,r3.w),@-er1                      ;78366b2c12345678b130\r
+    sub.w @(0x12345678:32,r3.w),@er1+                      ;78366b2c123456788130\r
+    sub.w @(0x12345678:32,r3.w),@er1-                      ;78366b2c12345678a130\r
+    sub.w @(0x12345678:32,r3.w),@+er1                      ;78366b2c123456789130\r
+    sub.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78366b2c12345678c1309abc\r
+    sub.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78366b2c12345678c9309abcdef0\r
+    sub.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78366b2c12345678d2309abc\r
+    sub.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78366b2c12345678e2309abc\r
+    sub.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78366b2c12345678f2309abc\r
+    sub.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78366b2c12345678da309abcdef0\r
+    sub.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78366b2c12345678ea309abcdef0\r
+    sub.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78366b2c12345678fa309abcdef0\r
+    sub.w @(0x12345678:32,r3.w),@0xffff9abc:16             ;78366b2c1234567840309abc\r
+    sub.w @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78366b2c1234567848309abcdef0\r
+\r
+    sub.w @(0x12345678:32,er3.l),@er1                       ;78376b2c123456780130\r
+    sub.w @(0x12345678:32,er3.l),@(6:2,er1)                 ;78376b2c123456783130\r
+    sub.w @(0x12345678:32,er3.l),@-er1                      ;78376b2c12345678b130\r
+    sub.w @(0x12345678:32,er3.l),@er1+                      ;78376b2c123456788130\r
+    sub.w @(0x12345678:32,er3.l),@er1-                      ;78376b2c12345678a130\r
+    sub.w @(0x12345678:32,er3.l),@+er1                      ;78376b2c123456789130\r
+    sub.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78376b2c12345678c1309abc\r
+    sub.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78376b2c12345678c9309abcdef0\r
+    sub.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78376b2c12345678d2309abc\r
+    sub.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78376b2c12345678e2309abc\r
+    sub.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78376b2c12345678f2309abc\r
+    sub.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78376b2c12345678da309abcdef0\r
+    sub.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78376b2c12345678ea309abcdef0\r
+    sub.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78376b2c12345678fa309abcdef0\r
+    sub.w @(0x12345678:32,er3.l),@0xffff9abc:16             ;78376b2c1234567840309abc\r
+    sub.w @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78376b2c1234567848309abcdef0\r
+\r
+    sub.w @0x1234:16,@er1                              ;6b1512340130\r
+    sub.w @0x1234:16,@(6:2,er1)                        ;6b1512343130\r
+    sub.w @0x1234:16,@-er1                             ;6b151234b130\r
+    sub.w @0x1234:16,@er1+                             ;6b1512348130\r
+    sub.w @0x1234:16,@er1-                             ;6b151234a130\r
+    sub.w @0x1234:16,@+er1                             ;6b1512349130\r
+    sub.w @0x1234:16,@(0xffff9abc:16,er1)              ;6b151234c1309abc\r
+    sub.w @0x1234:16,@(0x9abcdef0:32,er1)              ;6b151234c9309abcdef0\r
+    sub.w @0x1234:16,@(0xffff9abc:16,r2l.b)            ;6b151234d2309abc\r
+    sub.w @0x1234:16,@(0xffff9abc:16,r2.w)            ;6b151234e2309abc\r
+    sub.w @0x1234:16,@(0xffff9abc:16,er2.l)            ;6b151234f2309abc\r
+    sub.w @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;6b151234da309abcdef0\r
+    sub.w @0x1234:16,@(0x9abcdef0:32,r2.w)            ;6b151234ea309abcdef0\r
+    sub.w @0x1234:16,@(0x9abcdef0:32,er2.l)            ;6b151234fa309abcdef0\r
+    sub.w @0x1234:16,@0xffff9abc:16                    ;6b15123440309abc\r
+    sub.w @0x1234:16,@0x9abcdef0:32                    ;6b15123448309abcdef0\r
+\r
+    sub.w @0x12345678:32,@er1                              ;6b35123456780130\r
+    sub.w @0x12345678:32,@(6:2,er1)                        ;6b35123456783130\r
+    sub.w @0x12345678:32,@-er1                             ;6b3512345678b130\r
+    sub.w @0x12345678:32,@er1+                             ;6b35123456788130\r
+    sub.w @0x12345678:32,@er1-                             ;6b3512345678a130\r
+    sub.w @0x12345678:32,@+er1                             ;6b35123456789130\r
+    sub.w @0x12345678:32,@(0xffff9abc:16,er1)              ;6b3512345678c1309abc\r
+    sub.w @0x12345678:32,@(0x9abcdef0:32,er1)              ;6b3512345678c9309abcdef0\r
+    sub.w @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;6b3512345678d2309abc\r
+    sub.w @0x12345678:32,@(0xffff9abc:16,r2.w)            ;6b3512345678e2309abc\r
+    sub.w @0x12345678:32,@(0xffff9abc:16,er2.l)            ;6b3512345678f2309abc\r
+    sub.w @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;6b3512345678da309abcdef0\r
+    sub.w @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;6b3512345678ea309abcdef0\r
+    sub.w @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;6b3512345678fa309abcdef0\r
+    sub.w @0x12345678:32,@0xffff9abc:16                    ;6b351234567840309abc\r
+    sub.w @0x12345678:32,@0x9abcdef0:32                    ;6b351234567848309abcdef0\r
+\r
+    sub.l #0x12345678:32,er1                      ;7a3112345678\r
+    sub.l #0x1234:16,er1                       ;7a391234\r
+    sub.l #0x7:3,er2                        ;1afa\r
+    sub.l #0x12345678:32,@er1                      ;010e013812345678\r
+    sub.l #0x12345678:32,@(0xc:2,er1)             ;010e313812345678\r
+    sub.l #0x12345678:32,@er1+                     ;010e813812345678\r
+    sub.l #0x12345678:32,@-er1                     ;010eb13812345678\r
+    sub.l #0x12345678:32,@+er1                     ;010e913812345678\r
+    sub.l #0x12345678:32,@er1-                     ;010ea13812345678\r
+    sub.l #0x12345678:32,@(0xffff9abc:16,er1)               ;010ec1389abc12345678\r
+    sub.l #0x12345678:32,@(0x9abcdef0:32,er1)               ;010ec9389abcdef012345678\r
+    sub.l #0x12345678:32,@(0xffff9abc:16,r2l.b)             ;010ed2389abc12345678\r
+    sub.l #0x12345678:32,@(0xffff9abc:16,r2.w)             ;010ee2389abc12345678\r
+    sub.l #0x12345678:32,@(0xffff9abc:16,er2.l)             ;010ef2389abc12345678\r
+    sub.l #0x12345678:32,@(0x9abcdef0:32,r2l.b)             ;010eda389abcdef012345678\r
+    sub.l #0x12345678:32,@(0x9abcdef0:32,r2.w)             ;010eea389abcdef012345678\r
+    sub.l #0x12345678:32,@(0x9abcdef0:32,er2.l)             ;010efa389abcdef012345678\r
+    sub.l #0x12345678:32,@0xffff9abc:16                    ;010e40389abc12345678\r
+    sub.l #0x12345678:32,@0x9abcdef0:32                    ;010e48389abcdef012345678\r
+    sub.l #0x1234:16,@er1                      ;010e01301234\r
+    sub.l #0x1234:16,@(0xc:2,er1)             ;010e31301234\r
+    sub.l #0x1234:16,@er1+                     ;010e81301234\r
+    sub.l #0x1234:16,@-er1                     ;010eb1301234\r
+    sub.l #0x1234:16,@+er1                     ;010e91301234\r
+    sub.l #0x1234:16,@er1-                     ;010ea1301234\r
+    sub.l #0x1234:16,@(0xffff9abc:16,er1)               ;010ec1309abc1234\r
+    sub.l #0x1234:16,@(0x9abcdef0:32,er1)               ;010ec9309abcdef01234\r
+    sub.l #0x1234:16,@(0xffff9abc:16,r2l.b)             ;010ed2309abc1234\r
+    sub.l #0x1234:16,@(0xffff9abc:16,r2.w)             ;010ee2309abc1234\r
+    sub.l #0x1234:16,@(0xffff9abc:16,er2.l)             ;010ef2309abc1234\r
+    sub.l #0x1234:16,@(0x9abcdef0:32,r2l.b)             ;010eda309abcdef01234\r
+    sub.l #0x1234:16,@(0x9abcdef0:32,r2.w)             ;010eea309abcdef01234\r
+    sub.l #0x1234:16,@(0x9abcdef0:32,er2.l)             ;010efa309abcdef01234\r
+    sub.l #0x1234:16,@0xffff9abc:16                    ;010e40309abc1234\r
+    sub.l #0x1234:16,@0x9abcdef0:32                    ;010e48309abcdef01234\r
+\r
+    sub.l er3,er1                         ;1ab1\r
+\r
+    sub.l er3,@er1                         ;01090133\r
+    sub.l er3,@(0xc:2,er1)                ;01093133\r
+    sub.l er3,@er1+                        ;01098133\r
+    sub.l er3,@-er1                        ;0109b133\r
+    sub.l er3,@+er1                        ;01099133\r
+    sub.l er3,@er1-                        ;0109a133\r
+    sub.l er3,@(0x1234:16,er1)                  ;0109c1331234\r
+    sub.l er3,@(0x12345678:32,er1)                  ;0109c93312345678\r
+    sub.l er3,@(0x1234:16,r2l.b)                ;0109d2331234\r
+    sub.l er3,@(0x1234:16,r2.w)                ;0109e2331234\r
+    sub.l er3,@(0x1234:16,er2.l)                ;0109f2331234\r
+    sub.l er3,@(0x12345678:32,r2l.b)                ;0109da3312345678\r
+    sub.l er3,@(0x12345678:32,r2.w)                ;0109ea3312345678\r
+    sub.l er3,@(0x12345678:32,er2.l)                ;0109fa3312345678\r
+    sub.l er3,@0x1234:16                       ;010940331234\r
+    sub.l er3,@0x12345678:32                       ;0109483312345678\r
+\r
+    sub.l @er3,er1                         ;010a0331\r
+    sub.l @(0xc:2,er3),er1               ;010a3331\r
+    sub.l @er3+,er1                       ;010a8331\r
+    sub.l @-er3,er1                       ;010ab331\r
+    sub.l @+er3,er1                       ;010a9331\r
+    sub.l @er3-,er1                       ;010aa331\r
+    sub.l @(0x1234:16,er1),er1                  ;010ac1311234\r
+    sub.l @(0x12345678:32,er1),er1                  ;010ac93112345678\r
+    sub.l @(0x1234:16,r2l.b),er1                ;010ad2311234\r
+    sub.l @(0x1234:16,r2.w),er1                ;010ae2311234\r
+    sub.l @(0x1234:16,er2.l),er1                ;010af2311234\r
+    sub.l @(0x12345678:32,r2l.b),er1                ;010ada3112345678\r
+    sub.l @(0x12345678:32,r2.w),er1                ;010aea3112345678\r
+    sub.l @(0x12345678:32,er2.l),er1                ;010afa3112345678\r
+    sub.l @0x1234:16,er1                       ;010a40311234\r
+    sub.l @0x12345678:32,er1                       ;010a483112345678\r
+\r
+    sub.l @er3,@er1                                ;0104693c0130\r
+    sub.l @er3,@(0xc:2,er1)                          ;0104693c3130\r
+    sub.l @er3,@-er1                               ;0104693cb130\r
+    sub.l @er3,@er1+                               ;0104693c8130\r
+    sub.l @er3,@er1-                               ;0104693ca130\r
+    sub.l @er3,@+er1                               ;0104693c9130\r
+    sub.l @er3,@(0xffff9abc:16,er1)                ;0104693cc1309abc\r
+    sub.l @er3,@(0x9abcdef0:32,er1)                ;0104693cc9309abcdef0\r
+    sub.l @er3,@(0xffff9abc:16,r2l.b)              ;0104693cd2309abc\r
+    sub.l @er3,@(0xffff9abc:16,r2.w)              ;0104693ce2309abc\r
+    sub.l @er3,@(0xffff9abc:16,er2.l)              ;0104693cf2309abc\r
+    sub.l @er3,@(0x9abcdef0:32,r2l.b)              ;0104693cda309abcdef0\r
+    sub.l @er3,@(0x9abcdef0:32,r2.w)              ;0104693cea309abcdef0\r
+    sub.l @er3,@(0x9abcdef0:32,er2.l)              ;0104693cfa309abcdef0\r
+    sub.l @er3,@0xffff9abc:16                      ;0104693c40309abc\r
+    sub.l @er3,@0x9abcdef0:32                      ;0104693c48309abcdef0\r
+\r
+    sub.l @(0xc:2,er3),@er1                       ;0107693c0130\r
+    sub.l @(0xc:2,er3),@(0xc:2,er1)                 ;0107693c3130\r
+    sub.l @(0xc:2,er3),@-er1                      ;0107693cb130\r
+    sub.l @(0xc:2,er3),@er1+                      ;0107693c8130\r
+    sub.l @(0xc:2,er3),@er1-                      ;0107693ca130\r
+    sub.l @(0xc:2,er3),@+er1                      ;0107693c9130\r
+    sub.l @(0xc:2,er3),@(0xffff9abc:16,er1)       ;0107693cc1309abc\r
+    sub.l @(0xc:2,er3),@(0x9abcdef0:32,er1)       ;0107693cc9309abcdef0\r
+    sub.l @(0xc:2,er3),@(0xffff9abc:16,r2l.b)     ;0107693cd2309abc\r
+    sub.l @(0xc:2,er3),@(0xffff9abc:16,r2.w)     ;0107693ce2309abc\r
+    sub.l @(0xc:2,er3),@(0xffff9abc:16,er2.l)     ;0107693cf2309abc\r
+    sub.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b)     ;0107693cda309abcdef0\r
+    sub.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w)     ;0107693cea309abcdef0\r
+    sub.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l)     ;0107693cfa309abcdef0\r
+    sub.l @(0xc:2,er3),@0xffff9abc:16             ;0107693c40309abc\r
+    sub.l @(0xc:2,er3),@0x9abcdef0:32             ;0107693c48309abcdef0\r
+\r
+    sub.l @-er3,@er1                               ;01076d3c0130\r
+    sub.l @-er3,@(0xc:2,er1)                         ;01076d3c3130\r
+    sub.l @-er3,@-er1                              ;01076d3cb130\r
+    sub.l @-er3,@er1+                              ;01076d3c8130\r
+    sub.l @-er3,@er1-                              ;01076d3ca130\r
+    sub.l @-er3,@+er1                              ;01076d3c9130\r
+    sub.l @-er3,@(0xffff9abc:16,er1)               ;01076d3cc1309abc\r
+    sub.l @-er3,@(0x9abcdef0:32,er1)               ;01076d3cc9309abcdef0\r
+    sub.l @-er3,@(0xffff9abc:16,r2l.b)             ;01076d3cd2309abc\r
+    sub.l @-er3,@(0xffff9abc:16,r2.w)             ;01076d3ce2309abc\r
+    sub.l @-er3,@(0xffff9abc:16,er2.l)             ;01076d3cf2309abc\r
+    sub.l @-er3,@(0x9abcdef0:32,r2l.b)             ;01076d3cda309abcdef0\r
+    sub.l @-er3,@(0x9abcdef0:32,r2.w)             ;01076d3cea309abcdef0\r
+    sub.l @-er3,@(0x9abcdef0:32,er2.l)             ;01076d3cfa309abcdef0\r
+    sub.l @-er3,@0xffff9abc:16                     ;01076d3c40309abc\r
+    sub.l @-er3,@0x9abcdef0:32                     ;01076d3c48309abcdef0\r
+\r
+    sub.l @er3+,@er1                               ;01046d3c0130\r
+    sub.l @er3+,@(0xc:2,er1)                         ;01046d3c3130\r
+    sub.l @er3+,@-er1                              ;01046d3cb130\r
+    sub.l @er3+,@er1+                              ;01046d3c8130\r
+    sub.l @er3+,@er1-                              ;01046d3ca130\r
+    sub.l @er3+,@+er1                              ;01046d3c9130\r
+    sub.l @er3+,@(0xffff9abc:16,er1)               ;01046d3cc1309abc\r
+    sub.l @er3+,@(0x9abcdef0:32,er1)               ;01046d3cc9309abcdef0\r
+    sub.l @er3+,@(0xffff9abc:16,r2l.b)             ;01046d3cd2309abc\r
+    sub.l @er3+,@(0xffff9abc:16,r2.w)             ;01046d3ce2309abc\r
+    sub.l @er3+,@(0xffff9abc:16,er2.l)             ;01046d3cf2309abc\r
+    sub.l @er3+,@(0x9abcdef0:32,r2l.b)             ;01046d3cda309abcdef0\r
+    sub.l @er3+,@(0x9abcdef0:32,r2.w)             ;01046d3cea309abcdef0\r
+    sub.l @er3+,@(0x9abcdef0:32,er2.l)             ;01046d3cfa309abcdef0\r
+    sub.l @er3+,@0xffff9abc:16                     ;01046d3c40309abc\r
+    sub.l @er3+,@0x9abcdef0:32                     ;01046d3c48309abcdef0\r
+\r
+    sub.l @er3-,@er1                               ;01066d3c0130\r
+    sub.l @er3-,@(0xc:2,er1)                         ;01066d3c3130\r
+    sub.l @er3-,@-er1                              ;01066d3cb130\r
+    sub.l @er3-,@er1+                              ;01066d3c8130\r
+    sub.l @er3-,@er1-                              ;01066d3ca130\r
+    sub.l @er3-,@+er1                              ;01066d3c9130\r
+    sub.l @er3-,@(0xffff9abc:16,er1)               ;01066d3cc1309abc\r
+    sub.l @er3-,@(0x9abcdef0:32,er1)               ;01066d3cc9309abcdef0\r
+    sub.l @er3-,@(0xffff9abc:16,r2l.b)             ;01066d3cd2309abc\r
+    sub.l @er3-,@(0xffff9abc:16,r2.w)             ;01066d3ce2309abc\r
+    sub.l @er3-,@(0xffff9abc:16,er2.l)             ;01066d3cf2309abc\r
+    sub.l @er3-,@(0x9abcdef0:32,r2l.b)             ;01066d3cda309abcdef0\r
+    sub.l @er3-,@(0x9abcdef0:32,r2.w)             ;01066d3cea309abcdef0\r
+    sub.l @er3-,@(0x9abcdef0:32,er2.l)             ;01066d3cfa309abcdef0\r
+    sub.l @er3-,@0xffff9abc:16                     ;01066d3c40309abc\r
+    sub.l @er3-,@0x9abcdef0:32                     ;01066d3c48309abcdef0\r
+\r
+    sub.l @+er3,@er1                               ;01056d3c0130\r
+    sub.l @+er3,@(0xc:2,er1)                         ;01056d3c3130\r
+    sub.l @+er3,@-er1                              ;01056d3cb130\r
+    sub.l @+er3,@er1+                              ;01056d3c8130\r
+    sub.l @+er3,@er1-                              ;01056d3ca130\r
+    sub.l @+er3,@+er1                              ;01056d3c9130\r
+    sub.l @+er3,@(0xffff9abc:16,er1)               ;01056d3cc1309abc\r
+    sub.l @+er3,@(0x9abcdef0:32,er1)               ;01056d3cc9309abcdef0\r
+    sub.l @+er3,@(0xffff9abc:16,r2l.b)             ;01056d3cd2309abc\r
+    sub.l @+er3,@(0xffff9abc:16,r2.w)             ;01056d3ce2309abc\r
+    sub.l @+er3,@(0xffff9abc:16,er2.l)             ;01056d3cf2309abc\r
+    sub.l @+er3,@(0x9abcdef0:32,r2l.b)             ;01056d3cda309abcdef0\r
+    sub.l @+er3,@(0x9abcdef0:32,r2.w)             ;01056d3cea309abcdef0\r
+    sub.l @+er3,@(0x9abcdef0:32,er2.l)             ;01056d3cfa309abcdef0\r
+    sub.l @+er3,@0xffff9abc:16                     ;01056d3c40309abc\r
+    sub.l @+er3,@0x9abcdef0:32                     ;01056d3c48309abcdef0\r
+\r
+    sub.l @(0x1234:16,er3),@er1                         ;01046f3c12340130\r
+    sub.l @(0x1234:16,er3),@(0xc:2,er1)                   ;01046f3c12343130\r
+    sub.l @(0x1234:16,er3),@-er1                        ;01046f3c1234b130\r
+    sub.l @(0x1234:16,er3),@er1+                        ;01046f3c12348130\r
+    sub.l @(0x1234:16,er3),@er1-                        ;01046f3c1234a130\r
+    sub.l @(0x1234:16,er3),@+er1                        ;01046f3c12349130\r
+    sub.l @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01046f3c1234c1309abc\r
+    sub.l @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01046f3c1234c9309abcdef0\r
+    sub.l @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01046f3c1234d2309abc\r
+    sub.l @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01046f3c1234e2309abc\r
+    sub.l @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01046f3c1234f2309abc\r
+    sub.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01046f3c1234da309abcdef0\r
+    sub.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01046f3c1234ea309abcdef0\r
+    sub.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01046f3c1234fa309abcdef0\r
+    sub.l @(0x1234:16,er3),@0xffff9abc:16               ;01046f3c123440309abc\r
+    sub.l @(0x1234:16,er3),@0x9abcdef0:32               ;01046f3c123448309abcdef0\r
+\r
+    sub.l @(0x12345678:32,er3),@er1                         ;78b46b2c123456780130\r
+    sub.l @(0x12345678:32,er3),@(0xc:2,er1)                   ;78b46b2c123456783130\r
+    sub.l @(0x12345678:32,er3),@-er1                        ;78b46b2c12345678b130\r
+    sub.l @(0x12345678:32,er3),@er1+                        ;78b46b2c123456788130\r
+    sub.l @(0x12345678:32,er3),@er1-                        ;78b46b2c12345678a130\r
+    sub.l @(0x12345678:32,er3),@+er1                        ;78b46b2c123456789130\r
+    sub.l @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78b46b2c12345678c1309abc\r
+    sub.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78b46b2c12345678c9309abcdef0\r
+    sub.l @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78b46b2c12345678d2309abc\r
+    sub.l @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78b46b2c12345678e2309abc\r
+    sub.l @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78b46b2c12345678f2309abc\r
+    sub.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78b46b2c12345678da309abcdef0\r
+    sub.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78b46b2c12345678ea309abcdef0\r
+    sub.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78b46b2c12345678fa309abcdef0\r
+    sub.l @(0x12345678:32,er3),@0xffff9abc:16               ;78b46b2c1234567840309abc\r
+    sub.l @(0x12345678:32,er3),@0x9abcdef0:32               ;78b46b2c1234567848309abcdef0\r
+\r
+    sub.l @(0x1234:16,r3l.b),@er1                       ;01056f3c12340130\r
+    sub.l @(0x1234:16,r3l.b),@(0xc:2,er1)                 ;01056f3c12343130\r
+    sub.l @(0x1234:16,r3l.b),@-er1                      ;01056f3c1234b130\r
+    sub.l @(0x1234:16,r3l.b),@er1+                      ;01056f3c12348130\r
+    sub.l @(0x1234:16,r3l.b),@er1-                      ;01056f3c1234a130\r
+    sub.l @(0x1234:16,r3l.b),@+er1                      ;01056f3c12349130\r
+    sub.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01056f3c1234c1309abc\r
+    sub.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01056f3c1234c9309abcdef0\r
+    sub.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01056f3c1234d2309abc\r
+    sub.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01056f3c1234e2309abc\r
+    sub.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01056f3c1234f2309abc\r
+    sub.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01056f3c1234da309abcdef0\r
+    sub.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01056f3c1234ea309abcdef0\r
+    sub.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01056f3c1234fa309abcdef0\r
+    sub.l @(0x1234:16,r3l.b),@0xffff9abc:16             ;01056f3c123440309abc\r
+    sub.l @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01056f3c123448309abcdef0\r
+\r
+    sub.l @(0x1234:16,r3.w),@er1                       ;01066f3c12340130\r
+    sub.l @(0x1234:16,r3.w),@(0xc:2,er1)                 ;01066f3c12343130\r
+    sub.l @(0x1234:16,r3.w),@-er1                      ;01066f3c1234b130\r
+    sub.l @(0x1234:16,r3.w),@er1+                      ;01066f3c12348130\r
+    sub.l @(0x1234:16,r3.w),@er1-                      ;01066f3c1234a130\r
+    sub.l @(0x1234:16,r3.w),@+er1                      ;01066f3c12349130\r
+    sub.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01066f3c1234c1309abc\r
+    sub.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01066f3c1234c9309abcdef0\r
+    sub.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01066f3c1234d2309abc\r
+    sub.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01066f3c1234e2309abc\r
+    sub.l @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01066f3c1234f2309abc\r
+    sub.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01066f3c1234da309abcdef0\r
+    sub.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01066f3c1234ea309abcdef0\r
+    sub.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01066f3c1234fa309abcdef0\r
+    sub.l @(0x1234:16,r3.w),@0xffff9abc:16             ;01066f3c123440309abc\r
+    sub.l @(0x1234:16,r3.w),@0x9abcdef0:32             ;01066f3c123448309abcdef0\r
+\r
+    sub.l @(0x1234:16,er3.l),@er1                       ;01076f3c12340130\r
+    sub.l @(0x1234:16,er3.l),@(0xc:2,er1)                 ;01076f3c12343130\r
+    sub.l @(0x1234:16,er3.l),@-er1                      ;01076f3c1234b130\r
+    sub.l @(0x1234:16,er3.l),@er1+                      ;01076f3c12348130\r
+    sub.l @(0x1234:16,er3.l),@er1-                      ;01076f3c1234a130\r
+    sub.l @(0x1234:16,er3.l),@+er1                      ;01076f3c12349130\r
+    sub.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01076f3c1234c1309abc\r
+    sub.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01076f3c1234c9309abcdef0\r
+    sub.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01076f3c1234d2309abc\r
+    sub.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01076f3c1234e2309abc\r
+    sub.l @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01076f3c1234f2309abc\r
+    sub.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01076f3c1234da309abcdef0\r
+    sub.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01076f3c1234ea309abcdef0\r
+    sub.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01076f3c1234fa309abcdef0\r
+    sub.l @(0x1234:16,er3.l),@0xffff9abc:16             ;01076f3c123440309abc\r
+    sub.l @(0x1234:16,er3.l),@0x9abcdef0:32             ;01076f3c123448309abcdef0\r
+\r
+    sub.l @(0x12345678:32,r3l.b),@er1                       ;78b56b2c123456780130\r
+    sub.l @(0x12345678:32,r3l.b),@(0xc:2,er1)                 ;78b56b2c123456783130\r
+    sub.l @(0x12345678:32,r3l.b),@-er1                      ;78b56b2c12345678b130\r
+    sub.l @(0x12345678:32,r3l.b),@er1+                      ;78b56b2c123456788130\r
+    sub.l @(0x12345678:32,r3l.b),@er1-                      ;78b56b2c12345678a130\r
+    sub.l @(0x12345678:32,r3l.b),@+er1                      ;78b56b2c123456789130\r
+    sub.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78b56b2c12345678c1309abc\r
+    sub.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78b56b2c12345678c9309abcdef0\r
+    sub.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78b56b2c12345678d2309abc\r
+    sub.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78b56b2c12345678e2309abc\r
+    sub.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78b56b2c12345678f2309abc\r
+    sub.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78b56b2c12345678da309abcdef0\r
+    sub.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78b56b2c12345678ea309abcdef0\r
+    sub.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78b56b2c12345678fa309abcdef0\r
+    sub.l @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78b56b2c1234567840309abc\r
+    sub.l @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78b56b2c1234567848309abcdef0\r
+\r
+    sub.l @(0x12345678:32,r3.w),@er1                       ;78b66b2c123456780130\r
+    sub.l @(0x12345678:32,r3.w),@(0xc:2,er1)                 ;78b66b2c123456783130\r
+    sub.l @(0x12345678:32,r3.w),@-er1                      ;78b66b2c12345678b130\r
+    sub.l @(0x12345678:32,r3.w),@er1+                      ;78b66b2c123456788130\r
+    sub.l @(0x12345678:32,r3.w),@er1-                      ;78b66b2c12345678a130\r
+    sub.l @(0x12345678:32,r3.w),@+er1                      ;78b66b2c123456789130\r
+    sub.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78b66b2c12345678c1309abc\r
+    sub.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78b66b2c12345678c9309abcdef0\r
+    sub.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78b66b2c12345678d2309abc\r
+    sub.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78b66b2c12345678e2309abc\r
+    sub.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78b66b2c12345678f2309abc\r
+    sub.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78b66b2c12345678da309abcdef0\r
+    sub.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78b66b2c12345678ea309abcdef0\r
+    sub.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78b66b2c12345678fa309abcdef0\r
+    sub.l @(0x12345678:32,r3.w),@0xffff9abc:16             ;78b66b2c1234567840309abc\r
+    sub.l @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78b66b2c1234567848309abcdef0\r
+\r
+    sub.l @(0x12345678:32,er3.l),@er1                       ;78b76b2c123456780130\r
+    sub.l @(0x12345678:32,er3.l),@(0xc:2,er1)                 ;78b76b2c123456783130\r
+    sub.l @(0x12345678:32,er3.l),@-er1                      ;78b76b2c12345678b130\r
+    sub.l @(0x12345678:32,er3.l),@er1+                      ;78b76b2c123456788130\r
+    sub.l @(0x12345678:32,er3.l),@er1-                      ;78b76b2c12345678a130\r
+    sub.l @(0x12345678:32,er3.l),@+er1                      ;78b76b2c123456789130\r
+    sub.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78b76b2c12345678c1309abc\r
+    sub.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78b76b2c12345678c9309abcdef0\r
+    sub.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78b76b2c12345678d2309abc\r
+    sub.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78b76b2c12345678e2309abc\r
+    sub.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78b76b2c12345678f2309abc\r
+    sub.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78b76b2c12345678da309abcdef0\r
+    sub.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78b76b2c12345678ea309abcdef0\r
+    sub.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78b76b2c12345678fa309abcdef0\r
+    sub.l @(0x12345678:32,er3.l),@0xffff9abc:16             ;78b76b2c1234567840309abc\r
+    sub.l @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78b76b2c1234567848309abcdef0\r
+\r
+    sub.l @0x1234:16,@er1                              ;01046b0c12340130\r
+    sub.l @0x1234:16,@(0xc:2,er1)                        ;01046b0c12343130\r
+    sub.l @0x1234:16,@-er1                             ;01046b0c1234b130\r
+    sub.l @0x1234:16,@er1+                             ;01046b0c12348130\r
+    sub.l @0x1234:16,@er1-                             ;01046b0c1234a130\r
+    sub.l @0x1234:16,@+er1                             ;01046b0c12349130\r
+    sub.l @0x1234:16,@(0xffff9abc:16,er1)              ;01046b0c1234c1309abc\r
+    sub.l @0x1234:16,@(0x9abcdef0:32,er1)              ;01046b0c1234c9309abcdef0\r
+    sub.l @0x1234:16,@(0xffff9abc:16,r2l.b)            ;01046b0c1234d2309abc\r
+    sub.l @0x1234:16,@(0xffff9abc:16,r2.w)            ;01046b0c1234e2309abc\r
+    sub.l @0x1234:16,@(0xffff9abc:16,er2.l)            ;01046b0c1234f2309abc\r
+    sub.l @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;01046b0c1234da309abcdef0\r
+    sub.l @0x1234:16,@(0x9abcdef0:32,r2.w)            ;01046b0c1234ea309abcdef0\r
+    sub.l @0x1234:16,@(0x9abcdef0:32,er2.l)            ;01046b0c1234fa309abcdef0\r
+    sub.l @0x1234:16,@0xffff9abc:16                    ;01046b0c123440309abc\r
+    sub.l @0x1234:16,@0x9abcdef0:32                    ;01046b0c123448309abcdef0\r
+\r
+    sub.l @0x12345678:32,@er1                              ;01046b2c123456780130\r
+    sub.l @0x12345678:32,@(0xc:2,er1)                        ;01046b2c123456783130\r
+    sub.l @0x12345678:32,@-er1                             ;01046b2c12345678b130\r
+    sub.l @0x12345678:32,@er1+                             ;01046b2c123456788130\r
+    sub.l @0x12345678:32,@er1-                             ;01046b2c12345678a130\r
+    sub.l @0x12345678:32,@+er1                             ;01046b2c123456789130\r
+    sub.l @0x12345678:32,@(0xffff9abc:16,er1)              ;01046b2c12345678c1309abc\r
+    sub.l @0x12345678:32,@(0x9abcdef0:32,er1)              ;01046b2c12345678c9309abcdef0\r
+    sub.l @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;01046b2c12345678d2309abc\r
+    sub.l @0x12345678:32,@(0xffff9abc:16,r2.w)            ;01046b2c12345678e2309abc\r
+    sub.l @0x12345678:32,@(0xffff9abc:16,er2.l)            ;01046b2c12345678f2309abc\r
+    sub.l @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;01046b2c12345678da309abcdef0\r
+    sub.l @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;01046b2c12345678ea309abcdef0\r
+    sub.l @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;01046b2c12345678fa309abcdef0\r
+    sub.l @0x12345678:32,@0xffff9abc:16                    ;01046b2c1234567840309abc\r
+    sub.l @0x12345678:32,@0x9abcdef0:32                    ;01046b2c1234567848309abcdef0\r
+\r
+       .end\r
diff --git a/gas/testsuite/gas/h8300/t05_cmp.exp b/gas/testsuite/gas/h8300/t05_cmp.exp
new file mode 100644 (file)
index 0000000..502cc30
--- /dev/null
@@ -0,0 +1,2880 @@
+#
+# Some h8300sx tests -- t05_cmp
+#
+
+proc do_t05_cmp_test {} {
+    set testname "t05_cmp.s -- h8sx tests"
+
+    gas_start "t05_cmp.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*   7 0000 7C350120" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8 0004 7C353120" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9 0008 7C35B120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10 000c 7C358120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11 0010 7C35A120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12 0014 7C359120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13 0018 7C35C120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14 001e 7C35C920" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15 0026 7C35D220" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 002c 7C35E220" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17 0032 7C35F220" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18 0038 7C35DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19 0040 7C35EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20 0048 7C35FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21 0050 7C354020" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 0056 7C354820" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23              " {
+           if [expr $x == 26] then {
+               pass "$testname: cmp.b @er3, ..."
+           } else {
+               fail "$testname: cmp.b @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  24 005e 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  25 0064 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  25      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  26 006a 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  26      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27 0070 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  28 0076 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  28      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29 007c 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30 0082 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31 008a 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32 0094 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33 009c 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34 00a4 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35 00ac 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 00b6 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 00c0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38 00ca 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39 00d2 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.b @-er3, ..."
+           } else {
+               fail "$testname: cmp.b @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  41 00dc 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42 00e2 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43 00e8 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44 00ee 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45 00f4 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46 00fa 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47 0100 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48 0108 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49 0112 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50 011a 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51 0122 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52 012a 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53 0134 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 013e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 0148 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56 0150 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.b @er3+, ..."
+           } else {
+               fail "$testname: cmp.b @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  58 015a 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59 0160 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60 0166 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61 016c 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62 0172 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63 0178 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64 017e 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65 0186 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66 0190 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67 0198 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68 01a0 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 01a8 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70 01b2 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71 01bc 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72 01c6 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73 01ce 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.b @er3-, ..."
+           } else {
+               fail "$testname: cmp.b @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  75 01d8 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76 01de 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77 01e4 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78 01ea 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79 01f0 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80 01f6 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81 01fc 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82 0204 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83 020e 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84 0216 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85 021e 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86 0226 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87 0230 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88 023a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89 0244 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90 024c 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.b @+er3, ..."
+           } else {
+               fail "$testname: cmp.b @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  92 0256 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 025e 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94 0266 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95 026e 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96 0276 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97 027e 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98 0286 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99 0290 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100 029c 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101 02a6 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102 02b0 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103 02ba 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104 02c6 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105 02d2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106 02de 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107 02e8 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.b @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: cmp.b @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 109 02f4 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110 02fe 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111 0308 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112 0312 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113 031c 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114 0326 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115 0330 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116 033c 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117 034a 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118 0356 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119 0362 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120 036e 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121 037c 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122 038a 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123 0398 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124 03a4 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.b @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: cmp.b @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 126 03b2 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127 03ba 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128 03c2 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129 03ca 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130 03d2 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131 03da 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132 03e2 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133 03ec 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134 03f8 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135 0402 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136 040c 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137 0416 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138 0422 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139 042e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140 043a 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141 0444 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.b @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: cmp.b @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 143 0450 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144 0458 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145 0460 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146 0468 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147 0470 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148 0478 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149 0480 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150 048a 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151 0496 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152 04a0 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153 04aa 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154 04b4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155 04c0 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156 04cc 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157 04d8 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158 04e2 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.b @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: cmp.b @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 160 04ee 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161 04f6 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162 04fe 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163 0506 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164 050e 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165 0516 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166 051e 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167 0528 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168 0534 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169 053e 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170 0548 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171 0552 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172 055e 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173 056a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174 0576 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175 0580 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.b @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: cmp.b @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 177 058c 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178 0596 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179 05a0 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180 05aa 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181 05b4 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182 05be 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183 05c8 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184 05d4 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185 05e2 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186 05ee 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187 05fa 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188 0606 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189 0614 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190 0622 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191 0630 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192 063c 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.b @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: cmp.b @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 194 064a 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195 0654 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196 065e 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197 0668 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198 0672 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199 067c 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200 0686 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201 0692 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202 06a0 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203 06ac 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204 06b8 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205 06c4 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206 06d2 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207 06e0 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208 06ee 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209 06fa 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.b @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: cmp.b @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 211 0708 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212 0712 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213 071c 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214 0726 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215 0730 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216 073a 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217 0744 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218 0750 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219 075e 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220 076a 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221 0776 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222 0782 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223 0790 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224 079e 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225 07ac 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226 07b8 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.b @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: cmp.b @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 228 07c6 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229 07cc 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230 07d2 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231 07d8 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232 07de 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233 07e4 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234 07ea 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235 07f2 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236 07fc 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237 0804 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238 080c 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239 0814 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240 081e 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241 0828 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242 0832 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243 083a 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.b @0x1234:16, ..."
+           } else {
+               fail "$testname: cmp.b @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 245 0844 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      56780120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246 084c 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      56783120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247 0854 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      5678B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248 085c 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      56788120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249 0864 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      5678A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 250 086c 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 250      56789120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251 0874 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      5678C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252 087e 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      5678C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253 088a 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      5678D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254 0894 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      5678E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255 089e 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      5678F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256 08a8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      5678DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257 08b4 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      5678EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258 08c0 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      5678FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259 08cc 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      56784020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260 08d6 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      56784820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.b @0x12345678:32, ..."
+           } else {
+               fail "$testname: cmp.b @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.b @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 262 08e2 79211234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263 08e6 1F72" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264 08e8 015E0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265 08ee 015E3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266 08f4 015E8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 267 08fa 015EB120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 267      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268 0900 015E9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269 0906 015EA120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270 090c 015EC120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271 0914 015EC920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272 091e 015ED220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273 0926 015EE220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274 092e 015EF220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275 0936 015EDA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276 0940 015EEA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277 094a 015EFA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278 0954 015E4020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279 095c 015E4820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280              " {
+           if [expr $x == 39] then {
+               pass "$testname: cmp.w #0x1234:16, ..."
+           } else {
+               fail "$testname: cmp.w #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 281 0966 7D901F70" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282 096a 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      1F70" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283 0970 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      56781F70" { set x [expr $x+1]; exp_continue; }
+       -re ".* 284              " {
+           if [expr $x == 5] then {
+               pass "$testname: cmp.w #0x7:3, ..."
+           } else {
+               fail "$testname: cmp.w #0x7:3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w #0x7:3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 285 0978 1D31" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286              " {
+           if [expr $x == 1] then {
+               pass "$testname: cmp.w r3, r1"
+           } else {
+               fail "$testname: cmp.w r3, r1 ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w r3, r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 287 097a 7D901D30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288 097e 01593123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289 0982 01598123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290 0986 0159B123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291 098a 01599123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292 098e 0159A123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293 0992 0159C123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294 0998 0159C923" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295 09a0 0159D223" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296 09a6 0159E223" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297 09ac 0159F223" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298 09b2 0159DA23" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299 09ba 0159EA23" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300 09c2 0159FA23" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 301 09ca 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 301      1D30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 302 09d0 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 302      56781D30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303              " {
+           if [expr $x == 26] then {
+               pass "$testname: cmp.w r3, ..."
+           } else {
+               fail "$testname: cmp.w r3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w r3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 304 09d8 7CB01D01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305 09dc 015A3321" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306 09e0 015A8321" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307 09e4 015AB321" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308 09e8 015A9321" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309 09ec 015AA321" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310 09f0 015AC121" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311 09f6 015AC921" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312 09fe 015AD221" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313 0a04 015AE221" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314 0a0a 015AF221" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315 0a10 015ADA21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316 0a18 015AEA21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317 0a20 015AFA21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 318 0a28 6B101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 318      1D01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 319 0a2e 6B301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 319      56781D01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320              " {
+           if [expr $x == 26] then {
+               pass "$testname: cmp.w ..., r1"
+           } else {
+               fail "$testname: cmp.w ..., r1 ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w ..., r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 321 0a36 7CB50120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322 0a3a 7CB53120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323 0a3e 7CB5B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324 0a42 7CB58120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325 0a46 7CB5A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326 0a4a 7CB59120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327 0a4e 7CB5C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328 0a54 7CB5C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329 0a5c 7CB5D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330 0a62 7CB5E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331 0a68 7CB5F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332 0a6e 7CB5DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333 0a76 7CB5EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334 0a7e 7CB5FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335 0a86 7CB54020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 336 0a8c 7CB54820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 336      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 337              " {
+           if [expr $x == 26] then {
+               pass "$testname: cmp.w @er3, ..."
+           } else {
+               fail "$testname: cmp.w @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 338 0a94 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 338      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 339 0a9a 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 339      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340 0aa0 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 341 0aa6 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 341      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 342 0aac 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 342      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 343 0ab2 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 343      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 344 0ab8 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 344      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345 0ac0 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346 0aca 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347 0ad2 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348 0ada 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349 0ae2 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350 0aec 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351 0af6 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352 0b00 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353 0b08 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.w @-er3, ..."
+           } else {
+               fail "$testname: cmp.w @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 355 0b12 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 355      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 356 0b18 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 356      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357 0b1e 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358 0b24 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 359 0b2a 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 359      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 360 0b30 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 360      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 361 0b36 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 361      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362 0b3e 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 363 0b48 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 363      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364 0b50 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365 0b58 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366 0b60 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367 0b6a 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368 0b74 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369 0b7e 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370 0b86 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.w @er3+, ..."
+           } else {
+               fail "$testname: cmp.w @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 372 0b90 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 372      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 373 0b96 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 373      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 374 0b9c 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 374      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 375 0ba2 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 375      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 376 0ba8 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 376      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 377 0bae 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 377      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 378 0bb4 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 378      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379 0bbc 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 380 0bc6 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 380      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 381 0bce 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 381      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382 0bd6 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383 0bde 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384 0be8 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385 0bf2 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386 0bfc 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387 0c04 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.w @er3-, ..."
+           } else {
+               fail "$testname: cmp.w @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 389 0c0e 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390 0c14 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391 0c1a 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392 0c20 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393 0c26 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394 0c2c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395 0c32 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396 0c3a 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397 0c44 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398 0c4c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399 0c54 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400 0c5c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401 0c66 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402 0c70 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403 0c7a 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404 0c82 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.w @+er3, ..."
+           } else {
+               fail "$testname: cmp.w @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 406 0c8c 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407 0c94 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408 0c9c 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409 0ca4 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410 0cac 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411 0cb4 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412 0cbc 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413 0cc6 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414 0cd2 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415 0cdc 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416 0ce6 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417 0cf0 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418 0cfc 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419 0d08 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420 0d14 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421 0d1e 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.w @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: cmp.w @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 423 0d2a 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424 0d34 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425 0d3e 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426 0d48 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427 0d52 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428 0d5c 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429 0d66 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430 0d72 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431 0d80 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432 0d8c 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433 0d98 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434 0da4 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435 0db2 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436 0dc0 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437 0dce 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438 0dda 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.w @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: cmp.w @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 440 0de8 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441 0df0 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442 0df8 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443 0e00 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444 0e08 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 445 0e10 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 445      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446 0e18 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447 0e22 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448 0e2e 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449 0e38 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450 0e42 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451 0e4c 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452 0e58 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453 0e64 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454 0e70 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455 0e7a 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.w @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: cmp.w @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 457 0e86 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458 0e8e 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459 0e96 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460 0e9e 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461 0ea6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462 0eae 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463 0eb6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464 0ec0 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465 0ecc 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466 0ed6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467 0ee0 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468 0eea 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469 0ef6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470 0f02 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471 0f0e 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472 0f18 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.w @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: cmp.w @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 474 0f24 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475 0f2c 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476 0f34 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477 0f3c 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478 0f44 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479 0f4c 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480 0f54 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481 0f5e 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482 0f6a 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483 0f74 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484 0f7e 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485 0f88 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486 0f94 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487 0fa0 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488 0fac 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489 0fb6 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.w @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: cmp.w @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 491 0fc2 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492 0fcc 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493 0fd6 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494 0fe0 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495 0fea 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496 0ff4 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497 0ffe 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498 100a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499 1018 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500 1024 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501 1030 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502 103c 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503 104a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504 1058 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505 1066 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506 1072 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.w @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: cmp.w @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 508 1080 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509 108a 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510 1094 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511 109e 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512 10a8 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513 10b2 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514 10bc 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515 10c8 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516 10d6 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517 10e2 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518 10ee 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519 10fa 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520 1108 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521 1116 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522 1124 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523 1130 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.w @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: cmp.w @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 525 113e 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526 1148 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527 1152 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528 115c 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529 1166 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530 1170 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531 117a 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532 1186 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533 1194 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534 11a0 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535 11ac 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536 11b8 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537 11c6 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538 11d4 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539 11e2 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540 11ee 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.w @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: cmp.w @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 542 11fc 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543 1202 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544 1208 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545 120e 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546 1214 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547 121a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548 1220 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549 1228 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550 1232 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551 123a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552 1242 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553 124a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554 1254 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555 125e 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556 1268 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557 1270 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.w @0x1234:16, ..."
+           } else {
+               fail "$testname: cmp.w @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 559 127a 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559      56780120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560 1282 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      56783120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561 128a 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      5678B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562 1292 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      56788120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563 129a 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563      5678A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564 12a2 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564      56789120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565 12aa 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      5678C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566 12b4 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      5678C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567 12c0 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      5678D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568 12ca 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      5678E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569 12d4 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      5678F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570 12de 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      5678DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571 12ea 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      5678EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572 12f6 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      5678FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573 1302 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      56784020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574 130c 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      56784820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.w @0x12345678:32, ..."
+           } else {
+               fail "$testname: cmp.w @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.w @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 576 1318 7A211234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577 131e 7A291234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578 1322 1FFA" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579 1324 010E0128" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580 132c 010E3128" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581 1334 010E8128" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582 133c 010EB128" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583 1344 010E9128" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584 134c 010EA128" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585 1354 010EC128" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586 135e 010EC928" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587 136a 010ED228" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588 1374 010EE228" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589 137e 010EF228" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590 1388 010EDA28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591 1394 010EEA28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592 13a0 010EFA28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593 13ac 010E4028" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594 13b6 010E4828" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595 13c2 010E0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596 13c8 010E3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597 13ce 010E8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598 13d4 010EB120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599 13da 010E9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600 13e0 010EA120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601 13e6 010EC120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602 13ee 010EC920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603 13f8 010ED220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604 1400 010EE220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605 1408 010EF220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606 1410 010EDA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607 141a 010EEA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608 1424 010EFA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609 142e 010E4020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610 1436 010E4820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611              " {
+           if [expr $x == 83] then {
+               pass "$testname: cmp.l #0x1234:16, ..."
+           } else {
+               fail "$testname: cmp.l #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 612 1440 1FB1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613              " {
+           if [expr $x == 1] then {
+               pass "$testname: cmp.l er3, er1"
+           } else {
+               fail "$testname: cmp.l er3, er1 ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l er3, er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 614 1442 01090123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 615 1446 01093123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616 144a 01098123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617 144e 0109B123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618 1452 01099123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619 1456 0109A123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620 145a 0109C123" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621 1460 0109C923" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622 1468 0109D223" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623 146e 0109E223" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624 1474 0109F223" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625 147a 0109DA23" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626 1482 0109EA23" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627 148a 0109FA23" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628 1492 01094023" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629 1498 01094823" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630              " {
+           if [expr $x == 26] then {
+               pass "$testname: cmp.l er3, ..."
+           } else {
+               fail "$testname: cmp.l er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 631 14a0 010A0321" { set x [expr $x+1]; exp_continue; }
+       -re ".* 632 14a4 010A3321" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633 14a8 010A8321" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634 14ac 010AB321" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635 14b0 010A9321" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636 14b4 010AA321" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637 14b8 010AC121" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638 14be 010AC921" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639 14c6 010AD221" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640 14cc 010AE221" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641 14d2 010AF221" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642 14d8 010ADA21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643 14e0 010AEA21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644 14e8 010AFA21" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645 14f0 010A4021" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646 14f6 010A4821" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647              " {
+           if [expr $x == 26] then {
+               pass "$testname: cmp.l ..., er1"
+           } else {
+               fail "$testname: cmp.l ..., er1 ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l ..., er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 648 14fe 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649 1504 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650 150a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651 1510 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652 1516 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653 151c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654 1522 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655 152a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656 1534 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657 153c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658 1544 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659 154c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660 1556 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661 1560 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662 156a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 663 1572 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 663      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 663      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.l @er3, ..."
+           } else {
+               fail "$testname: cmp.l @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 665 157c 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 665      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666 1582 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667 1588 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 668 158e 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 668      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 669 1594 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 669      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 670 159a 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 670      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671 15a0 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672 15a8 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673 15b2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674 15ba 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675 15c2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676 15ca 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677 15d4 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678 15de 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679 15e8 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680 15f0 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 681              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.l @(0xc:2,er3), ..."
+           } else {
+               fail "$testname: cmp.l @(0xc:2,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @(0xc:2,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 682 15fa 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 682      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 683 1600 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 683      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 684 1606 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 684      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 685 160c 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 685      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 686 1612 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 686      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 687 1618 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 687      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 688 161e 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 688      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689 1626 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690 1630 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691 1638 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692 1640 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693 1648 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694 1652 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695 165c 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696 1666 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697 166e 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.l @-er3, ..."
+           } else {
+               fail "$testname: cmp.l @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 699 1678 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 699      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700 167e 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701 1684 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702 168a 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703 1690 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704 1696 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705 169c 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706 16a4 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707 16ae 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708 16b6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709 16be 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710 16c6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711 16d0 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712 16da 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713 16e4 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714 16ec 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.l @er3+, ..."
+           } else {
+               fail "$testname: cmp.l @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 716 16f6 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717 16fc 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718 1702 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719 1708 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720 170e 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721 1714 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722 171a 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723 1722 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724 172c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725 1734 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726 173c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727 1744 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728 174e 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729 1758 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730 1762 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731 176a 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.l @er3-, ..."
+           } else {
+               fail "$testname: cmp.l @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 733 1774 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734 177a 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735 1780 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736 1786 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737 178c 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738 1792 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739 1798 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740 17a0 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741 17aa 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742 17b2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743 17ba 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744 17c2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745 17cc 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746 17d6 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747 17e0 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748 17e8 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749              " {
+           if [expr $x == 37] then {
+               pass "$testname: cmp.l @+er3, ..."
+           } else {
+               fail "$testname: cmp.l @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 750 17f2 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751 17fa 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752 1802 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753 180a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754 1812 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 755 181a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 755      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756 1822 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757 182c 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758 1838 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759 1842 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760 184c 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761 1856 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762 1862 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763 186e 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764 187a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765 1884 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.l @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: cmp.l @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 767 1890 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768 189a 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769 18a4 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770 18ae 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771 18b8 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772 18c2 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773 18cc 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774 18d8 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775 18e6 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776 18f2 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777 18fe 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778 190a 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779 1918 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780 1926 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781 1934 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782 1940 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.l @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: cmp.l @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 784 194e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785 1956 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786 195e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787 1966 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788 196e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789 1976 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790 197e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791 1988 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792 1994 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793 199e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794 19a8 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795 19b2 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796 19be 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797 19ca 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798 19d6 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799 19e0 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.l @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: cmp.l @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 801 19ec 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802 19f4 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803 19fc 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804 1a04 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805 1a0c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806 1a14 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807 1a1c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808 1a26 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809 1a32 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810 1a3c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811 1a46 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812 1a50 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813 1a5c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814 1a68 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815 1a74 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816 1a7e 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.l @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: cmp.l @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 818 1a8a 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819 1a92 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820 1a9a 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821 1aa2 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822 1aaa 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823 1ab2 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824 1aba 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825 1ac4 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826 1ad0 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827 1ada 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828 1ae4 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829 1aee 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830 1afa 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831 1b06 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832 1b12 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833 1b1c 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.l @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: cmp.l @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 835 1b28 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836 1b32 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837 1b3c 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838 1b46 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839 1b50 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840 1b5a 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841 1b64 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842 1b70 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843 1b7e 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844 1b8a 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845 1b96 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846 1ba2 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847 1bb0 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848 1bbe 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849 1bcc 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850 1bd8 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.l @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: cmp.l @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 852 1be6 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853 1bf0 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854 1bfa 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855 1c04 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856 1c0e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857 1c18 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858 1c22 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859 1c2e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860 1c3c 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861 1c48 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862 1c54 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863 1c60 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864 1c6e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865 1c7c 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866 1c8a 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867 1c96 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.l @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: cmp.l @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 869 1ca4 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870 1cae 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871 1cb8 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872 1cc2 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873 1ccc 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874 1cd6 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875 1ce0 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876 1cec 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877 1cfa 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878 1d06 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879 1d12 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880 1d1e 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881 1d2c 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882 1d3a 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883 1d48 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884 1d54 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.l @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: cmp.l @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 886 1d62 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      12340120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887 1d6a 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      12343120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888 1d72 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      1234B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889 1d7a 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      12348120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890 1d82 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890      1234A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891 1d8a 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      12349120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892 1d92 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      1234C120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893 1d9c 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      1234C920" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894 1da8 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      1234D220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895 1db2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      1234E220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896 1dbc 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      1234F220" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897 1dc6 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      1234DA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898 1dd2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      1234EA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899 1dde 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      1234FA20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900 1dea 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      12344020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901 1df4 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      12344820" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902              " {
+           if [expr $x == 42] then {
+               pass "$testname: cmp.l @0x1234:16, ..."
+           } else {
+               fail "$testname: cmp.l @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @0x1234:16, ... ($x)" }
+    }
+    # FIXME return early, expect bombs out on the next group.
+    return;
+    set x 0
+    expect {
+       -re ".* 903 1e00 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      0120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904 1e0a 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      3120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905 1e14 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      B120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906 1e1e 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      8120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907 1e28 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      A120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908 1e32 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      9120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909 1e3c 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      C1209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910 1e48 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      C9209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911 1e56 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      D2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912 1e62 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      E2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913 1e6e 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      F2209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914 1e7a 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      DA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915 1e88 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      EA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916 1e96 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      FA209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917 1ea4 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      40209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918 1eb0 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      48209ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919              " {
+           if [expr $x == 53] then {
+               pass "$testname: cmp.l @0x12345678:32, ..."
+           } else {
+               fail "$testname: cmp.l @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: cmp.l @0x12345678:32, ... ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t05_cmp_test
+}
diff --git a/gas/testsuite/gas/h8300/t05_cmp.s b/gas/testsuite/gas/h8300/t05_cmp.s
new file mode 100644 (file)
index 0000000..5c2af78
--- /dev/null
@@ -0,0 +1,920 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;arith_1\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+_start:\r
+    cmp.b @er3,@er1                                ;7c350120\r
+    cmp.b @er3,@(3:2,er1)                          ;7c353120\r
+    cmp.b @er3,@-er1                               ;7c35b120\r
+    cmp.b @er3,@er1+                               ;7c358120\r
+    cmp.b @er3,@er1-                               ;7c35a120\r
+    cmp.b @er3,@+er1                               ;7c359120\r
+    cmp.b @er3,@(0xffff9abc:16,er1)                ;7c35c1209abc\r
+    cmp.b @er3,@(0x9abcdef0:32,er1)                ;7c35c9209abcdef0\r
+    cmp.b @er3,@(0xffff9abc:16,r2l.b)              ;7c35d2209abc\r
+    cmp.b @er3,@(0xffff9abc:16,r2.w)              ;7c35e2209abc\r
+    cmp.b @er3,@(0xffff9abc:16,er2.l)              ;7c35f2209abc\r
+    cmp.b @er3,@(0x9abcdef0:32,r2l.b)              ;7c35da209abcdef0\r
+    cmp.b @er3,@(0x9abcdef0:32,r2.w)              ;7c35ea209abcdef0\r
+    cmp.b @er3,@(0x9abcdef0:32,er2.l)              ;7c35fa209abcdef0\r
+    cmp.b @er3,@0xffff9abc:16                      ;7c3540209abc\r
+    cmp.b @er3,@0x9abcdef0:32                      ;7c3548209abcdef0\r
+\r
+    cmp.b @-er3,@er1                               ;01776c3c0120\r
+    cmp.b @-er3,@(3:2,er1)                         ;01776c3c3120\r
+    cmp.b @-er3,@-er1                              ;01776c3cb120\r
+    cmp.b @-er3,@er1+                              ;01776c3c8120\r
+    cmp.b @-er3,@er1-                              ;01776c3ca120\r
+    cmp.b @-er3,@+er1                              ;01776c3c9120\r
+    cmp.b @-er3,@(0xffff9abc:16,er1)               ;01776c3cc1209abc\r
+    cmp.b @-er3,@(0x9abcdef0:32,er1)               ;01776c3cc9209abcdef0\r
+    cmp.b @-er3,@(0xffff9abc:16,r2l.b)             ;01776c3cd2209abc\r
+    cmp.b @-er3,@(0xffff9abc:16,r2.w)             ;01776c3ce2209abc\r
+    cmp.b @-er3,@(0xffff9abc:16,er2.l)             ;01776c3cf2209abc\r
+    cmp.b @-er3,@(0x9abcdef0:32,r2l.b)             ;01776c3cda209abcdef0\r
+    cmp.b @-er3,@(0x9abcdef0:32,r2.w)             ;01776c3cea209abcdef0\r
+    cmp.b @-er3,@(0x9abcdef0:32,er2.l)             ;01776c3cfa209abcdef0\r
+    cmp.b @-er3,@0xffff9abc:16                     ;01776c3c40209abc\r
+    cmp.b @-er3,@0x9abcdef0:32                     ;01776c3c48209abcdef0\r
+\r
+    cmp.b @er3+,@er1                               ;01746c3c0120\r
+    cmp.b @er3+,@(3:2,er1)                         ;01746c3c3120\r
+    cmp.b @er3+,@-er1                              ;01746c3cb120\r
+    cmp.b @er3+,@er1+                              ;01746c3c8120\r
+    cmp.b @er3+,@er1-                              ;01746c3ca120\r
+    cmp.b @er3+,@+er1                              ;01746c3c9120\r
+    cmp.b @er3+,@(0xffff9abc:16,er1)               ;01746c3cc1209abc\r
+    cmp.b @er3+,@(0x9abcdef0:32,er1)               ;01746c3cc9209abcdef0\r
+    cmp.b @er3+,@(0xffff9abc:16,r2l.b)             ;01746c3cd2209abc\r
+    cmp.b @er3+,@(0xffff9abc:16,r2.w)             ;01746c3ce2209abc\r
+    cmp.b @er3+,@(0xffff9abc:16,er2.l)             ;01746c3cf2209abc\r
+    cmp.b @er3+,@(0x9abcdef0:32,r2l.b)             ;01746c3cda209abcdef0\r
+    cmp.b @er3+,@(0x9abcdef0:32,r2.w)             ;01746c3cea209abcdef0\r
+    cmp.b @er3+,@(0x9abcdef0:32,er2.l)             ;01746c3cfa209abcdef0\r
+    cmp.b @er3+,@0xffff9abc:16                     ;01746c3c40209abc\r
+    cmp.b @er3+,@0x9abcdef0:32                     ;01746c3c48209abcdef0\r
+\r
+    cmp.b @er3-,@er1                               ;01766c3c0120\r
+    cmp.b @er3-,@(3:2,er1)                         ;01766c3c3120\r
+    cmp.b @er3-,@-er1                              ;01766c3cb120\r
+    cmp.b @er3-,@er1+                              ;01766c3c8120\r
+    cmp.b @er3-,@er1-                              ;01766c3ca120\r
+    cmp.b @er3-,@+er1                              ;01766c3c9120\r
+    cmp.b @er3-,@(0xffff9abc:16,er1)               ;01766c3cc1209abc\r
+    cmp.b @er3-,@(0x9abcdef0:32,er1)               ;01766c3cc9209abcdef0\r
+    cmp.b @er3-,@(0xffff9abc:16,r2l.b)             ;01766c3cd2209abc\r
+    cmp.b @er3-,@(0xffff9abc:16,r2.w)             ;01766c3ce2209abc\r
+    cmp.b @er3-,@(0xffff9abc:16,er2.l)             ;01766c3cf2209abc\r
+    cmp.b @er3-,@(0x9abcdef0:32,r2l.b)             ;01766c3cda209abcdef0\r
+    cmp.b @er3-,@(0x9abcdef0:32,r2.w)             ;01766c3cea209abcdef0\r
+    cmp.b @er3-,@(0x9abcdef0:32,er2.l)             ;01766c3cfa209abcdef0\r
+    cmp.b @er3-,@0xffff9abc:16                     ;01766c3c40209abc\r
+    cmp.b @er3-,@0x9abcdef0:32                     ;01766c3c48209abcdef0\r
+\r
+    cmp.b @+er3,@er1                               ;01756c3c0120\r
+    cmp.b @+er3,@(3:2,er1)                         ;01756c3c3120\r
+    cmp.b @+er3,@-er1                              ;01756c3cb120\r
+    cmp.b @+er3,@er1+                              ;01756c3c8120\r
+    cmp.b @+er3,@er1-                              ;01756c3ca120\r
+    cmp.b @+er3,@+er1                              ;01756c3c9120\r
+    cmp.b @+er3,@(0xffff9abc:16,er1)               ;01756c3cc1209abc\r
+    cmp.b @+er3,@(0x9abcdef0:32,er1)               ;01756c3cc9209abcdef0\r
+    cmp.b @+er3,@(0xffff9abc:16,r2l.b)             ;01756c3cd2209abc\r
+    cmp.b @+er3,@(0xffff9abc:16,r2.w)             ;01756c3ce2209abc\r
+    cmp.b @+er3,@(0xffff9abc:16,er2.l)             ;01756c3cf2209abc\r
+    cmp.b @+er3,@(0x9abcdef0:32,r2l.b)             ;01756c3cda209abcdef0\r
+    cmp.b @+er3,@(0x9abcdef0:32,r2.w)             ;01756c3cea209abcdef0\r
+    cmp.b @+er3,@(0x9abcdef0:32,er2.l)             ;01756c3cfa209abcdef0\r
+    cmp.b @+er3,@0xffff9abc:16                     ;01756c3c40209abc\r
+    cmp.b @+er3,@0x9abcdef0:32                     ;01756c3c48209abcdef0\r
+\r
+    cmp.b @(0x1234:16,er3),@er1                         ;01746e3c12340120\r
+    cmp.b @(0x1234:16,er3),@(3:2,er1)                   ;01746e3c12343120\r
+    cmp.b @(0x1234:16,er3),@-er1                        ;01746e3c1234b120\r
+    cmp.b @(0x1234:16,er3),@er1+                        ;01746e3c12348120\r
+    cmp.b @(0x1234:16,er3),@er1-                        ;01746e3c1234a120\r
+    cmp.b @(0x1234:16,er3),@+er1                        ;01746e3c12349120\r
+    cmp.b @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01746e3c1234c1209abc\r
+    cmp.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01746e3c1234c9209abcdef0\r
+    cmp.b @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01746e3c1234d2209abc\r
+    cmp.b @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01746e3c1234e2209abc\r
+    cmp.b @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01746e3c1234f2209abc\r
+    cmp.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01746e3c1234da209abcdef0\r
+    cmp.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01746e3c1234ea209abcdef0\r
+    cmp.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01746e3c1234fa209abcdef0\r
+    cmp.b @(0x1234:16,er3),@0xffff9abc:16               ;01746e3c123440209abc\r
+    cmp.b @(0x1234:16,er3),@0x9abcdef0:32               ;01746e3c123448209abcdef0\r
+\r
+    cmp.b @(0x12345678:32,er3),@er1                         ;78346a2c123456780120\r
+    cmp.b @(0x12345678:32,er3),@(3:2,er1)                   ;78346a2c123456783120\r
+    cmp.b @(0x12345678:32,er3),@-er1                        ;78346a2c12345678b120\r
+    cmp.b @(0x12345678:32,er3),@er1+                        ;78346a2c123456788120\r
+    cmp.b @(0x12345678:32,er3),@er1-                        ;78346a2c12345678a120\r
+    cmp.b @(0x12345678:32,er3),@+er1                        ;78346a2c123456789120\r
+    cmp.b @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78346a2c12345678c1209abc\r
+    cmp.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78346a2c12345678c9209abcdef0\r
+    cmp.b @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78346a2c12345678d2209abc\r
+    cmp.b @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78346a2c12345678e2209abc\r
+    cmp.b @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78346a2c12345678f2209abc\r
+    cmp.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78346a2c12345678da209abcdef0\r
+    cmp.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78346a2c12345678ea209abcdef0\r
+    cmp.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78346a2c12345678fa209abcdef0\r
+    cmp.b @(0x12345678:32,er3),@0xffff9abc:16               ;78346a2c1234567840209abc\r
+    cmp.b @(0x12345678:32,er3),@0x9abcdef0:32               ;78346a2c1234567848209abcdef0\r
+\r
+    cmp.b @(0x1234:16,r3l.b),@er1                       ;01756e3c12340120\r
+    cmp.b @(0x1234:16,r3l.b),@(3:2,er1)                 ;01756e3c12343120\r
+    cmp.b @(0x1234:16,r3l.b),@-er1                      ;01756e3c1234b120\r
+    cmp.b @(0x1234:16,r3l.b),@er1+                      ;01756e3c12348120\r
+    cmp.b @(0x1234:16,r3l.b),@er1-                      ;01756e3c1234a120\r
+    cmp.b @(0x1234:16,r3l.b),@+er1                      ;01756e3c12349120\r
+    cmp.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01756e3c1234c1209abc\r
+    cmp.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01756e3c1234c9209abcdef0\r
+    cmp.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01756e3c1234d2209abc\r
+    cmp.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01756e3c1234e2209abc\r
+    cmp.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01756e3c1234f2209abc\r
+    cmp.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01756e3c1234da209abcdef0\r
+    cmp.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01756e3c1234ea209abcdef0\r
+    cmp.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01756e3c1234fa209abcdef0\r
+    cmp.b @(0x1234:16,r3l.b),@0xffff9abc:16             ;01756e3c123440209abc\r
+    cmp.b @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01756e3c123448209abcdef0\r
+\r
+    cmp.b @(0x1234:16,r3.w),@er1                       ;01766e3c12340120\r
+    cmp.b @(0x1234:16,r3.w),@(3:2,er1)                 ;01766e3c12343120\r
+    cmp.b @(0x1234:16,r3.w),@-er1                      ;01766e3c1234b120\r
+    cmp.b @(0x1234:16,r3.w),@er1+                      ;01766e3c12348120\r
+    cmp.b @(0x1234:16,r3.w),@er1-                      ;01766e3c1234a120\r
+    cmp.b @(0x1234:16,r3.w),@+er1                      ;01766e3c12349120\r
+    cmp.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01766e3c1234c1209abc\r
+    cmp.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01766e3c1234c9209abcdef0\r
+    cmp.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01766e3c1234d2209abc\r
+    cmp.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01766e3c1234e2209abc\r
+    cmp.b @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01766e3c1234f2209abc\r
+    cmp.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01766e3c1234da209abcdef0\r
+    cmp.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01766e3c1234ea209abcdef0\r
+    cmp.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01766e3c1234fa209abcdef0\r
+    cmp.b @(0x1234:16,r3.w),@0xffff9abc:16             ;01766e3c123440209abc\r
+    cmp.b @(0x1234:16,r3.w),@0x9abcdef0:32             ;01766e3c123448209abcdef0\r
+\r
+    cmp.b @(0x1234:16,er3.l),@er1                       ;01776e3c12340120\r
+    cmp.b @(0x1234:16,er3.l),@(3:2,er1)                 ;01776e3c12343120\r
+    cmp.b @(0x1234:16,er3.l),@-er1                      ;01776e3c1234b120\r
+    cmp.b @(0x1234:16,er3.l),@er1+                      ;01776e3c12348120\r
+    cmp.b @(0x1234:16,er3.l),@er1-                      ;01776e3c1234a120\r
+    cmp.b @(0x1234:16,er3.l),@+er1                      ;01776e3c12349120\r
+    cmp.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01776e3c1234c1209abc\r
+    cmp.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01776e3c1234c9209abcdef0\r
+    cmp.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01776e3c1234d2209abc\r
+    cmp.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01776e3c1234e2209abc\r
+    cmp.b @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01776e3c1234f2209abc\r
+    cmp.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01776e3c1234da209abcdef0\r
+    cmp.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01776e3c1234ea209abcdef0\r
+    cmp.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01776e3c1234fa209abcdef0\r
+    cmp.b @(0x1234:16,er3.l),@0xffff9abc:16             ;01776e3c123440209abc\r
+    cmp.b @(0x1234:16,er3.l),@0x9abcdef0:32             ;01776e3c123448209abcdef0\r
+\r
+    cmp.b @(0x12345678:32,r3l.b),@er1                       ;78356a2c123456780120\r
+    cmp.b @(0x12345678:32,r3l.b),@(3:2,er1)                 ;78356a2c123456783120\r
+    cmp.b @(0x12345678:32,r3l.b),@-er1                      ;78356a2c12345678b120\r
+    cmp.b @(0x12345678:32,r3l.b),@er1+                      ;78356a2c123456788120\r
+    cmp.b @(0x12345678:32,r3l.b),@er1-                      ;78356a2c12345678a120\r
+    cmp.b @(0x12345678:32,r3l.b),@+er1                      ;78356a2c123456789120\r
+    cmp.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78356a2c12345678c1209abc\r
+    cmp.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78356a2c12345678c9209abcdef0\r
+    cmp.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78356a2c12345678d2209abc\r
+    cmp.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78356a2c12345678e2209abc\r
+    cmp.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78356a2c12345678f2209abc\r
+    cmp.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78356a2c12345678da209abcdef0\r
+    cmp.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78356a2c12345678ea209abcdef0\r
+    cmp.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78356a2c12345678fa209abcdef0\r
+    cmp.b @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78356a2c1234567840209abc\r
+    cmp.b @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78356a2c1234567848209abcdef0\r
+\r
+    cmp.b @(0x12345678:32,r3.w),@er1                       ;78366a2c123456780120\r
+    cmp.b @(0x12345678:32,r3.w),@(3:2,er1)                 ;78366a2c123456783120\r
+    cmp.b @(0x12345678:32,r3.w),@-er1                      ;78366a2c12345678b120\r
+    cmp.b @(0x12345678:32,r3.w),@er1+                      ;78366a2c123456788120\r
+    cmp.b @(0x12345678:32,r3.w),@er1-                      ;78366a2c12345678a120\r
+    cmp.b @(0x12345678:32,r3.w),@+er1                      ;78366a2c123456789120\r
+    cmp.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78366a2c12345678c1209abc\r
+    cmp.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78366a2c12345678c9209abcdef0\r
+    cmp.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78366a2c12345678d2209abc\r
+    cmp.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78366a2c12345678e2209abc\r
+    cmp.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78366a2c12345678f2209abc\r
+    cmp.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78366a2c12345678da209abcdef0\r
+    cmp.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78366a2c12345678ea209abcdef0\r
+    cmp.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78366a2c12345678fa209abcdef0\r
+    cmp.b @(0x12345678:32,r3.w),@0xffff9abc:16             ;78366a2c1234567840209abc\r
+    cmp.b @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78366a2c1234567848209abcdef0\r
+\r
+    cmp.b @(0x12345678:32,er3.l),@er1                       ;78376a2c123456780120\r
+    cmp.b @(0x12345678:32,er3.l),@(3:2,er1)                 ;78376a2c123456783120\r
+    cmp.b @(0x12345678:32,er3.l),@-er1                      ;78376a2c12345678b120\r
+    cmp.b @(0x12345678:32,er3.l),@er1+                      ;78376a2c123456788120\r
+    cmp.b @(0x12345678:32,er3.l),@er1-                      ;78376a2c12345678a120\r
+    cmp.b @(0x12345678:32,er3.l),@+er1                      ;78376a2c123456789120\r
+    cmp.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78376a2c12345678c1209abc\r
+    cmp.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78376a2c12345678c9209abcdef0\r
+    cmp.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78376a2c12345678d2209abc\r
+    cmp.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78376a2c12345678e2209abc\r
+    cmp.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78376a2c12345678f2209abc\r
+    cmp.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78376a2c12345678da209abcdef0\r
+    cmp.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78376a2c12345678ea209abcdef0\r
+    cmp.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78376a2c12345678fa209abcdef0\r
+    cmp.b @(0x12345678:32,er3.l),@0xffff9abc:16             ;78376a2c1234567840209abc\r
+    cmp.b @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78376a2c1234567848209abcdef0\r
+\r
+    cmp.b @0x1234:16,@er1                              ;6a1512340120\r
+    cmp.b @0x1234:16,@(3:2,er1)                        ;6a1512343120\r
+    cmp.b @0x1234:16,@-er1                             ;6a151234b120\r
+    cmp.b @0x1234:16,@er1+                             ;6a1512348120\r
+    cmp.b @0x1234:16,@er1-                             ;6a151234a120\r
+    cmp.b @0x1234:16,@+er1                             ;6a1512349120\r
+    cmp.b @0x1234:16,@(0xffff9abc:16,er1)              ;6a151234c1209abc\r
+    cmp.b @0x1234:16,@(0x9abcdef0:32,er1)              ;6a151234c9209abcdef0\r
+    cmp.b @0x1234:16,@(0xffff9abc:16,r2l.b)            ;6a151234d2209abc\r
+    cmp.b @0x1234:16,@(0xffff9abc:16,r2.w)            ;6a151234e2209abc\r
+    cmp.b @0x1234:16,@(0xffff9abc:16,er2.l)            ;6a151234f2209abc\r
+    cmp.b @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;6a151234da209abcdef0\r
+    cmp.b @0x1234:16,@(0x9abcdef0:32,r2.w)            ;6a151234ea209abcdef0\r
+    cmp.b @0x1234:16,@(0x9abcdef0:32,er2.l)            ;6a151234fa209abcdef0\r
+    cmp.b @0x1234:16,@0xffff9abc:16                    ;6a15123440209abc\r
+    cmp.b @0x1234:16,@0x9abcdef0:32                    ;6a15123448209abcdef0\r
+\r
+    cmp.b @0x12345678:32,@er1                              ;6a35123456780120\r
+    cmp.b @0x12345678:32,@(3:2,er1)                        ;6a35123456783120\r
+    cmp.b @0x12345678:32,@-er1                             ;6a3512345678b120\r
+    cmp.b @0x12345678:32,@er1+                             ;6a35123456788120\r
+    cmp.b @0x12345678:32,@er1-                             ;6a3512345678a120\r
+    cmp.b @0x12345678:32,@+er1                             ;6a35123456789120\r
+    cmp.b @0x12345678:32,@(0xffff9abc:16,er1)              ;6a3512345678c1209abc\r
+    cmp.b @0x12345678:32,@(0x9abcdef0:32,er1)              ;6a3512345678c9209abcdef0\r
+    cmp.b @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;6a3512345678d2209abc\r
+    cmp.b @0x12345678:32,@(0xffff9abc:16,r2.w)            ;6a3512345678e2209abc\r
+    cmp.b @0x12345678:32,@(0xffff9abc:16,er2.l)            ;6a3512345678f2209abc\r
+    cmp.b @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;6a3512345678da209abcdef0\r
+    cmp.b @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;6a3512345678ea209abcdef0\r
+    cmp.b @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;6a3512345678fa209abcdef0\r
+    cmp.b @0x12345678:32,@0xffff9abc:16                    ;6a351234567840209abc\r
+    cmp.b @0x12345678:32,@0x9abcdef0:32                    ;6a351234567848209abcdef0\r
+\r
+    cmp.w #0x1234:16,r1                       ;79211234\r
+    cmp.w #0x7:3,r2                         ;1f72\r
+    cmp.w #0x1234:16,@er1                      ;015e01201234\r
+    cmp.w #0x1234:16,@(0x6:2,er1)             ;015e31201234\r
+    cmp.w #0x1234:16,@er1+                     ;015e81201234\r
+    cmp.w #0x1234:16,@-er1                     ;015eb1201234\r
+    cmp.w #0x1234:16,@+er1                     ;015e91201234\r
+    cmp.w #0x1234:16,@er1-                     ;015ea1201234\r
+    cmp.w #0x1234:16,@(0xffff9abc:16,er1)               ;015ec1209abc1234\r
+    cmp.w #0x1234:16,@(0x9abcdef0:32,er1)               ;015ec9209abcdef01234\r
+    cmp.w #0x1234:16,@(0xffff9abc:16,r2l.b)             ;015ed2209abc1234\r
+    cmp.w #0x1234:16,@(0xffff9abc:16,r2.w)             ;015ee2209abc1234\r
+    cmp.w #0x1234:16,@(0xffff9abc:16,er2.l)             ;015ef2209abc1234\r
+    cmp.w #0x1234:16,@(0x9abcdef0:32,r2l.b)             ;015eda209abcdef01234\r
+    cmp.w #0x1234:16,@(0x9abcdef0:32,r2.w)             ;015eea209abcdef01234\r
+    cmp.w #0x1234:16,@(0x9abcdef0:32,er2.l)             ;015efa209abcdef01234\r
+    cmp.w #0x1234:16,@0xffff9abc:16                     ;015e40209abc1234\r
+    cmp.w #0x1234:16,@0x9abcdef0:32                     ;015e48209abcdef01234\r
+\r
+    cmp.w #0x7:3,@er1                       ;7d901f70\r
+    cmp.w #0x7:3,@0x1234:16                     ;6b1812341f70\r
+    cmp.w #0x7:3,@0x12345678:32                     ;6b38123456781f70\r
+\r
+    cmp.w r3,r1                           ;1d31\r
+\r
+    cmp.w r3,@er1                         ;7d901d30\r
+    cmp.w r3,@(0x6:2,er1)                ;01593123\r
+    cmp.w r3,@er1+                        ;01598123\r
+    cmp.w r3,@-er1                        ;0159b123\r
+    cmp.w r3,@+er1                        ;01599123\r
+    cmp.w r3,@er1-                        ;0159a123\r
+    cmp.w r3,@(0x1234:16,er1)                  ;0159c1231234\r
+    cmp.w r3,@(0x12345678:32,er1)                  ;0159c92312345678\r
+    cmp.w r3,@(0x1234:16,r2l.b)                ;0159d2231234\r
+    cmp.w r3,@(0x1234:16,r2.w)                ;0159e2231234\r
+    cmp.w r3,@(0x1234:16,er2.l)                ;0159f2231234\r
+    cmp.w r3,@(0x12345678:32,r2l.b)                ;0159da2312345678\r
+    cmp.w r3,@(0x12345678:32,r2.w)                ;0159ea2312345678\r
+    cmp.w r3,@(0x12345678:32,er2.l)                ;0159fa2312345678\r
+    cmp.w r3,@0x1234:16                       ;6b1812341d30\r
+    cmp.w r3,@0x12345678:32                       ;6b38123456781d30\r
+\r
+    cmp.w @er3,r1                         ;7cb01d01\r
+    cmp.w @(0x6:2,er3),r1               ;015a3321\r
+    cmp.w @er3+,r1                       ;015a8321\r
+    cmp.w @-er3,r1                       ;015ab321\r
+    cmp.w @+er3,r1                       ;015a9321\r
+    cmp.w @er3-,r1                       ;015aa321\r
+    cmp.w @(0x1234:16,er1),r1                  ;015ac1211234\r
+    cmp.w @(0x12345678:32,er1),r1                  ;015ac92112345678\r
+    cmp.w @(0x1234:16,r2l.b),r1                ;015ad2211234\r
+    cmp.w @(0x1234:16,r2.w),r1                ;015ae2211234\r
+    cmp.w @(0x1234:16,er2.l),r1                ;015af2211234\r
+    cmp.w @(0x12345678:32,r2l.b),r1                ;015ada2112345678\r
+    cmp.w @(0x12345678:32,r2.w),r1                ;015aea2112345678\r
+    cmp.w @(0x12345678:32,er2.l),r1                ;015afa2112345678\r
+    cmp.w @0x1234:16,r1                       ;6b1012341d01\r
+    cmp.w @0x12345678:32,r1                       ;6b30123456781d01\r
+\r
+    cmp.w @er3,@er1                                ;7cb50120\r
+    cmp.w @er3,@(6:2,er1)                          ;7cb53120\r
+    cmp.w @er3,@-er1                               ;7cb5b120\r
+    cmp.w @er3,@er1+                               ;7cb58120\r
+    cmp.w @er3,@er1-                               ;7cb5a120\r
+    cmp.w @er3,@+er1                               ;7cb59120\r
+    cmp.w @er3,@(0xffff9abc:16,er1)                ;7cb5c1209abc\r
+    cmp.w @er3,@(0x9abcdef0:32,er1)                ;7cb5c9209abcdef0\r
+    cmp.w @er3,@(0xffff9abc:16,r2l.b)              ;7cb5d2209abc\r
+    cmp.w @er3,@(0xffff9abc:16,r2.w)              ;7cb5e2209abc\r
+    cmp.w @er3,@(0xffff9abc:16,er2.l)              ;7cb5f2209abc\r
+    cmp.w @er3,@(0x9abcdef0:32,r2l.b)              ;7cb5da209abcdef0\r
+    cmp.w @er3,@(0x9abcdef0:32,r2.w)              ;7cb5ea209abcdef0\r
+    cmp.w @er3,@(0x9abcdef0:32,er2.l)              ;7cb5fa209abcdef0\r
+    cmp.w @er3,@0xffff9abc:16                      ;7cb540209abc\r
+    cmp.w @er3,@0x9abcdef0:32                      ;7cb548209abcdef0\r
+\r
+    cmp.w @-er3,@er1                               ;01576d3c0120\r
+    cmp.w @-er3,@(6:2,er1)                         ;01576d3c3120\r
+    cmp.w @-er3,@-er1                              ;01576d3cb120\r
+    cmp.w @-er3,@er1+                              ;01576d3c8120\r
+    cmp.w @-er3,@er1-                              ;01576d3ca120\r
+    cmp.w @-er3,@+er1                              ;01576d3c9120\r
+    cmp.w @-er3,@(0xffff9abc:16,er1)               ;01576d3cc1209abc\r
+    cmp.w @-er3,@(0x9abcdef0:32,er1)               ;01576d3cc9209abcdef0\r
+    cmp.w @-er3,@(0xffff9abc:16,r2l.b)             ;01576d3cd2209abc\r
+    cmp.w @-er3,@(0xffff9abc:16,r2.w)             ;01576d3ce2209abc\r
+    cmp.w @-er3,@(0xffff9abc:16,er2.l)             ;01576d3cf2209abc\r
+    cmp.w @-er3,@(0x9abcdef0:32,r2l.b)             ;01576d3cda209abcdef0\r
+    cmp.w @-er3,@(0x9abcdef0:32,r2.w)             ;01576d3cea209abcdef0\r
+    cmp.w @-er3,@(0x9abcdef0:32,er2.l)             ;01576d3cfa209abcdef0\r
+    cmp.w @-er3,@0xffff9abc:16                     ;01576d3c40209abc\r
+    cmp.w @-er3,@0x9abcdef0:32                     ;01576d3c48209abcdef0\r
+\r
+    cmp.w @er3+,@er1                               ;01546d3c0120\r
+    cmp.w @er3+,@(6:2,er1)                         ;01546d3c3120\r
+    cmp.w @er3+,@-er1                              ;01546d3cb120\r
+    cmp.w @er3+,@er1+                              ;01546d3c8120\r
+    cmp.w @er3+,@er1-                              ;01546d3ca120\r
+    cmp.w @er3+,@+er1                              ;01546d3c9120\r
+    cmp.w @er3+,@(0xffff9abc:16,er1)               ;01546d3cc1209abc\r
+    cmp.w @er3+,@(0x9abcdef0:32,er1)               ;01546d3cc9209abcdef0\r
+    cmp.w @er3+,@(0xffff9abc:16,r2l.b)             ;01546d3cd2209abc\r
+    cmp.w @er3+,@(0xffff9abc:16,r2.w)             ;01546d3ce2209abc\r
+    cmp.w @er3+,@(0xffff9abc:16,er2.l)             ;01546d3cf2209abc\r
+    cmp.w @er3+,@(0x9abcdef0:32,r2l.b)             ;01546d3cda209abcdef0\r
+    cmp.w @er3+,@(0x9abcdef0:32,r2.w)             ;01546d3cea209abcdef0\r
+    cmp.w @er3+,@(0x9abcdef0:32,er2.l)             ;01546d3cfa209abcdef0\r
+    cmp.w @er3+,@0xffff9abc:16                     ;01546d3c40209abc\r
+    cmp.w @er3+,@0x9abcdef0:32                     ;01546d3c48209abcdef0\r
+\r
+    cmp.w @er3-,@er1                               ;01566d3c0120\r
+    cmp.w @er3-,@(6:2,er1)                         ;01566d3c3120\r
+    cmp.w @er3-,@-er1                              ;01566d3cb120\r
+    cmp.w @er3-,@er1+                              ;01566d3c8120\r
+    cmp.w @er3-,@er1-                              ;01566d3ca120\r
+    cmp.w @er3-,@+er1                              ;01566d3c9120\r
+    cmp.w @er3-,@(0xffff9abc:16,er1)               ;01566d3cc1209abc\r
+    cmp.w @er3-,@(0x9abcdef0:32,er1)               ;01566d3cc9209abcdef0\r
+    cmp.w @er3-,@(0xffff9abc:16,r2l.b)             ;01566d3cd2209abc\r
+    cmp.w @er3-,@(0xffff9abc:16,r2.w)             ;01566d3ce2209abc\r
+    cmp.w @er3-,@(0xffff9abc:16,er2.l)             ;01566d3cf2209abc\r
+    cmp.w @er3-,@(0x9abcdef0:32,r2l.b)             ;01566d3cda209abcdef0\r
+    cmp.w @er3-,@(0x9abcdef0:32,r2.w)             ;01566d3cea209abcdef0\r
+    cmp.w @er3-,@(0x9abcdef0:32,er2.l)             ;01566d3cfa209abcdef0\r
+    cmp.w @er3-,@0xffff9abc:16                     ;01566d3c40209abc\r
+    cmp.w @er3-,@0x9abcdef0:32                     ;01566d3c48209abcdef0\r
+\r
+    cmp.w @+er3,@er1                               ;01556d3c0120\r
+    cmp.w @+er3,@(6:2,er1)                         ;01556d3c3120\r
+    cmp.w @+er3,@-er1                              ;01556d3cb120\r
+    cmp.w @+er3,@er1+                              ;01556d3c8120\r
+    cmp.w @+er3,@er1-                              ;01556d3ca120\r
+    cmp.w @+er3,@+er1                              ;01556d3c9120\r
+    cmp.w @+er3,@(0xffff9abc:16,er1)               ;01556d3cc1209abc\r
+    cmp.w @+er3,@(0x9abcdef0:32,er1)               ;01556d3cc9209abcdef0\r
+    cmp.w @+er3,@(0xffff9abc:16,r2l.b)             ;01556d3cd2209abc\r
+    cmp.w @+er3,@(0xffff9abc:16,r2.w)             ;01556d3ce2209abc\r
+    cmp.w @+er3,@(0xffff9abc:16,er2.l)             ;01556d3cf2209abc\r
+    cmp.w @+er3,@(0x9abcdef0:32,r2l.b)             ;01556d3cda209abcdef0\r
+    cmp.w @+er3,@(0x9abcdef0:32,r2.w)             ;01556d3cea209abcdef0\r
+    cmp.w @+er3,@(0x9abcdef0:32,er2.l)             ;01556d3cfa209abcdef0\r
+    cmp.w @+er3,@0xffff9abc:16                     ;01556d3c40209abc\r
+    cmp.w @+er3,@0x9abcdef0:32                     ;01556d3c48209abcdef0\r
+\r
+    cmp.w @(0x1234:16,er3),@er1                         ;01546f3c12340120\r
+    cmp.w @(0x1234:16,er3),@(6:2,er1)                   ;01546f3c12343120\r
+    cmp.w @(0x1234:16,er3),@-er1                        ;01546f3c1234b120\r
+    cmp.w @(0x1234:16,er3),@er1+                        ;01546f3c12348120\r
+    cmp.w @(0x1234:16,er3),@er1-                        ;01546f3c1234a120\r
+    cmp.w @(0x1234:16,er3),@+er1                        ;01546f3c12349120\r
+    cmp.w @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01546f3c1234c1209abc\r
+    cmp.w @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01546f3c1234c9209abcdef0\r
+    cmp.w @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01546f3c1234d2209abc\r
+    cmp.w @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01546f3c1234e2209abc\r
+    cmp.w @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01546f3c1234f2209abc\r
+    cmp.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01546f3c1234da209abcdef0\r
+    cmp.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01546f3c1234ea209abcdef0\r
+    cmp.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01546f3c1234fa209abcdef0\r
+    cmp.w @(0x1234:16,er3),@0xffff9abc:16               ;01546f3c123440209abc\r
+    cmp.w @(0x1234:16,er3),@0x9abcdef0:32               ;01546f3c123448209abcdef0\r
+\r
+    cmp.w @(0x12345678:32,er3),@er1                         ;78346b2c123456780120\r
+    cmp.w @(0x12345678:32,er3),@(6:2,er1)                   ;78346b2c123456783120\r
+    cmp.w @(0x12345678:32,er3),@-er1                        ;78346b2c12345678b120\r
+    cmp.w @(0x12345678:32,er3),@er1+                        ;78346b2c123456788120\r
+    cmp.w @(0x12345678:32,er3),@er1-                        ;78346b2c12345678a120\r
+    cmp.w @(0x12345678:32,er3),@+er1                        ;78346b2c123456789120\r
+    cmp.w @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78346b2c12345678c1209abc\r
+    cmp.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78346b2c12345678c9209abcdef0\r
+    cmp.w @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78346b2c12345678d2209abc\r
+    cmp.w @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78346b2c12345678e2209abc\r
+    cmp.w @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78346b2c12345678f2209abc\r
+    cmp.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78346b2c12345678da209abcdef0\r
+    cmp.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78346b2c12345678ea209abcdef0\r
+    cmp.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78346b2c12345678fa209abcdef0\r
+    cmp.w @(0x12345678:32,er3),@0xffff9abc:16               ;78346b2c1234567840209abc\r
+    cmp.w @(0x12345678:32,er3),@0x9abcdef0:32               ;78346b2c1234567848209abcdef0\r
+\r
+    cmp.w @(0x1234:16,r3l.b),@er1                       ;01556f3c12340120\r
+    cmp.w @(0x1234:16,r3l.b),@(6:2,er1)                 ;01556f3c12343120\r
+    cmp.w @(0x1234:16,r3l.b),@-er1                      ;01556f3c1234b120\r
+    cmp.w @(0x1234:16,r3l.b),@er1+                      ;01556f3c12348120\r
+    cmp.w @(0x1234:16,r3l.b),@er1-                      ;01556f3c1234a120\r
+    cmp.w @(0x1234:16,r3l.b),@+er1                      ;01556f3c12349120\r
+    cmp.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01556f3c1234c1209abc\r
+    cmp.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01556f3c1234c9209abcdef0\r
+    cmp.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01556f3c1234d2209abc\r
+    cmp.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01556f3c1234e2209abc\r
+    cmp.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01556f3c1234f2209abc\r
+    cmp.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01556f3c1234da209abcdef0\r
+    cmp.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01556f3c1234ea209abcdef0\r
+    cmp.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01556f3c1234fa209abcdef0\r
+    cmp.w @(0x1234:16,r3l.b),@0xffff9abc:16             ;01556f3c123440209abc\r
+    cmp.w @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01556f3c123448209abcdef0\r
+\r
+    cmp.w @(0x1234:16,r3.w),@er1                       ;01566f3c12340120\r
+    cmp.w @(0x1234:16,r3.w),@(6:2,er1)                 ;01566f3c12343120\r
+    cmp.w @(0x1234:16,r3.w),@-er1                      ;01566f3c1234b120\r
+    cmp.w @(0x1234:16,r3.w),@er1+                      ;01566f3c12348120\r
+    cmp.w @(0x1234:16,r3.w),@er1-                      ;01566f3c1234a120\r
+    cmp.w @(0x1234:16,r3.w),@+er1                      ;01566f3c12349120\r
+    cmp.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01566f3c1234c1209abc\r
+    cmp.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01566f3c1234c9209abcdef0\r
+    cmp.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01566f3c1234d2209abc\r
+    cmp.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01566f3c1234e2209abc\r
+    cmp.w @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01566f3c1234f2209abc\r
+    cmp.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01566f3c1234da209abcdef0\r
+    cmp.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01566f3c1234ea209abcdef0\r
+    cmp.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01566f3c1234fa209abcdef0\r
+    cmp.w @(0x1234:16,r3.w),@0xffff9abc:16             ;01566f3c123440209abc\r
+    cmp.w @(0x1234:16,r3.w),@0x9abcdef0:32             ;01566f3c123448209abcdef0\r
+\r
+    cmp.w @(0x1234:16,er3.l),@er1                       ;01576f3c12340120\r
+    cmp.w @(0x1234:16,er3.l),@(6:2,er1)                 ;01576f3c12343120\r
+    cmp.w @(0x1234:16,er3.l),@-er1                      ;01576f3c1234b120\r
+    cmp.w @(0x1234:16,er3.l),@er1+                      ;01576f3c12348120\r
+    cmp.w @(0x1234:16,er3.l),@er1-                      ;01576f3c1234a120\r
+    cmp.w @(0x1234:16,er3.l),@+er1                      ;01576f3c12349120\r
+    cmp.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01576f3c1234c1209abc\r
+    cmp.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01576f3c1234c9209abcdef0\r
+    cmp.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01576f3c1234d2209abc\r
+    cmp.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01576f3c1234e2209abc\r
+    cmp.w @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01576f3c1234f2209abc\r
+    cmp.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01576f3c1234da209abcdef0\r
+    cmp.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01576f3c1234ea209abcdef0\r
+    cmp.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01576f3c1234fa209abcdef0\r
+    cmp.w @(0x1234:16,er3.l),@0xffff9abc:16             ;01576f3c123440209abc\r
+    cmp.w @(0x1234:16,er3.l),@0x9abcdef0:32             ;01576f3c123448209abcdef0\r
+\r
+    cmp.w @(0x12345678:32,r3l.b),@er1                       ;78356b2c123456780120\r
+    cmp.w @(0x12345678:32,r3l.b),@(6:2,er1)                 ;78356b2c123456783120\r
+    cmp.w @(0x12345678:32,r3l.b),@-er1                      ;78356b2c12345678b120\r
+    cmp.w @(0x12345678:32,r3l.b),@er1+                      ;78356b2c123456788120\r
+    cmp.w @(0x12345678:32,r3l.b),@er1-                      ;78356b2c12345678a120\r
+    cmp.w @(0x12345678:32,r3l.b),@+er1                      ;78356b2c123456789120\r
+    cmp.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78356b2c12345678c1209abc\r
+    cmp.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78356b2c12345678c9209abcdef0\r
+    cmp.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78356b2c12345678d2209abc\r
+    cmp.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78356b2c12345678e2209abc\r
+    cmp.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78356b2c12345678f2209abc\r
+    cmp.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78356b2c12345678da209abcdef0\r
+    cmp.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78356b2c12345678ea209abcdef0\r
+    cmp.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78356b2c12345678fa209abcdef0\r
+    cmp.w @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78356b2c1234567840209abc\r
+    cmp.w @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78356b2c1234567848209abcdef0\r
+\r
+    cmp.w @(0x12345678:32,r3.w),@er1                       ;78366b2c123456780120\r
+    cmp.w @(0x12345678:32,r3.w),@(6:2,er1)                 ;78366b2c123456783120\r
+    cmp.w @(0x12345678:32,r3.w),@-er1                      ;78366b2c12345678b120\r
+    cmp.w @(0x12345678:32,r3.w),@er1+                      ;78366b2c123456788120\r
+    cmp.w @(0x12345678:32,r3.w),@er1-                      ;78366b2c12345678a120\r
+    cmp.w @(0x12345678:32,r3.w),@+er1                      ;78366b2c123456789120\r
+    cmp.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78366b2c12345678c1209abc\r
+    cmp.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78366b2c12345678c9209abcdef0\r
+    cmp.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78366b2c12345678d2209abc\r
+    cmp.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78366b2c12345678e2209abc\r
+    cmp.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78366b2c12345678f2209abc\r
+    cmp.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78366b2c12345678da209abcdef0\r
+    cmp.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78366b2c12345678ea209abcdef0\r
+    cmp.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78366b2c12345678fa209abcdef0\r
+    cmp.w @(0x12345678:32,r3.w),@0xffff9abc:16             ;78366b2c1234567840209abc\r
+    cmp.w @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78366b2c1234567848209abcdef0\r
+\r
+    cmp.w @(0x12345678:32,er3.l),@er1                       ;78376b2c123456780120\r
+    cmp.w @(0x12345678:32,er3.l),@(6:2,er1)                 ;78376b2c123456783120\r
+    cmp.w @(0x12345678:32,er3.l),@-er1                      ;78376b2c12345678b120\r
+    cmp.w @(0x12345678:32,er3.l),@er1+                      ;78376b2c123456788120\r
+    cmp.w @(0x12345678:32,er3.l),@er1-                      ;78376b2c12345678a120\r
+    cmp.w @(0x12345678:32,er3.l),@+er1                      ;78376b2c123456789120\r
+    cmp.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78376b2c12345678c1209abc\r
+    cmp.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78376b2c12345678c9209abcdef0\r
+    cmp.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78376b2c12345678d2209abc\r
+    cmp.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78376b2c12345678e2209abc\r
+    cmp.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78376b2c12345678f2209abc\r
+    cmp.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78376b2c12345678da209abcdef0\r
+    cmp.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78376b2c12345678ea209abcdef0\r
+    cmp.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78376b2c12345678fa209abcdef0\r
+    cmp.w @(0x12345678:32,er3.l),@0xffff9abc:16             ;78376b2c1234567840209abc\r
+    cmp.w @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78376b2c1234567848209abcdef0\r
+\r
+    cmp.w @0x1234:16,@er1                              ;6b1512340120\r
+    cmp.w @0x1234:16,@(6:2,er1)                        ;6b1512343120\r
+    cmp.w @0x1234:16,@-er1                             ;6b151234b120\r
+    cmp.w @0x1234:16,@er1+                             ;6b1512348120\r
+    cmp.w @0x1234:16,@er1-                             ;6b151234a120\r
+    cmp.w @0x1234:16,@+er1                             ;6b1512349120\r
+    cmp.w @0x1234:16,@(0xffff9abc:16,er1)              ;6b151234c1209abc\r
+    cmp.w @0x1234:16,@(0x9abcdef0:32,er1)              ;6b151234c9209abcdef0\r
+    cmp.w @0x1234:16,@(0xffff9abc:16,r2l.b)            ;6b151234d2209abc\r
+    cmp.w @0x1234:16,@(0xffff9abc:16,r2.w)            ;6b151234e2209abc\r
+    cmp.w @0x1234:16,@(0xffff9abc:16,er2.l)            ;6b151234f2209abc\r
+    cmp.w @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;6b151234da209abcdef0\r
+    cmp.w @0x1234:16,@(0x9abcdef0:32,r2.w)            ;6b151234ea209abcdef0\r
+    cmp.w @0x1234:16,@(0x9abcdef0:32,er2.l)            ;6b151234fa209abcdef0\r
+    cmp.w @0x1234:16,@0xffff9abc:16                    ;6b15123440209abc\r
+    cmp.w @0x1234:16,@0x9abcdef0:32                    ;6b15123448209abcdef0\r
+\r
+    cmp.w @0x12345678:32,@er1                              ;6b35123456780120\r
+    cmp.w @0x12345678:32,@(6:2,er1)                        ;6b35123456783120\r
+    cmp.w @0x12345678:32,@-er1                             ;6b3512345678b120\r
+    cmp.w @0x12345678:32,@er1+                             ;6b35123456788120\r
+    cmp.w @0x12345678:32,@er1-                             ;6b3512345678a120\r
+    cmp.w @0x12345678:32,@+er1                             ;6b35123456789120\r
+    cmp.w @0x12345678:32,@(0xffff9abc:16,er1)              ;6b3512345678c1209abc\r
+    cmp.w @0x12345678:32,@(0x9abcdef0:32,er1)              ;6b3512345678c9209abcdef0\r
+    cmp.w @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;6b3512345678d2209abc\r
+    cmp.w @0x12345678:32,@(0xffff9abc:16,r2.w)            ;6b3512345678e2209abc\r
+    cmp.w @0x12345678:32,@(0xffff9abc:16,er2.l)            ;6b3512345678f2209abc\r
+    cmp.w @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;6b3512345678da209abcdef0\r
+    cmp.w @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;6b3512345678ea209abcdef0\r
+    cmp.w @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;6b3512345678fa209abcdef0\r
+    cmp.w @0x12345678:32,@0xffff9abc:16                    ;6b351234567840209abc\r
+    cmp.w @0x12345678:32,@0x9abcdef0:32                    ;6b351234567848209abcdef0\r
+\r
+    cmp.l #0x12345678:32,er1                      ;7a2112345678\r
+    cmp.l #0x1234:16,er1                       ;7a291234\r
+    cmp.l #0x7:3,er2                         ;1ffa\r
+    cmp.l #0x12345678:32,@er1                      ;010e012812345678\r
+    cmp.l #0x12345678:32,@(0xc:2,er1)             ;010e312812345678\r
+    cmp.l #0x12345678:32,@er1+                     ;010e812812345678\r
+    cmp.l #0x12345678:32,@-er1                     ;010eb12812345678\r
+    cmp.l #0x12345678:32,@+er1                     ;010e912812345678\r
+    cmp.l #0x12345678:32,@er1-                     ;010ea12812345678\r
+    cmp.l #0x12345678:32,@(0xffff9abc:16,er1)               ;010ec1289abc12345678\r
+    cmp.l #0x12345678:32,@(0x9abcdef0:32,er1)               ;010ec9289abcdef012345678\r
+    cmp.l #0x12345678:32,@(0xffff9abc:16,r2l.b)             ;010ed2289abc12345678\r
+    cmp.l #0x12345678:32,@(0xffff9abc:16,r2.w)             ;010ee2289abc12345678\r
+    cmp.l #0x12345678:32,@(0xffff9abc:16,er2.l)             ;010ef2289abc12345678\r
+    cmp.l #0x12345678:32,@(0x9abcdef0:32,r2l.b)             ;010eda289abcdef012345678\r
+    cmp.l #0x12345678:32,@(0x9abcdef0:32,r2.w)             ;010eea289abcdef012345678\r
+    cmp.l #0x12345678:32,@(0x9abcdef0:32,er2.l)             ;010efa289abcdef012345678\r
+    cmp.l #0x12345678:32,@0xffff9abc:16                    ;010e40289abc12345678\r
+    cmp.l #0x12345678:32,@0x9abcdef0:32                    ;010e48289abcdef012345678\r
+    cmp.l #0x1234:16,@er1                      ;010e01201234\r
+    cmp.l #0x1234:16,@(0xc:2,er1)             ;010e31201234\r
+    cmp.l #0x1234:16,@er1+                     ;010e81201234\r
+    cmp.l #0x1234:16,@-er1                     ;010eb1201234\r
+    cmp.l #0x1234:16,@+er1                     ;010e91201234\r
+    cmp.l #0x1234:16,@er1-                     ;010ea1201234\r
+    cmp.l #0x1234:16,@(0xffff9abc:16,er1)               ;010ec1209abc1234\r
+    cmp.l #0x1234:16,@(0x9abcdef0:32,er1)               ;010ec9209abcdef01234\r
+    cmp.l #0x1234:16,@(0xffff9abc:16,r2l.b)             ;010ed2209abc1234\r
+    cmp.l #0x1234:16,@(0xffff9abc:16,r2.w)             ;010ee2209abc1234\r
+    cmp.l #0x1234:16,@(0xffff9abc:16,er2.l)             ;010ef2209abc1234\r
+    cmp.l #0x1234:16,@(0x9abcdef0:32,r2l.b)             ;010eda209abcdef01234\r
+    cmp.l #0x1234:16,@(0x9abcdef0:32,r2.w)             ;010eea209abcdef01234\r
+    cmp.l #0x1234:16,@(0x9abcdef0:32,er2.l)             ;010efa209abcdef01234\r
+    cmp.l #0x1234:16,@0xffff9abc:16                    ;010e40209abc1234\r
+    cmp.l #0x1234:16,@0x9abcdef0:32                    ;010e48209abcdef01234\r
+\r
+    cmp.l er3,er1                         ;1fb1\r
+\r
+    cmp.l er3,@er1                         ;01090123\r
+    cmp.l er3,@(0xc:2,er1)                ;01093123\r
+    cmp.l er3,@er1+                        ;01098123\r
+    cmp.l er3,@-er1                        ;0109b123\r
+    cmp.l er3,@+er1                        ;01099123\r
+    cmp.l er3,@er1-                        ;0109a123\r
+    cmp.l er3,@(0x1234:16,er1)                  ;0109c1231234\r
+    cmp.l er3,@(0x12345678:32,er1)                  ;0109c92312345678\r
+    cmp.l er3,@(0x1234:16,r2l.b)                ;0109d2231234\r
+    cmp.l er3,@(0x1234:16,r2.w)                ;0109e2231234\r
+    cmp.l er3,@(0x1234:16,er2.l)                ;0109f2231234\r
+    cmp.l er3,@(0x12345678:32,r2l.b)                ;0109da2312345678\r
+    cmp.l er3,@(0x12345678:32,r2.w)                ;0109ea2312345678\r
+    cmp.l er3,@(0x12345678:32,er2.l)                ;0109fa2312345678\r
+    cmp.l er3,@0x1234:16                       ;010940231234\r
+    cmp.l er3,@0x12345678:32                       ;0109482312345678\r
+\r
+    cmp.l @er3,er1                         ;010a0321\r
+    cmp.l @(0xc:2,er3),er1               ;010a3321\r
+    cmp.l @er3+,er1                       ;010a8321\r
+    cmp.l @-er3,er1                       ;010ab321\r
+    cmp.l @+er3,er1                       ;010a9321\r
+    cmp.l @er3-,er1                       ;010aa321\r
+    cmp.l @(0x1234:16,er1),er1                  ;010ac1211234\r
+    cmp.l @(0x12345678:32,er1),er1                  ;010ac92112345678\r
+    cmp.l @(0x1234:16,r2l.b),er1                ;010ad2211234\r
+    cmp.l @(0x1234:16,r2.w),er1                ;010ae2211234\r
+    cmp.l @(0x1234:16,er2.l),er1                ;010af2211234\r
+    cmp.l @(0x12345678:32,r2l.b),er1                ;010ada2112345678\r
+    cmp.l @(0x12345678:32,r2.w),er1                ;010aea2112345678\r
+    cmp.l @(0x12345678:32,er2.l),er1                ;010afa2112345678\r
+    cmp.l @0x1234:16,er1                       ;010a40211234\r
+    cmp.l @0x12345678:32,er1                       ;010a482112345678\r
+\r
+    cmp.l @er3,@er1                                ;0104693c0120\r
+    cmp.l @er3,@(0xc:2,er1)                          ;0104693c3120\r
+    cmp.l @er3,@-er1                               ;0104693cb120\r
+    cmp.l @er3,@er1+                               ;0104693c8120\r
+    cmp.l @er3,@er1-                               ;0104693ca120\r
+    cmp.l @er3,@+er1                               ;0104693c9120\r
+    cmp.l @er3,@(0xffff9abc:16,er1)                ;0104693cc1209abc\r
+    cmp.l @er3,@(0x9abcdef0:32,er1)                ;0104693cc9209abcdef0\r
+    cmp.l @er3,@(0xffff9abc:16,r2l.b)              ;0104693cd2209abc\r
+    cmp.l @er3,@(0xffff9abc:16,r2.w)              ;0104693ce2209abc\r
+    cmp.l @er3,@(0xffff9abc:16,er2.l)              ;0104693cf2209abc\r
+    cmp.l @er3,@(0x9abcdef0:32,r2l.b)              ;0104693cda209abcdef0\r
+    cmp.l @er3,@(0x9abcdef0:32,r2.w)              ;0104693cea209abcdef0\r
+    cmp.l @er3,@(0x9abcdef0:32,er2.l)              ;0104693cfa209abcdef0\r
+    cmp.l @er3,@0xffff9abc:16                      ;0104693c40209abc\r
+    cmp.l @er3,@0x9abcdef0:32                      ;0104693c48209abcdef0\r
+\r
+    cmp.l @(0xc:2,er3),@er1                       ;0107693c0120\r
+    cmp.l @(0xc:2,er3),@(0xc:2,er1)                 ;0107693c3120\r
+    cmp.l @(0xc:2,er3),@-er1                      ;0107693cb120\r
+    cmp.l @(0xc:2,er3),@er1+                      ;0107693c8120\r
+    cmp.l @(0xc:2,er3),@er1-                      ;0107693ca120\r
+    cmp.l @(0xc:2,er3),@+er1                      ;0107693c9120\r
+    cmp.l @(0xc:2,er3),@(0xffff9abc:16,er1)       ;0107693cc1209abc\r
+    cmp.l @(0xc:2,er3),@(0x9abcdef0:32,er1)       ;0107693cc9209abcdef0\r
+    cmp.l @(0xc:2,er3),@(0xffff9abc:16,r2l.b)     ;0107693cd2209abc\r
+    cmp.l @(0xc:2,er3),@(0xffff9abc:16,r2.w)     ;0107693ce2209abc\r
+    cmp.l @(0xc:2,er3),@(0xffff9abc:16,er2.l)     ;0107693cf2209abc\r
+    cmp.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b)     ;0107693cda209abcdef0\r
+    cmp.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w)     ;0107693cea209abcdef0\r
+    cmp.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l)     ;0107693cfa209abcdef0\r
+    cmp.l @(0xc:2,er3),@0xffff9abc:16             ;0107693c40209abc\r
+    cmp.l @(0xc:2,er3),@0x9abcdef0:32             ;0107693c48209abcdef0\r
+\r
+    cmp.l @-er3,@er1                               ;01076d3c0120\r
+    cmp.l @-er3,@(0xc:2,er1)                         ;01076d3c3120\r
+    cmp.l @-er3,@-er1                              ;01076d3cb120\r
+    cmp.l @-er3,@er1+                              ;01076d3c8120\r
+    cmp.l @-er3,@er1-                              ;01076d3ca120\r
+    cmp.l @-er3,@+er1                              ;01076d3c9120\r
+    cmp.l @-er3,@(0xffff9abc:16,er1)               ;01076d3cc1209abc\r
+    cmp.l @-er3,@(0x9abcdef0:32,er1)               ;01076d3cc9209abcdef0\r
+    cmp.l @-er3,@(0xffff9abc:16,r2l.b)             ;01076d3cd2209abc\r
+    cmp.l @-er3,@(0xffff9abc:16,r2.w)             ;01076d3ce2209abc\r
+    cmp.l @-er3,@(0xffff9abc:16,er2.l)             ;01076d3cf2209abc\r
+    cmp.l @-er3,@(0x9abcdef0:32,r2l.b)             ;01076d3cda209abcdef0\r
+    cmp.l @-er3,@(0x9abcdef0:32,r2.w)             ;01076d3cea209abcdef0\r
+    cmp.l @-er3,@(0x9abcdef0:32,er2.l)             ;01076d3cfa209abcdef0\r
+    cmp.l @-er3,@0xffff9abc:16                     ;01076d3c40209abc\r
+    cmp.l @-er3,@0x9abcdef0:32                     ;01076d3c48209abcdef0\r
+\r
+    cmp.l @er3+,@er1                               ;01046d3c0120\r
+    cmp.l @er3+,@(0xc:2,er1)                         ;01046d3c3120\r
+    cmp.l @er3+,@-er1                              ;01046d3cb120\r
+    cmp.l @er3+,@er1+                              ;01046d3c8120\r
+    cmp.l @er3+,@er1-                              ;01046d3ca120\r
+    cmp.l @er3+,@+er1                              ;01046d3c9120\r
+    cmp.l @er3+,@(0xffff9abc:16,er1)               ;01046d3cc1209abc\r
+    cmp.l @er3+,@(0x9abcdef0:32,er1)               ;01046d3cc9209abcdef0\r
+    cmp.l @er3+,@(0xffff9abc:16,r2l.b)             ;01046d3cd2209abc\r
+    cmp.l @er3+,@(0xffff9abc:16,r2.w)             ;01046d3ce2209abc\r
+    cmp.l @er3+,@(0xffff9abc:16,er2.l)             ;01046d3cf2209abc\r
+    cmp.l @er3+,@(0x9abcdef0:32,r2l.b)             ;01046d3cda209abcdef0\r
+    cmp.l @er3+,@(0x9abcdef0:32,r2.w)             ;01046d3cea209abcdef0\r
+    cmp.l @er3+,@(0x9abcdef0:32,er2.l)             ;01046d3cfa209abcdef0\r
+    cmp.l @er3+,@0xffff9abc:16                     ;01046d3c40209abc\r
+    cmp.l @er3+,@0x9abcdef0:32                     ;01046d3c48209abcdef0\r
+\r
+    cmp.l @er3-,@er1                               ;01066d3c0120\r
+    cmp.l @er3-,@(0xc:2,er1)                         ;01066d3c3120\r
+    cmp.l @er3-,@-er1                              ;01066d3cb120\r
+    cmp.l @er3-,@er1+                              ;01066d3c8120\r
+    cmp.l @er3-,@er1-                              ;01066d3ca120\r
+    cmp.l @er3-,@+er1                              ;01066d3c9120\r
+    cmp.l @er3-,@(0xffff9abc:16,er1)               ;01066d3cc1209abc\r
+    cmp.l @er3-,@(0x9abcdef0:32,er1)               ;01066d3cc9209abcdef0\r
+    cmp.l @er3-,@(0xffff9abc:16,r2l.b)             ;01066d3cd2209abc\r
+    cmp.l @er3-,@(0xffff9abc:16,r2.w)             ;01066d3ce2209abc\r
+    cmp.l @er3-,@(0xffff9abc:16,er2.l)             ;01066d3cf2209abc\r
+    cmp.l @er3-,@(0x9abcdef0:32,r2l.b)             ;01066d3cda209abcdef0\r
+    cmp.l @er3-,@(0x9abcdef0:32,r2.w)             ;01066d3cea209abcdef0\r
+    cmp.l @er3-,@(0x9abcdef0:32,er2.l)             ;01066d3cfa209abcdef0\r
+    cmp.l @er3-,@0xffff9abc:16                     ;01066d3c40209abc\r
+    cmp.l @er3-,@0x9abcdef0:32                     ;01066d3c48209abcdef0\r
+\r
+    cmp.l @+er3,@er1                               ;01056d3c0120\r
+    cmp.l @+er3,@(0xc:2,er1)                         ;01056d3c3120\r
+    cmp.l @+er3,@-er1                              ;01056d3cb120\r
+    cmp.l @+er3,@er1+                              ;01056d3c8120\r
+    cmp.l @+er3,@er1-                              ;01056d3ca120\r
+    cmp.l @+er3,@+er1                              ;01056d3c9120\r
+    cmp.l @+er3,@(0xffff9abc:16,er1)               ;01056d3cc1209abc\r
+    cmp.l @+er3,@(0x9abcdef0:32,er1)               ;01056d3cc9209abcdef0\r
+    cmp.l @+er3,@(0xffff9abc:16,r2l.b)             ;01056d3cd2209abc\r
+    cmp.l @+er3,@(0xffff9abc:16,r2.w)             ;01056d3ce2209abc\r
+    cmp.l @+er3,@(0xffff9abc:16,er2.l)             ;01056d3cf2209abc\r
+    cmp.l @+er3,@(0x9abcdef0:32,r2l.b)             ;01056d3cda209abcdef0\r
+    cmp.l @+er3,@(0x9abcdef0:32,r2.w)             ;01056d3cea209abcdef0\r
+    cmp.l @+er3,@(0x9abcdef0:32,er2.l)             ;01056d3cfa209abcdef0\r
+    cmp.l @+er3,@0xffff9abc:16                     ;01056d3c40209abc\r
+    cmp.l @+er3,@0x9abcdef0:32                     ;01056d3c48209abcdef0\r
+\r
+    cmp.l @(0x1234:16,er3),@er1                         ;01046f3c12340120\r
+    cmp.l @(0x1234:16,er3),@(0xc:2,er1)                   ;01046f3c12343120\r
+    cmp.l @(0x1234:16,er3),@-er1                        ;01046f3c1234b120\r
+    cmp.l @(0x1234:16,er3),@er1+                        ;01046f3c12348120\r
+    cmp.l @(0x1234:16,er3),@er1-                        ;01046f3c1234a120\r
+    cmp.l @(0x1234:16,er3),@+er1                        ;01046f3c12349120\r
+    cmp.l @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01046f3c1234c1209abc\r
+    cmp.l @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01046f3c1234c9209abcdef0\r
+    cmp.l @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01046f3c1234d2209abc\r
+    cmp.l @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01046f3c1234e2209abc\r
+    cmp.l @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01046f3c1234f2209abc\r
+    cmp.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01046f3c1234da209abcdef0\r
+    cmp.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01046f3c1234ea209abcdef0\r
+    cmp.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01046f3c1234fa209abcdef0\r
+    cmp.l @(0x1234:16,er3),@0xffff9abc:16               ;01046f3c123440209abc\r
+    cmp.l @(0x1234:16,er3),@0x9abcdef0:32               ;01046f3c123448209abcdef0\r
+\r
+    cmp.l @(0x12345678:32,er3),@er1                         ;78b46b2c123456780120\r
+    cmp.l @(0x12345678:32,er3),@(0xc:2,er1)                   ;78b46b2c123456783120\r
+    cmp.l @(0x12345678:32,er3),@-er1                        ;78b46b2c12345678b120\r
+    cmp.l @(0x12345678:32,er3),@er1+                        ;78b46b2c123456788120\r
+    cmp.l @(0x12345678:32,er3),@er1-                        ;78b46b2c12345678a120\r
+    cmp.l @(0x12345678:32,er3),@+er1                        ;78b46b2c123456789120\r
+    cmp.l @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78b46b2c12345678c1209abc\r
+    cmp.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78b46b2c12345678c9209abcdef0\r
+    cmp.l @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78b46b2c12345678d2209abc\r
+    cmp.l @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78b46b2c12345678e2209abc\r
+    cmp.l @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78b46b2c12345678f2209abc\r
+    cmp.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78b46b2c12345678da209abcdef0\r
+    cmp.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78b46b2c12345678ea209abcdef0\r
+    cmp.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78b46b2c12345678fa209abcdef0\r
+    cmp.l @(0x12345678:32,er3),@0xffff9abc:16               ;78b46b2c1234567840209abc\r
+    cmp.l @(0x12345678:32,er3),@0x9abcdef0:32               ;78b46b2c1234567848209abcdef0\r
+\r
+    cmp.l @(0x1234:16,r3l.b),@er1                       ;01056f3c12340120\r
+    cmp.l @(0x1234:16,r3l.b),@(0xc:2,er1)                 ;01056f3c12343120\r
+    cmp.l @(0x1234:16,r3l.b),@-er1                      ;01056f3c1234b120\r
+    cmp.l @(0x1234:16,r3l.b),@er1+                      ;01056f3c12348120\r
+    cmp.l @(0x1234:16,r3l.b),@er1-                      ;01056f3c1234a120\r
+    cmp.l @(0x1234:16,r3l.b),@+er1                      ;01056f3c12349120\r
+    cmp.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01056f3c1234c1209abc\r
+    cmp.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01056f3c1234c9209abcdef0\r
+    cmp.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01056f3c1234d2209abc\r
+    cmp.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01056f3c1234e2209abc\r
+    cmp.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01056f3c1234f2209abc\r
+    cmp.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01056f3c1234da209abcdef0\r
+    cmp.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01056f3c1234ea209abcdef0\r
+    cmp.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01056f3c1234fa209abcdef0\r
+    cmp.l @(0x1234:16,r3l.b),@0xffff9abc:16             ;01056f3c123440209abc\r
+    cmp.l @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01056f3c123448209abcdef0\r
+\r
+    cmp.l @(0x1234:16,r3.w),@er1                       ;01066f3c12340120\r
+    cmp.l @(0x1234:16,r3.w),@(0xc:2,er1)                 ;01066f3c12343120\r
+    cmp.l @(0x1234:16,r3.w),@-er1                      ;01066f3c1234b120\r
+    cmp.l @(0x1234:16,r3.w),@er1+                      ;01066f3c12348120\r
+    cmp.l @(0x1234:16,r3.w),@er1-                      ;01066f3c1234a120\r
+    cmp.l @(0x1234:16,r3.w),@+er1                      ;01066f3c12349120\r
+    cmp.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01066f3c1234c1209abc\r
+    cmp.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01066f3c1234c9209abcdef0\r
+    cmp.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01066f3c1234d2209abc\r
+    cmp.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01066f3c1234e2209abc\r
+    cmp.l @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01066f3c1234f2209abc\r
+    cmp.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01066f3c1234da209abcdef0\r
+    cmp.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01066f3c1234ea209abcdef0\r
+    cmp.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01066f3c1234fa209abcdef0\r
+    cmp.l @(0x1234:16,r3.w),@0xffff9abc:16             ;01066f3c123440209abc\r
+    cmp.l @(0x1234:16,r3.w),@0x9abcdef0:32             ;01066f3c123448209abcdef0\r
+\r
+    cmp.l @(0x1234:16,er3.l),@er1                       ;01076f3c12340120\r
+    cmp.l @(0x1234:16,er3.l),@(0xc:2,er1)                 ;01076f3c12343120\r
+    cmp.l @(0x1234:16,er3.l),@-er1                      ;01076f3c1234b120\r
+    cmp.l @(0x1234:16,er3.l),@er1+                      ;01076f3c12348120\r
+    cmp.l @(0x1234:16,er3.l),@er1-                      ;01076f3c1234a120\r
+    cmp.l @(0x1234:16,er3.l),@+er1                      ;01076f3c12349120\r
+    cmp.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01076f3c1234c1209abc\r
+    cmp.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01076f3c1234c9209abcdef0\r
+    cmp.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01076f3c1234d2209abc\r
+    cmp.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01076f3c1234e2209abc\r
+    cmp.l @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01076f3c1234f2209abc\r
+    cmp.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01076f3c1234da209abcdef0\r
+    cmp.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01076f3c1234ea209abcdef0\r
+    cmp.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01076f3c1234fa209abcdef0\r
+    cmp.l @(0x1234:16,er3.l),@0xffff9abc:16             ;01076f3c123440209abc\r
+    cmp.l @(0x1234:16,er3.l),@0x9abcdef0:32             ;01076f3c123448209abcdef0\r
+\r
+    cmp.l @(0x12345678:32,r3l.b),@er1                       ;78b56b2c123456780120\r
+    cmp.l @(0x12345678:32,r3l.b),@(0xc:2,er1)                 ;78b56b2c123456783120\r
+    cmp.l @(0x12345678:32,r3l.b),@-er1                      ;78b56b2c12345678b120\r
+    cmp.l @(0x12345678:32,r3l.b),@er1+                      ;78b56b2c123456788120\r
+    cmp.l @(0x12345678:32,r3l.b),@er1-                      ;78b56b2c12345678a120\r
+    cmp.l @(0x12345678:32,r3l.b),@+er1                      ;78b56b2c123456789120\r
+    cmp.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78b56b2c12345678c1209abc\r
+    cmp.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78b56b2c12345678c9209abcdef0\r
+    cmp.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78b56b2c12345678d2209abc\r
+    cmp.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78b56b2c12345678e2209abc\r
+    cmp.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78b56b2c12345678f2209abc\r
+    cmp.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78b56b2c12345678da209abcdef0\r
+    cmp.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78b56b2c12345678ea209abcdef0\r
+    cmp.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78b56b2c12345678fa209abcdef0\r
+    cmp.l @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78b56b2c1234567840209abc\r
+    cmp.l @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78b56b2c1234567848209abcdef0\r
+\r
+    cmp.l @(0x12345678:32,r3.w),@er1                       ;78b66b2c123456780120\r
+    cmp.l @(0x12345678:32,r3.w),@(0xc:2,er1)                 ;78b66b2c123456783120\r
+    cmp.l @(0x12345678:32,r3.w),@-er1                      ;78b66b2c12345678b120\r
+    cmp.l @(0x12345678:32,r3.w),@er1+                      ;78b66b2c123456788120\r
+    cmp.l @(0x12345678:32,r3.w),@er1-                      ;78b66b2c12345678a120\r
+    cmp.l @(0x12345678:32,r3.w),@+er1                      ;78b66b2c123456789120\r
+    cmp.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78b66b2c12345678c1209abc\r
+    cmp.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78b66b2c12345678c9209abcdef0\r
+    cmp.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78b66b2c12345678d2209abc\r
+    cmp.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78b66b2c12345678e2209abc\r
+    cmp.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78b66b2c12345678f2209abc\r
+    cmp.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78b66b2c12345678da209abcdef0\r
+    cmp.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78b66b2c12345678ea209abcdef0\r
+    cmp.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78b66b2c12345678fa209abcdef0\r
+    cmp.l @(0x12345678:32,r3.w),@0xffff9abc:16             ;78b66b2c1234567840209abc\r
+    cmp.l @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78b66b2c1234567848209abcdef0\r
+\r
+    cmp.l @(0x12345678:32,er3.l),@er1                       ;78b76b2c123456780120\r
+    cmp.l @(0x12345678:32,er3.l),@(0xc:2,er1)                 ;78b76b2c123456783120\r
+    cmp.l @(0x12345678:32,er3.l),@-er1                      ;78b76b2c12345678b120\r
+    cmp.l @(0x12345678:32,er3.l),@er1+                      ;78b76b2c123456788120\r
+    cmp.l @(0x12345678:32,er3.l),@er1-                      ;78b76b2c12345678a120\r
+    cmp.l @(0x12345678:32,er3.l),@+er1                      ;78b76b2c123456789120\r
+    cmp.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78b76b2c12345678c1209abc\r
+    cmp.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78b76b2c12345678c9209abcdef0\r
+    cmp.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78b76b2c12345678d2209abc\r
+    cmp.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78b76b2c12345678e2209abc\r
+    cmp.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78b76b2c12345678f2209abc\r
+    cmp.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78b76b2c12345678da209abcdef0\r
+    cmp.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78b76b2c12345678ea209abcdef0\r
+    cmp.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78b76b2c12345678fa209abcdef0\r
+    cmp.l @(0x12345678:32,er3.l),@0xffff9abc:16             ;78b76b2c1234567840209abc\r
+    cmp.l @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78b76b2c1234567848209abcdef0\r
+\r
+    cmp.l @0x1234:16,@er1                              ;01046b0c12340120\r
+    cmp.l @0x1234:16,@(0xc:2,er1)                        ;01046b0c12343120\r
+    cmp.l @0x1234:16,@-er1                             ;01046b0c1234b120\r
+    cmp.l @0x1234:16,@er1+                             ;01046b0c12348120\r
+    cmp.l @0x1234:16,@er1-                             ;01046b0c1234a120\r
+    cmp.l @0x1234:16,@+er1                             ;01046b0c12349120\r
+    cmp.l @0x1234:16,@(0xffff9abc:16,er1)              ;01046b0c1234c1209abc\r
+    cmp.l @0x1234:16,@(0x9abcdef0:32,er1)              ;01046b0c1234c9209abcdef0\r
+    cmp.l @0x1234:16,@(0xffff9abc:16,r2l.b)            ;01046b0c1234d2209abc\r
+    cmp.l @0x1234:16,@(0xffff9abc:16,r2.w)            ;01046b0c1234e2209abc\r
+    cmp.l @0x1234:16,@(0xffff9abc:16,er2.l)            ;01046b0c1234f2209abc\r
+    cmp.l @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;01046b0c1234da209abcdef0\r
+    cmp.l @0x1234:16,@(0x9abcdef0:32,r2.w)            ;01046b0c1234ea209abcdef0\r
+    cmp.l @0x1234:16,@(0x9abcdef0:32,er2.l)            ;01046b0c1234fa209abcdef0\r
+    cmp.l @0x1234:16,@0xffff9abc:16                    ;01046b0c123440209abc\r
+    cmp.l @0x1234:16,@0x9abcdef0:32                    ;01046b0c123448209abcdef0\r
+\r
+    cmp.l @0x12345678:32,@er1                              ;01046b2c123456780120\r
+    cmp.l @0x12345678:32,@(0xc:2,er1)                        ;01046b2c123456783120\r
+    cmp.l @0x12345678:32,@-er1                             ;01046b2c12345678b120\r
+    cmp.l @0x12345678:32,@er1+                             ;01046b2c123456788120\r
+    cmp.l @0x12345678:32,@er1-                             ;01046b2c12345678a120\r
+    cmp.l @0x12345678:32,@+er1                             ;01046b2c123456789120\r
+    cmp.l @0x12345678:32,@(0xffff9abc:16,er1)              ;01046b2c12345678c1209abc\r
+    cmp.l @0x12345678:32,@(0x9abcdef0:32,er1)              ;01046b2c12345678c9209abcdef0\r
+    cmp.l @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;01046b2c12345678d2209abc\r
+    cmp.l @0x12345678:32,@(0xffff9abc:16,r2.w)            ;01046b2c12345678e2209abc\r
+    cmp.l @0x12345678:32,@(0xffff9abc:16,er2.l)            ;01046b2c12345678f2209abc\r
+    cmp.l @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;01046b2c12345678da209abcdef0\r
+    cmp.l @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;01046b2c12345678ea209abcdef0\r
+    cmp.l @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;01046b2c12345678fa209abcdef0\r
+    cmp.l @0x12345678:32,@0xffff9abc:16                    ;01046b2c1234567840209abc\r
+    cmp.l @0x12345678:32,@0x9abcdef0:32                    ;01046b2c1234567848209abcdef0\r
+\r
+       .end\r
diff --git a/gas/testsuite/gas/h8300/t06_ari2.exp b/gas/testsuite/gas/h8300/t06_ari2.exp
new file mode 100644 (file)
index 0000000..dd1a69e
--- /dev/null
@@ -0,0 +1,976 @@
+#
+# Some h8300sx tests -- t06_ari2
+#
+
+proc do_t06_ari2_test {} {
+    set testname "t06_ari2.s -- h8sx arithmetic tests"
+
+    gas_start "t06_ari2.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*   7 0000 9112" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8 0002 7D109012" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9 0006 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9      9012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10              " {
+           if [expr $x == 4] then {
+               pass "$testname: addx.b #0x12:8, ..."
+           } else {
+               fail "$testname: addx.b #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: addx.b #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  11 000c 0E31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12 000e 7D100E30" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13 0012 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13      0E30" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14              " {
+           if [expr $x == 4] then {
+               pass "$testname: addx.b r3h, ..."
+           } else {
+               fail "$testname: addx.b r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: addx.b r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  15 0018 7C300E01" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 001c 0174683D" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17              " {
+           if [expr $x == 3] then {
+               pass "$testname: addx.b @er3, ..."
+           } else {
+               fail "$testname: addx.b @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: addx.b @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  18 0022 01766C30" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18      0E01" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19 0028 01766C3D" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20              " {
+           if [expr $x == 4] then {
+               pass "$testname: addx.b @er3-, ..."
+           } else {
+               fail "$testname: addx.b @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: addx.b @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  21 002e 01517911" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 0034 7D917910" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23 003a 01566D19" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23      79101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24              " {
+           if [expr $x == 6] then {
+               pass "$testname: addx.w #0x1234:16, ..."
+           } else {
+               fail "$testname: addx.w #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: addx.w #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  25 0042 01510931" { set x [expr $x+1]; exp_continue; }
+       -re ".*  26 0046 7D910930" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27 004a 01566D19" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27      0930" { set x [expr $x+1]; exp_continue; }
+       -re ".*  28              " {
+           if [expr $x == 4] then {
+               pass "$testname: addx.w r3, ..."
+           } else {
+               fail "$testname: addx.w r3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: addx.w r3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  29 0050 7CB10901" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30 0054 0154693D" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31              " {
+           if [expr $x == 3] then {
+               pass "$testname: addx.w @er3, ..."
+           } else {
+               fail "$testname: addx.w @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: addx.w @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  32 005a 01566D31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32      0901" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33 0060 01566D3D" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34              " {
+           if [expr $x == 4] then {
+               pass "$testname: addx.w @er3-, ..."
+           } else {
+               fail "$testname: addx.w @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: addx.w @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  35 0066 01017A11" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 006e 01046919" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      7A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 0078 01066D19" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      7A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38              " {
+           if [expr $x == 8] then {
+               pass "$testname: addx.l #0x12345678:32, ..."
+           } else {
+               fail "$testname: addx.l #0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: addx.l #0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  39 0082 01010AB1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40 0086 01046919" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      0AB0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41 008c 01066D19" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41      0AB0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42              " {
+           if [expr $x == 5] then {
+               pass "$testname: addx.l er3, ..."
+           } else {
+               fail "$testname: addx.l er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: addx.l er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  43 0092 01046931" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43      0A81" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44 0098 0104693D" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44      0110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45              " {
+           if [expr $x == 4] then {
+               pass "$testname: addx.l @er3, ..."
+           } else {
+               fail "$testname: addx.l @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: addx.l @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  46 009e 01066D31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46      0A81" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47 00a4 01066D3D" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47      A110" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48              " {
+           if [expr $x == 4] then {
+               pass "$testname: addx.l @er3-, ..."
+           } else {
+               fail "$testname: addx.l @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: addx.l @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  49 00aa B112" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50 00ac 7D10B012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51 00b0 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51      B012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52              " {
+           if [expr $x == 4] then {
+               pass "$testname: subx.b #0x12:8, ..."
+           } else {
+               fail "$testname: subx.b #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: subx.b #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  53 00b6 1E31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 00b8 7D101E30" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 00bc 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      1E30" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56              " {
+           if [expr $x == 4] then {
+               pass "$testname: subx.b r3h, ..."
+           } else {
+               fail "$testname: subx.b r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: subx.b r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  57 00c2 7C301E01" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58 00c6 0174683D" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59              " {
+           if [expr $x == 3] then {
+               pass "$testname: subx.b @er3, ..."
+           } else {
+               fail "$testname: subx.b @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: subx.b @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  60 00cc 01766C30" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60      1E01" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61 00d2 01766C3D" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62              " {
+           if [expr $x == 4] then {
+               pass "$testname: subx.b @er3-, ..."
+           } else {
+               fail "$testname: subx.b @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: subx.b @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  63 00d8 01517931" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64 00de 7D917930" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65 00e4 01566D19" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65      79301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66              " {
+           if [expr $x == 6] then {
+               pass "$testname: subx.w #0x1234:16, ..."
+           } else {
+               fail "$testname: subx.w #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: subx.w #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  67 00ec 01511931" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68 00f0 7D911930" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 00f4 01566D19" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69      1930" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70              " {
+           if [expr $x == 4] then {
+               pass "$testname: subx.w r3, ..."
+           } else {
+               fail "$testname: subx.w r3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: subx.w r3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  71 00fa 7CB11901" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72 00fe 0154693D" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73              " {
+           if [expr $x == 3] then {
+               pass "$testname: subx.w @er3, ..."
+           } else {
+               fail "$testname: subx.w @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: subx.w @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  74 0104 01566D31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      1901" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75 010a 01566D3D" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76              " {
+           if [expr $x == 4] then {
+               pass "$testname: subx.w @er3-, ..."
+           } else {
+               fail "$testname: subx.w @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: subx.w @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  77 0110 01017A31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78 0118 01046919" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      7A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79 0122 01066D19" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79      7A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80              " {
+           if [expr $x == 8] then {
+               pass "$testname: subx.l #0x12345678:32, ..."
+           } else {
+               fail "$testname: subx.l #0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: subx.l #0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  81 012c 01011AB1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82 0130 01046919" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82      1AB0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83 0136 01066D19" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83      1AB0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84              " {
+           if [expr $x == 5] then {
+               pass "$testname: subx.l er3, ..."
+           } else {
+               fail "$testname: subx.l er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: subx.l er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  85 013c 01046931" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85      1A81" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86 0142 0104693D" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86      0130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87              " {
+           if [expr $x == 4] then {
+               pass "$testname: subx.l @er3, ..."
+           } else {
+               fail "$testname: subx.l @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: subx.l @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  88 0148 01066D31" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      1A81" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89 014e 01066D3D" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89      A130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90              " {
+           if [expr $x == 4] then {
+               pass "$testname: subx.l @er3-, ..."
+           } else {
+               fail "$testname: subx.l @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: subx.l @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  91 0154 0A01" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92 0156 0B51" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 0158 0BD1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94 015a 0B71" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95 015c 0BF1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96              " {
+           if [expr $x == 5] then {
+               pass "$testname: inc"
+           } else {
+               fail "$testname: inc ($x)"
+           }
+       }
+        default        { fail "$testname: inc ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  97 015e 1A01" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98 0160 1B51" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99 0162 1BD1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100 0164 1B71" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101 0166 1BF1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102              " {
+           if [expr $x == 5] then {
+               pass "$testname: dec"
+           } else {
+               fail "$testname: dec ($x)"
+           }
+       }
+        default        { fail "$testname: dec ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 103 0168 0B01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104 016a 0B81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105 016c 0B91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106              " {
+           if [expr $x == 3] then {
+               pass "$testname: adds.l ..., er1"
+           } else {
+               fail "$testname: adds.l ..., er1 ($x)"
+           }
+       }
+        default        { fail "$testname: adds.l ..., er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 107 016e 1B01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108 0170 1B81" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109 0172 1B91" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110              " {
+           if [expr $x == 3] then {
+               pass "$testname: subs.l #4,er1"
+           } else {
+               fail "$testname: subs.l #4,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: subs.l #4,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 111 0174 0F01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112              " {
+           if [expr $x == 1] then {
+               pass "$testname: daa.b r1h"
+           } else {
+               fail "$testname: daa.b r1h ($x)"
+           }
+       }
+        default        { fail "$testname: daa.b r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 113 0176 1F01" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114              " {
+           if [expr $x == 1] then {
+               pass "$testname: das.b r1h"
+           } else {
+               fail "$testname: das.b r1h ($x)"
+           }
+       }
+        default        { fail "$testname: das.b r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 115 0178 01CC50F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulxu.b #0xf:4,r1"
+           } else {
+               fail "$testname: mulxu.b #0xf:4,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulxu.b #0xf:4,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 117 017c 5031" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulxu.b r3h,r1"
+           } else {
+               fail "$testname: mulxu.b r3h,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulxu.b r3h,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 119 017e 01CC52F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulxu.w #0xf:4,er1"
+           } else {
+               fail "$testname: mulxu.w #0xf:4,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulxu.w #0xf:4,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 121 0182 5231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulxu.w r3,er1"
+           } else {
+               fail "$testname: mulxu.w r3,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulxu.w r3,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 123 0184 01DC51F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124              " {
+           if [expr $x == 1] then {
+               pass "$testname: divxu.b #0xf:4,r1"
+           } else {
+               fail "$testname: divxu.b #0xf:4,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: divxu.b #0xf:4,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 125 0188 5131" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126              " {
+           if [expr $x == 1] then {
+               pass "$testname: divxu.b r3h,r1"
+           } else {
+               fail "$testname: divxu.b r3h,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: divxu.b r3h,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 127 018a 01DC53F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128              " {
+           if [expr $x == 1] then {
+               pass "$testname: divxu.w #0xf:4,er1"
+           } else {
+               fail "$testname: divxu.w #0xf:4,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: divxu.w #0xf:4,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 129 018e 5331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130              " {
+           if [expr $x == 1] then {
+               pass "$testname: divxu.w r3,er1"
+           } else {
+               fail "$testname: divxu.w r3,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: divxu.w r3,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 131 0190 01C450F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulxs.b #0xf:4,r1"
+           } else {
+               fail "$testname: mulxs.b #0xf:4,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulxs.b #0xf:4,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 133 0194 01C05031" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulxs.b r3h,r1"
+           } else {
+               fail "$testname: mulxs.b r3h,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulxs.b r3h,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 135 0198 01C452F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulxs.w #0xf:4,er1"
+           } else {
+               fail "$testname: mulxs.w #0xf:4,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulxs.w #0xf:4,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 137 019c 01C05231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulxs.w r3,er1"
+           } else {
+               fail "$testname: mulxs.w r3,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulxs.w r3,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 139 01a0 01D451F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140              " {
+           if [expr $x == 1] then {
+               pass "$testname: divxs.b #0xf:4,r1"
+           } else {
+               fail "$testname: divxs.b #0xf:4,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: divxs.b #0xf:4,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 141 01a4 01D05131" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142              " {
+           if [expr $x == 1] then {
+               pass "$testname: divxs.b r3h,r1"
+           } else {
+               fail "$testname: divxs.b r3h,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: divxs.b r3h,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 143 01a8 01D453F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144              " {
+           if [expr $x == 1] then {
+               pass "$testname: divxs.w #0xf:4,er1"
+           } else {
+               fail "$testname: divxs.w #0xf:4,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: divxs.w #0xf:4,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 145 01ac 01D05331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146              " {
+           if [expr $x == 1] then {
+               pass "$testname: divxs.w r3,er1"
+           } else {
+               fail "$testname: divxs.w r3,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: divxs.w r3,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 147 01b0 01CE50F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulu.w #0xf:4,r1"
+           } else {
+               fail "$testname: mulu.w #0xf:4,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulu.w #0xf:4,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 149 01b4 01CA5031" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulu.w r3,r1"
+           } else {
+               fail "$testname: mulu.w r3,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulu.w r3,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 151 01b8 01CE52F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulu.l #0xf:4,er1"
+           } else {
+               fail "$testname: mulu.l #0xf:4,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulu.l #0xf:4,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 153 01bc 01CA5231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulu.l er3,er1"
+           } else {
+               fail "$testname: mulu.l er3,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulu.l er3,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 155 01c0 01CF52F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulu/u.l #0xf:4,er1"
+           } else {
+               fail "$testname: mulu/u.l #0xf:4,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulu/u.l #0xf:4,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 157 01c4 01CB5231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158              " {
+           if [expr $x == 1] then {
+               pass "$testname: mulu/u.l er3,er1"
+           } else {
+               fail "$testname: mulu/u.l er3,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: mulu/u.l er3,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 159 01c8 01C650F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160              " {
+           if [expr $x == 1] then {
+               pass "$testname: muls.w #0xf:4,r1"
+           } else {
+               fail "$testname: muls.w #0xf:4,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: muls.w #0xf:4,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 161 01cc 01C25031" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162              " {
+           if [expr $x == 1] then {
+               pass "$testname: muls.w r3,r1"
+           } else {
+               fail "$testname: muls.w r3,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: muls.w r3,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 163 01d0 01C652F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164              " {
+           if [expr $x == 1] then {
+               pass "$testname: muls.l #0xf:4,er1"
+           } else {
+               fail "$testname: muls.l #0xf:4,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: muls.l #0xf:4,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 165 01d4 01C25231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166              " {
+           if [expr $x == 1] then {
+               pass "$testname: muls.l er3,er1"
+           } else {
+               fail "$testname: muls.l er3,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: muls.l er3,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 167 01d8 01C752F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168              " {
+           if [expr $x == 1] then {
+               pass "$testname: muls/u.l #0xf:4,er1"
+           } else {
+               fail "$testname: muls/u.l #0xf:4,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: muls/u.l #0xf:4,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 169 01dc 01C35231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170              " {
+           if [expr $x == 1] then {
+               pass "$testname: muls/u.l er3,er1"
+           } else {
+               fail "$testname: muls/u.l er3,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: muls/u.l er3,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 171 01e0 01DE51F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172              " {
+           if [expr $x == 1] then {
+               pass "$testname: divu.w #0xf:4,r1"
+           } else {
+               fail "$testname: divu.w #0xf:4,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: divu.w #0xf:4,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 173 01e4 01DA5131" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174              " {
+           if [expr $x == 1] then {
+               pass "$testname: divu.w r3,r1"
+           } else {
+               fail "$testname: divu.w r3,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: divu.w r3,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 175 01e8 01DE53F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176              " {
+           if [expr $x == 1] then {
+               pass "$testname: divu.l #0xf:4,er1"
+           } else {
+               fail "$testname: divu.l #0xf:4,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: divu.l #0xf:4,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 177 01ec 01DA5331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178              " {
+           if [expr $x == 1] then {
+               pass "$testname: divu.l er3,er1"
+           } else {
+               fail "$testname: divu.l er3,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: divu.l er3,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 179 01f0 01D651F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180              " {
+           if [expr $x == 1] then {
+               pass "$testname: divs.w #0xf:4,r1"
+           } else {
+               fail "$testname: divs.w #0xf:4,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: divs.w #0xf:4,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 181 01f4 01D25131" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182              " {
+           if [expr $x == 1] then {
+               pass "$testname: divs.w r3,r1"
+           } else {
+               fail "$testname: divs.w r3,r1 ($x)"
+           }
+       }
+        default        { fail "$testname: divs.w r3,r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 183 01f8 01D653F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184              " {
+           if [expr $x == 1] then {
+               pass "$testname: divs.l #0xf:4,er1"
+           } else {
+               fail "$testname: divs.l #0xf:4,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: divs.l #0xf:4,er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 185 01fc 01D25331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186              " {
+           if [expr $x == 1] then {
+               pass "$testname: divs.l er3,er1"
+           } else {
+               fail "$testname: divs.l er3,er1 ($x)"
+           }
+       }
+        default        { fail "$testname: divs.l er3,er1 ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t06_ari2_test
+}
+
diff --git a/gas/testsuite/gas/h8300/t06_ari2.s b/gas/testsuite/gas/h8300/t06_ari2.s
new file mode 100644 (file)
index 0000000..0d59e84
--- /dev/null
@@ -0,0 +1,187 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;arith_2\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+_start:\r
+    addx.b #0x12:8,r1h          ;9112\r
+    addx.b #0x12:8,@er1         ;7d109012\r
+    addx.b #0x12:8,@er1-        ;01766c189012\r
+\r
+    addx.b r3h,r1h             ;0e31\r
+    addx.b r3h,@er1           ;7d100e30\r
+    addx.b r3h,@er1-          ;01766c180e30\r
+\r
+    addx.b @er3,r1h           ;7c300e01\r
+    addx.b @er3,@er1         ;0174683d0110\r
+\r
+    addx.b @er3-,r1h         ;01766c300e01\r
+    addx.b @er3-,@er1-       ;01766c3da110\r
+\r
+    addx.w #0x1234:16,r1         ;015179111234\r
+    addx.w #0x1234:16,@er1        ;7d9179101234\r
+    addx.w #0x1234:16,@er1-       ;01566d1979101234\r
+\r
+    addx.w r3,r1             ;01510931\r
+    addx.w r3,@er1           ;7d910930\r
+    addx.w r3,@er1-          ;01566d190930\r
+\r
+    addx.w @er3,r1           ;7cb10901\r
+    addx.w @er3,@er1         ;0154693d0110\r
+\r
+    addx.w @er3-,r1         ;01566d310901\r
+    addx.w @er3-,@er1-       ;01566d3da110\r
+\r
+    addx.l #0x12345678:32,er1        ;01017a1112345678\r
+    addx.l #0x12345678:32,@er1        ;010469197a1012345678\r
+    addx.l #0x12345678:32,@er1-       ;01066d197a1012345678\r
+\r
+    addx.l er3,er1           ;01010ab1\r
+    addx.l er3,@er1           ;010469190ab0\r
+    addx.l er3,@er1-          ;01066d190ab0\r
+\r
+    addx.l @er3,er1           ;010469310a81\r
+    addx.l @er3,@er1         ;0104693d0110\r
+\r
+    addx.l @er3-,er1         ;01066d310a81\r
+    addx.l @er3-,@er1-       ;01066d3da110\r
+\r
+    subx.b #0x12:8,r1h          ;b112\r
+    subx.b #0x12:8,@er1         ;7d10b012\r
+    subx.b #0x12:8,@er1-        ;01766c18b012\r
+\r
+    subx.b r3h,r1h             ;1e31\r
+    subx.b r3h,@er1           ;7d101e30\r
+    subx.b r3h,@er1-          ;01766c181e30\r
+\r
+    subx.b @er3,r1h           ;7c301e01\r
+    subx.b @er3,@er1         ;0174683d0130\r
+\r
+    subx.b @er3-,r1h         ;01766c301e01\r
+    subx.b @er3-,@er1-       ;01766c3da130\r
+\r
+    subx.w #0x1234:16,r1         ;015179311234\r
+    subx.w #0x1234:16,@er1        ;7d9179301234\r
+    subx.w #0x1234:16,@er1-       ;01566d1979301234\r
+\r
+    subx.w r3,r1             ;01511931\r
+    subx.w r3,@er1           ;7d911930\r
+    subx.w r3,@er1-          ;01566d191930\r
+\r
+    subx.w @er3,r1           ;7cb11901\r
+    subx.w @er3,@er1         ;0154693d0130\r
+\r
+    subx.w @er3-,r1         ;01566d311901\r
+    subx.w @er3-,@er1-       ;01566d3da130\r
+\r
+    subx.l #0x12345678:32,er1        ;01017a3112345678\r
+    subx.l #0x12345678:32,@er1        ;010469197a3012345678\r
+    subx.l #0x12345678:32,@er1-       ;01066d197a3012345678\r
+\r
+    subx.l er3,er1           ;01011ab1\r
+    subx.l er3,@er1           ;010469191ab0\r
+    subx.l er3,@er1-          ;01066d191ab0\r
+\r
+    subx.l @er3,er1           ;010469311a81\r
+    subx.l @er3,@er1         ;0104693d0130\r
+\r
+    subx.l @er3-,er1         ;01066d311a81\r
+    subx.l @er3-,@er1-       ;01066d3da130\r
+\r
+    inc.b r1h                 ;0a01\r
+    inc.w #1,r1              ;0b51\r
+    inc.w #2,r1              ;0bd1\r
+    inc.l #1,er1              ;0b71\r
+    inc.l #2,er1              ;0bf1\r
+\r
+    dec.b r1h                 ;1a01\r
+    dec.w #1,r1              ;1b51\r
+    dec.w #2,r1              ;1bd1\r
+    dec.l #1,er1              ;1b71\r
+    dec.l #2,er1              ;1bf1\r
+\r
+    adds.l #1,er1             ;0b01\r
+    adds.l #2,er1             ;0b81\r
+    adds.l #4,er1             ;0b91\r
+\r
+    subs.l #1,er1             ;1b01\r
+    subs.l #2,er1             ;1b81\r
+    subs.l #4,er1             ;1b91\r
+\r
+    daa.b r1h                 ;0f01\r
+\r
+    das.b r1h                 ;1f01\r
+\r
+    mulxu.b #0xf:4,r1          ;01cc50f1\r
+\r
+    mulxu.b r3h,r1            ;5031\r
+\r
+    mulxu.w #0xf:4,er1         ;01cc52f1\r
+\r
+    mulxu.w r3,er1           ;5231\r
+\r
+    divxu.b #0xf:4,r1          ;01dc51f1\r
+\r
+    divxu.b r3h,r1            ;5131\r
+\r
+    divxu.w #0xf:4,er1         ;01dc53f1\r
+\r
+    divxu.w r3,er1           ;5331\r
+\r
+    mulxs.b #0xf:4,r1          ;01c450f1\r
+\r
+    mulxs.b r3h,r1            ;01c05031\r
+\r
+    mulxs.w #0xf:4,er1         ;01c452f1\r
+\r
+    mulxs.w r3,er1           ;01c05231\r
+\r
+    divxs.b #0xf:4,r1          ;01d451f1\r
+\r
+    divxs.b r3h,r1            ;01d05131\r
+\r
+    divxs.w #0xf:4,er1         ;01d453f1\r
+\r
+    divxs.w r3,er1           ;01d05331\r
+\r
+    mulu.w #0xf:4,r1           ;01ce50f1\r
+\r
+    mulu.w r3,r1             ;01ca5031\r
+\r
+    mulu.l #0xf:4,er1          ;01ce52f1\r
+\r
+    mulu.l er3,er1           ;01ca5231\r
+\r
+    mulu/u.l #0xf:4,er1          ;01cf52f1\r
+\r
+    mulu/u.l er3,er1           ;01cb5231\r
+\r
+    muls.w #0xf:4,r1           ;01c650f1\r
+\r
+    muls.w r3,r1             ;01c25031\r
+\r
+    muls.l #0xf:4,er1          ;01c652f1\r
+\r
+    muls.l er3,er1           ;01c25231\r
+\r
+    muls/u.l #0xf:4,er1          ;01c752f1\r
+\r
+    muls/u.l er3,er1           ;01c35231\r
+\r
+    divu.w #0xf:4,r1           ;01de51f1\r
+\r
+    divu.w r3,r1             ;01da5131\r
+\r
+    divu.l #0xf:4,er1          ;01de53f1\r
+\r
+    divu.l er3,er1            ;01da5331\r
+\r
+    divs.w #0xf:4,r1           ;01d651f1\r
+\r
+    divs.w r3,r1             ;01d25131\r
+\r
+    divs.l #0xf:4,er1          ;01d653f1\r
+\r
+    divs.l er3,er1            ;01d25331\r
+\r
+       .end\r
diff --git a/gas/testsuite/gas/h8300/t07_ari3.exp b/gas/testsuite/gas/h8300/t07_ari3.exp
new file mode 100644 (file)
index 0000000..d043690
--- /dev/null
@@ -0,0 +1,480 @@
+#
+# Some h8300sx tests -- t07_ari3
+#
+
+proc do_t07_ari3_test {} {
+    set testname "t07_ari3.s -- h8sx arithmetic tests"
+
+    gas_start "t07_ari3.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*   7 0000 1781" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8 0002 7D101780" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9 0006 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9      1780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10 000c 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10      1780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11 0012 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11      1780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12 0018 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12      1780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13 001e 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13      1780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14 0024 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14      12341780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15 002c 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      1780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 0036 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16      12341780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17 003e 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17      12341780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18 0046 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18      12341780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19 004e 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      1780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20 0058 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      1780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21 0062 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      1780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 006c 7F121780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23 0070 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23      1780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24 0076 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24      56781780" { set x [expr $x+1]; exp_continue; }
+       -re ".*  25              " {
+           if [expr $x == 37] then {
+               pass "$testname: neg.b ..."
+           } else {
+               fail "$testname: neg.b ... ($x)"
+           }
+       }
+        default        { fail "$testname: neg.b ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  26 007e 1791" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27 0080 7D901790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  28 0084 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".*  28      1790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29 008a 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29      1790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30 0090 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30      1790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31 0096 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31      1790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32 009c 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32      1790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33 00a2 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33      12341790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34 00aa 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34      1790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35 00b4 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35      12341790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 00bc 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      12341790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 00c4 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      12341790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38 00cc 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38      1790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39 00d6 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      1790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40 00e0 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      1790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41 00ea 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41      1790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42 00f0 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42      56781790" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43              " {
+           if [expr $x == 36] then {
+               pass "$testname: neg.w ..."
+           } else {
+               fail "$testname: neg.w ... ($x)"
+           }
+       }
+        default        { fail "$testname: neg.w ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  44 00f8 17B1" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45 00fa 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45      17B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46 0100 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46      17B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47 0106 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47      17B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48 010c 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48      17B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49 0112 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49      17B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50 0118 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50      17B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51 011e 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51      123417B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52 0126 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      17B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53 0130 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53      123417B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 0138 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54      123417B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 0140 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      123417B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56 0148 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      17B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57 0152 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57      17B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58 015c 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      17B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59 0166 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59      123417B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60 016e 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60      17B0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61              " {
+           if [expr $x == 38] then {
+               pass "$testname: neg.l ..."
+           } else {
+               fail "$testname: neg.l ... ($x)"
+           }
+       }
+        default        { fail "$testname: neg.l ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  62 0178 01E07B1C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63              " {
+           if [expr $x == 1] then {
+               pass "$testname: tas @er1"
+           } else {
+               fail "$testname: tas @er1 ($x)"
+           }
+       }
+        default        { fail "$testname: tas @er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  64 017c 1751" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65 017e 7D901750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66 0182 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66      1750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67 0188 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67      1750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68 018e 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68      1750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 0194 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69      1750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70 019a 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70      1750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71 01a0 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71      12341750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72 01a8 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      1750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73 01b2 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73      12341750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74 01ba 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      12341750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75 01c2 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      12341750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76 01ca 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      1750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77 01d4 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77      1750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78 01de 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      1750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79 01e8 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79      1750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80 01ee 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80      56781750" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81              " {
+           if [expr $x == 36] then {
+               pass "$testname: extu.w ..."
+           } else {
+               fail "$testname: extu.w ... ($x)"
+           }
+       }
+        default        { fail "$testname: extu.w ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  82 01f6 1771" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83 01f8 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83      1770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84 01fe 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84      1770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85 0204 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85      1770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86 020a 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86      1770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87 0210 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87      1770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88 0216 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      1770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89 021c 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89      12341770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90 0224 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90      1770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91 022e 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91      12341770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92 0236 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      12341770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 023e 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      12341770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94 0246 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      1770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95 0250 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      1770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96 025a 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      1770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97 0264 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97      12341770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98 026c 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98      1770" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99              " {
+           if [expr $x == 38] then {
+               pass "$testname: extu.l ..."
+           } else {
+               fail "$testname: extu.l ... ($x)"
+           }
+       }
+        default        { fail "$testname: extu.l ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 100 0276 1761" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101 0278 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101      1760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102 027e 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102      1760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103 0284 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103      1760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104 028a 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104      1760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105 0290 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      1760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106 0296 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106      1760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107 029c 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107      12341760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108 02a4 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108      1760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109 02ae 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      12341760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110 02b6 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      12341760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111 02be 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      12341760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112 02c6 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      1760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113 02d0 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      1760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114 02da 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114      1760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115 02e4 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115      12341760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116 02ec 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      1760" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117              " {
+           if [expr $x == 38] then {
+               pass "$testname: extu.l #2, ..."
+           } else {
+               fail "$testname: extu.l #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: extu.l #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 118 02f6 17D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119 02f8 7D9017D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120 02fc 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120      17D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121 0302 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121      17D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122 0308 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      17D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123 030e 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123      17D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124 0314 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124      17D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125 031a 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      123417D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126 0322 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      17D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127 032c 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      123417D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128 0334 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      123417D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129 033c 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      123417D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130 0344 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      17D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131 034e 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131      17D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132 0358 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132      17D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133 0362 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133      17D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134 0368 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134      567817D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135              " {
+           if [expr $x == 36] then {
+               pass "$testname: exts.w ..."
+           } else {
+               fail "$testname: exts.w ... ($x)"
+           }
+       }
+        default        { fail "$testname: exts.w ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 136 0370 17F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137 0372 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137      17F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138 0378 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138      17F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139 037e 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      17F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140 0384 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140      17F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141 038a 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      17F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142 0390 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      17F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143 0396 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      123417F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144 039e 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      17F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145 03a8 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      123417F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146 03b0 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      123417F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147 03b8 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      123417F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148 03c0 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148      17F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149 03ca 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      17F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150 03d4 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      17F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151 03de 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151      123417F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152 03e6 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152      17F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153              " {
+           if [expr $x == 38] then {
+               pass "$testname: exts.l ..."
+           } else {
+               fail "$testname: exts.l ... ($x)"
+           }
+       }
+        default        { fail "$testname: exts.l ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 154 03f0 17E1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155 03f2 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      17E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156 03f8 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      17E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157 03fe 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      17E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158 0404 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      17E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159 040a 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      17E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160 0410 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      17E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161 0416 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      123417E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162 041e 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      17E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163 0428 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      123417E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164 0430 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      123417E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165 0438 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165      123417E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166 0440 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      17E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167 044a 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      17E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168 0454 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      17E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169 045e 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      123417E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170 0466 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      17E0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171              " {
+           if [expr $x == 38] then {
+               pass "$testname: exts.l #2, ..."
+           } else {
+               fail "$testname: exts.l #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: exts.l #2, ... ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t07_ari3_test
+}
+
diff --git a/gas/testsuite/gas/h8300/t07_ari3.s b/gas/testsuite/gas/h8300/t07_ari3.s
new file mode 100644 (file)
index 0000000..baf21a8
--- /dev/null
@@ -0,0 +1,172 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;arith_3\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+_start:\r
+    neg.b r1h                 ;1781\r
+    neg.b @er1               ;7d101780\r
+    neg.b @(0x3:2,er1)         ;017768181780\r
+    neg.b @er1+              ;01746c181780\r
+    neg.b @-er1              ;01776c181780\r
+    neg.b @+er1              ;01756c181780\r
+    neg.b @er1-              ;01766c181780\r
+    neg.b @(0x1234:16,er1)        ;01746e1812341780\r
+    neg.b @(0x12345678:32,er1)        ;78146a28123456781780\r
+    neg.b @(0x1234:16,r2l.b)      ;01756e2812341780\r
+    neg.b @(0x1234:16,r2.w)      ;01766e2812341780\r
+    neg.b @(0x1234:16,er2.l)      ;01776e2812341780\r
+    neg.b @(0x12345678:32,r2l.b)      ;78256a28123456781780\r
+    neg.b @(0x12345678:32,r2.w)      ;78266a28123456781780\r
+    neg.b @(0x12345678:32,er2.l)      ;78276a28123456781780\r
+    neg.b @0xffffff12:8              ;7f121780\r
+    neg.b @0x1234:16             ;6a1812341780\r
+    neg.b @0x12345678:32             ;6a38123456781780\r
+\r
+    neg.w r1                 ;1791\r
+    neg.w @er1               ;7d901790\r
+    neg.w @(0x6:2,er1)      ;015769181790\r
+    neg.w @er1+              ;01546d181790\r
+    neg.w @-er1              ;01576d181790\r
+    neg.w @+er1              ;01556d181790\r
+    neg.w @er1-              ;01566d181790\r
+    neg.w @(0x1234:16,er1)        ;01546f1812341790\r
+    neg.w @(0x12345678:32,er1)        ;78146b28123456781790\r
+    neg.w @(0x1234:16,r2l.b)      ;01556f2812341790\r
+    neg.w @(0x1234:16,r2.w)      ;01566f2812341790\r
+    neg.w @(0x1234:16,er2.l)      ;01576f2812341790\r
+    neg.w @(0x12345678:32,r2l.b)      ;78256b28123456781790\r
+    neg.w @(0x12345678:32,r2.w)      ;78266b28123456781790\r
+    neg.w @(0x12345678:32,er2.l)      ;78276b28123456781790\r
+    neg.w @0x1234:16             ;6b1812341790\r
+    neg.w @0x12345678:32             ;6b38123456781790\r
+\r
+    neg.l er1                 ;17b1\r
+    neg.l @er1               ;0104691817b0\r
+    neg.l @(0xc:2,er1)      ;0107691817b0\r
+    neg.l @er1+              ;01046d1817b0\r
+    neg.l @-er1              ;01076d1817b0\r
+    neg.l @+er1              ;01056d1817b0\r
+    neg.l @er1-              ;01066d1817b0\r
+    neg.l @(0x1234:16,er1)        ;01046f18123417b0\r
+    neg.l @(0x12345678:32,er1)        ;78946b281234567817b0\r
+    neg.l @(0x1234:16,r2l.b)      ;01056f28123417b0\r
+    neg.l @(0x1234:16,r2.w)      ;01066f28123417b0\r
+    neg.l @(0x1234:16,er2.l)      ;01076f28123417b0\r
+    neg.l @(0x12345678:32,r2l.b)      ;78a56b281234567817b0\r
+    neg.l @(0x12345678:32,r2.w)      ;78a66b281234567817b0\r
+    neg.l @(0x12345678:32,er2.l)      ;78a76b281234567817b0\r
+    neg.l @0x1234:16             ;01046b08123417b0\r
+    neg.l @0x12345678:32             ;01046b281234567817b0\r
+\r
+    tas @er1                 ;01e07b1c\r
+\r
+    extu.w r1                ;1751\r
+    extu.w @er1              ;7d901750\r
+    extu.w @(0x6:2,er1)     ;015769181750\r
+    extu.w @er1+             ;01546d181750\r
+    extu.w @-er1             ;01576d181750\r
+    extu.w @+er1             ;01556d181750\r
+    extu.w @er1-             ;01566d181750\r
+    extu.w @(0x1234:16,er1)       ;01546f1812341750\r
+    extu.w @(0x12345678:32,er1)       ;78146b28123456781750\r
+    extu.w @(0x1234:16,r2l.b)     ;01556f2812341750\r
+    extu.w @(0x1234:16,r2.w)     ;01566f2812341750\r
+    extu.w @(0x1234:16,er2.l)     ;01576f2812341750\r
+    extu.w @(0x12345678:32,r2l.b)     ;78256b28123456781750\r
+    extu.w @(0x12345678:32,r2.w)     ;78266b28123456781750\r
+    extu.w @(0x12345678:32,er2.l)     ;78276b28123456781750\r
+    extu.w @0x1234:16            ;6b1812341750\r
+    extu.w @0x12345678:32            ;6b38123456781750\r
+\r
+    extu.l er1                ;1771\r
+    extu.l @er1              ;010469181770\r
+    extu.l @(0xc:2,er1)     ;010769181770\r
+    extu.l @er1+             ;01046d181770\r
+    extu.l @-er1             ;01076d181770\r
+    extu.l @+er1             ;01056d181770\r
+    extu.l @er1-             ;01066d181770\r
+    extu.l @(0x1234:16,er1)       ;01046f1812341770\r
+    extu.l @(0x12345678:32,er1)       ;78946b28123456781770\r
+    extu.l @(0x1234:16,r2l.b)     ;01056f2812341770\r
+    extu.l @(0x1234:16,r2.w)     ;01066f2812341770\r
+    extu.l @(0x1234:16,er2.l)     ;01076f2812341770\r
+    extu.l @(0x12345678:32,r2l.b)     ;78a56b28123456781770\r
+    extu.l @(0x12345678:32,r2.w)     ;78a66b28123456781770\r
+    extu.l @(0x12345678:32,er2.l)     ;78a76b28123456781770\r
+    extu.l @0x1234:16            ;01046b0812341770\r
+    extu.l @0x12345678:32            ;01046b28123456781770\r
+\r
+    extu.l #2,er1             ;1761\r
+    extu.l #2,@er1           ;010469181760\r
+    extu.l #2,@(0xc:2,er1)  ;010769181760\r
+    extu.l #2,@er1+          ;01046d181760\r
+    extu.l #2,@-er1          ;01076d181760\r
+    extu.l #2,@+er1          ;01056d181760\r
+    extu.l #2,@er1-          ;01066d181760\r
+    extu.l #2,@(0x1234:16,er1)    ;01046f1812341760\r
+    extu.l #2,@(0x12345678:32,er1)    ;78946b28123456781760\r
+    extu.l #2,@(0x1234:16,r2l.b)  ;01056f2812341760\r
+    extu.l #2,@(0x1234:16,r2.w)  ;01066f2812341760\r
+    extu.l #2,@(0x1234:16,er2.l)  ;01076f2812341760\r
+    extu.l #2,@(0x12345678:32,r2l.b)  ;78a56b28123456781760\r
+    extu.l #2,@(0x12345678:32,r2.w)  ;78a66b28123456781760\r
+    extu.l #2,@(0x12345678:32,er2.l)  ;78a76b28123456781760\r
+    extu.l #2,@0x1234:16         ;01046b0812341760\r
+    extu.l #2,@0x12345678:32         ;01046b28123456781760\r
+\r
+    exts.w r1                ;17d1\r
+    exts.w @er1              ;7d9017d0\r
+    exts.w @(0x6:2,er1)     ;0157691817d0\r
+    exts.w @er1+             ;01546d1817d0\r
+    exts.w @-er1             ;01576d1817d0\r
+    exts.w @+er1             ;01556d1817d0\r
+    exts.w @er1-             ;01566d1817d0\r
+    exts.w @(0x1234:16,er1)       ;01546f18123417d0\r
+    exts.w @(0x12345678:32,er1)       ;78146b281234567817d0\r
+    exts.w @(0x1234:16,r2l.b)     ;01556f28123417d0\r
+    exts.w @(0x1234:16,r2.w)     ;01566f28123417d0\r
+    exts.w @(0x1234:16,er2.l)     ;01576f28123417d0\r
+    exts.w @(0x12345678:32,r2l.b)     ;78256b281234567817d0\r
+    exts.w @(0x12345678:32,r2.w)     ;78266b281234567817d0\r
+    exts.w @(0x12345678:32,er2.l)     ;78276b281234567817d0\r
+    exts.w @0x1234:16            ;6b18123417d0\r
+    exts.w @0x12345678:32            ;6b381234567817d0\r
+\r
+    exts.l er1                ;17f1\r
+    exts.l @er1              ;0104691817f0\r
+    exts.l @(0xc:2,er1)     ;0107691817f0\r
+    exts.l @er1+             ;01046d1817f0\r
+    exts.l @-er1             ;01076d1817f0\r
+    exts.l @+er1             ;01056d1817f0\r
+    exts.l @er1-             ;01066d1817f0\r
+    exts.l @(0x1234:16,er1)       ;01046f18123417f0\r
+    exts.l @(0x12345678:32,er1)       ;78946b281234567817f0\r
+    exts.l @(0x1234:16,r2l.b)     ;01056f28123417f0\r
+    exts.l @(0x1234:16,r2.w)     ;01066f28123417f0\r
+    exts.l @(0x1234:16,er2.l)     ;01076f28123417f0\r
+    exts.l @(0x12345678:32,r2l.b)     ;78a56b281234567817f0\r
+    exts.l @(0x12345678:32,r2.w)     ;78a66b281234567817f0\r
+    exts.l @(0x12345678:32,er2.l)     ;78a76b281234567817f0\r
+    exts.l @0x1234:16            ;01046b08123417f0\r
+    exts.l @0x12345678:32            ;01046b281234567817f0\r
+\r
+    exts.l #2,er1             ;17e1\r
+    exts.l #2,@er1           ;0104691817e0\r
+    exts.l #2,@(0xc:2,er1)  ;0107691817e0\r
+    exts.l #2,@er1+          ;01046d1817e0\r
+    exts.l #2,@-er1          ;01076d1817e0\r
+    exts.l #2,@+er1          ;01056d1817e0\r
+    exts.l #2,@er1-          ;01066d1817e0\r
+    exts.l #2,@(0x1234:16,er1)    ;01046f18123417e0\r
+    exts.l #2,@(0x12345678:32,er1)    ;78946b281234567817e0\r
+    exts.l #2,@(0x1234:16,r2l.b)  ;01056f28123417e0\r
+    exts.l #2,@(0x1234:16,r2.w)  ;01066f28123417e0\r
+    exts.l #2,@(0x1234:16,er2.l)  ;01076f28123417e0\r
+    exts.l #2,@(0x12345678:32,r2l.b)  ;78a56b281234567817e0\r
+    exts.l #2,@(0x12345678:32,r2.w)  ;78a66b281234567817e0\r
+    exts.l #2,@(0x12345678:32,er2.l)  ;78a76b281234567817e0\r
+    exts.l #2,@0x1234:16         ;01046b08123417e0\r
+    exts.l #2,@0x12345678:32         ;01046b281234567817e0\r
+\r
+       .end\r
diff --git a/gas/testsuite/gas/h8300/t08_or.exp b/gas/testsuite/gas/h8300/t08_or.exp
new file mode 100644 (file)
index 0000000..617b026
--- /dev/null
@@ -0,0 +1,3002 @@
+#
+# Some h8300sx tests -- t08_or
+#
+
+proc do_t08_or_test {} {
+    set testname "t08_or.s -- h8sx tests"
+
+    gas_start "t08_or.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*   7 0000 C112" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8 0002 7D10C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9 0006 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9      C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10 000c 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10      C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11 0012 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11      C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12 0018 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12      C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13 001e 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13      C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14 0024 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14      1234C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15 002c 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 0036 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16      1234C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17 003e 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17      1234C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18 0046 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18      1234C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19 004e 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20 0058 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21 0062 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 006c 7F12C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23 0070 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23      C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24 0076 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24      5678C012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  25              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.b #0x12:8, ..."
+           } else {
+               fail "$testname: or.b #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  26 007e 1431" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27              " {
+           if [expr $x == 1] then {
+               pass "$testname: or.b r3h, r1h"
+           } else {
+               fail "$testname: or.b r3h, r1h ($x)"
+           }
+       }
+        default        { fail "$testname: or.b r3h, r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  28 0080 7D101430" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29 0084 01793143" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30 0088 01798143" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31 008c 0179B143" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32 0090 01799143" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33 0094 0179A143" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34 0098 0179C143" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35 009e 0179C943" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 00a6 0179D243" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 00ac 0179E243" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38 00b2 0179F243" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39 00b8 0179DA43" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40 00c0 0179EA43" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41 00c8 0179FA43" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42 00d0 7F121430" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43 00d4 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43      1430" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44 00da 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44      56781430" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45              " {
+           if [expr $x == 27] then {
+               pass "$testname: or.b r3h, ..."
+           } else {
+               fail "$testname: or.b r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  46 00e2 7C301401" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47 00e6 017A3341" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48 00ea 017A8341" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49 00ee 017AB341" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50 00f2 017A9341" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51 00f6 017AA341" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52 00fa 017AC141" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53 0100 017AC941" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 0108 017AD241" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 010e 017AE241" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56 0114 017AF241" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57 011a 017ADA41" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58 0122 017AEA41" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59 012a 017AFA41" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60 0132 7E121401" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61 0136 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61      1401" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62 013c 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62      56781401" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63              " {
+           if [expr $x == 27] then {
+               pass "$testname: or.b ..., r1h"
+           } else {
+               fail "$testname: or.b ..., r1h ($x)"
+           }
+       }
+        default        { fail "$testname: or.b ..., r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  64 0144 7C350140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65 0148 7C353140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66 014c 7C35B140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67 0150 7C358140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68 0154 7C35A140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 0158 7C359140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70 015c 7C35C140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71 0162 7C35C940" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72 016a 7C35D240" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73 0170 7C35E240" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74 0176 7C35F240" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75 017c 7C35DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76 0184 7C35EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77 018c 7C35FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78 0194 7C354040" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79 019a 7C354840" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80              " {
+           if [expr $x == 26] then {
+               pass "$testname: or.b @er3, ..."
+           } else {
+               fail "$testname: or.b @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  81 01a2 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82 01a8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83 01ae 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84 01b4 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85 01ba 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86 01c0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87 01c6 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88 01ce 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89 01d8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90 01e0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91 01e8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92 01f0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 01fa 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94 0204 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95 020e 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96 0216 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.b @-er3, ..."
+           } else {
+               fail "$testname: or.b @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  98 0220 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99 0226 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100 022c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101 0232 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102 0238 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103 023e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104 0244 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105 024c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106 0256 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107 025e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108 0266 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109 026e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110 0278 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111 0282 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112 028c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113 0294 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.b @er3+, ..."
+           } else {
+               fail "$testname: or.b @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 115 029e 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116 02a4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117 02aa 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118 02b0 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119 02b6 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120 02bc 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121 02c2 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122 02ca 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123 02d4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124 02dc 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125 02e4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126 02ec 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127 02f6 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128 0300 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129 030a 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130 0312 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.b @er3-, ..."
+           } else {
+               fail "$testname: or.b @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 132 031c 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133 0322 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134 0328 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135 032e 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136 0334 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137 033a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138 0340 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139 0348 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140 0352 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141 035a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142 0362 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143 036a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144 0374 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145 037e 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146 0388 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147 0390 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.b @+er3, ..."
+           } else {
+               fail "$testname: or.b @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 149 039a 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150 03a2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151 03aa 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152 03b2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153 03ba 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154 03c2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155 03ca 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156 03d4 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157 03e0 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158 03ea 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159 03f4 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160 03fe 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161 040a 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162 0416 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163 0422 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164 042c 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.b @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: or.b @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 166 0438 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167 0442 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168 044c 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169 0456 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170 0460 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171 046a 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172 0474 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173 0480 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174 048e 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175 049a 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176 04a6 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177 04b2 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178 04c0 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179 04ce 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180 04dc 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181 04e8 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.b @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: or.b @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 183 04f6 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184 04fe 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185 0506 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186 050e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187 0516 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188 051e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189 0526 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190 0530 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191 053c 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192 0546 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193 0550 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194 055a 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195 0566 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196 0572 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197 057e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198 0588 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.b @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: or.b @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 200 0594 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201 059c 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202 05a4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203 05ac 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204 05b4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205 05bc 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206 05c4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207 05ce 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208 05da 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209 05e4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210 05ee 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211 05f8 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212 0604 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213 0610 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214 061c 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215 0626 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.b @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: or.b @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 217 0632 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218 063a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219 0642 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220 064a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221 0652 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222 065a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223 0662 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224 066c 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225 0678 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226 0682 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227 068c 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228 0696 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229 06a2 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230 06ae 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231 06ba 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232 06c4 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.b @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: or.b @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 234 06d0 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235 06da 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236 06e4 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237 06ee 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238 06f8 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239 0702 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240 070c 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241 0718 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242 0726 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243 0732 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244 073e 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245 074a 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246 0758 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247 0766 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248 0774 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249 0780 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 250              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.b @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: or.b @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 251 078e 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252 0798 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253 07a2 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254 07ac 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255 07b6 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256 07c0 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257 07ca 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258 07d6 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259 07e4 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260 07f0 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261 07fc 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262 0808 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263 0816 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264 0824 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265 0832 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266 083e 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 267              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.b @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: or.b @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 268 084c 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269 0856 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270 0860 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271 086a 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272 0874 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273 087e 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274 0888 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275 0894 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276 08a2 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277 08ae 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278 08ba 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279 08c6 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280 08d4 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281 08e2 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282 08f0 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283 08fc 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 284              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.b @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: or.b @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 285 090a 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 285      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286 0910 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287 0916 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288 091c 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289 0922 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290 0928 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291 092e 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292 0936 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293 0940 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294 0948 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295 0950 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296 0958 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297 0962 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298 096c 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299 0976 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300 097e 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 301              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.b @0x1234:16, ..."
+           } else {
+               fail "$testname: or.b @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 302 0988 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 302      56780140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303 0990 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303      56783140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304 0998 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304      5678B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305 09a0 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305      56788140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306 09a8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306      5678A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307 09b0 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307      56789140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308 09b8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308      5678C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309 09c2 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309      5678C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310 09ce 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      5678D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311 09d8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      5678E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312 09e2 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      5678F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313 09ec 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      5678DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314 09f8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      5678EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315 0a04 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      5678FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316 0a10 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      56784040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317 0a1a 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317      56784840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 318              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.b @0x12345678:32, ..."
+           } else {
+               fail "$testname: or.b @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.b @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 319 0a26 79411234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320 0a2a 015E0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321 0a30 015E3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322 0a36 015E8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323 0a3c 015EB140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324 0a42 015E9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325 0a48 015EA140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326 0a4e 015EC140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327 0a56 015EC940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328 0a60 015ED240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329 0a68 015EE240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330 0a70 015EF240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331 0a78 015EDA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332 0a82 015EEA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333 0a8c 015EFA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334 0a96 015E4040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335 0a9e 015E4840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 336              " {
+           if [expr $x == 38] then {
+               pass "$testname: or.w #0x1234:16, ..."
+           } else {
+               fail "$testname: or.w #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 337 0aa8 6431" { set x [expr $x+1]; exp_continue; }
+       -re ".* 338              " {
+           if [expr $x == 1] then {
+               pass "$testname: or.w r3, r1"
+           } else {
+               fail "$testname: or.w r3, r1 ($x)"
+           }
+       }
+        default        { fail "$testname: or.w r3, r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 339 0aaa 7D906430" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340 0aae 01593143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 341 0ab2 01598143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 342 0ab6 0159B143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 343 0aba 01599143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 344 0abe 0159A143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345 0ac2 0159C143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346 0ac8 0159C943" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347 0ad0 0159D243" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348 0ad6 0159E243" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349 0adc 0159F243" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350 0ae2 0159DA43" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351 0aea 0159EA43" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352 0af2 0159FA43" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353 0afa 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353      6430" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354 0b00 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354      56786430" { set x [expr $x+1]; exp_continue; }
+       -re ".* 355              " {
+           if [expr $x == 26] then {
+               pass "$testname: or.w r3, ..."
+           } else {
+               fail "$testname: or.w r3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w r3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 356 0b08 7CB06401" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357 0b0c 015A3341" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358 0b10 015A8341" { set x [expr $x+1]; exp_continue; }
+       -re ".* 359 0b14 015AB341" { set x [expr $x+1]; exp_continue; }
+       -re ".* 360 0b18 015A9341" { set x [expr $x+1]; exp_continue; }
+       -re ".* 361 0b1c 015AA341" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362 0b20 015AC141" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 363 0b26 015AC941" { set x [expr $x+1]; exp_continue; }
+       -re ".* 363      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364 0b2e 015AD241" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365 0b34 015AE241" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366 0b3a 015AF241" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367 0b40 015ADA41" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368 0b48 015AEA41" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369 0b50 015AFA41" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370 0b58 6B101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370      6401" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371 0b5e 6B301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371      56786401" { set x [expr $x+1]; exp_continue; }
+       -re ".* 372              " {
+           if [expr $x == 26] then {
+               pass "$testname: or.w ..., r1"
+           } else {
+               fail "$testname: or.w ..., r1 ($x)"
+           }
+       }
+        default        { fail "$testname: or.w ..., r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 373 0b66 7CB50140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 374 0b6a 7CB53140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 375 0b6e 7CB5B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 376 0b72 7CB58140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 377 0b76 7CB5A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 378 0b7a 7CB59140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379 0b7e 7CB5C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 380 0b84 7CB5C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 380      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 381 0b8c 7CB5D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 381      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382 0b92 7CB5E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383 0b98 7CB5F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384 0b9e 7CB5DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385 0ba6 7CB5EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386 0bae 7CB5FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387 0bb6 7CB54040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388 0bbc 7CB54840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389              " {
+           if [expr $x == 26] then {
+               pass "$testname: or.w @er3, ..."
+           } else {
+               fail "$testname: or.w @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 390 0bc4 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391 0bca 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392 0bd0 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393 0bd6 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394 0bdc 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395 0be2 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396 0be8 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397 0bf0 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398 0bfa 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399 0c02 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400 0c0a 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401 0c12 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402 0c1c 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403 0c26 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404 0c30 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405 0c38 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.w @-er3, ..."
+           } else {
+               fail "$testname: or.w @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 407 0c42 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408 0c48 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409 0c4e 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410 0c54 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411 0c5a 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412 0c60 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413 0c66 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414 0c6e 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415 0c78 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416 0c80 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417 0c88 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418 0c90 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419 0c9a 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420 0ca4 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421 0cae 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422 0cb6 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.w @er3+, ..."
+           } else {
+               fail "$testname: or.w @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 424 0cc0 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425 0cc6 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426 0ccc 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427 0cd2 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428 0cd8 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429 0cde 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430 0ce4 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431 0cec 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432 0cf6 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433 0cfe 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434 0d06 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435 0d0e 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436 0d18 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437 0d22 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438 0d2c 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439 0d34 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.w @er3-, ..."
+           } else {
+               fail "$testname: or.w @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 441 0d3e 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442 0d44 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443 0d4a 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444 0d50 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 445 0d56 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 445      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446 0d5c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447 0d62 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448 0d6a 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449 0d74 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450 0d7c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451 0d84 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452 0d8c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453 0d96 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454 0da0 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455 0daa 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456 0db2 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.w @+er3, ..."
+           } else {
+               fail "$testname: or.w @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 458 0dbc 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459 0dc4 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460 0dcc 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461 0dd4 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462 0ddc 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463 0de4 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464 0dec 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465 0df6 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466 0e02 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467 0e0c 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468 0e16 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469 0e20 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470 0e2c 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471 0e38 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472 0e44 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473 0e4e 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.w @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: or.w @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 475 0e5a 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476 0e64 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477 0e6e 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478 0e78 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479 0e82 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480 0e8c 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481 0e96 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482 0ea2 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483 0eb0 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484 0ebc 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485 0ec8 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486 0ed4 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487 0ee2 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488 0ef0 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489 0efe 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490 0f0a 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.w @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: or.w @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 492 0f18 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493 0f20 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494 0f28 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495 0f30 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496 0f38 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497 0f40 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498 0f48 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499 0f52 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500 0f5e 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501 0f68 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502 0f72 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503 0f7c 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504 0f88 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505 0f94 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506 0fa0 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507 0faa 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.w @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: or.w @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 509 0fb6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510 0fbe 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511 0fc6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512 0fce 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513 0fd6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514 0fde 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515 0fe6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516 0ff0 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517 0ffc 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518 1006 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519 1010 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520 101a 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521 1026 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522 1032 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523 103e 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524 1048 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.w @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: or.w @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 526 1054 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527 105c 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528 1064 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529 106c 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530 1074 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531 107c 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532 1084 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533 108e 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534 109a 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535 10a4 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536 10ae 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537 10b8 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538 10c4 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539 10d0 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540 10dc 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541 10e6 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.w @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: or.w @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 543 10f2 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544 10fc 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545 1106 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546 1110 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547 111a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548 1124 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549 112e 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550 113a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551 1148 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552 1154 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553 1160 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554 116c 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555 117a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556 1188 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557 1196 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558 11a2 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.w @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: or.w @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 560 11b0 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561 11ba 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562 11c4 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563 11ce 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564 11d8 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565 11e2 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566 11ec 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567 11f8 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568 1206 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569 1212 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570 121e 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571 122a 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572 1238 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573 1246 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574 1254 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575 1260 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.w @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: or.w @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 577 126e 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578 1278 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579 1282 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580 128c 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581 1296 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582 12a0 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583 12aa 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584 12b6 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585 12c4 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586 12d0 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587 12dc 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588 12e8 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589 12f6 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590 1304 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591 1312 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592 131e 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.w @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: or.w @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 594 132c 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595 1332 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596 1338 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597 133e 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598 1344 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599 134a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600 1350 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601 1358 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602 1362 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603 136a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604 1372 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605 137a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606 1384 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607 138e 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608 1398 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609 13a0 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.w @0x1234:16, ..."
+           } else {
+               fail "$testname: or.w @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 611 13aa 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611      56780140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612 13b2 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612      56783140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613 13ba 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613      5678B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614 13c2 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614      56788140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 615 13ca 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 615      5678A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616 13d2 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616      56789140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617 13da 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617      5678C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618 13e4 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618      5678C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619 13f0 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619      5678D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620 13fa 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620      5678E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621 1404 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      5678F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622 140e 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      5678DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623 141a 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      5678EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624 1426 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      5678FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625 1432 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      56784040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626 143c 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      56784840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.w @0x12345678:32, ..."
+           } else {
+               fail "$testname: or.w @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.w @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 628 1448 7A411234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629 144e 7A491234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630 1452 010E0148" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631 145a 010E3148" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 632 1462 010E8148" { set x [expr $x+1]; exp_continue; }
+       -re ".* 632      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633 146a 010EB148" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634 1472 010E9148" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635 147a 010EA148" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636 1482 010EC148" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637 148c 010EC948" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638 1498 010ED248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639 14a2 010EE248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640 14ac 010EF248" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641 14b6 010EDA48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642 14c2 010EEA48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643 14ce 010EFA48" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644 14da 010E4048" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645 14e4 010E4848" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646 14f0 010E0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647 14f6 010E3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648 14fc 010E8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649 1502 010EB140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650 1508 010E9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651 150e 010EA140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652 1514 010EC140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653 151c 010EC940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654 1526 010ED240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655 152e 010EE240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656 1536 010EF240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657 153e 010EDA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658 1548 010EEA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659 1552 010EFA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660 155c 010E4040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661 1564 010E4840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662              " {
+           if [expr $x == 82] then {
+               pass "$testname: or.l #0x1234:16, ..."
+           } else {
+               fail "$testname: or.l #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 663 156e 01F06431" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664              " {
+           if [expr $x == 1] then {
+               pass "$testname: or.l er3, er1"
+           } else {
+               fail "$testname: or.l er3, er1 ($x)"
+           }
+       }
+        default        { fail "$testname: or.l er3, er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 665 1572 01090143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666 1576 01093143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667 157a 01098143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 668 157e 0109B143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 669 1582 01099143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 670 1586 0109A143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671 158a 0109C143" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672 1590 0109C943" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673 1598 0109D243" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674 159e 0109E243" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675 15a4 0109F243" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676 15aa 0109DA43" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677 15b2 0109EA43" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678 15ba 0109FA43" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679 15c2 01094043" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680 15c8 01094843" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 681              " {
+           if [expr $x == 26] then {
+               pass "$testname: or.l er3, ..."
+           } else {
+               fail "$testname: or.l er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 682 15d0 010A0341" { set x [expr $x+1]; exp_continue; }
+       -re ".* 683 15d4 010A3341" { set x [expr $x+1]; exp_continue; }
+       -re ".* 684 15d8 010A8341" { set x [expr $x+1]; exp_continue; }
+       -re ".* 685 15dc 010AB341" { set x [expr $x+1]; exp_continue; }
+       -re ".* 686 15e0 010A9341" { set x [expr $x+1]; exp_continue; }
+       -re ".* 687 15e4 010AA341" { set x [expr $x+1]; exp_continue; }
+       -re ".* 688 15e8 010AC141" { set x [expr $x+1]; exp_continue; }
+       -re ".* 688      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689 15ee 010AC941" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690 15f6 010AD241" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691 15fc 010AE241" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692 1602 010AF241" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693 1608 010ADA41" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694 1610 010AEA41" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695 1618 010AFA41" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696 1620 010A4041" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697 1626 010A4841" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698              " {
+           if [expr $x == 26] then {
+               pass "$testname: or.l ..., er1"
+           } else {
+               fail "$testname: or.l ..., er1 ($x)"
+           }
+       }
+        default        { fail "$testname: or.l ..., er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 699 162e 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 699      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700 1634 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701 163a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702 1640 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703 1646 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704 164c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705 1652 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706 165a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707 1664 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708 166c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709 1674 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710 167c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711 1686 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712 1690 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713 169a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714 16a2 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.l @er3, ..."
+           } else {
+               fail "$testname: or.l @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 716 16ac 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717 16b2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718 16b8 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719 16be 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720 16c4 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721 16ca 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722 16d0 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723 16d8 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724 16e2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725 16ea 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726 16f2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727 16fa 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728 1704 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729 170e 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730 1718 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731 1720 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.l @(0xc:2,er3), ..."
+           } else {
+               fail "$testname: or.l @(0xc:2,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @(0xc:2,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 733 172a 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734 1730 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735 1736 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736 173c 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737 1742 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738 1748 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739 174e 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740 1756 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741 1760 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742 1768 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743 1770 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744 1778 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745 1782 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746 178c 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747 1796 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748 179e 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.l @-er3, ..."
+           } else {
+               fail "$testname: or.l @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 750 17a8 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751 17ae 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752 17b4 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753 17ba 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754 17c0 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 755 17c6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 755      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756 17cc 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757 17d4 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758 17de 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759 17e6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760 17ee 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761 17f6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762 1800 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763 180a 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764 1814 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765 181c 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.l @er3+, ..."
+           } else {
+               fail "$testname: or.l @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 767 1826 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768 182c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769 1832 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770 1838 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771 183e 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772 1844 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773 184a 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774 1852 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775 185c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776 1864 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777 186c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778 1874 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779 187e 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780 1888 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781 1892 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782 189a 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.l @er3-, ..."
+           } else {
+               fail "$testname: or.l @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 784 18a4 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785 18aa 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786 18b0 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787 18b6 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788 18bc 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789 18c2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790 18c8 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791 18d0 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792 18da 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793 18e2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794 18ea 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795 18f2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796 18fc 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797 1906 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798 1910 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799 1918 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800              " {
+           if [expr $x == 37] then {
+               pass "$testname: or.l @+er3, ..."
+           } else {
+               fail "$testname: or.l @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 801 1922 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802 192a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803 1932 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804 193a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805 1942 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806 194a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807 1952 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808 195c 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809 1968 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810 1972 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811 197c 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812 1986 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813 1992 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814 199e 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815 19aa 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816 19b4 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.l @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: or.l @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 818 19c0 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819 19ca 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820 19d4 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821 19de 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822 19e8 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823 19f2 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824 19fc 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825 1a08 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826 1a16 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827 1a22 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828 1a2e 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829 1a3a 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830 1a48 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831 1a56 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832 1a64 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833 1a70 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.l @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: or.l @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 835 1a7e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836 1a86 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837 1a8e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838 1a96 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839 1a9e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840 1aa6 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841 1aae 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842 1ab8 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843 1ac4 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844 1ace 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845 1ad8 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846 1ae2 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847 1aee 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848 1afa 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849 1b06 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850 1b10 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.l @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: or.l @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 852 1b1c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853 1b24 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854 1b2c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855 1b34 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856 1b3c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857 1b44 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858 1b4c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859 1b56 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860 1b62 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861 1b6c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862 1b76 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863 1b80 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864 1b8c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865 1b98 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866 1ba4 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867 1bae 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.l @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: or.l @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 869 1bba 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870 1bc2 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871 1bca 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872 1bd2 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873 1bda 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874 1be2 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875 1bea 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876 1bf4 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877 1c00 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878 1c0a 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879 1c14 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880 1c1e 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881 1c2a 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882 1c36 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883 1c42 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884 1c4c 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.l @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: or.l @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 886 1c58 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887 1c62 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888 1c6c 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889 1c76 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890 1c80 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891 1c8a 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892 1c94 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893 1ca0 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894 1cae 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895 1cba 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896 1cc6 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897 1cd2 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898 1ce0 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899 1cee 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900 1cfc 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901 1d08 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.l @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: or.l @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 903 1d16 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904 1d20 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905 1d2a 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906 1d34 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907 1d3e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908 1d48 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909 1d52 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910 1d5e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911 1d6c 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912 1d78 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913 1d84 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914 1d90 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915 1d9e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916 1dac 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917 1dba 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918 1dc6 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.l @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: or.l @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 920 1dd4 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921 1dde 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922 1de8 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923 1df2 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924 1dfc 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925 1e06 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926 1e10 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927 1e1c 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928 1e2a 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929 1e36 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930 1e42 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931 1e4e 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932 1e5c 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933 1e6a 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934 1e78 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935 1e84 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.l @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: or.l @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 937 1e92 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937      12340140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938 1e9a 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938      12343140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939 1ea2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939      1234B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940 1eaa 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940      12348140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941 1eb2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941      1234A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942 1eba 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942      12349140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943 1ec2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943      1234C140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944 1ecc 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944      1234C940" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945 1ed8 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945      1234D240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946 1ee2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946      1234E240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947 1eec 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947      1234F240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948 1ef6 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948      1234DA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949 1f02 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949      1234EA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950 1f0e 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      1234FA40" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951 1f1a 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      12344040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952 1f24 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      12344840" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953              " {
+           if [expr $x == 42] then {
+               pass "$testname: or.l @0x1234:16, ..."
+           } else {
+               fail "$testname: or.l @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @0x1234:16, ... ($x)" }
+    }
+    # FIXME return early, expect bombs out on the next group.
+    return;
+    set x 0
+    expect {
+       -re ".* 954 1f30 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      0140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955 1f3a 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955      3140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956 1f44 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956      B140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957 1f4e 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957      8140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958 1f58 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958      A140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959 1f62 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959      9140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960 1f6c 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960      C1409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961 1f78 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      C9409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962 1f86 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962      D2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963 1f92 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963      E2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964 1f9e 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      F2409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965 1faa 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      DA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966 1fb8 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      EA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967 1fc6 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      FA409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968 1fd4 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      40409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969 1fe0 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      48409ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970              " {
+           if [expr $x == 53] then {
+               pass "$testname: or.l @0x12345678:32, ..."
+           } else {
+               fail "$testname: or.l @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: or.l @0x12345678:32, ... ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t08_or_test
+}
+
diff --git a/gas/testsuite/gas/h8300/t08_or.s b/gas/testsuite/gas/h8300/t08_or.s
new file mode 100644 (file)
index 0000000..3add588
--- /dev/null
@@ -0,0 +1,971 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;log_1\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+_start:\r
+    or.b #0x12:8,r1h            ;c112\r
+    or.b #0x12:8,@er1           ;7d10c012\r
+    or.b #0x12:8,@(0x3:2,er1)     ;01776818c012\r
+    or.b #0x12:8,@er1+          ;01746c18c012\r
+    or.b #0x12:8,@-er1          ;01776c18c012\r
+    or.b #0x12:8,@+er1          ;01756c18c012\r
+    or.b #0x12:8,@er1-          ;01766c18c012\r
+    or.b #0x12:8,@(0x1234:16,er1)    ;01746e181234c012\r
+    or.b #0x12:8,@(0x12345678:32,er1)    ;78146a2812345678c012\r
+    or.b #0x12:8,@(0x1234:16,r2l.b)  ;01756e281234c012\r
+    or.b #0x12:8,@(0x1234:16,r2.w)  ;01766e281234c012\r
+    or.b #0x12:8,@(0x1234:16,er2.l)  ;01776e281234c012\r
+    or.b #0x12:8,@(0x12345678:32,r2l.b)  ;78256a2812345678c012\r
+    or.b #0x12:8,@(0x12345678:32,r2.w)  ;78266a2812345678c012\r
+    or.b #0x12:8,@(0x12345678:32,er2.l)  ;78276a2812345678c012\r
+    or.b #0x12:8,@0xffffff12:8          ;7f12c012\r
+    or.b #0x12:8,@0x1234:16         ;6a181234c012\r
+    or.b #0x12:8,@0x12345678:32         ;6a3812345678c012\r
+\r
+    or.b r3h,r1h               ;1431\r
+\r
+    or.b r3h,@er1             ;7d101430\r
+    or.b r3h,@(0x3:2,er1)       ;01793143\r
+    or.b r3h,@er1+            ;01798143\r
+    or.b r3h,@-er1            ;0179b143\r
+    or.b r3h,@+er1            ;01799143\r
+    or.b r3h,@er1-            ;0179a143\r
+    or.b r3h,@(0x1234:16,er1)      ;0179c1431234\r
+    or.b r3h,@(0x12345678:32,er1)      ;0179c94312345678\r
+    or.b r3h,@(0x1234:16,r2l.b)    ;0179d2431234\r
+    or.b r3h,@(0x1234:16,r2.w)    ;0179e2431234\r
+    or.b r3h,@(0x1234:16,er2.l)    ;0179f2431234\r
+    or.b r3h,@(0x12345678:32,r2l.b)    ;0179da4312345678\r
+    or.b r3h,@(0x12345678:32,r2.w)    ;0179ea4312345678\r
+    or.b r3h,@(0x12345678:32,er2.l)    ;0179fa4312345678\r
+    or.b r3h,@0xffffff12:8            ;7f121430\r
+    or.b r3h,@0x1234:16           ;6a1812341430\r
+    or.b r3h,@0x12345678:32            ;6a38123456781430\r
+\r
+    or.b @er3,r1h             ;7c301401\r
+    or.b @(0x3:2,er3),r1h      ;017a3341\r
+    or.b @er3+,r1h           ;017a8341\r
+    or.b @-er3,r1h           ;017ab341\r
+    or.b @+er3,r1h           ;017a9341\r
+    or.b @er3-,r1h           ;017aa341\r
+    or.b @(0x1234:16,er1),r1h      ;017ac1411234\r
+    or.b @(0x12345678:32,er1),r1h      ;017ac94112345678\r
+    or.b @(0x1234:16,r2l.b),r1h    ;017ad2411234\r
+    or.b @(0x1234:16,r2.w),r1h    ;017ae2411234\r
+    or.b @(0x1234:16,er2.l),r1h    ;017af2411234\r
+    or.b @(0x12345678:32,r2l.b),r1h    ;017ada4112345678\r
+    or.b @(0x12345678:32,r2.w),r1h    ;017aea4112345678\r
+    or.b @(0x12345678:32,er2.l),r1h    ;017afa4112345678\r
+    or.b @0xffffff12:8,r1h            ;7e121401\r
+    or.b @0x1234:16,r1h           ;6a1012341401\r
+    or.b @0x12345678:32,r1h           ;6a30123456781401\r
+\r
+    or.b @er3,@er1                                ;7c350140\r
+    or.b @er3,@(3:2,er1)                          ;7c353140\r
+    or.b @er3,@-er1                               ;7c35b140\r
+    or.b @er3,@er1+                               ;7c358140\r
+    or.b @er3,@er1-                               ;7c35a140\r
+    or.b @er3,@+er1                               ;7c359140\r
+    or.b @er3,@(0xffff9abc:16,er1)                ;7c35c1409abc\r
+    or.b @er3,@(0x9abcdef0:32,er1)                ;7c35c9409abcdef0\r
+    or.b @er3,@(0xffff9abc:16,r2l.b)              ;7c35d2409abc\r
+    or.b @er3,@(0xffff9abc:16,r2.w)              ;7c35e2409abc\r
+    or.b @er3,@(0xffff9abc:16,er2.l)              ;7c35f2409abc\r
+    or.b @er3,@(0x9abcdef0:32,r2l.b)              ;7c35da409abcdef0\r
+    or.b @er3,@(0x9abcdef0:32,r2.w)              ;7c35ea409abcdef0\r
+    or.b @er3,@(0x9abcdef0:32,er2.l)              ;7c35fa409abcdef0\r
+    or.b @er3,@0xffff9abc:16                      ;7c3540409abc\r
+    or.b @er3,@0x9abcdef0:32                      ;7c3548409abcdef0\r
+\r
+    or.b @-er3,@er1                               ;01776c3c0140\r
+    or.b @-er3,@(3:2,er1)                         ;01776c3c3140\r
+    or.b @-er3,@-er1                              ;01776c3cb140\r
+    or.b @-er3,@er1+                              ;01776c3c8140\r
+    or.b @-er3,@er1-                              ;01776c3ca140\r
+    or.b @-er3,@+er1                              ;01776c3c9140\r
+    or.b @-er3,@(0xffff9abc:16,er1)               ;01776c3cc1409abc\r
+    or.b @-er3,@(0x9abcdef0:32,er1)               ;01776c3cc9409abcdef0\r
+    or.b @-er3,@(0xffff9abc:16,r2l.b)             ;01776c3cd2409abc\r
+    or.b @-er3,@(0xffff9abc:16,r2.w)             ;01776c3ce2409abc\r
+    or.b @-er3,@(0xffff9abc:16,er2.l)             ;01776c3cf2409abc\r
+    or.b @-er3,@(0x9abcdef0:32,r2l.b)             ;01776c3cda409abcdef0\r
+    or.b @-er3,@(0x9abcdef0:32,r2.w)             ;01776c3cea409abcdef0\r
+    or.b @-er3,@(0x9abcdef0:32,er2.l)             ;01776c3cfa409abcdef0\r
+    or.b @-er3,@0xffff9abc:16                     ;01776c3c40409abc\r
+    or.b @-er3,@0x9abcdef0:32                     ;01776c3c48409abcdef0\r
+\r
+    or.b @er3+,@er1                               ;01746c3c0140\r
+    or.b @er3+,@(3:2,er1)                         ;01746c3c3140\r
+    or.b @er3+,@-er1                              ;01746c3cb140\r
+    or.b @er3+,@er1+                              ;01746c3c8140\r
+    or.b @er3+,@er1-                              ;01746c3ca140\r
+    or.b @er3+,@+er1                              ;01746c3c9140\r
+    or.b @er3+,@(0xffff9abc:16,er1)               ;01746c3cc1409abc\r
+    or.b @er3+,@(0x9abcdef0:32,er1)               ;01746c3cc9409abcdef0\r
+    or.b @er3+,@(0xffff9abc:16,r2l.b)             ;01746c3cd2409abc\r
+    or.b @er3+,@(0xffff9abc:16,r2.w)             ;01746c3ce2409abc\r
+    or.b @er3+,@(0xffff9abc:16,er2.l)             ;01746c3cf2409abc\r
+    or.b @er3+,@(0x9abcdef0:32,r2l.b)             ;01746c3cda409abcdef0\r
+    or.b @er3+,@(0x9abcdef0:32,r2.w)             ;01746c3cea409abcdef0\r
+    or.b @er3+,@(0x9abcdef0:32,er2.l)             ;01746c3cfa409abcdef0\r
+    or.b @er3+,@0xffff9abc:16                     ;01746c3c40409abc\r
+    or.b @er3+,@0x9abcdef0:32                     ;01746c3c48409abcdef0\r
+\r
+    or.b @er3-,@er1                               ;01766c3c0140\r
+    or.b @er3-,@(3:2,er1)                         ;01766c3c3140\r
+    or.b @er3-,@-er1                              ;01766c3cb140\r
+    or.b @er3-,@er1+                              ;01766c3c8140\r
+    or.b @er3-,@er1-                              ;01766c3ca140\r
+    or.b @er3-,@+er1                              ;01766c3c9140\r
+    or.b @er3-,@(0xffff9abc:16,er1)               ;01766c3cc1409abc\r
+    or.b @er3-,@(0x9abcdef0:32,er1)               ;01766c3cc9409abcdef0\r
+    or.b @er3-,@(0xffff9abc:16,r2l.b)             ;01766c3cd2409abc\r
+    or.b @er3-,@(0xffff9abc:16,r2.w)             ;01766c3ce2409abc\r
+    or.b @er3-,@(0xffff9abc:16,er2.l)             ;01766c3cf2409abc\r
+    or.b @er3-,@(0x9abcdef0:32,r2l.b)             ;01766c3cda409abcdef0\r
+    or.b @er3-,@(0x9abcdef0:32,r2.w)             ;01766c3cea409abcdef0\r
+    or.b @er3-,@(0x9abcdef0:32,er2.l)             ;01766c3cfa409abcdef0\r
+    or.b @er3-,@0xffff9abc:16                     ;01766c3c40409abc\r
+    or.b @er3-,@0x9abcdef0:32                     ;01766c3c48409abcdef0\r
+\r
+    or.b @+er3,@er1                               ;01756c3c0140\r
+    or.b @+er3,@(3:2,er1)                         ;01756c3c3140\r
+    or.b @+er3,@-er1                              ;01756c3cb140\r
+    or.b @+er3,@er1+                              ;01756c3c8140\r
+    or.b @+er3,@er1-                              ;01756c3ca140\r
+    or.b @+er3,@+er1                              ;01756c3c9140\r
+    or.b @+er3,@(0xffff9abc:16,er1)               ;01756c3cc1409abc\r
+    or.b @+er3,@(0x9abcdef0:32,er1)               ;01756c3cc9409abcdef0\r
+    or.b @+er3,@(0xffff9abc:16,r2l.b)             ;01756c3cd2409abc\r
+    or.b @+er3,@(0xffff9abc:16,r2.w)             ;01756c3ce2409abc\r
+    or.b @+er3,@(0xffff9abc:16,er2.l)             ;01756c3cf2409abc\r
+    or.b @+er3,@(0x9abcdef0:32,r2l.b)             ;01756c3cda409abcdef0\r
+    or.b @+er3,@(0x9abcdef0:32,r2.w)             ;01756c3cea409abcdef0\r
+    or.b @+er3,@(0x9abcdef0:32,er2.l)             ;01756c3cfa409abcdef0\r
+    or.b @+er3,@0xffff9abc:16                     ;01756c3c40409abc\r
+    or.b @+er3,@0x9abcdef0:32                     ;01756c3c48409abcdef0\r
+\r
+    or.b @(0x1234:16,er3),@er1                         ;01746e3c12340140\r
+    or.b @(0x1234:16,er3),@(3:2,er1)                   ;01746e3c12343140\r
+    or.b @(0x1234:16,er3),@-er1                        ;01746e3c1234b140\r
+    or.b @(0x1234:16,er3),@er1+                        ;01746e3c12348140\r
+    or.b @(0x1234:16,er3),@er1-                        ;01746e3c1234a140\r
+    or.b @(0x1234:16,er3),@+er1                        ;01746e3c12349140\r
+    or.b @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01746e3c1234c1409abc\r
+    or.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01746e3c1234c9409abcdef0\r
+    or.b @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01746e3c1234d2409abc\r
+    or.b @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01746e3c1234e2409abc\r
+    or.b @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01746e3c1234f2409abc\r
+    or.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01746e3c1234da409abcdef0\r
+    or.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01746e3c1234ea409abcdef0\r
+    or.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01746e3c1234fa409abcdef0\r
+    or.b @(0x1234:16,er3),@0xffff9abc:16               ;01746e3c123440409abc\r
+    or.b @(0x1234:16,er3),@0x9abcdef0:32               ;01746e3c123448409abcdef0\r
+\r
+    or.b @(0x12345678:32,er3),@er1                         ;78346a2c123456780140\r
+    or.b @(0x12345678:32,er3),@(3:2,er1)                   ;78346a2c123456783140\r
+    or.b @(0x12345678:32,er3),@-er1                        ;78346a2c12345678b140\r
+    or.b @(0x12345678:32,er3),@er1+                        ;78346a2c123456788140\r
+    or.b @(0x12345678:32,er3),@er1-                        ;78346a2c12345678a140\r
+    or.b @(0x12345678:32,er3),@+er1                        ;78346a2c123456789140\r
+    or.b @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78346a2c12345678c1409abc\r
+    or.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78346a2c12345678c9409abcdef0\r
+    or.b @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78346a2c12345678d2409abc\r
+    or.b @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78346a2c12345678e2409abc\r
+    or.b @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78346a2c12345678f2409abc\r
+    or.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78346a2c12345678da409abcdef0\r
+    or.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78346a2c12345678ea409abcdef0\r
+    or.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78346a2c12345678fa409abcdef0\r
+    or.b @(0x12345678:32,er3),@0xffff9abc:16               ;78346a2c1234567840409abc\r
+    or.b @(0x12345678:32,er3),@0x9abcdef0:32               ;78346a2c1234567848409abcdef0\r
+\r
+    or.b @(0x1234:16,r3l.b),@er1                       ;01756e3c12340140\r
+    or.b @(0x1234:16,r3l.b),@(3:2,er1)                 ;01756e3c12343140\r
+    or.b @(0x1234:16,r3l.b),@-er1                      ;01756e3c1234b140\r
+    or.b @(0x1234:16,r3l.b),@er1+                      ;01756e3c12348140\r
+    or.b @(0x1234:16,r3l.b),@er1-                      ;01756e3c1234a140\r
+    or.b @(0x1234:16,r3l.b),@+er1                      ;01756e3c12349140\r
+    or.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01756e3c1234c1409abc\r
+    or.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01756e3c1234c9409abcdef0\r
+    or.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01756e3c1234d2409abc\r
+    or.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01756e3c1234e2409abc\r
+    or.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01756e3c1234f2409abc\r
+    or.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01756e3c1234da409abcdef0\r
+    or.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01756e3c1234ea409abcdef0\r
+    or.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01756e3c1234fa409abcdef0\r
+    or.b @(0x1234:16,r3l.b),@0xffff9abc:16             ;01756e3c123440409abc\r
+    or.b @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01756e3c123448409abcdef0\r
+\r
+    or.b @(0x1234:16,r3.w),@er1                       ;01766e3c12340140\r
+    or.b @(0x1234:16,r3.w),@(3:2,er1)                 ;01766e3c12343140\r
+    or.b @(0x1234:16,r3.w),@-er1                      ;01766e3c1234b140\r
+    or.b @(0x1234:16,r3.w),@er1+                      ;01766e3c12348140\r
+    or.b @(0x1234:16,r3.w),@er1-                      ;01766e3c1234a140\r
+    or.b @(0x1234:16,r3.w),@+er1                      ;01766e3c12349140\r
+    or.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01766e3c1234c1409abc\r
+    or.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01766e3c1234c9409abcdef0\r
+    or.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01766e3c1234d2409abc\r
+    or.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01766e3c1234e2409abc\r
+    or.b @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01766e3c1234f2409abc\r
+    or.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01766e3c1234da409abcdef0\r
+    or.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01766e3c1234ea409abcdef0\r
+    or.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01766e3c1234fa409abcdef0\r
+    or.b @(0x1234:16,r3.w),@0xffff9abc:16             ;01766e3c123440409abc\r
+    or.b @(0x1234:16,r3.w),@0x9abcdef0:32             ;01766e3c123448409abcdef0\r
+\r
+    or.b @(0x1234:16,er3.l),@er1                       ;01776e3c12340140\r
+    or.b @(0x1234:16,er3.l),@(3:2,er1)                 ;01776e3c12343140\r
+    or.b @(0x1234:16,er3.l),@-er1                      ;01776e3c1234b140\r
+    or.b @(0x1234:16,er3.l),@er1+                      ;01776e3c12348140\r
+    or.b @(0x1234:16,er3.l),@er1-                      ;01776e3c1234a140\r
+    or.b @(0x1234:16,er3.l),@+er1                      ;01776e3c12349140\r
+    or.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01776e3c1234c1409abc\r
+    or.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01776e3c1234c9409abcdef0\r
+    or.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01776e3c1234d2409abc\r
+    or.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01776e3c1234e2409abc\r
+    or.b @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01776e3c1234f2409abc\r
+    or.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01776e3c1234da409abcdef0\r
+    or.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01776e3c1234ea409abcdef0\r
+    or.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01776e3c1234fa409abcdef0\r
+    or.b @(0x1234:16,er3.l),@0xffff9abc:16             ;01776e3c123440409abc\r
+    or.b @(0x1234:16,er3.l),@0x9abcdef0:32             ;01776e3c123448409abcdef0\r
+\r
+    or.b @(0x12345678:32,r3l.b),@er1                       ;78356a2c123456780140\r
+    or.b @(0x12345678:32,r3l.b),@(3:2,er1)                 ;78356a2c123456783140\r
+    or.b @(0x12345678:32,r3l.b),@-er1                      ;78356a2c12345678b140\r
+    or.b @(0x12345678:32,r3l.b),@er1+                      ;78356a2c123456788140\r
+    or.b @(0x12345678:32,r3l.b),@er1-                      ;78356a2c12345678a140\r
+    or.b @(0x12345678:32,r3l.b),@+er1                      ;78356a2c123456789140\r
+    or.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78356a2c12345678c1409abc\r
+    or.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78356a2c12345678c9409abcdef0\r
+    or.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78356a2c12345678d2409abc\r
+    or.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78356a2c12345678e2409abc\r
+    or.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78356a2c12345678f2409abc\r
+    or.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78356a2c12345678da409abcdef0\r
+    or.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78356a2c12345678ea409abcdef0\r
+    or.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78356a2c12345678fa409abcdef0\r
+    or.b @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78356a2c1234567840409abc\r
+    or.b @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78356a2c1234567848409abcdef0\r
+\r
+    or.b @(0x12345678:32,r3.w),@er1                       ;78366a2c123456780140\r
+    or.b @(0x12345678:32,r3.w),@(3:2,er1)                 ;78366a2c123456783140\r
+    or.b @(0x12345678:32,r3.w),@-er1                      ;78366a2c12345678b140\r
+    or.b @(0x12345678:32,r3.w),@er1+                      ;78366a2c123456788140\r
+    or.b @(0x12345678:32,r3.w),@er1-                      ;78366a2c12345678a140\r
+    or.b @(0x12345678:32,r3.w),@+er1                      ;78366a2c123456789140\r
+    or.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78366a2c12345678c1409abc\r
+    or.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78366a2c12345678c9409abcdef0\r
+    or.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78366a2c12345678d2409abc\r
+    or.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78366a2c12345678e2409abc\r
+    or.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78366a2c12345678f2409abc\r
+    or.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78366a2c12345678da409abcdef0\r
+    or.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78366a2c12345678ea409abcdef0\r
+    or.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78366a2c12345678fa409abcdef0\r
+    or.b @(0x12345678:32,r3.w),@0xffff9abc:16             ;78366a2c1234567840409abc\r
+    or.b @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78366a2c1234567848409abcdef0\r
+\r
+    or.b @(0x12345678:32,er3.l),@er1                       ;78376a2c123456780140\r
+    or.b @(0x12345678:32,er3.l),@(3:2,er1)                 ;78376a2c123456783140\r
+    or.b @(0x12345678:32,er3.l),@-er1                      ;78376a2c12345678b140\r
+    or.b @(0x12345678:32,er3.l),@er1+                      ;78376a2c123456788140\r
+    or.b @(0x12345678:32,er3.l),@er1-                      ;78376a2c12345678a140\r
+    or.b @(0x12345678:32,er3.l),@+er1                      ;78376a2c123456789140\r
+    or.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78376a2c12345678c1409abc\r
+    or.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78376a2c12345678c9409abcdef0\r
+    or.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78376a2c12345678d2409abc\r
+    or.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78376a2c12345678e2409abc\r
+    or.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78376a2c12345678f2409abc\r
+    or.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78376a2c12345678da409abcdef0\r
+    or.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78376a2c12345678ea409abcdef0\r
+    or.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78376a2c12345678fa409abcdef0\r
+    or.b @(0x12345678:32,er3.l),@0xffff9abc:16             ;78376a2c1234567840409abc\r
+    or.b @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78376a2c1234567848409abcdef0\r
+\r
+    or.b @0x1234:16,@er1                              ;6a1512340140\r
+    or.b @0x1234:16,@(3:2,er1)                        ;6a1512343140\r
+    or.b @0x1234:16,@-er1                             ;6a151234b140\r
+    or.b @0x1234:16,@er1+                             ;6a1512348140\r
+    or.b @0x1234:16,@er1-                             ;6a151234a140\r
+    or.b @0x1234:16,@+er1                             ;6a1512349140\r
+    or.b @0x1234:16,@(0xffff9abc:16,er1)              ;6a151234c1409abc\r
+    or.b @0x1234:16,@(0x9abcdef0:32,er1)              ;6a151234c9409abcdef0\r
+    or.b @0x1234:16,@(0xffff9abc:16,r2l.b)            ;6a151234d2409abc\r
+    or.b @0x1234:16,@(0xffff9abc:16,r2.w)            ;6a151234e2409abc\r
+    or.b @0x1234:16,@(0xffff9abc:16,er2.l)            ;6a151234f2409abc\r
+    or.b @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;6a151234da409abcdef0\r
+    or.b @0x1234:16,@(0x9abcdef0:32,r2.w)            ;6a151234ea409abcdef0\r
+    or.b @0x1234:16,@(0x9abcdef0:32,er2.l)            ;6a151234fa409abcdef0\r
+    or.b @0x1234:16,@0xffff9abc:16                    ;6a15123440409abc\r
+    or.b @0x1234:16,@0x9abcdef0:32                    ;6a15123448409abcdef0\r
+\r
+    or.b @0x12345678:32,@er1                              ;6a35123456780140\r
+    or.b @0x12345678:32,@(3:2,er1)                        ;6a35123456783140\r
+    or.b @0x12345678:32,@-er1                             ;6a3512345678b140\r
+    or.b @0x12345678:32,@er1+                             ;6a35123456788140\r
+    or.b @0x12345678:32,@er1-                             ;6a3512345678a140\r
+    or.b @0x12345678:32,@+er1                             ;6a35123456789140\r
+    or.b @0x12345678:32,@(0xffff9abc:16,er1)              ;6a3512345678c1409abc\r
+    or.b @0x12345678:32,@(0x9abcdef0:32,er1)              ;6a3512345678c9409abcdef0\r
+    or.b @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;6a3512345678d2409abc\r
+    or.b @0x12345678:32,@(0xffff9abc:16,r2.w)            ;6a3512345678e2409abc\r
+    or.b @0x12345678:32,@(0xffff9abc:16,er2.l)            ;6a3512345678f2409abc\r
+    or.b @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;6a3512345678da409abcdef0\r
+    or.b @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;6a3512345678ea409abcdef0\r
+    or.b @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;6a3512345678fa409abcdef0\r
+    or.b @0x12345678:32,@0xffff9abc:16                    ;6a351234567840409abc\r
+    or.b @0x12345678:32,@0x9abcdef0:32                    ;6a351234567848409abcdef0\r
+\r
+    or.w #0x1234:16,r1            ;79411234\r
+    or.w #0x1234:16,@er1           ;015e01401234\r
+    or.w #0x1234:16,@(0x6:2,er1) ;015e31401234\r
+    or.w #0x1234:16,@er1+          ;015e81401234\r
+    or.w #0x1234:16,@-er1          ;015eb1401234\r
+    or.w #0x1234:16,@+er1          ;015e91401234\r
+    or.w #0x1234:16,@er1-          ;015ea1401234\r
+    or.w #0x1234:16,@(0xffff9abc:16,er1)    ;015ec1409abc1234\r
+    or.w #0x1234:16,@(0x9abcdef0:32,er1)    ;015ec9409abcdef01234\r
+    or.w #0x1234:16,@(0xffff9abc:16,r2l.b)  ;015ed2409abc1234\r
+    or.w #0x1234:16,@(0xffff9abc:16,r2.w)  ;015ee2409abc1234\r
+    or.w #0x1234:16,@(0xffff9abc:16,er2.l)  ;015ef2409abc1234\r
+    or.w #0x1234:16,@(0x9abcdef0:32,r2l.b)  ;015eda409abcdef01234\r
+    or.w #0x1234:16,@(0x9abcdef0:32,r2.w)  ;015eea409abcdef01234\r
+    or.w #0x1234:16,@(0x9abcdef0:32,er2.l)  ;015efa409abcdef01234\r
+    or.w #0x1234:16,@0xffff9abc:16          ;015e40409abc1234\r
+    or.w #0x1234:16,@0x9abcdef0:32          ;015e48409abcdef01234\r
+\r
+    or.w r3,r1               ;6431\r
+\r
+    or.w r3,@er1             ;7d906430\r
+    or.w r3,@(0x6:2,er1)    ;01593143\r
+    or.w r3,@er1+            ;01598143\r
+    or.w r3,@-er1            ;0159b143\r
+    or.w r3,@+er1            ;01599143\r
+    or.w r3,@er1-            ;0159a143\r
+    or.w r3,@(0x1234:16,er1)      ;0159c1431234\r
+    or.w r3,@(0x12345678:32,er1)      ;0159c94312345678\r
+    or.w r3,@(0x1234:16,r2l.b)    ;0159d2431234\r
+    or.w r3,@(0x1234:16,r2.w)    ;0159e2431234\r
+    or.w r3,@(0x1234:16,er2.l)    ;0159f2431234\r
+    or.w r3,@(0x12345678:32,r2l.b)    ;0159da4312345678\r
+    or.w r3,@(0x12345678:32,r2.w)    ;0159ea4312345678\r
+    or.w r3,@(0x12345678:32,er2.l)    ;0159fa4312345678\r
+    or.w r3,@0x1234:16           ;6b1812346430\r
+    or.w r3,@0x12345678:32           ;6b38123456786430\r
+\r
+    or.w @er3,r1             ;7cb06401\r
+    or.w @(0x6:2,er3),r1   ;015a3341\r
+    or.w @er3+,r1           ;015a8341\r
+    or.w @-er3,r1           ;015ab341\r
+    or.w @+er3,r1           ;015a9341\r
+    or.w @er3-,r1           ;015aa341\r
+    or.w @(0x1234:16,er1),r1      ;015ac1411234\r
+    or.w @(0x12345678:32,er1),r1      ;015ac94112345678\r
+    or.w @(0x1234:16,r2l.b),r1    ;015ad2411234\r
+    or.w @(0x1234:16,r2.w),r1    ;015ae2411234\r
+    or.w @(0x1234:16,er2.l),r1    ;015af2411234\r
+    or.w @(0x12345678:32,r2l.b),r1    ;015ada4112345678\r
+    or.w @(0x12345678:32,r2.w),r1    ;015aea4112345678\r
+    or.w @(0x12345678:32,er2.l),r1    ;015afa4112345678\r
+    or.w @0x1234:16,r1           ;6b1012346401\r
+    or.w @0x12345678:32,r1           ;6b30123456786401\r
+\r
+    or.w @er3,@er1                                ;7cb50140\r
+    or.w @er3,@(6:2,er1)                          ;7cb53140\r
+    or.w @er3,@-er1                               ;7cb5b140\r
+    or.w @er3,@er1+                               ;7cb58140\r
+    or.w @er3,@er1-                               ;7cb5a140\r
+    or.w @er3,@+er1                               ;7cb59140\r
+    or.w @er3,@(0xffff9abc:16,er1)                ;7cb5c1409abc\r
+    or.w @er3,@(0x9abcdef0:32,er1)                ;7cb5c9409abcdef0\r
+    or.w @er3,@(0xffff9abc:16,r2l.b)              ;7cb5d2409abc\r
+    or.w @er3,@(0xffff9abc:16,r2.w)              ;7cb5e2409abc\r
+    or.w @er3,@(0xffff9abc:16,er2.l)              ;7cb5f2409abc\r
+    or.w @er3,@(0x9abcdef0:32,r2l.b)              ;7cb5da409abcdef0\r
+    or.w @er3,@(0x9abcdef0:32,r2.w)              ;7cb5ea409abcdef0\r
+    or.w @er3,@(0x9abcdef0:32,er2.l)              ;7cb5fa409abcdef0\r
+    or.w @er3,@0xffff9abc:16                      ;7cb540409abc\r
+    or.w @er3,@0x9abcdef0:32                      ;7cb548409abcdef0\r
+\r
+    or.w @-er3,@er1                               ;01576d3c0140\r
+    or.w @-er3,@(6:2,er1)                         ;01576d3c3140\r
+    or.w @-er3,@-er1                              ;01576d3cb140\r
+    or.w @-er3,@er1+                              ;01576d3c8140\r
+    or.w @-er3,@er1-                              ;01576d3ca140\r
+    or.w @-er3,@+er1                              ;01576d3c9140\r
+    or.w @-er3,@(0xffff9abc:16,er1)               ;01576d3cc1409abc\r
+    or.w @-er3,@(0x9abcdef0:32,er1)               ;01576d3cc9409abcdef0\r
+    or.w @-er3,@(0xffff9abc:16,r2l.b)             ;01576d3cd2409abc\r
+    or.w @-er3,@(0xffff9abc:16,r2.w)             ;01576d3ce2409abc\r
+    or.w @-er3,@(0xffff9abc:16,er2.l)             ;01576d3cf2409abc\r
+    or.w @-er3,@(0x9abcdef0:32,r2l.b)             ;01576d3cda409abcdef0\r
+    or.w @-er3,@(0x9abcdef0:32,r2.w)             ;01576d3cea409abcdef0\r
+    or.w @-er3,@(0x9abcdef0:32,er2.l)             ;01576d3cfa409abcdef0\r
+    or.w @-er3,@0xffff9abc:16                     ;01576d3c40409abc\r
+    or.w @-er3,@0x9abcdef0:32                     ;01576d3c48409abcdef0\r
+\r
+    or.w @er3+,@er1                               ;01546d3c0140\r
+    or.w @er3+,@(6:2,er1)                         ;01546d3c3140\r
+    or.w @er3+,@-er1                              ;01546d3cb140\r
+    or.w @er3+,@er1+                              ;01546d3c8140\r
+    or.w @er3+,@er1-                              ;01546d3ca140\r
+    or.w @er3+,@+er1                              ;01546d3c9140\r
+    or.w @er3+,@(0xffff9abc:16,er1)               ;01546d3cc1409abc\r
+    or.w @er3+,@(0x9abcdef0:32,er1)               ;01546d3cc9409abcdef0\r
+    or.w @er3+,@(0xffff9abc:16,r2l.b)             ;01546d3cd2409abc\r
+    or.w @er3+,@(0xffff9abc:16,r2.w)             ;01546d3ce2409abc\r
+    or.w @er3+,@(0xffff9abc:16,er2.l)             ;01546d3cf2409abc\r
+    or.w @er3+,@(0x9abcdef0:32,r2l.b)             ;01546d3cda409abcdef0\r
+    or.w @er3+,@(0x9abcdef0:32,r2.w)             ;01546d3cea409abcdef0\r
+    or.w @er3+,@(0x9abcdef0:32,er2.l)             ;01546d3cfa409abcdef0\r
+    or.w @er3+,@0xffff9abc:16                     ;01546d3c40409abc\r
+    or.w @er3+,@0x9abcdef0:32                     ;01546d3c48409abcdef0\r
+\r
+    or.w @er3-,@er1                               ;01566d3c0140\r
+    or.w @er3-,@(6:2,er1)                         ;01566d3c3140\r
+    or.w @er3-,@-er1                              ;01566d3cb140\r
+    or.w @er3-,@er1+                              ;01566d3c8140\r
+    or.w @er3-,@er1-                              ;01566d3ca140\r
+    or.w @er3-,@+er1                              ;01566d3c9140\r
+    or.w @er3-,@(0xffff9abc:16,er1)               ;01566d3cc1409abc\r
+    or.w @er3-,@(0x9abcdef0:32,er1)               ;01566d3cc9409abcdef0\r
+    or.w @er3-,@(0xffff9abc:16,r2l.b)             ;01566d3cd2409abc\r
+    or.w @er3-,@(0xffff9abc:16,r2.w)             ;01566d3ce2409abc\r
+    or.w @er3-,@(0xffff9abc:16,er2.l)             ;01566d3cf2409abc\r
+    or.w @er3-,@(0x9abcdef0:32,r2l.b)             ;01566d3cda409abcdef0\r
+    or.w @er3-,@(0x9abcdef0:32,r2.w)             ;01566d3cea409abcdef0\r
+    or.w @er3-,@(0x9abcdef0:32,er2.l)             ;01566d3cfa409abcdef0\r
+    or.w @er3-,@0xffff9abc:16                     ;01566d3c40409abc\r
+    or.w @er3-,@0x9abcdef0:32                     ;01566d3c48409abcdef0\r
+\r
+    or.w @+er3,@er1                               ;01556d3c0140\r
+    or.w @+er3,@(6:2,er1)                         ;01556d3c3140\r
+    or.w @+er3,@-er1                              ;01556d3cb140\r
+    or.w @+er3,@er1+                              ;01556d3c8140\r
+    or.w @+er3,@er1-                              ;01556d3ca140\r
+    or.w @+er3,@+er1                              ;01556d3c9140\r
+    or.w @+er3,@(0xffff9abc:16,er1)               ;01556d3cc1409abc\r
+    or.w @+er3,@(0x9abcdef0:32,er1)               ;01556d3cc9409abcdef0\r
+    or.w @+er3,@(0xffff9abc:16,r2l.b)             ;01556d3cd2409abc\r
+    or.w @+er3,@(0xffff9abc:16,r2.w)             ;01556d3ce2409abc\r
+    or.w @+er3,@(0xffff9abc:16,er2.l)             ;01556d3cf2409abc\r
+    or.w @+er3,@(0x9abcdef0:32,r2l.b)             ;01556d3cda409abcdef0\r
+    or.w @+er3,@(0x9abcdef0:32,r2.w)             ;01556d3cea409abcdef0\r
+    or.w @+er3,@(0x9abcdef0:32,er2.l)             ;01556d3cfa409abcdef0\r
+    or.w @+er3,@0xffff9abc:16                     ;01556d3c40409abc\r
+    or.w @+er3,@0x9abcdef0:32                     ;01556d3c48409abcdef0\r
+\r
+    or.w @(0x1234:16,er3),@er1                         ;01546f3c12340140\r
+    or.w @(0x1234:16,er3),@(6:2,er1)                   ;01546f3c12343140\r
+    or.w @(0x1234:16,er3),@-er1                        ;01546f3c1234b140\r
+    or.w @(0x1234:16,er3),@er1+                        ;01546f3c12348140\r
+    or.w @(0x1234:16,er3),@er1-                        ;01546f3c1234a140\r
+    or.w @(0x1234:16,er3),@+er1                        ;01546f3c12349140\r
+    or.w @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01546f3c1234c1409abc\r
+    or.w @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01546f3c1234c9409abcdef0\r
+    or.w @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01546f3c1234d2409abc\r
+    or.w @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01546f3c1234e2409abc\r
+    or.w @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01546f3c1234f2409abc\r
+    or.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01546f3c1234da409abcdef0\r
+    or.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01546f3c1234ea409abcdef0\r
+    or.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01546f3c1234fa409abcdef0\r
+    or.w @(0x1234:16,er3),@0xffff9abc:16               ;01546f3c123440409abc\r
+    or.w @(0x1234:16,er3),@0x9abcdef0:32               ;01546f3c123448409abcdef0\r
+\r
+    or.w @(0x12345678:32,er3),@er1                         ;78346b2c123456780140\r
+    or.w @(0x12345678:32,er3),@(6:2,er1)                   ;78346b2c123456783140\r
+    or.w @(0x12345678:32,er3),@-er1                        ;78346b2c12345678b140\r
+    or.w @(0x12345678:32,er3),@er1+                        ;78346b2c123456788140\r
+    or.w @(0x12345678:32,er3),@er1-                        ;78346b2c12345678a140\r
+    or.w @(0x12345678:32,er3),@+er1                        ;78346b2c123456789140\r
+    or.w @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78346b2c12345678c1409abc\r
+    or.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78346b2c12345678c9409abcdef0\r
+    or.w @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78346b2c12345678d2409abc\r
+    or.w @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78346b2c12345678e2409abc\r
+    or.w @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78346b2c12345678f2409abc\r
+    or.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78346b2c12345678da409abcdef0\r
+    or.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78346b2c12345678ea409abcdef0\r
+    or.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78346b2c12345678fa409abcdef0\r
+    or.w @(0x12345678:32,er3),@0xffff9abc:16               ;78346b2c1234567840409abc\r
+    or.w @(0x12345678:32,er3),@0x9abcdef0:32               ;78346b2c1234567848409abcdef0\r
+\r
+    or.w @(0x1234:16,r3l.b),@er1                       ;01556f3c12340140\r
+    or.w @(0x1234:16,r3l.b),@(6:2,er1)                 ;01556f3c12343140\r
+    or.w @(0x1234:16,r3l.b),@-er1                      ;01556f3c1234b140\r
+    or.w @(0x1234:16,r3l.b),@er1+                      ;01556f3c12348140\r
+    or.w @(0x1234:16,r3l.b),@er1-                      ;01556f3c1234a140\r
+    or.w @(0x1234:16,r3l.b),@+er1                      ;01556f3c12349140\r
+    or.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01556f3c1234c1409abc\r
+    or.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01556f3c1234c9409abcdef0\r
+    or.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01556f3c1234d2409abc\r
+    or.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01556f3c1234e2409abc\r
+    or.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01556f3c1234f2409abc\r
+    or.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01556f3c1234da409abcdef0\r
+    or.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01556f3c1234ea409abcdef0\r
+    or.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01556f3c1234fa409abcdef0\r
+    or.w @(0x1234:16,r3l.b),@0xffff9abc:16             ;01556f3c123440409abc\r
+    or.w @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01556f3c123448409abcdef0\r
+\r
+    or.w @(0x1234:16,r3.w),@er1                       ;01566f3c12340140\r
+    or.w @(0x1234:16,r3.w),@(6:2,er1)                 ;01566f3c12343140\r
+    or.w @(0x1234:16,r3.w),@-er1                      ;01566f3c1234b140\r
+    or.w @(0x1234:16,r3.w),@er1+                      ;01566f3c12348140\r
+    or.w @(0x1234:16,r3.w),@er1-                      ;01566f3c1234a140\r
+    or.w @(0x1234:16,r3.w),@+er1                      ;01566f3c12349140\r
+    or.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01566f3c1234c1409abc\r
+    or.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01566f3c1234c9409abcdef0\r
+    or.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01566f3c1234d2409abc\r
+    or.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01566f3c1234e2409abc\r
+    or.w @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01566f3c1234f2409abc\r
+    or.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01566f3c1234da409abcdef0\r
+    or.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01566f3c1234ea409abcdef0\r
+    or.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01566f3c1234fa409abcdef0\r
+    or.w @(0x1234:16,r3.w),@0xffff9abc:16             ;01566f3c123440409abc\r
+    or.w @(0x1234:16,r3.w),@0x9abcdef0:32             ;01566f3c123448409abcdef0\r
+\r
+    or.w @(0x1234:16,er3.l),@er1                       ;01576f3c12340140\r
+    or.w @(0x1234:16,er3.l),@(6:2,er1)                 ;01576f3c12343140\r
+    or.w @(0x1234:16,er3.l),@-er1                      ;01576f3c1234b140\r
+    or.w @(0x1234:16,er3.l),@er1+                      ;01576f3c12348140\r
+    or.w @(0x1234:16,er3.l),@er1-                      ;01576f3c1234a140\r
+    or.w @(0x1234:16,er3.l),@+er1                      ;01576f3c12349140\r
+    or.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01576f3c1234c1409abc\r
+    or.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01576f3c1234c9409abcdef0\r
+    or.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01576f3c1234d2409abc\r
+    or.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01576f3c1234e2409abc\r
+    or.w @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01576f3c1234f2409abc\r
+    or.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01576f3c1234da409abcdef0\r
+    or.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01576f3c1234ea409abcdef0\r
+    or.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01576f3c1234fa409abcdef0\r
+    or.w @(0x1234:16,er3.l),@0xffff9abc:16             ;01576f3c123440409abc\r
+    or.w @(0x1234:16,er3.l),@0x9abcdef0:32             ;01576f3c123448409abcdef0\r
+\r
+    or.w @(0x12345678:32,r3l.b),@er1                       ;78356b2c123456780140\r
+    or.w @(0x12345678:32,r3l.b),@(6:2,er1)                 ;78356b2c123456783140\r
+    or.w @(0x12345678:32,r3l.b),@-er1                      ;78356b2c12345678b140\r
+    or.w @(0x12345678:32,r3l.b),@er1+                      ;78356b2c123456788140\r
+    or.w @(0x12345678:32,r3l.b),@er1-                      ;78356b2c12345678a140\r
+    or.w @(0x12345678:32,r3l.b),@+er1                      ;78356b2c123456789140\r
+    or.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78356b2c12345678c1409abc\r
+    or.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78356b2c12345678c9409abcdef0\r
+    or.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78356b2c12345678d2409abc\r
+    or.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78356b2c12345678e2409abc\r
+    or.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78356b2c12345678f2409abc\r
+    or.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78356b2c12345678da409abcdef0\r
+    or.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78356b2c12345678ea409abcdef0\r
+    or.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78356b2c12345678fa409abcdef0\r
+    or.w @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78356b2c1234567840409abc\r
+    or.w @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78356b2c1234567848409abcdef0\r
+\r
+    or.w @(0x12345678:32,r3.w),@er1                       ;78366b2c123456780140\r
+    or.w @(0x12345678:32,r3.w),@(6:2,er1)                 ;78366b2c123456783140\r
+    or.w @(0x12345678:32,r3.w),@-er1                      ;78366b2c12345678b140\r
+    or.w @(0x12345678:32,r3.w),@er1+                      ;78366b2c123456788140\r
+    or.w @(0x12345678:32,r3.w),@er1-                      ;78366b2c12345678a140\r
+    or.w @(0x12345678:32,r3.w),@+er1                      ;78366b2c123456789140\r
+    or.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78366b2c12345678c1409abc\r
+    or.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78366b2c12345678c9409abcdef0\r
+    or.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78366b2c12345678d2409abc\r
+    or.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78366b2c12345678e2409abc\r
+    or.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78366b2c12345678f2409abc\r
+    or.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78366b2c12345678da409abcdef0\r
+    or.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78366b2c12345678ea409abcdef0\r
+    or.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78366b2c12345678fa409abcdef0\r
+    or.w @(0x12345678:32,r3.w),@0xffff9abc:16             ;78366b2c1234567840409abc\r
+    or.w @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78366b2c1234567848409abcdef0\r
+\r
+    or.w @(0x12345678:32,er3.l),@er1                       ;78376b2c123456780140\r
+    or.w @(0x12345678:32,er3.l),@(6:2,er1)                 ;78376b2c123456783140\r
+    or.w @(0x12345678:32,er3.l),@-er1                      ;78376b2c12345678b140\r
+    or.w @(0x12345678:32,er3.l),@er1+                      ;78376b2c123456788140\r
+    or.w @(0x12345678:32,er3.l),@er1-                      ;78376b2c12345678a140\r
+    or.w @(0x12345678:32,er3.l),@+er1                      ;78376b2c123456789140\r
+    or.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78376b2c12345678c1409abc\r
+    or.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78376b2c12345678c9409abcdef0\r
+    or.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78376b2c12345678d2409abc\r
+    or.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78376b2c12345678e2409abc\r
+    or.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78376b2c12345678f2409abc\r
+    or.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78376b2c12345678da409abcdef0\r
+    or.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78376b2c12345678ea409abcdef0\r
+    or.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78376b2c12345678fa409abcdef0\r
+    or.w @(0x12345678:32,er3.l),@0xffff9abc:16             ;78376b2c1234567840409abc\r
+    or.w @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78376b2c1234567848409abcdef0\r
+\r
+    or.w @0x1234:16,@er1                              ;6b1512340140\r
+    or.w @0x1234:16,@(6:2,er1)                        ;6b1512343140\r
+    or.w @0x1234:16,@-er1                             ;6b151234b140\r
+    or.w @0x1234:16,@er1+                             ;6b1512348140\r
+    or.w @0x1234:16,@er1-                             ;6b151234a140\r
+    or.w @0x1234:16,@+er1                             ;6b1512349140\r
+    or.w @0x1234:16,@(0xffff9abc:16,er1)              ;6b151234c1409abc\r
+    or.w @0x1234:16,@(0x9abcdef0:32,er1)              ;6b151234c9409abcdef0\r
+    or.w @0x1234:16,@(0xffff9abc:16,r2l.b)            ;6b151234d2409abc\r
+    or.w @0x1234:16,@(0xffff9abc:16,r2.w)            ;6b151234e2409abc\r
+    or.w @0x1234:16,@(0xffff9abc:16,er2.l)            ;6b151234f2409abc\r
+    or.w @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;6b151234da409abcdef0\r
+    or.w @0x1234:16,@(0x9abcdef0:32,r2.w)            ;6b151234ea409abcdef0\r
+    or.w @0x1234:16,@(0x9abcdef0:32,er2.l)            ;6b151234fa409abcdef0\r
+    or.w @0x1234:16,@0xffff9abc:16                    ;6b15123440409abc\r
+    or.w @0x1234:16,@0x9abcdef0:32                    ;6b15123448409abcdef0\r
+\r
+    or.w @0x12345678:32,@er1                              ;6b35123456780140\r
+    or.w @0x12345678:32,@(6:2,er1)                        ;6b35123456783140\r
+    or.w @0x12345678:32,@-er1                             ;6b3512345678b140\r
+    or.w @0x12345678:32,@er1+                             ;6b35123456788140\r
+    or.w @0x12345678:32,@er1-                             ;6b3512345678a140\r
+    or.w @0x12345678:32,@+er1                             ;6b35123456789140\r
+    or.w @0x12345678:32,@(0xffff9abc:16,er1)              ;6b3512345678c1409abc\r
+    or.w @0x12345678:32,@(0x9abcdef0:32,er1)              ;6b3512345678c9409abcdef0\r
+    or.w @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;6b3512345678d2409abc\r
+    or.w @0x12345678:32,@(0xffff9abc:16,r2.w)            ;6b3512345678e2409abc\r
+    or.w @0x12345678:32,@(0xffff9abc:16,er2.l)            ;6b3512345678f2409abc\r
+    or.w @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;6b3512345678da409abcdef0\r
+    or.w @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;6b3512345678ea409abcdef0\r
+    or.w @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;6b3512345678fa409abcdef0\r
+    or.w @0x12345678:32,@0xffff9abc:16                    ;6b351234567840409abc\r
+    or.w @0x12345678:32,@0x9abcdef0:32                    ;6b351234567848409abcdef0\r
+\r
+    or.l #0x12345678:32,er1          ;7a4112345678\r
+    or.l #0x1234:16,er1           ;7a491234\r
+    or.l #0x12345678:32,@er1          ;010e014812345678\r
+    or.l #0x12345678:32,@(0xc:2,er1) ;010e314812345678\r
+    or.l #0x12345678:32,@er1+         ;010e814812345678\r
+    or.l #0x12345678:32,@-er1         ;010eb14812345678\r
+    or.l #0x12345678:32,@+er1         ;010e914812345678\r
+    or.l #0x12345678:32,@er1-         ;010ea14812345678\r
+    or.l #0x12345678:32,@(0xffff9abc:16,er1)   ;010ec1489abc12345678\r
+    or.l #0x12345678:32,@(0x9abcdef0:32,er1)   ;010ec9489abcdef012345678\r
+    or.l #0x12345678:32,@(0xffff9abc:16,r2l.b) ;010ed2489abc12345678\r
+    or.l #0x12345678:32,@(0xffff9abc:16,r2.w) ;010ee2489abc12345678\r
+    or.l #0x12345678:32,@(0xffff9abc:16,er2.l) ;010ef2489abc12345678\r
+    or.l #0x12345678:32,@(0x9abcdef0:32,r2l.b) ;010eda489abcdef012345678\r
+    or.l #0x12345678:32,@(0x9abcdef0:32,r2.w) ;010eea489abcdef012345678\r
+    or.l #0x12345678:32,@(0x9abcdef0:32,er2.l) ;010efa489abcdef012345678\r
+    or.l #0x12345678:32,@0xffff9abc:16         ;010e40489abc12345678\r
+    or.l #0x12345678:32,@0x9abcdef0:32         ;010e48489abcdef012345678\r
+    or.l #0x1234:16,@er1          ;010e01401234\r
+    or.l #0x1234:16,@(0xc:2,er1) ;010e31401234\r
+    or.l #0x1234:16,@er1+         ;010e81401234\r
+    or.l #0x1234:16,@-er1         ;010eb1401234\r
+    or.l #0x1234:16,@+er1         ;010e91401234\r
+    or.l #0x1234:16,@er1-         ;010ea1401234\r
+    or.l #0x1234:16,@(0xffff9abc:16,er1)   ;010ec1409abc1234\r
+    or.l #0x1234:16,@(0x9abcdef0:32,er1)   ;010ec9409abcdef01234\r
+    or.l #0x1234:16,@(0xffff9abc:16,r2l.b) ;010ed2409abc1234\r
+    or.l #0x1234:16,@(0xffff9abc:16,r2.w) ;010ee2409abc1234\r
+    or.l #0x1234:16,@(0xffff9abc:16,er2.l) ;010ef2409abc1234\r
+    or.l #0x1234:16,@(0x9abcdef0:32,r2l.b) ;010eda409abcdef01234\r
+    or.l #0x1234:16,@(0x9abcdef0:32,r2.w) ;010eea409abcdef01234\r
+    or.l #0x1234:16,@(0x9abcdef0:32,er2.l) ;010efa409abcdef01234\r
+    or.l #0x1234:16,@0xffff9abc:16         ;010e40409abc1234\r
+    or.l #0x1234:16,@0x9abcdef0:32         ;010e48409abcdef01234\r
+\r
+    or.l er3,er1               ;01f06431\r
+\r
+    or.l er3,@er1             ;01090143\r
+    or.l er3,@(0xc:2,er1)    ;01093143\r
+    or.l er3,@er1+            ;01098143\r
+    or.l er3,@-er1            ;0109b143\r
+    or.l er3,@+er1            ;01099143\r
+    or.l er3,@er1-            ;0109a143\r
+    or.l er3,@(0x1234:16,er1)      ;0109c1431234\r
+    or.l er3,@(0x12345678:32,er1)      ;0109c94312345678\r
+    or.l er3,@(0x1234:16,r2l.b)    ;0109d2431234\r
+    or.l er3,@(0x1234:16,r2.w)    ;0109e2431234\r
+    or.l er3,@(0x1234:16,er2.l)    ;0109f2431234\r
+    or.l er3,@(0x12345678:32,r2l.b)    ;0109da4312345678\r
+    or.l er3,@(0x12345678:32,r2.w)    ;0109ea4312345678\r
+    or.l er3,@(0x12345678:32,er2.l)    ;0109fa4312345678\r
+    or.l er3,@0x1234:16           ;010940431234\r
+    or.l er3,@0x12345678:32           ;0109484312345678\r
+\r
+    or.l @er3,er1             ;010a0341\r
+    or.l @(0xc:2,er3),er1   ;010a3341\r
+    or.l @er3+,er1           ;010a8341\r
+    or.l @-er3,er1           ;010ab341\r
+    or.l @+er3,er1           ;010a9341\r
+    or.l @er3-,er1           ;010aa341\r
+    or.l @(0x1234:16,er1),er1      ;010ac1411234\r
+    or.l @(0x12345678:32,er1),er1      ;010ac94112345678\r
+    or.l @(0x1234:16,r2l.b),er1    ;010ad2411234\r
+    or.l @(0x1234:16,r2.w),er1    ;010ae2411234\r
+    or.l @(0x1234:16,er2.l),er1    ;010af2411234\r
+    or.l @(0x12345678:32,r2l.b),er1    ;010ada4112345678\r
+    or.l @(0x12345678:32,r2.w),er1    ;010aea4112345678\r
+    or.l @(0x12345678:32,er2.l),er1    ;010afa4112345678\r
+    or.l @0x1234:16,er1           ;010a40411234\r
+    or.l @0x12345678:32,er1           ;010a484112345678\r
+\r
+    or.l @er3,@er1                                ;0104693c0140\r
+    or.l @er3,@(0xc:2,er1)                          ;0104693c3140\r
+    or.l @er3,@-er1                               ;0104693cb140\r
+    or.l @er3,@er1+                               ;0104693c8140\r
+    or.l @er3,@er1-                               ;0104693ca140\r
+    or.l @er3,@+er1                               ;0104693c9140\r
+    or.l @er3,@(0xffff9abc:16,er1)                ;0104693cc1409abc\r
+    or.l @er3,@(0x9abcdef0:32,er1)                ;0104693cc9409abcdef0\r
+    or.l @er3,@(0xffff9abc:16,r2l.b)              ;0104693cd2409abc\r
+    or.l @er3,@(0xffff9abc:16,r2.w)              ;0104693ce2409abc\r
+    or.l @er3,@(0xffff9abc:16,er2.l)              ;0104693cf2409abc\r
+    or.l @er3,@(0x9abcdef0:32,r2l.b)              ;0104693cda409abcdef0\r
+    or.l @er3,@(0x9abcdef0:32,r2.w)              ;0104693cea409abcdef0\r
+    or.l @er3,@(0x9abcdef0:32,er2.l)              ;0104693cfa409abcdef0\r
+    or.l @er3,@0xffff9abc:16                      ;0104693c40409abc\r
+    or.l @er3,@0x9abcdef0:32                      ;0104693c48409abcdef0\r
+\r
+    or.l @(0xc:2,er3),@er1                       ;0107693c0140\r
+    or.l @(0xc:2,er3),@(0xc:2,er1)                 ;0107693c3140\r
+    or.l @(0xc:2,er3),@-er1                      ;0107693cb140\r
+    or.l @(0xc:2,er3),@er1+                      ;0107693c8140\r
+    or.l @(0xc:2,er3),@er1-                      ;0107693ca140\r
+    or.l @(0xc:2,er3),@+er1                      ;0107693c9140\r
+    or.l @(0xc:2,er3),@(0xffff9abc:16,er1)       ;0107693cc1409abc\r
+    or.l @(0xc:2,er3),@(0x9abcdef0:32,er1)       ;0107693cc9409abcdef0\r
+    or.l @(0xc:2,er3),@(0xffff9abc:16,r2l.b)     ;0107693cd2409abc\r
+    or.l @(0xc:2,er3),@(0xffff9abc:16,r2.w)     ;0107693ce2409abc\r
+    or.l @(0xc:2,er3),@(0xffff9abc:16,er2.l)     ;0107693cf2409abc\r
+    or.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b)     ;0107693cda409abcdef0\r
+    or.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w)     ;0107693cea409abcdef0\r
+    or.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l)     ;0107693cfa409abcdef0\r
+    or.l @(0xc:2,er3),@0xffff9abc:16             ;0107693c40409abc\r
+    or.l @(0xc:2,er3),@0x9abcdef0:32             ;0107693c48409abcdef0\r
+\r
+    or.l @-er3,@er1                               ;01076d3c0140\r
+    or.l @-er3,@(0xc:2,er1)                         ;01076d3c3140\r
+    or.l @-er3,@-er1                              ;01076d3cb140\r
+    or.l @-er3,@er1+                              ;01076d3c8140\r
+    or.l @-er3,@er1-                              ;01076d3ca140\r
+    or.l @-er3,@+er1                              ;01076d3c9140\r
+    or.l @-er3,@(0xffff9abc:16,er1)               ;01076d3cc1409abc\r
+    or.l @-er3,@(0x9abcdef0:32,er1)               ;01076d3cc9409abcdef0\r
+    or.l @-er3,@(0xffff9abc:16,r2l.b)             ;01076d3cd2409abc\r
+    or.l @-er3,@(0xffff9abc:16,r2.w)             ;01076d3ce2409abc\r
+    or.l @-er3,@(0xffff9abc:16,er2.l)             ;01076d3cf2409abc\r
+    or.l @-er3,@(0x9abcdef0:32,r2l.b)             ;01076d3cda409abcdef0\r
+    or.l @-er3,@(0x9abcdef0:32,r2.w)             ;01076d3cea409abcdef0\r
+    or.l @-er3,@(0x9abcdef0:32,er2.l)             ;01076d3cfa409abcdef0\r
+    or.l @-er3,@0xffff9abc:16                     ;01076d3c40409abc\r
+    or.l @-er3,@0x9abcdef0:32                     ;01076d3c48409abcdef0\r
+\r
+    or.l @er3+,@er1                               ;01046d3c0140\r
+    or.l @er3+,@(0xc:2,er1)                         ;01046d3c3140\r
+    or.l @er3+,@-er1                              ;01046d3cb140\r
+    or.l @er3+,@er1+                              ;01046d3c8140\r
+    or.l @er3+,@er1-                              ;01046d3ca140\r
+    or.l @er3+,@+er1                              ;01046d3c9140\r
+    or.l @er3+,@(0xffff9abc:16,er1)               ;01046d3cc1409abc\r
+    or.l @er3+,@(0x9abcdef0:32,er1)               ;01046d3cc9409abcdef0\r
+    or.l @er3+,@(0xffff9abc:16,r2l.b)             ;01046d3cd2409abc\r
+    or.l @er3+,@(0xffff9abc:16,r2.w)             ;01046d3ce2409abc\r
+    or.l @er3+,@(0xffff9abc:16,er2.l)             ;01046d3cf2409abc\r
+    or.l @er3+,@(0x9abcdef0:32,r2l.b)             ;01046d3cda409abcdef0\r
+    or.l @er3+,@(0x9abcdef0:32,r2.w)             ;01046d3cea409abcdef0\r
+    or.l @er3+,@(0x9abcdef0:32,er2.l)             ;01046d3cfa409abcdef0\r
+    or.l @er3+,@0xffff9abc:16                     ;01046d3c40409abc\r
+    or.l @er3+,@0x9abcdef0:32                     ;01046d3c48409abcdef0\r
+\r
+    or.l @er3-,@er1                               ;01066d3c0140\r
+    or.l @er3-,@(0xc:2,er1)                         ;01066d3c3140\r
+    or.l @er3-,@-er1                              ;01066d3cb140\r
+    or.l @er3-,@er1+                              ;01066d3c8140\r
+    or.l @er3-,@er1-                              ;01066d3ca140\r
+    or.l @er3-,@+er1                              ;01066d3c9140\r
+    or.l @er3-,@(0xffff9abc:16,er1)               ;01066d3cc1409abc\r
+    or.l @er3-,@(0x9abcdef0:32,er1)               ;01066d3cc9409abcdef0\r
+    or.l @er3-,@(0xffff9abc:16,r2l.b)             ;01066d3cd2409abc\r
+    or.l @er3-,@(0xffff9abc:16,r2.w)             ;01066d3ce2409abc\r
+    or.l @er3-,@(0xffff9abc:16,er2.l)             ;01066d3cf2409abc\r
+    or.l @er3-,@(0x9abcdef0:32,r2l.b)             ;01066d3cda409abcdef0\r
+    or.l @er3-,@(0x9abcdef0:32,r2.w)             ;01066d3cea409abcdef0\r
+    or.l @er3-,@(0x9abcdef0:32,er2.l)             ;01066d3cfa409abcdef0\r
+    or.l @er3-,@0xffff9abc:16                     ;01066d3c40409abc\r
+    or.l @er3-,@0x9abcdef0:32                     ;01066d3c48409abcdef0\r
+\r
+    or.l @+er3,@er1                               ;01056d3c0140\r
+    or.l @+er3,@(0xc:2,er1)                         ;01056d3c3140\r
+    or.l @+er3,@-er1                              ;01056d3cb140\r
+    or.l @+er3,@er1+                              ;01056d3c8140\r
+    or.l @+er3,@er1-                              ;01056d3ca140\r
+    or.l @+er3,@+er1                              ;01056d3c9140\r
+    or.l @+er3,@(0xffff9abc:16,er1)               ;01056d3cc1409abc\r
+    or.l @+er3,@(0x9abcdef0:32,er1)               ;01056d3cc9409abcdef0\r
+    or.l @+er3,@(0xffff9abc:16,r2l.b)             ;01056d3cd2409abc\r
+    or.l @+er3,@(0xffff9abc:16,r2.w)             ;01056d3ce2409abc\r
+    or.l @+er3,@(0xffff9abc:16,er2.l)             ;01056d3cf2409abc\r
+    or.l @+er3,@(0x9abcdef0:32,r2l.b)             ;01056d3cda409abcdef0\r
+    or.l @+er3,@(0x9abcdef0:32,r2.w)             ;01056d3cea409abcdef0\r
+    or.l @+er3,@(0x9abcdef0:32,er2.l)             ;01056d3cfa409abcdef0\r
+    or.l @+er3,@0xffff9abc:16                     ;01056d3c40409abc\r
+    or.l @+er3,@0x9abcdef0:32                     ;01056d3c48409abcdef0\r
+\r
+    or.l @(0x1234:16,er3),@er1                         ;01046f3c12340140\r
+    or.l @(0x1234:16,er3),@(0xc:2,er1)                   ;01046f3c12343140\r
+    or.l @(0x1234:16,er3),@-er1                        ;01046f3c1234b140\r
+    or.l @(0x1234:16,er3),@er1+                        ;01046f3c12348140\r
+    or.l @(0x1234:16,er3),@er1-                        ;01046f3c1234a140\r
+    or.l @(0x1234:16,er3),@+er1                        ;01046f3c12349140\r
+    or.l @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01046f3c1234c1409abc\r
+    or.l @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01046f3c1234c9409abcdef0\r
+    or.l @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01046f3c1234d2409abc\r
+    or.l @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01046f3c1234e2409abc\r
+    or.l @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01046f3c1234f2409abc\r
+    or.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01046f3c1234da409abcdef0\r
+    or.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01046f3c1234ea409abcdef0\r
+    or.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01046f3c1234fa409abcdef0\r
+    or.l @(0x1234:16,er3),@0xffff9abc:16               ;01046f3c123440409abc\r
+    or.l @(0x1234:16,er3),@0x9abcdef0:32               ;01046f3c123448409abcdef0\r
+\r
+    or.l @(0x12345678:32,er3),@er1                         ;78b46b2c123456780140\r
+    or.l @(0x12345678:32,er3),@(0xc:2,er1)                   ;78b46b2c123456783140\r
+    or.l @(0x12345678:32,er3),@-er1                        ;78b46b2c12345678b140\r
+    or.l @(0x12345678:32,er3),@er1+                        ;78b46b2c123456788140\r
+    or.l @(0x12345678:32,er3),@er1-                        ;78b46b2c12345678a140\r
+    or.l @(0x12345678:32,er3),@+er1                        ;78b46b2c123456789140\r
+    or.l @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78b46b2c12345678c1409abc\r
+    or.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78b46b2c12345678c9409abcdef0\r
+    or.l @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78b46b2c12345678d2409abc\r
+    or.l @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78b46b2c12345678e2409abc\r
+    or.l @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78b46b2c12345678f2409abc\r
+    or.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78b46b2c12345678da409abcdef0\r
+    or.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78b46b2c12345678ea409abcdef0\r
+    or.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78b46b2c12345678fa409abcdef0\r
+    or.l @(0x12345678:32,er3),@0xffff9abc:16               ;78b46b2c1234567840409abc\r
+    or.l @(0x12345678:32,er3),@0x9abcdef0:32               ;78b46b2c1234567848409abcdef0\r
+\r
+    or.l @(0x1234:16,r3l.b),@er1                       ;01056f3c12340140\r
+    or.l @(0x1234:16,r3l.b),@(0xc:2,er1)                 ;01056f3c12343140\r
+    or.l @(0x1234:16,r3l.b),@-er1                      ;01056f3c1234b140\r
+    or.l @(0x1234:16,r3l.b),@er1+                      ;01056f3c12348140\r
+    or.l @(0x1234:16,r3l.b),@er1-                      ;01056f3c1234a140\r
+    or.l @(0x1234:16,r3l.b),@+er1                      ;01056f3c12349140\r
+    or.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01056f3c1234c1409abc\r
+    or.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01056f3c1234c9409abcdef0\r
+    or.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01056f3c1234d2409abc\r
+    or.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01056f3c1234e2409abc\r
+    or.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01056f3c1234f2409abc\r
+    or.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01056f3c1234da409abcdef0\r
+    or.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01056f3c1234ea409abcdef0\r
+    or.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01056f3c1234fa409abcdef0\r
+    or.l @(0x1234:16,r3l.b),@0xffff9abc:16             ;01056f3c123440409abc\r
+    or.l @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01056f3c123448409abcdef0\r
+\r
+    or.l @(0x1234:16,r3.w),@er1                       ;01066f3c12340140\r
+    or.l @(0x1234:16,r3.w),@(0xc:2,er1)                 ;01066f3c12343140\r
+    or.l @(0x1234:16,r3.w),@-er1                      ;01066f3c1234b140\r
+    or.l @(0x1234:16,r3.w),@er1+                      ;01066f3c12348140\r
+    or.l @(0x1234:16,r3.w),@er1-                      ;01066f3c1234a140\r
+    or.l @(0x1234:16,r3.w),@+er1                      ;01066f3c12349140\r
+    or.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01066f3c1234c1409abc\r
+    or.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01066f3c1234c9409abcdef0\r
+    or.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01066f3c1234d2409abc\r
+    or.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01066f3c1234e2409abc\r
+    or.l @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01066f3c1234f2409abc\r
+    or.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01066f3c1234da409abcdef0\r
+    or.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01066f3c1234ea409abcdef0\r
+    or.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01066f3c1234fa409abcdef0\r
+    or.l @(0x1234:16,r3.w),@0xffff9abc:16             ;01066f3c123440409abc\r
+    or.l @(0x1234:16,r3.w),@0x9abcdef0:32             ;01066f3c123448409abcdef0\r
+\r
+    or.l @(0x1234:16,er3.l),@er1                       ;01076f3c12340140\r
+    or.l @(0x1234:16,er3.l),@(0xc:2,er1)                 ;01076f3c12343140\r
+    or.l @(0x1234:16,er3.l),@-er1                      ;01076f3c1234b140\r
+    or.l @(0x1234:16,er3.l),@er1+                      ;01076f3c12348140\r
+    or.l @(0x1234:16,er3.l),@er1-                      ;01076f3c1234a140\r
+    or.l @(0x1234:16,er3.l),@+er1                      ;01076f3c12349140\r
+    or.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01076f3c1234c1409abc\r
+    or.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01076f3c1234c9409abcdef0\r
+    or.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01076f3c1234d2409abc\r
+    or.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01076f3c1234e2409abc\r
+    or.l @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01076f3c1234f2409abc\r
+    or.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01076f3c1234da409abcdef0\r
+    or.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01076f3c1234ea409abcdef0\r
+    or.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01076f3c1234fa409abcdef0\r
+    or.l @(0x1234:16,er3.l),@0xffff9abc:16             ;01076f3c123440409abc\r
+    or.l @(0x1234:16,er3.l),@0x9abcdef0:32             ;01076f3c123448409abcdef0\r
+\r
+    or.l @(0x12345678:32,r3l.b),@er1                       ;78b56b2c123456780140\r
+    or.l @(0x12345678:32,r3l.b),@(0xc:2,er1)                 ;78b56b2c123456783140\r
+    or.l @(0x12345678:32,r3l.b),@-er1                      ;78b56b2c12345678b140\r
+    or.l @(0x12345678:32,r3l.b),@er1+                      ;78b56b2c123456788140\r
+    or.l @(0x12345678:32,r3l.b),@er1-                      ;78b56b2c12345678a140\r
+    or.l @(0x12345678:32,r3l.b),@+er1                      ;78b56b2c123456789140\r
+    or.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78b56b2c12345678c1409abc\r
+    or.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78b56b2c12345678c9409abcdef0\r
+    or.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78b56b2c12345678d2409abc\r
+    or.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78b56b2c12345678e2409abc\r
+    or.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78b56b2c12345678f2409abc\r
+    or.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78b56b2c12345678da409abcdef0\r
+    or.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78b56b2c12345678ea409abcdef0\r
+    or.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78b56b2c12345678fa409abcdef0\r
+    or.l @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78b56b2c1234567840409abc\r
+    or.l @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78b56b2c1234567848409abcdef0\r
+\r
+    or.l @(0x12345678:32,r3.w),@er1                       ;78b66b2c123456780140\r
+    or.l @(0x12345678:32,r3.w),@(0xc:2,er1)                 ;78b66b2c123456783140\r
+    or.l @(0x12345678:32,r3.w),@-er1                      ;78b66b2c12345678b140\r
+    or.l @(0x12345678:32,r3.w),@er1+                      ;78b66b2c123456788140\r
+    or.l @(0x12345678:32,r3.w),@er1-                      ;78b66b2c12345678a140\r
+    or.l @(0x12345678:32,r3.w),@+er1                      ;78b66b2c123456789140\r
+    or.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78b66b2c12345678c1409abc\r
+    or.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78b66b2c12345678c9409abcdef0\r
+    or.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78b66b2c12345678d2409abc\r
+    or.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78b66b2c12345678e2409abc\r
+    or.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78b66b2c12345678f2409abc\r
+    or.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78b66b2c12345678da409abcdef0\r
+    or.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78b66b2c12345678ea409abcdef0\r
+    or.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78b66b2c12345678fa409abcdef0\r
+    or.l @(0x12345678:32,r3.w),@0xffff9abc:16             ;78b66b2c1234567840409abc\r
+    or.l @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78b66b2c1234567848409abcdef0\r
+\r
+    or.l @(0x12345678:32,er3.l),@er1                       ;78b76b2c123456780140\r
+    or.l @(0x12345678:32,er3.l),@(0xc:2,er1)                 ;78b76b2c123456783140\r
+    or.l @(0x12345678:32,er3.l),@-er1                      ;78b76b2c12345678b140\r
+    or.l @(0x12345678:32,er3.l),@er1+                      ;78b76b2c123456788140\r
+    or.l @(0x12345678:32,er3.l),@er1-                      ;78b76b2c12345678a140\r
+    or.l @(0x12345678:32,er3.l),@+er1                      ;78b76b2c123456789140\r
+    or.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78b76b2c12345678c1409abc\r
+    or.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78b76b2c12345678c9409abcdef0\r
+    or.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78b76b2c12345678d2409abc\r
+    or.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78b76b2c12345678e2409abc\r
+    or.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78b76b2c12345678f2409abc\r
+    or.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78b76b2c12345678da409abcdef0\r
+    or.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78b76b2c12345678ea409abcdef0\r
+    or.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78b76b2c12345678fa409abcdef0\r
+    or.l @(0x12345678:32,er3.l),@0xffff9abc:16             ;78b76b2c1234567840409abc\r
+    or.l @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78b76b2c1234567848409abcdef0\r
+\r
+    or.l @0x1234:16,@er1                              ;01046b0c12340140\r
+    or.l @0x1234:16,@(0xc:2,er1)                        ;01046b0c12343140\r
+    or.l @0x1234:16,@-er1                             ;01046b0c1234b140\r
+    or.l @0x1234:16,@er1+                             ;01046b0c12348140\r
+    or.l @0x1234:16,@er1-                             ;01046b0c1234a140\r
+    or.l @0x1234:16,@+er1                             ;01046b0c12349140\r
+    or.l @0x1234:16,@(0xffff9abc:16,er1)              ;01046b0c1234c1409abc\r
+    or.l @0x1234:16,@(0x9abcdef0:32,er1)              ;01046b0c1234c9409abcdef0\r
+    or.l @0x1234:16,@(0xffff9abc:16,r2l.b)            ;01046b0c1234d2409abc\r
+    or.l @0x1234:16,@(0xffff9abc:16,r2.w)            ;01046b0c1234e2409abc\r
+    or.l @0x1234:16,@(0xffff9abc:16,er2.l)            ;01046b0c1234f2409abc\r
+    or.l @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;01046b0c1234da409abcdef0\r
+    or.l @0x1234:16,@(0x9abcdef0:32,r2.w)            ;01046b0c1234ea409abcdef0\r
+    or.l @0x1234:16,@(0x9abcdef0:32,er2.l)            ;01046b0c1234fa409abcdef0\r
+    or.l @0x1234:16,@0xffff9abc:16                    ;01046b0c123440409abc\r
+    or.l @0x1234:16,@0x9abcdef0:32                    ;01046b0c123448409abcdef0\r
+\r
+    or.l @0x12345678:32,@er1                              ;01046b2c123456780140\r
+    or.l @0x12345678:32,@(0xc:2,er1)                        ;01046b2c123456783140\r
+    or.l @0x12345678:32,@-er1                             ;01046b2c12345678b140\r
+    or.l @0x12345678:32,@er1+                             ;01046b2c123456788140\r
+    or.l @0x12345678:32,@er1-                             ;01046b2c12345678a140\r
+    or.l @0x12345678:32,@+er1                             ;01046b2c123456789140\r
+    or.l @0x12345678:32,@(0xffff9abc:16,er1)              ;01046b2c12345678c1409abc\r
+    or.l @0x12345678:32,@(0x9abcdef0:32,er1)              ;01046b2c12345678c9409abcdef0\r
+    or.l @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;01046b2c12345678d2409abc\r
+    or.l @0x12345678:32,@(0xffff9abc:16,r2.w)            ;01046b2c12345678e2409abc\r
+    or.l @0x12345678:32,@(0xffff9abc:16,er2.l)            ;01046b2c12345678f2409abc\r
+    or.l @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;01046b2c12345678da409abcdef0\r
+    or.l @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;01046b2c12345678ea409abcdef0\r
+    or.l @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;01046b2c12345678fa409abcdef0\r
+    or.l @0x12345678:32,@0xffff9abc:16                    ;01046b2c1234567840409abc\r
+    or.l @0x12345678:32,@0x9abcdef0:32                    ;01046b2c1234567848409abcdef0\r
+\r
+       .end\r
diff --git a/gas/testsuite/gas/h8300/t09_xor.exp b/gas/testsuite/gas/h8300/t09_xor.exp
new file mode 100644 (file)
index 0000000..21d38a6
--- /dev/null
@@ -0,0 +1,3002 @@
+#
+# Some h8300sx tests -- t09_xor
+#
+
+proc do_t09_xor_test {} {
+    set testname "t09_xor.s -- h8sx tests"
+
+    gas_start "t09_xor.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*   7 0000 D112" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8 0002 7D10D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9 0006 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9      D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10 000c 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10      D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11 0012 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11      D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12 0018 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12      D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13 001e 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13      D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14 0024 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14      1234D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15 002c 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 0036 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16      1234D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17 003e 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17      1234D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18 0046 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18      1234D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19 004e 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20 0058 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21 0062 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 006c 7F12D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23 0070 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23      D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24 0076 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24      5678D012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  25              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.b #0x12:8, ..."
+           } else {
+               fail "$testname: xor.b #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  26 007e 1531" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27              " {
+           if [expr $x == 1] then {
+               pass "$testname: xor.b r3h, r1h"
+           } else {
+               fail "$testname: xor.b r3h, r1h ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b r3h, r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  28 0080 7D101530" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29 0084 01793153" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30 0088 01798153" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31 008c 0179B153" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32 0090 01799153" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33 0094 0179A153" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34 0098 0179C153" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35 009e 0179C953" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 00a6 0179D253" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 00ac 0179E253" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38 00b2 0179F253" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39 00b8 0179DA53" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40 00c0 0179EA53" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41 00c8 0179FA53" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42 00d0 7F121530" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43 00d4 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43      1530" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44 00da 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44      56781530" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45              " {
+           if [expr $x == 27] then {
+               pass "$testname: xor.b r3h, ..."
+           } else {
+               fail "$testname: xor.b r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  46 00e2 7C301501" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47 00e6 017A3351" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48 00ea 017A8351" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49 00ee 017AB351" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50 00f2 017A9351" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51 00f6 017AA351" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52 00fa 017AC151" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53 0100 017AC951" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 0108 017AD251" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 010e 017AE251" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56 0114 017AF251" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57 011a 017ADA51" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58 0122 017AEA51" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59 012a 017AFA51" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60 0132 7E121501" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61 0136 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61      1501" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62 013c 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62      56781501" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63              " {
+           if [expr $x == 27] then {
+               pass "$testname: xor.b ..., r1h"
+           } else {
+               fail "$testname: xor.b ..., r1h ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b ..., r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  64 0144 7C350150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65 0148 7C353150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66 014c 7C35B150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67 0150 7C358150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68 0154 7C35A150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 0158 7C359150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70 015c 7C35C150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71 0162 7C35C950" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72 016a 7C35D250" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73 0170 7C35E250" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74 0176 7C35F250" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75 017c 7C35DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76 0184 7C35EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77 018c 7C35FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78 0194 7C354050" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79 019a 7C354850" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80              " {
+           if [expr $x == 26] then {
+               pass "$testname: xor.b @er3, ..."
+           } else {
+               fail "$testname: xor.b @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  81 01a2 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82 01a8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83 01ae 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84 01b4 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85 01ba 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86 01c0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87 01c6 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88 01ce 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89 01d8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90 01e0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91 01e8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92 01f0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 01fa 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94 0204 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95 020e 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96 0216 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.b @-er3, ..."
+           } else {
+               fail "$testname: xor.b @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  98 0220 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99 0226 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100 022c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101 0232 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102 0238 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103 023e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104 0244 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105 024c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106 0256 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107 025e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108 0266 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109 026e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110 0278 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111 0282 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112 028c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113 0294 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.b @er3+, ..."
+           } else {
+               fail "$testname: xor.b @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 115 029e 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116 02a4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117 02aa 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118 02b0 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119 02b6 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120 02bc 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121 02c2 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122 02ca 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123 02d4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124 02dc 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125 02e4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126 02ec 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127 02f6 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128 0300 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129 030a 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130 0312 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.b @er3-, ..."
+           } else {
+               fail "$testname: xor.b @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 132 031c 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133 0322 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134 0328 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135 032e 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136 0334 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137 033a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138 0340 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139 0348 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140 0352 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141 035a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142 0362 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143 036a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144 0374 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145 037e 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146 0388 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147 0390 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.b @+er3, ..."
+           } else {
+               fail "$testname: xor.b @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 149 039a 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150 03a2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151 03aa 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152 03b2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153 03ba 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154 03c2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155 03ca 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156 03d4 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157 03e0 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158 03ea 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159 03f4 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160 03fe 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161 040a 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162 0416 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163 0422 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164 042c 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.b @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: xor.b @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 166 0438 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167 0442 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168 044c 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169 0456 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170 0460 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171 046a 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172 0474 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173 0480 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174 048e 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175 049a 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176 04a6 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177 04b2 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178 04c0 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179 04ce 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180 04dc 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181 04e8 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.b @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: xor.b @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 183 04f6 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184 04fe 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185 0506 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186 050e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187 0516 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188 051e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189 0526 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190 0530 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191 053c 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192 0546 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193 0550 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194 055a 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195 0566 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196 0572 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197 057e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198 0588 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.b @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: xor.b @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 200 0594 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201 059c 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202 05a4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203 05ac 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204 05b4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205 05bc 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206 05c4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207 05ce 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208 05da 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209 05e4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210 05ee 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211 05f8 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212 0604 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213 0610 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214 061c 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215 0626 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.b @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: xor.b @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 217 0632 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218 063a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219 0642 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220 064a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221 0652 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222 065a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223 0662 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224 066c 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225 0678 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226 0682 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227 068c 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228 0696 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229 06a2 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230 06ae 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231 06ba 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232 06c4 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.b @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: xor.b @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 234 06d0 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235 06da 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236 06e4 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237 06ee 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238 06f8 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239 0702 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240 070c 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241 0718 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242 0726 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243 0732 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244 073e 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245 074a 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246 0758 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247 0766 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248 0774 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249 0780 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 250              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.b @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: xor.b @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 251 078e 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252 0798 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253 07a2 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254 07ac 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255 07b6 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256 07c0 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257 07ca 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258 07d6 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259 07e4 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260 07f0 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261 07fc 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262 0808 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263 0816 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264 0824 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265 0832 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266 083e 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 267              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.b @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: xor.b @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 268 084c 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269 0856 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270 0860 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271 086a 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272 0874 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273 087e 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274 0888 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275 0894 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276 08a2 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277 08ae 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278 08ba 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279 08c6 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280 08d4 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281 08e2 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282 08f0 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283 08fc 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 284              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.b @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: xor.b @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 285 090a 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 285      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286 0910 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287 0916 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288 091c 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289 0922 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290 0928 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291 092e 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292 0936 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293 0940 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294 0948 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295 0950 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296 0958 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297 0962 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298 096c 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299 0976 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300 097e 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 301              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.b @0x1234:16, ..."
+           } else {
+               fail "$testname: xor.b @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 302 0988 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 302      56780150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303 0990 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303      56783150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304 0998 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304      5678B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305 09a0 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305      56788150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306 09a8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306      5678A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307 09b0 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307      56789150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308 09b8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308      5678C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309 09c2 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309      5678C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310 09ce 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      5678D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311 09d8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      5678E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312 09e2 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      5678F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313 09ec 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      5678DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314 09f8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      5678EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315 0a04 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      5678FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316 0a10 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      56784050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317 0a1a 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317      56784850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 318              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.b @0x12345678:32, ..."
+           } else {
+               fail "$testname: xor.b @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.b @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 319 0a26 79511234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320 0a2a 015E0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321 0a30 015E3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322 0a36 015E8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323 0a3c 015EB150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324 0a42 015E9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325 0a48 015EA150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326 0a4e 015EC150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327 0a56 015EC950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328 0a60 015ED250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329 0a68 015EE250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330 0a70 015EF250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331 0a78 015EDA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332 0a82 015EEA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333 0a8c 015EFA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334 0a96 015E4050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335 0a9e 015E4850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 336              " {
+           if [expr $x == 38] then {
+               pass "$testname: xor.w #0x1234:16, ..."
+           } else {
+               fail "$testname: xor.w #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 337 0aa8 6531" { set x [expr $x+1]; exp_continue; }
+       -re ".* 338              " {
+           if [expr $x == 1] then {
+               pass "$testname: xor.w r3, r1"
+           } else {
+               fail "$testname: xor.w r3, r1 ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w r3, r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 339 0aaa 7D906530" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340 0aae 01593153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 341 0ab2 0159B153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 342 0ab6 01598153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 343 0aba 0159A153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 344 0abe 01599153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345 0ac2 0159C153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346 0ac8 0159C953" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347 0ad0 0159D253" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348 0ad6 0159E253" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349 0adc 0159F253" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350 0ae2 0159DA53" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351 0aea 0159EA53" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352 0af2 0159FA53" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353 0afa 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353      6530" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354 0b00 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354      56786530" { set x [expr $x+1]; exp_continue; }
+       -re ".* 355              " {
+           if [expr $x == 26] then {
+               pass "$testname: xor.w r3, ..."
+           } else {
+               fail "$testname: xor.w r3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w r3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 356 0b08 7CB06501" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357 0b0c 015A3351" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358 0b10 015A8351" { set x [expr $x+1]; exp_continue; }
+       -re ".* 359 0b14 015AB351" { set x [expr $x+1]; exp_continue; }
+       -re ".* 360 0b18 015A9351" { set x [expr $x+1]; exp_continue; }
+       -re ".* 361 0b1c 015AA351" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362 0b20 015AC151" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 363 0b26 015AC951" { set x [expr $x+1]; exp_continue; }
+       -re ".* 363      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364 0b2e 015AD251" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365 0b34 015AE251" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366 0b3a 015AF251" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367 0b40 015ADA51" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368 0b48 015AEA51" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369 0b50 015AFA51" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370 0b58 6B101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370      6501" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371 0b5e 6B301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371      56786501" { set x [expr $x+1]; exp_continue; }
+       -re ".* 372              " {
+           if [expr $x == 26] then {
+               pass "$testname: xor.w ..., r1"
+           } else {
+               fail "$testname: xor.w ..., r1 ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w ..., r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 373 0b66 7CB50150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 374 0b6a 7CB53150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 375 0b6e 7CB5B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 376 0b72 7CB58150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 377 0b76 7CB5A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 378 0b7a 7CB59150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379 0b7e 7CB5C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 380 0b84 7CB5C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 380      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 381 0b8c 7CB5D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 381      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382 0b92 7CB5E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383 0b98 7CB5F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384 0b9e 7CB5DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385 0ba6 7CB5EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386 0bae 7CB5FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387 0bb6 7CB54050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388 0bbc 7CB54850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389              " {
+           if [expr $x == 26] then {
+               pass "$testname: xor.w @er3, ..."
+           } else {
+               fail "$testname: xor.w @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 390 0bc4 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391 0bca 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392 0bd0 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393 0bd6 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394 0bdc 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395 0be2 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396 0be8 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397 0bf0 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398 0bfa 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399 0c02 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400 0c0a 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401 0c12 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402 0c1c 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403 0c26 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404 0c30 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405 0c38 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.w @-er3, ..."
+           } else {
+               fail "$testname: xor.w @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 407 0c42 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408 0c48 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409 0c4e 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410 0c54 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411 0c5a 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412 0c60 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413 0c66 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414 0c6e 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415 0c78 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416 0c80 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417 0c88 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418 0c90 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419 0c9a 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420 0ca4 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421 0cae 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422 0cb6 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.w @er3+, ..."
+           } else {
+               fail "$testname: xor.w @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 424 0cc0 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425 0cc6 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426 0ccc 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427 0cd2 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428 0cd8 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429 0cde 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430 0ce4 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431 0cec 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432 0cf6 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433 0cfe 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434 0d06 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435 0d0e 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436 0d18 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437 0d22 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438 0d2c 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439 0d34 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.w @er3-, ..."
+           } else {
+               fail "$testname: xor.w @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 441 0d3e 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442 0d44 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443 0d4a 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444 0d50 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 445 0d56 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 445      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446 0d5c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447 0d62 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448 0d6a 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449 0d74 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450 0d7c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451 0d84 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452 0d8c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453 0d96 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454 0da0 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455 0daa 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456 0db2 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.w @+er3, ..."
+           } else {
+               fail "$testname: xor.w @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 458 0dbc 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459 0dc4 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460 0dcc 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461 0dd4 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462 0ddc 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463 0de4 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464 0dec 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465 0df6 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466 0e02 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467 0e0c 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468 0e16 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469 0e20 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470 0e2c 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471 0e38 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472 0e44 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473 0e4e 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.w @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: xor.w @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 475 0e5a 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476 0e64 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477 0e6e 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478 0e78 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479 0e82 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480 0e8c 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481 0e96 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482 0ea2 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483 0eb0 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484 0ebc 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485 0ec8 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486 0ed4 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487 0ee2 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488 0ef0 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489 0efe 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490 0f0a 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.w @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: xor.w @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 492 0f18 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493 0f20 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494 0f28 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495 0f30 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496 0f38 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497 0f40 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498 0f48 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499 0f52 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500 0f5e 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501 0f68 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502 0f72 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503 0f7c 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504 0f88 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505 0f94 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506 0fa0 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507 0faa 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.w @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: xor.w @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 509 0fb6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510 0fbe 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511 0fc6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512 0fce 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513 0fd6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514 0fde 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515 0fe6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516 0ff0 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517 0ffc 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518 1006 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519 1010 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520 101a 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521 1026 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522 1032 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523 103e 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524 1048 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.w @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: xor.w @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 526 1054 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527 105c 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528 1064 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529 106c 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530 1074 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531 107c 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532 1084 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533 108e 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534 109a 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535 10a4 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536 10ae 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537 10b8 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538 10c4 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539 10d0 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540 10dc 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541 10e6 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.w @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: xor.w @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 543 10f2 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544 10fc 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545 1106 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546 1110 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547 111a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548 1124 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549 112e 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550 113a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551 1148 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552 1154 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553 1160 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554 116c 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555 117a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556 1188 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557 1196 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558 11a2 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.w @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: xor.w @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 560 11b0 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561 11ba 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562 11c4 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563 11ce 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564 11d8 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565 11e2 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566 11ec 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567 11f8 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568 1206 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569 1212 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570 121e 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571 122a 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572 1238 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573 1246 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574 1254 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575 1260 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.w @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: xor.w @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 577 126e 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578 1278 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579 1282 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580 128c 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581 1296 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582 12a0 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583 12aa 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584 12b6 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585 12c4 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586 12d0 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587 12dc 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588 12e8 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589 12f6 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590 1304 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591 1312 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592 131e 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.w @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: xor.w @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 594 132c 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595 1332 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596 1338 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597 133e 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598 1344 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599 134a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600 1350 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601 1358 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602 1362 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603 136a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604 1372 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605 137a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606 1384 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607 138e 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608 1398 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609 13a0 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.w @0x1234:16, ..."
+           } else {
+               fail "$testname: xor.w @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 611 13aa 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611      56780150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612 13b2 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612      56783150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613 13ba 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613      5678B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614 13c2 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614      56788150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 615 13ca 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 615      5678A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616 13d2 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616      56789150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617 13da 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617      5678C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618 13e4 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618      5678C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619 13f0 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619      5678D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620 13fa 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620      5678E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621 1404 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      5678F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622 140e 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      5678DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623 141a 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      5678EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624 1426 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      5678FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625 1432 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      56784050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626 143c 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      56784850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.w @0x12345678:32, ..."
+           } else {
+               fail "$testname: xor.w @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.w @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 628 1448 7A511234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629 144e 7A591234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630 1452 010E0158" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631 145a 010E3158" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 632 1462 010E8158" { set x [expr $x+1]; exp_continue; }
+       -re ".* 632      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633 146a 010EB158" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634 1472 010E9158" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635 147a 010EA158" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636 1482 010EC158" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637 148c 010EC958" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638 1498 010ED258" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639 14a2 010EE258" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640 14ac 010EF258" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641 14b6 010EDA58" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642 14c2 010EEA58" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643 14ce 010EFA58" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644 14da 010E4058" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645 14e4 010E4858" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646 14f0 010E0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647 14f6 010E3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648 14fc 010E8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649 1502 010EB150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650 1508 010E9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651 150e 010EA150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652 1514 010EC150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653 151c 010EC950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654 1526 010ED250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655 152e 010EE250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656 1536 010EF250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657 153e 010EDA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658 1548 010EEA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659 1552 010EFA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660 155c 010E4050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661 1564 010E4850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662              " {
+           if [expr $x == 82] then {
+               pass "$testname: xor.l #0x1234:16, ..."
+           } else {
+               fail "$testname: xor.l #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 663 156e 01F06531" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664              " {
+           if [expr $x == 1] then {
+               pass "$testname: xor.l er3, er1"
+           } else {
+               fail "$testname: xor.l er3, er1 ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l er3, er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 665 1572 01090153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666 1576 01093153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667 157a 01098153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 668 157e 0109B153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 669 1582 01099153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 670 1586 0109A153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671 158a 0109C153" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672 1590 0109C953" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673 1598 0109D253" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674 159e 0109E253" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675 15a4 0109F253" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676 15aa 0109DA53" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677 15b2 0109EA53" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678 15ba 0109FA53" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679 15c2 01094053" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680 15c8 01094853" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 681              " {
+           if [expr $x == 26] then {
+               pass "$testname: xor.l er3, ..."
+           } else {
+               fail "$testname: xor.l er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 682 15d0 010A0351" { set x [expr $x+1]; exp_continue; }
+       -re ".* 683 15d4 010A3351" { set x [expr $x+1]; exp_continue; }
+       -re ".* 684 15d8 010A8351" { set x [expr $x+1]; exp_continue; }
+       -re ".* 685 15dc 010AB351" { set x [expr $x+1]; exp_continue; }
+       -re ".* 686 15e0 010A9351" { set x [expr $x+1]; exp_continue; }
+       -re ".* 687 15e4 010AA351" { set x [expr $x+1]; exp_continue; }
+       -re ".* 688 15e8 010AC151" { set x [expr $x+1]; exp_continue; }
+       -re ".* 688      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689 15ee 010AC951" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690 15f6 010AD251" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691 15fc 010AE251" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692 1602 010AF251" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693 1608 010ADA51" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694 1610 010AEA51" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695 1618 010AFA51" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696 1620 010A4051" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697 1626 010A4851" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698              " {
+           if [expr $x == 26] then {
+               pass "$testname: xor.l ..., er1"
+           } else {
+               fail "$testname: xor.l ..., er1 ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l ..., er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 699 162e 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 699      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700 1634 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701 163a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702 1640 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703 1646 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704 164c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705 1652 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706 165a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707 1664 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708 166c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709 1674 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710 167c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711 1686 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712 1690 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713 169a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714 16a2 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.l @er3, ..."
+           } else {
+               fail "$testname: xor.l @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 716 16ac 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717 16b2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718 16b8 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719 16be 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720 16c4 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721 16ca 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722 16d0 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723 16d8 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724 16e2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725 16ea 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726 16f2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727 16fa 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728 1704 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729 170e 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730 1718 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731 1720 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.l @(0xc:2,er3), ..."
+           } else {
+               fail "$testname: xor.l @(0xc:2,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @(0xc:2,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 733 172a 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734 1730 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735 1736 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736 173c 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737 1742 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738 1748 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739 174e 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740 1756 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741 1760 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742 1768 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743 1770 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744 1778 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745 1782 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746 178c 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747 1796 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748 179e 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.l @-er3, ..."
+           } else {
+               fail "$testname: xor.l @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 750 17a8 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751 17ae 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752 17b4 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753 17ba 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754 17c0 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 755 17c6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 755      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756 17cc 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757 17d4 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758 17de 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759 17e6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760 17ee 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761 17f6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762 1800 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763 180a 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764 1814 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765 181c 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.l @er3+, ..."
+           } else {
+               fail "$testname: xor.l @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 767 1826 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768 182c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769 1832 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770 1838 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771 183e 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772 1844 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773 184a 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774 1852 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775 185c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776 1864 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777 186c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778 1874 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779 187e 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780 1888 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781 1892 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782 189a 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.l @er3-, ..."
+           } else {
+               fail "$testname: xor.l @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 784 18a4 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785 18aa 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786 18b0 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787 18b6 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788 18bc 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789 18c2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790 18c8 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791 18d0 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792 18da 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793 18e2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794 18ea 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795 18f2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796 18fc 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797 1906 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798 1910 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799 1918 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800              " {
+           if [expr $x == 37] then {
+               pass "$testname: xor.l @+er3, ..."
+           } else {
+               fail "$testname: xor.l @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 801 1922 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802 192a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803 1932 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804 193a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805 1942 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806 194a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807 1952 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808 195c 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809 1968 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810 1972 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811 197c 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812 1986 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813 1992 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814 199e 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815 19aa 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816 19b4 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.l @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: xor.l @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 818 19c0 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819 19ca 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820 19d4 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821 19de 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822 19e8 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823 19f2 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824 19fc 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825 1a08 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826 1a16 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827 1a22 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828 1a2e 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829 1a3a 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830 1a48 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831 1a56 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832 1a64 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833 1a70 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.l @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: xor.l @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 835 1a7e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836 1a86 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837 1a8e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838 1a96 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839 1a9e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840 1aa6 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841 1aae 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842 1ab8 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843 1ac4 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844 1ace 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845 1ad8 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846 1ae2 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847 1aee 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848 1afa 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849 1b06 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850 1b10 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.l @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: xor.l @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 852 1b1c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853 1b24 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854 1b2c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855 1b34 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856 1b3c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857 1b44 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858 1b4c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859 1b56 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860 1b62 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861 1b6c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862 1b76 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863 1b80 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864 1b8c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865 1b98 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866 1ba4 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867 1bae 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.l @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: xor.l @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 869 1bba 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870 1bc2 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871 1bca 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872 1bd2 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873 1bda 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874 1be2 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875 1bea 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876 1bf4 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877 1c00 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878 1c0a 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879 1c14 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880 1c1e 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881 1c2a 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882 1c36 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883 1c42 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884 1c4c 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.l @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: xor.l @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 886 1c58 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887 1c62 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888 1c6c 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889 1c76 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890 1c80 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891 1c8a 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892 1c94 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893 1ca0 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894 1cae 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895 1cba 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896 1cc6 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897 1cd2 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898 1ce0 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899 1cee 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900 1cfc 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901 1d08 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.l @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: xor.l @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 903 1d16 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904 1d20 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905 1d2a 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906 1d34 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907 1d3e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908 1d48 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909 1d52 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910 1d5e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911 1d6c 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912 1d78 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913 1d84 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914 1d90 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915 1d9e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916 1dac 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917 1dba 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918 1dc6 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.l @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: xor.l @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 920 1dd4 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921 1dde 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922 1de8 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923 1df2 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924 1dfc 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925 1e06 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926 1e10 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927 1e1c 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928 1e2a 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929 1e36 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930 1e42 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931 1e4e 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932 1e5c 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933 1e6a 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934 1e78 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935 1e84 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.l @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: xor.l @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 937 1e92 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937      12340150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938 1e9a 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938      12343150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939 1ea2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939      1234B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940 1eaa 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940      12348150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941 1eb2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941      1234A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942 1eba 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942      12349150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943 1ec2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943      1234C150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944 1ecc 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944      1234C950" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945 1ed8 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945      1234D250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946 1ee2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946      1234E250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947 1eec 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947      1234F250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948 1ef6 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948      1234DA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949 1f02 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949      1234EA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950 1f0e 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      1234FA50" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951 1f1a 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      12344050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952 1f24 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      12344850" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953              " {
+           if [expr $x == 42] then {
+               pass "$testname: xor.l @0x1234:16, ..."
+           } else {
+               fail "$testname: xor.l @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @0x1234:16, ... ($x)" }
+    }
+    # FIXME return early, expect bombs out on the next group.
+    return;
+    set x 0
+    expect {
+       -re ".* 954 1f30 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      0150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955 1f3a 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955      3150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956 1f44 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956      B150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957 1f4e 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957      8150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958 1f58 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958      A150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959 1f62 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959      9150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960 1f6c 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960      C1509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961 1f78 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      C9509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962 1f86 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962      D2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963 1f92 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963      E2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964 1f9e 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      F2509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965 1faa 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      DA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966 1fb8 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      EA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967 1fc6 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      FA509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968 1fd4 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      40509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969 1fe0 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      48509ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970              " {
+           if [expr $x == 53] then {
+               pass "$testname: xor.l @0x12345678:32, ..."
+           } else {
+               fail "$testname: xor.l @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xor.l @0x12345678:32, ... ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t09_xor_test
+}
+
diff --git a/gas/testsuite/gas/h8300/t09_xor.s b/gas/testsuite/gas/h8300/t09_xor.s
new file mode 100644 (file)
index 0000000..ae0bd3c
--- /dev/null
@@ -0,0 +1,971 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;log_1\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+_start:\r
+    xor.b #0x12:8,r1h           ;d112\r
+    xor.b #0x12:8,@er1          ;7d10d012\r
+    xor.b #0x12:8,@(0x3:2,er1)    ;01776818d012\r
+    xor.b #0x12:8,@er1+         ;01746c18d012\r
+    xor.b #0x12:8,@-er1         ;01776c18d012\r
+    xor.b #0x12:8,@+er1         ;01756c18d012\r
+    xor.b #0x12:8,@er1-         ;01766c18d012\r
+    xor.b #0x12:8,@(0x1234:16,er1)   ;01746e181234d012\r
+    xor.b #0x12:8,@(0x12345678:32,er1)   ;78146a2812345678d012\r
+    xor.b #0x12:8,@(0x1234:16,r2l.b) ;01756e281234d012\r
+    xor.b #0x12:8,@(0x1234:16,r2.w) ;01766e281234d012\r
+    xor.b #0x12:8,@(0x1234:16,er2.l) ;01776e281234d012\r
+    xor.b #0x12:8,@(0x12345678:32,r2l.b) ;78256a2812345678d012\r
+    xor.b #0x12:8,@(0x12345678:32,r2.w) ;78266a2812345678d012\r
+    xor.b #0x12:8,@(0x12345678:32,er2.l) ;78276a2812345678d012\r
+    xor.b #0x12:8,@0xffffff12:8         ;7f12d012\r
+    xor.b #0x12:8,@0x1234:16        ;6a181234d012\r
+    xor.b #0x12:8,@0x12345678:32        ;6a3812345678d012\r
+\r
+    xor.b r3h,r1h              ;1531\r
+\r
+    xor.b r3h,@er1            ;7d101530\r
+    xor.b r3h,@(0x3:2,er1)      ;01793153\r
+    xor.b r3h,@er1+           ;01798153\r
+    xor.b r3h,@-er1           ;0179b153\r
+    xor.b r3h,@+er1           ;01799153\r
+    xor.b r3h,@er1-           ;0179a153\r
+    xor.b r3h,@(0x1234:16,er1)     ;0179c1531234\r
+    xor.b r3h,@(0x12345678:32,er1)     ;0179c95312345678\r
+    xor.b r3h,@(0x1234:16,r2l.b)   ;0179d2531234\r
+    xor.b r3h,@(0x1234:16,r2.w)   ;0179e2531234\r
+    xor.b r3h,@(0x1234:16,er2.l)   ;0179f2531234\r
+    xor.b r3h,@(0x12345678:32,r2l.b)   ;0179da5312345678\r
+    xor.b r3h,@(0x12345678:32,r2.w)   ;0179ea5312345678\r
+    xor.b r3h,@(0x12345678:32,er2.l)   ;0179fa5312345678\r
+    xor.b r3h,@0xffffff12:8           ;7f121530\r
+    xor.b r3h,@0x1234:16          ;6a1812341530\r
+    xor.b r3h,@0x12345678:32           ;6a38123456781530\r
+\r
+    xor.b @er3,r1h            ;7c301501\r
+    xor.b @(0x3:2,er3),r1h     ;017a3351\r
+    xor.b @er3+,r1h          ;017a8351\r
+    xor.b @-er3,r1h          ;017ab351\r
+    xor.b @+er3,r1h          ;017a9351\r
+    xor.b @er3-,r1h          ;017aa351\r
+    xor.b @(0x1234:16,er1),r1h     ;017ac1511234\r
+    xor.b @(0x12345678:32,er1),r1h     ;017ac95112345678\r
+    xor.b @(0x1234:16,r2l.b),r1h   ;017ad2511234\r
+    xor.b @(0x1234:16,r2.w),r1h   ;017ae2511234\r
+    xor.b @(0x1234:16,er2.l),r1h   ;017af2511234\r
+    xor.b @(0x12345678:32,r2l.b),r1h   ;017ada5112345678\r
+    xor.b @(0x12345678:32,r2.w),r1h   ;017aea5112345678\r
+    xor.b @(0x12345678:32,er2.l),r1h   ;017afa5112345678\r
+    xor.b @0xffffff12:8,r1h           ;7e121501\r
+    xor.b @0x1234:16,r1h          ;6a1012341501\r
+    xor.b @0x12345678:32,r1h          ;6a30123456781501\r
+\r
+    xor.b @er3,@er1                                ;7c350150\r
+    xor.b @er3,@(3:2,er1)                          ;7c353150\r
+    xor.b @er3,@-er1                               ;7c35b150\r
+    xor.b @er3,@er1+                               ;7c358150\r
+    xor.b @er3,@er1-                               ;7c35a150\r
+    xor.b @er3,@+er1                               ;7c359150\r
+    xor.b @er3,@(0xffff9abc:16,er1)                ;7c35c1509abc\r
+    xor.b @er3,@(0x9abcdef0:32,er1)                ;7c35c9509abcdef0\r
+    xor.b @er3,@(0xffff9abc:16,r2l.b)              ;7c35d2509abc\r
+    xor.b @er3,@(0xffff9abc:16,r2.w)              ;7c35e2509abc\r
+    xor.b @er3,@(0xffff9abc:16,er2.l)              ;7c35f2509abc\r
+    xor.b @er3,@(0x9abcdef0:32,r2l.b)              ;7c35da509abcdef0\r
+    xor.b @er3,@(0x9abcdef0:32,r2.w)              ;7c35ea509abcdef0\r
+    xor.b @er3,@(0x9abcdef0:32,er2.l)              ;7c35fa509abcdef0\r
+    xor.b @er3,@0xffff9abc:16                      ;7c3540509abc\r
+    xor.b @er3,@0x9abcdef0:32                      ;7c3548509abcdef0\r
+\r
+    xor.b @-er3,@er1                               ;01776c3c0150\r
+    xor.b @-er3,@(3:2,er1)                         ;01776c3c3150\r
+    xor.b @-er3,@-er1                              ;01776c3cb150\r
+    xor.b @-er3,@er1+                              ;01776c3c8150\r
+    xor.b @-er3,@er1-                              ;01776c3ca150\r
+    xor.b @-er3,@+er1                              ;01776c3c9150\r
+    xor.b @-er3,@(0xffff9abc:16,er1)               ;01776c3cc1509abc\r
+    xor.b @-er3,@(0x9abcdef0:32,er1)               ;01776c3cc9509abcdef0\r
+    xor.b @-er3,@(0xffff9abc:16,r2l.b)             ;01776c3cd2509abc\r
+    xor.b @-er3,@(0xffff9abc:16,r2.w)             ;01776c3ce2509abc\r
+    xor.b @-er3,@(0xffff9abc:16,er2.l)             ;01776c3cf2509abc\r
+    xor.b @-er3,@(0x9abcdef0:32,r2l.b)             ;01776c3cda509abcdef0\r
+    xor.b @-er3,@(0x9abcdef0:32,r2.w)             ;01776c3cea509abcdef0\r
+    xor.b @-er3,@(0x9abcdef0:32,er2.l)             ;01776c3cfa509abcdef0\r
+    xor.b @-er3,@0xffff9abc:16                     ;01776c3c40509abc\r
+    xor.b @-er3,@0x9abcdef0:32                     ;01776c3c48509abcdef0\r
+\r
+    xor.b @er3+,@er1                               ;01746c3c0150\r
+    xor.b @er3+,@(3:2,er1)                         ;01746c3c3150\r
+    xor.b @er3+,@-er1                              ;01746c3cb150\r
+    xor.b @er3+,@er1+                              ;01746c3c8150\r
+    xor.b @er3+,@er1-                              ;01746c3ca150\r
+    xor.b @er3+,@+er1                              ;01746c3c9150\r
+    xor.b @er3+,@(0xffff9abc:16,er1)               ;01746c3cc1509abc\r
+    xor.b @er3+,@(0x9abcdef0:32,er1)               ;01746c3cc9509abcdef0\r
+    xor.b @er3+,@(0xffff9abc:16,r2l.b)             ;01746c3cd2509abc\r
+    xor.b @er3+,@(0xffff9abc:16,r2.w)             ;01746c3ce2509abc\r
+    xor.b @er3+,@(0xffff9abc:16,er2.l)             ;01746c3cf2509abc\r
+    xor.b @er3+,@(0x9abcdef0:32,r2l.b)             ;01746c3cda509abcdef0\r
+    xor.b @er3+,@(0x9abcdef0:32,r2.w)             ;01746c3cea509abcdef0\r
+    xor.b @er3+,@(0x9abcdef0:32,er2.l)             ;01746c3cfa509abcdef0\r
+    xor.b @er3+,@0xffff9abc:16                     ;01746c3c40509abc\r
+    xor.b @er3+,@0x9abcdef0:32                     ;01746c3c48509abcdef0\r
+\r
+    xor.b @er3-,@er1                               ;01766c3c0150\r
+    xor.b @er3-,@(3:2,er1)                         ;01766c3c3150\r
+    xor.b @er3-,@-er1                              ;01766c3cb150\r
+    xor.b @er3-,@er1+                              ;01766c3c8150\r
+    xor.b @er3-,@er1-                              ;01766c3ca150\r
+    xor.b @er3-,@+er1                              ;01766c3c9150\r
+    xor.b @er3-,@(0xffff9abc:16,er1)               ;01766c3cc1509abc\r
+    xor.b @er3-,@(0x9abcdef0:32,er1)               ;01766c3cc9509abcdef0\r
+    xor.b @er3-,@(0xffff9abc:16,r2l.b)             ;01766c3cd2509abc\r
+    xor.b @er3-,@(0xffff9abc:16,r2.w)             ;01766c3ce2509abc\r
+    xor.b @er3-,@(0xffff9abc:16,er2.l)             ;01766c3cf2509abc\r
+    xor.b @er3-,@(0x9abcdef0:32,r2l.b)             ;01766c3cda509abcdef0\r
+    xor.b @er3-,@(0x9abcdef0:32,r2.w)             ;01766c3cea509abcdef0\r
+    xor.b @er3-,@(0x9abcdef0:32,er2.l)             ;01766c3cfa509abcdef0\r
+    xor.b @er3-,@0xffff9abc:16                     ;01766c3c40509abc\r
+    xor.b @er3-,@0x9abcdef0:32                     ;01766c3c48509abcdef0\r
+\r
+    xor.b @+er3,@er1                               ;01756c3c0150\r
+    xor.b @+er3,@(3:2,er1)                         ;01756c3c3150\r
+    xor.b @+er3,@-er1                              ;01756c3cb150\r
+    xor.b @+er3,@er1+                              ;01756c3c8150\r
+    xor.b @+er3,@er1-                              ;01756c3ca150\r
+    xor.b @+er3,@+er1                              ;01756c3c9150\r
+    xor.b @+er3,@(0xffff9abc:16,er1)               ;01756c3cc1509abc\r
+    xor.b @+er3,@(0x9abcdef0:32,er1)               ;01756c3cc9509abcdef0\r
+    xor.b @+er3,@(0xffff9abc:16,r2l.b)             ;01756c3cd2509abc\r
+    xor.b @+er3,@(0xffff9abc:16,r2.w)             ;01756c3ce2509abc\r
+    xor.b @+er3,@(0xffff9abc:16,er2.l)             ;01756c3cf2509abc\r
+    xor.b @+er3,@(0x9abcdef0:32,r2l.b)             ;01756c3cda509abcdef0\r
+    xor.b @+er3,@(0x9abcdef0:32,r2.w)             ;01756c3cea509abcdef0\r
+    xor.b @+er3,@(0x9abcdef0:32,er2.l)             ;01756c3cfa509abcdef0\r
+    xor.b @+er3,@0xffff9abc:16                     ;01756c3c40509abc\r
+    xor.b @+er3,@0x9abcdef0:32                     ;01756c3c48509abcdef0\r
+\r
+    xor.b @(0x1234:16,er3),@er1                         ;01746e3c12340150\r
+    xor.b @(0x1234:16,er3),@(3:2,er1)                   ;01746e3c12343150\r
+    xor.b @(0x1234:16,er3),@-er1                        ;01746e3c1234b150\r
+    xor.b @(0x1234:16,er3),@er1+                        ;01746e3c12348150\r
+    xor.b @(0x1234:16,er3),@er1-                        ;01746e3c1234a150\r
+    xor.b @(0x1234:16,er3),@+er1                        ;01746e3c12349150\r
+    xor.b @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01746e3c1234c1509abc\r
+    xor.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01746e3c1234c9509abcdef0\r
+    xor.b @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01746e3c1234d2509abc\r
+    xor.b @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01746e3c1234e2509abc\r
+    xor.b @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01746e3c1234f2509abc\r
+    xor.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01746e3c1234da509abcdef0\r
+    xor.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01746e3c1234ea509abcdef0\r
+    xor.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01746e3c1234fa509abcdef0\r
+    xor.b @(0x1234:16,er3),@0xffff9abc:16               ;01746e3c123440509abc\r
+    xor.b @(0x1234:16,er3),@0x9abcdef0:32               ;01746e3c123448509abcdef0\r
+\r
+    xor.b @(0x12345678:32,er3),@er1                         ;78346a2c123456780150\r
+    xor.b @(0x12345678:32,er3),@(3:2,er1)                   ;78346a2c123456783150\r
+    xor.b @(0x12345678:32,er3),@-er1                        ;78346a2c12345678b150\r
+    xor.b @(0x12345678:32,er3),@er1+                        ;78346a2c123456788150\r
+    xor.b @(0x12345678:32,er3),@er1-                        ;78346a2c12345678a150\r
+    xor.b @(0x12345678:32,er3),@+er1                        ;78346a2c123456789150\r
+    xor.b @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78346a2c12345678c1509abc\r
+    xor.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78346a2c12345678c9509abcdef0\r
+    xor.b @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78346a2c12345678d2509abc\r
+    xor.b @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78346a2c12345678e2509abc\r
+    xor.b @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78346a2c12345678f2509abc\r
+    xor.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78346a2c12345678da509abcdef0\r
+    xor.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78346a2c12345678ea509abcdef0\r
+    xor.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78346a2c12345678fa509abcdef0\r
+    xor.b @(0x12345678:32,er3),@0xffff9abc:16               ;78346a2c1234567840509abc\r
+    xor.b @(0x12345678:32,er3),@0x9abcdef0:32               ;78346a2c1234567848509abcdef0\r
+\r
+    xor.b @(0x1234:16,r3l.b),@er1                       ;01756e3c12340150\r
+    xor.b @(0x1234:16,r3l.b),@(3:2,er1)                 ;01756e3c12343150\r
+    xor.b @(0x1234:16,r3l.b),@-er1                      ;01756e3c1234b150\r
+    xor.b @(0x1234:16,r3l.b),@er1+                      ;01756e3c12348150\r
+    xor.b @(0x1234:16,r3l.b),@er1-                      ;01756e3c1234a150\r
+    xor.b @(0x1234:16,r3l.b),@+er1                      ;01756e3c12349150\r
+    xor.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01756e3c1234c1509abc\r
+    xor.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01756e3c1234c9509abcdef0\r
+    xor.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01756e3c1234d2509abc\r
+    xor.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01756e3c1234e2509abc\r
+    xor.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01756e3c1234f2509abc\r
+    xor.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01756e3c1234da509abcdef0\r
+    xor.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01756e3c1234ea509abcdef0\r
+    xor.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01756e3c1234fa509abcdef0\r
+    xor.b @(0x1234:16,r3l.b),@0xffff9abc:16             ;01756e3c123440509abc\r
+    xor.b @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01756e3c123448509abcdef0\r
+\r
+    xor.b @(0x1234:16,r3.w),@er1                       ;01766e3c12340150\r
+    xor.b @(0x1234:16,r3.w),@(3:2,er1)                 ;01766e3c12343150\r
+    xor.b @(0x1234:16,r3.w),@-er1                      ;01766e3c1234b150\r
+    xor.b @(0x1234:16,r3.w),@er1+                      ;01766e3c12348150\r
+    xor.b @(0x1234:16,r3.w),@er1-                      ;01766e3c1234a150\r
+    xor.b @(0x1234:16,r3.w),@+er1                      ;01766e3c12349150\r
+    xor.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01766e3c1234c1509abc\r
+    xor.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01766e3c1234c9509abcdef0\r
+    xor.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01766e3c1234d2509abc\r
+    xor.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01766e3c1234e2509abc\r
+    xor.b @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01766e3c1234f2509abc\r
+    xor.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01766e3c1234da509abcdef0\r
+    xor.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01766e3c1234ea509abcdef0\r
+    xor.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01766e3c1234fa509abcdef0\r
+    xor.b @(0x1234:16,r3.w),@0xffff9abc:16             ;01766e3c123440509abc\r
+    xor.b @(0x1234:16,r3.w),@0x9abcdef0:32             ;01766e3c123448509abcdef0\r
+\r
+    xor.b @(0x1234:16,er3.l),@er1                       ;01776e3c12340150\r
+    xor.b @(0x1234:16,er3.l),@(3:2,er1)                 ;01776e3c12343150\r
+    xor.b @(0x1234:16,er3.l),@-er1                      ;01776e3c1234b150\r
+    xor.b @(0x1234:16,er3.l),@er1+                      ;01776e3c12348150\r
+    xor.b @(0x1234:16,er3.l),@er1-                      ;01776e3c1234a150\r
+    xor.b @(0x1234:16,er3.l),@+er1                      ;01776e3c12349150\r
+    xor.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01776e3c1234c1509abc\r
+    xor.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01776e3c1234c9509abcdef0\r
+    xor.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01776e3c1234d2509abc\r
+    xor.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01776e3c1234e2509abc\r
+    xor.b @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01776e3c1234f2509abc\r
+    xor.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01776e3c1234da509abcdef0\r
+    xor.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01776e3c1234ea509abcdef0\r
+    xor.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01776e3c1234fa509abcdef0\r
+    xor.b @(0x1234:16,er3.l),@0xffff9abc:16             ;01776e3c123440509abc\r
+    xor.b @(0x1234:16,er3.l),@0x9abcdef0:32             ;01776e3c123448509abcdef0\r
+\r
+    xor.b @(0x12345678:32,r3l.b),@er1                       ;78356a2c123456780150\r
+    xor.b @(0x12345678:32,r3l.b),@(3:2,er1)                 ;78356a2c123456783150\r
+    xor.b @(0x12345678:32,r3l.b),@-er1                      ;78356a2c12345678b150\r
+    xor.b @(0x12345678:32,r3l.b),@er1+                      ;78356a2c123456788150\r
+    xor.b @(0x12345678:32,r3l.b),@er1-                      ;78356a2c12345678a150\r
+    xor.b @(0x12345678:32,r3l.b),@+er1                      ;78356a2c123456789150\r
+    xor.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78356a2c12345678c1509abc\r
+    xor.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78356a2c12345678c9509abcdef0\r
+    xor.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78356a2c12345678d2509abc\r
+    xor.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78356a2c12345678e2509abc\r
+    xor.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78356a2c12345678f2509abc\r
+    xor.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78356a2c12345678da509abcdef0\r
+    xor.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78356a2c12345678ea509abcdef0\r
+    xor.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78356a2c12345678fa509abcdef0\r
+    xor.b @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78356a2c1234567840509abc\r
+    xor.b @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78356a2c1234567848509abcdef0\r
+\r
+    xor.b @(0x12345678:32,r3.w),@er1                       ;78366a2c123456780150\r
+    xor.b @(0x12345678:32,r3.w),@(3:2,er1)                 ;78366a2c123456783150\r
+    xor.b @(0x12345678:32,r3.w),@-er1                      ;78366a2c12345678b150\r
+    xor.b @(0x12345678:32,r3.w),@er1+                      ;78366a2c123456788150\r
+    xor.b @(0x12345678:32,r3.w),@er1-                      ;78366a2c12345678a150\r
+    xor.b @(0x12345678:32,r3.w),@+er1                      ;78366a2c123456789150\r
+    xor.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78366a2c12345678c1509abc\r
+    xor.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78366a2c12345678c9509abcdef0\r
+    xor.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78366a2c12345678d2509abc\r
+    xor.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78366a2c12345678e2509abc\r
+    xor.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78366a2c12345678f2509abc\r
+    xor.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78366a2c12345678da509abcdef0\r
+    xor.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78366a2c12345678ea509abcdef0\r
+    xor.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78366a2c12345678fa509abcdef0\r
+    xor.b @(0x12345678:32,r3.w),@0xffff9abc:16             ;78366a2c1234567840509abc\r
+    xor.b @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78366a2c1234567848509abcdef0\r
+\r
+    xor.b @(0x12345678:32,er3.l),@er1                       ;78376a2c123456780150\r
+    xor.b @(0x12345678:32,er3.l),@(3:2,er1)                 ;78376a2c123456783150\r
+    xor.b @(0x12345678:32,er3.l),@-er1                      ;78376a2c12345678b150\r
+    xor.b @(0x12345678:32,er3.l),@er1+                      ;78376a2c123456788150\r
+    xor.b @(0x12345678:32,er3.l),@er1-                      ;78376a2c12345678a150\r
+    xor.b @(0x12345678:32,er3.l),@+er1                      ;78376a2c123456789150\r
+    xor.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78376a2c12345678c1509abc\r
+    xor.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78376a2c12345678c9509abcdef0\r
+    xor.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78376a2c12345678d2509abc\r
+    xor.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78376a2c12345678e2509abc\r
+    xor.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78376a2c12345678f2509abc\r
+    xor.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78376a2c12345678da509abcdef0\r
+    xor.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78376a2c12345678ea509abcdef0\r
+    xor.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78376a2c12345678fa509abcdef0\r
+    xor.b @(0x12345678:32,er3.l),@0xffff9abc:16             ;78376a2c1234567840509abc\r
+    xor.b @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78376a2c1234567848509abcdef0\r
+\r
+    xor.b @0x1234:16,@er1                              ;6a1512340150\r
+    xor.b @0x1234:16,@(3:2,er1)                        ;6a1512343150\r
+    xor.b @0x1234:16,@-er1                             ;6a151234b150\r
+    xor.b @0x1234:16,@er1+                             ;6a1512348150\r
+    xor.b @0x1234:16,@er1-                             ;6a151234a150\r
+    xor.b @0x1234:16,@+er1                             ;6a1512349150\r
+    xor.b @0x1234:16,@(0xffff9abc:16,er1)              ;6a151234c1509abc\r
+    xor.b @0x1234:16,@(0x9abcdef0:32,er1)              ;6a151234c9509abcdef0\r
+    xor.b @0x1234:16,@(0xffff9abc:16,r2l.b)            ;6a151234d2509abc\r
+    xor.b @0x1234:16,@(0xffff9abc:16,r2.w)            ;6a151234e2509abc\r
+    xor.b @0x1234:16,@(0xffff9abc:16,er2.l)            ;6a151234f2509abc\r
+    xor.b @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;6a151234da509abcdef0\r
+    xor.b @0x1234:16,@(0x9abcdef0:32,r2.w)            ;6a151234ea509abcdef0\r
+    xor.b @0x1234:16,@(0x9abcdef0:32,er2.l)            ;6a151234fa509abcdef0\r
+    xor.b @0x1234:16,@0xffff9abc:16                    ;6a15123440509abc\r
+    xor.b @0x1234:16,@0x9abcdef0:32                    ;6a15123448509abcdef0\r
+\r
+    xor.b @0x12345678:32,@er1                              ;6a35123456780150\r
+    xor.b @0x12345678:32,@(3:2,er1)                        ;6a35123456783150\r
+    xor.b @0x12345678:32,@-er1                             ;6a3512345678b150\r
+    xor.b @0x12345678:32,@er1+                             ;6a35123456788150\r
+    xor.b @0x12345678:32,@er1-                             ;6a3512345678a150\r
+    xor.b @0x12345678:32,@+er1                             ;6a35123456789150\r
+    xor.b @0x12345678:32,@(0xffff9abc:16,er1)              ;6a3512345678c1509abc\r
+    xor.b @0x12345678:32,@(0x9abcdef0:32,er1)              ;6a3512345678c9509abcdef0\r
+    xor.b @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;6a3512345678d2509abc\r
+    xor.b @0x12345678:32,@(0xffff9abc:16,r2.w)            ;6a3512345678e2509abc\r
+    xor.b @0x12345678:32,@(0xffff9abc:16,er2.l)            ;6a3512345678f2509abc\r
+    xor.b @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;6a3512345678da509abcdef0\r
+    xor.b @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;6a3512345678ea509abcdef0\r
+    xor.b @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;6a3512345678fa509abcdef0\r
+    xor.b @0x12345678:32,@0xffff9abc:16                    ;6a351234567840509abc\r
+    xor.b @0x12345678:32,@0x9abcdef0:32                    ;6a351234567848509abcdef0\r
+\r
+    xor.w #0x1234:16,r1           ;79511234\r
+    xor.w #0x1234:16,@er1          ;015e01501234\r
+    xor.w #0x1234:16,@(0x6:2,er1) ;015e31501234\r
+    xor.w #0x1234:16,@er1+         ;015e81501234\r
+    xor.w #0x1234:16,@-er1         ;015eb1501234\r
+    xor.w #0x1234:16,@+er1         ;015e91501234\r
+    xor.w #0x1234:16,@er1-         ;015ea1501234\r
+    xor.w #0x1234:16,@(0xffff9abc:16,er1)   ;015ec1509abc1234\r
+    xor.w #0x1234:16,@(0x9abcdef0:32,er1)   ;015ec9509abcdef01234\r
+    xor.w #0x1234:16,@(0xffff9abc:16,r2l.b) ;015ed2509abc1234\r
+    xor.w #0x1234:16,@(0xffff9abc:16,r2.w) ;015ee2509abc1234\r
+    xor.w #0x1234:16,@(0xffff9abc:16,er2.l) ;015ef2509abc1234\r
+    xor.w #0x1234:16,@(0x9abcdef0:32,r2l.b) ;015eda509abcdef01234\r
+    xor.w #0x1234:16,@(0x9abcdef0:32,r2.w) ;015eea509abcdef01234\r
+    xor.w #0x1234:16,@(0x9abcdef0:32,er2.l) ;015efa509abcdef01234\r
+    xor.w #0x1234:16,@0xffff9abc:16         ;015e40509abc1234\r
+    xor.w #0x1234:16,@0x9abcdef0:32         ;015e48509abcdef01234\r
+\r
+    xor.w r3,r1              ;6531\r
+\r
+    xor.w r3,@er1            ;7d906530\r
+    xor.w r3,@(0x6:2,er1)   ;01593153\r
+    xor.w r3,@-er1           ;0159b153\r
+    xor.w r3,@er1+           ;01598153\r
+    xor.w r3,@er1-           ;0159a153\r
+    xor.w r3,@+er1           ;01599153\r
+    xor.w r3,@(0x1234:16,er1)     ;0159c1531234\r
+    xor.w r3,@(0x12345678:32,er1)     ;0159c95312345678\r
+    xor.w r3,@(0x1234:16,r2l.b)   ;0159d2531234\r
+    xor.w r3,@(0x1234:16,r2.w)   ;0159e2531234\r
+    xor.w r3,@(0x1234:16,er2.l)   ;0159f2531234\r
+    xor.w r3,@(0x12345678:32,r2l.b)   ;0159da5312345678\r
+    xor.w r3,@(0x12345678:32,r2.w)   ;0159ea5312345678\r
+    xor.w r3,@(0x12345678:32,er2.l)   ;0159fa5312345678\r
+    xor.w r3,@0x1234:16          ;6b1812346530\r
+    xor.w r3,@0x12345678:32          ;6b38123456786530\r
+\r
+    xor.w @er3,r1            ;7cb06501\r
+    xor.w @(0x6:2,er3),r1  ;015a3351\r
+    xor.w @er3+,r1          ;015a8351\r
+    xor.w @-er3,r1          ;015ab351\r
+    xor.w @+er3,r1          ;015a9351\r
+    xor.w @er3-,r1          ;015aa351\r
+    xor.w @(0x1234:16,er1),r1     ;015ac1511234\r
+    xor.w @(0x12345678:32,er1),r1     ;015ac95112345678\r
+    xor.w @(0x1234:16,r2l.b),r1   ;015ad2511234\r
+    xor.w @(0x1234:16,r2.w),r1   ;015ae2511234\r
+    xor.w @(0x1234:16,er2.l),r1   ;015af2511234\r
+    xor.w @(0x12345678:32,r2l.b),r1   ;015ada5112345678\r
+    xor.w @(0x12345678:32,r2.w),r1   ;015aea5112345678\r
+    xor.w @(0x12345678:32,er2.l),r1   ;015afa5112345678\r
+    xor.w @0x1234:16,r1          ;6b1012346501\r
+    xor.w @0x12345678:32,r1          ;6b30123456786501\r
+\r
+    xor.w @er3,@er1                                ;7cb50150\r
+    xor.w @er3,@(6:2,er1)                          ;7cb53150\r
+    xor.w @er3,@-er1                               ;7cb5b150\r
+    xor.w @er3,@er1+                               ;7cb58150\r
+    xor.w @er3,@er1-                               ;7cb5a150\r
+    xor.w @er3,@+er1                               ;7cb59150\r
+    xor.w @er3,@(0xffff9abc:16,er1)                ;7cb5c1509abc\r
+    xor.w @er3,@(0x9abcdef0:32,er1)                ;7cb5c9509abcdef0\r
+    xor.w @er3,@(0xffff9abc:16,r2l.b)              ;7cb5d2509abc\r
+    xor.w @er3,@(0xffff9abc:16,r2.w)              ;7cb5e2509abc\r
+    xor.w @er3,@(0xffff9abc:16,er2.l)              ;7cb5f2509abc\r
+    xor.w @er3,@(0x9abcdef0:32,r2l.b)              ;7cb5da509abcdef0\r
+    xor.w @er3,@(0x9abcdef0:32,r2.w)              ;7cb5ea509abcdef0\r
+    xor.w @er3,@(0x9abcdef0:32,er2.l)              ;7cb5fa509abcdef0\r
+    xor.w @er3,@0xffff9abc:16                      ;7cb540509abc\r
+    xor.w @er3,@0x9abcdef0:32                      ;7cb548509abcdef0\r
+\r
+    xor.w @-er3,@er1                               ;01576d3c0150\r
+    xor.w @-er3,@(6:2,er1)                         ;01576d3c3150\r
+    xor.w @-er3,@-er1                              ;01576d3cb150\r
+    xor.w @-er3,@er1+                              ;01576d3c8150\r
+    xor.w @-er3,@er1-                              ;01576d3ca150\r
+    xor.w @-er3,@+er1                              ;01576d3c9150\r
+    xor.w @-er3,@(0xffff9abc:16,er1)               ;01576d3cc1509abc\r
+    xor.w @-er3,@(0x9abcdef0:32,er1)               ;01576d3cc9509abcdef0\r
+    xor.w @-er3,@(0xffff9abc:16,r2l.b)             ;01576d3cd2509abc\r
+    xor.w @-er3,@(0xffff9abc:16,r2.w)             ;01576d3ce2509abc\r
+    xor.w @-er3,@(0xffff9abc:16,er2.l)             ;01576d3cf2509abc\r
+    xor.w @-er3,@(0x9abcdef0:32,r2l.b)             ;01576d3cda509abcdef0\r
+    xor.w @-er3,@(0x9abcdef0:32,r2.w)             ;01576d3cea509abcdef0\r
+    xor.w @-er3,@(0x9abcdef0:32,er2.l)             ;01576d3cfa509abcdef0\r
+    xor.w @-er3,@0xffff9abc:16                     ;01576d3c40509abc\r
+    xor.w @-er3,@0x9abcdef0:32                     ;01576d3c48509abcdef0\r
+\r
+    xor.w @er3+,@er1                               ;01546d3c0150\r
+    xor.w @er3+,@(6:2,er1)                         ;01546d3c3150\r
+    xor.w @er3+,@-er1                              ;01546d3cb150\r
+    xor.w @er3+,@er1+                              ;01546d3c8150\r
+    xor.w @er3+,@er1-                              ;01546d3ca150\r
+    xor.w @er3+,@+er1                              ;01546d3c9150\r
+    xor.w @er3+,@(0xffff9abc:16,er1)               ;01546d3cc1509abc\r
+    xor.w @er3+,@(0x9abcdef0:32,er1)               ;01546d3cc9509abcdef0\r
+    xor.w @er3+,@(0xffff9abc:16,r2l.b)             ;01546d3cd2509abc\r
+    xor.w @er3+,@(0xffff9abc:16,r2.w)             ;01546d3ce2509abc\r
+    xor.w @er3+,@(0xffff9abc:16,er2.l)             ;01546d3cf2509abc\r
+    xor.w @er3+,@(0x9abcdef0:32,r2l.b)             ;01546d3cda509abcdef0\r
+    xor.w @er3+,@(0x9abcdef0:32,r2.w)             ;01546d3cea509abcdef0\r
+    xor.w @er3+,@(0x9abcdef0:32,er2.l)             ;01546d3cfa509abcdef0\r
+    xor.w @er3+,@0xffff9abc:16                     ;01546d3c40509abc\r
+    xor.w @er3+,@0x9abcdef0:32                     ;01546d3c48509abcdef0\r
+\r
+    xor.w @er3-,@er1                               ;01566d3c0150\r
+    xor.w @er3-,@(6:2,er1)                         ;01566d3c3150\r
+    xor.w @er3-,@-er1                              ;01566d3cb150\r
+    xor.w @er3-,@er1+                              ;01566d3c8150\r
+    xor.w @er3-,@er1-                              ;01566d3ca150\r
+    xor.w @er3-,@+er1                              ;01566d3c9150\r
+    xor.w @er3-,@(0xffff9abc:16,er1)               ;01566d3cc1509abc\r
+    xor.w @er3-,@(0x9abcdef0:32,er1)               ;01566d3cc9509abcdef0\r
+    xor.w @er3-,@(0xffff9abc:16,r2l.b)             ;01566d3cd2509abc\r
+    xor.w @er3-,@(0xffff9abc:16,r2.w)             ;01566d3ce2509abc\r
+    xor.w @er3-,@(0xffff9abc:16,er2.l)             ;01566d3cf2509abc\r
+    xor.w @er3-,@(0x9abcdef0:32,r2l.b)             ;01566d3cda509abcdef0\r
+    xor.w @er3-,@(0x9abcdef0:32,r2.w)             ;01566d3cea509abcdef0\r
+    xor.w @er3-,@(0x9abcdef0:32,er2.l)             ;01566d3cfa509abcdef0\r
+    xor.w @er3-,@0xffff9abc:16                     ;01566d3c40509abc\r
+    xor.w @er3-,@0x9abcdef0:32                     ;01566d3c48509abcdef0\r
+\r
+    xor.w @+er3,@er1                               ;01556d3c0150\r
+    xor.w @+er3,@(6:2,er1)                         ;01556d3c3150\r
+    xor.w @+er3,@-er1                              ;01556d3cb150\r
+    xor.w @+er3,@er1+                              ;01556d3c8150\r
+    xor.w @+er3,@er1-                              ;01556d3ca150\r
+    xor.w @+er3,@+er1                              ;01556d3c9150\r
+    xor.w @+er3,@(0xffff9abc:16,er1)               ;01556d3cc1509abc\r
+    xor.w @+er3,@(0x9abcdef0:32,er1)               ;01556d3cc9509abcdef0\r
+    xor.w @+er3,@(0xffff9abc:16,r2l.b)             ;01556d3cd2509abc\r
+    xor.w @+er3,@(0xffff9abc:16,r2.w)             ;01556d3ce2509abc\r
+    xor.w @+er3,@(0xffff9abc:16,er2.l)             ;01556d3cf2509abc\r
+    xor.w @+er3,@(0x9abcdef0:32,r2l.b)             ;01556d3cda509abcdef0\r
+    xor.w @+er3,@(0x9abcdef0:32,r2.w)             ;01556d3cea509abcdef0\r
+    xor.w @+er3,@(0x9abcdef0:32,er2.l)             ;01556d3cfa509abcdef0\r
+    xor.w @+er3,@0xffff9abc:16                     ;01556d3c40509abc\r
+    xor.w @+er3,@0x9abcdef0:32                     ;01556d3c48509abcdef0\r
+\r
+    xor.w @(0x1234:16,er3),@er1                         ;01546f3c12340150\r
+    xor.w @(0x1234:16,er3),@(6:2,er1)                   ;01546f3c12343150\r
+    xor.w @(0x1234:16,er3),@-er1                        ;01546f3c1234b150\r
+    xor.w @(0x1234:16,er3),@er1+                        ;01546f3c12348150\r
+    xor.w @(0x1234:16,er3),@er1-                        ;01546f3c1234a150\r
+    xor.w @(0x1234:16,er3),@+er1                        ;01546f3c12349150\r
+    xor.w @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01546f3c1234c1509abc\r
+    xor.w @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01546f3c1234c9509abcdef0\r
+    xor.w @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01546f3c1234d2509abc\r
+    xor.w @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01546f3c1234e2509abc\r
+    xor.w @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01546f3c1234f2509abc\r
+    xor.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01546f3c1234da509abcdef0\r
+    xor.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01546f3c1234ea509abcdef0\r
+    xor.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01546f3c1234fa509abcdef0\r
+    xor.w @(0x1234:16,er3),@0xffff9abc:16               ;01546f3c123440509abc\r
+    xor.w @(0x1234:16,er3),@0x9abcdef0:32               ;01546f3c123448509abcdef0\r
+\r
+    xor.w @(0x12345678:32,er3),@er1                         ;78346b2c123456780150\r
+    xor.w @(0x12345678:32,er3),@(6:2,er1)                   ;78346b2c123456783150\r
+    xor.w @(0x12345678:32,er3),@-er1                        ;78346b2c12345678b150\r
+    xor.w @(0x12345678:32,er3),@er1+                        ;78346b2c123456788150\r
+    xor.w @(0x12345678:32,er3),@er1-                        ;78346b2c12345678a150\r
+    xor.w @(0x12345678:32,er3),@+er1                        ;78346b2c123456789150\r
+    xor.w @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78346b2c12345678c1509abc\r
+    xor.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78346b2c12345678c9509abcdef0\r
+    xor.w @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78346b2c12345678d2509abc\r
+    xor.w @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78346b2c12345678e2509abc\r
+    xor.w @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78346b2c12345678f2509abc\r
+    xor.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78346b2c12345678da509abcdef0\r
+    xor.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78346b2c12345678ea509abcdef0\r
+    xor.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78346b2c12345678fa509abcdef0\r
+    xor.w @(0x12345678:32,er3),@0xffff9abc:16               ;78346b2c1234567840509abc\r
+    xor.w @(0x12345678:32,er3),@0x9abcdef0:32               ;78346b2c1234567848509abcdef0\r
+\r
+    xor.w @(0x1234:16,r3l.b),@er1                       ;01556f3c12340150\r
+    xor.w @(0x1234:16,r3l.b),@(6:2,er1)                 ;01556f3c12343150\r
+    xor.w @(0x1234:16,r3l.b),@-er1                      ;01556f3c1234b150\r
+    xor.w @(0x1234:16,r3l.b),@er1+                      ;01556f3c12348150\r
+    xor.w @(0x1234:16,r3l.b),@er1-                      ;01556f3c1234a150\r
+    xor.w @(0x1234:16,r3l.b),@+er1                      ;01556f3c12349150\r
+    xor.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01556f3c1234c1509abc\r
+    xor.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01556f3c1234c9509abcdef0\r
+    xor.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01556f3c1234d2509abc\r
+    xor.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01556f3c1234e2509abc\r
+    xor.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01556f3c1234f2509abc\r
+    xor.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01556f3c1234da509abcdef0\r
+    xor.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01556f3c1234ea509abcdef0\r
+    xor.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01556f3c1234fa509abcdef0\r
+    xor.w @(0x1234:16,r3l.b),@0xffff9abc:16             ;01556f3c123440509abc\r
+    xor.w @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01556f3c123448509abcdef0\r
+\r
+    xor.w @(0x1234:16,r3.w),@er1                       ;01566f3c12340150\r
+    xor.w @(0x1234:16,r3.w),@(6:2,er1)                 ;01566f3c12343150\r
+    xor.w @(0x1234:16,r3.w),@-er1                      ;01566f3c1234b150\r
+    xor.w @(0x1234:16,r3.w),@er1+                      ;01566f3c12348150\r
+    xor.w @(0x1234:16,r3.w),@er1-                      ;01566f3c1234a150\r
+    xor.w @(0x1234:16,r3.w),@+er1                      ;01566f3c12349150\r
+    xor.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01566f3c1234c1509abc\r
+    xor.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01566f3c1234c9509abcdef0\r
+    xor.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01566f3c1234d2509abc\r
+    xor.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01566f3c1234e2509abc\r
+    xor.w @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01566f3c1234f2509abc\r
+    xor.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01566f3c1234da509abcdef0\r
+    xor.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01566f3c1234ea509abcdef0\r
+    xor.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01566f3c1234fa509abcdef0\r
+    xor.w @(0x1234:16,r3.w),@0xffff9abc:16             ;01566f3c123440509abc\r
+    xor.w @(0x1234:16,r3.w),@0x9abcdef0:32             ;01566f3c123448509abcdef0\r
+\r
+    xor.w @(0x1234:16,er3.l),@er1                       ;01576f3c12340150\r
+    xor.w @(0x1234:16,er3.l),@(6:2,er1)                 ;01576f3c12343150\r
+    xor.w @(0x1234:16,er3.l),@-er1                      ;01576f3c1234b150\r
+    xor.w @(0x1234:16,er3.l),@er1+                      ;01576f3c12348150\r
+    xor.w @(0x1234:16,er3.l),@er1-                      ;01576f3c1234a150\r
+    xor.w @(0x1234:16,er3.l),@+er1                      ;01576f3c12349150\r
+    xor.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01576f3c1234c1509abc\r
+    xor.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01576f3c1234c9509abcdef0\r
+    xor.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01576f3c1234d2509abc\r
+    xor.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01576f3c1234e2509abc\r
+    xor.w @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01576f3c1234f2509abc\r
+    xor.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01576f3c1234da509abcdef0\r
+    xor.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01576f3c1234ea509abcdef0\r
+    xor.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01576f3c1234fa509abcdef0\r
+    xor.w @(0x1234:16,er3.l),@0xffff9abc:16             ;01576f3c123440509abc\r
+    xor.w @(0x1234:16,er3.l),@0x9abcdef0:32             ;01576f3c123448509abcdef0\r
+\r
+    xor.w @(0x12345678:32,r3l.b),@er1                       ;78356b2c123456780150\r
+    xor.w @(0x12345678:32,r3l.b),@(6:2,er1)                 ;78356b2c123456783150\r
+    xor.w @(0x12345678:32,r3l.b),@-er1                      ;78356b2c12345678b150\r
+    xor.w @(0x12345678:32,r3l.b),@er1+                      ;78356b2c123456788150\r
+    xor.w @(0x12345678:32,r3l.b),@er1-                      ;78356b2c12345678a150\r
+    xor.w @(0x12345678:32,r3l.b),@+er1                      ;78356b2c123456789150\r
+    xor.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78356b2c12345678c1509abc\r
+    xor.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78356b2c12345678c9509abcdef0\r
+    xor.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78356b2c12345678d2509abc\r
+    xor.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78356b2c12345678e2509abc\r
+    xor.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78356b2c12345678f2509abc\r
+    xor.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78356b2c12345678da509abcdef0\r
+    xor.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78356b2c12345678ea509abcdef0\r
+    xor.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78356b2c12345678fa509abcdef0\r
+    xor.w @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78356b2c1234567840509abc\r
+    xor.w @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78356b2c1234567848509abcdef0\r
+\r
+    xor.w @(0x12345678:32,r3.w),@er1                       ;78366b2c123456780150\r
+    xor.w @(0x12345678:32,r3.w),@(6:2,er1)                 ;78366b2c123456783150\r
+    xor.w @(0x12345678:32,r3.w),@-er1                      ;78366b2c12345678b150\r
+    xor.w @(0x12345678:32,r3.w),@er1+                      ;78366b2c123456788150\r
+    xor.w @(0x12345678:32,r3.w),@er1-                      ;78366b2c12345678a150\r
+    xor.w @(0x12345678:32,r3.w),@+er1                      ;78366b2c123456789150\r
+    xor.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78366b2c12345678c1509abc\r
+    xor.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78366b2c12345678c9509abcdef0\r
+    xor.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78366b2c12345678d2509abc\r
+    xor.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78366b2c12345678e2509abc\r
+    xor.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78366b2c12345678f2509abc\r
+    xor.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78366b2c12345678da509abcdef0\r
+    xor.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78366b2c12345678ea509abcdef0\r
+    xor.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78366b2c12345678fa509abcdef0\r
+    xor.w @(0x12345678:32,r3.w),@0xffff9abc:16             ;78366b2c1234567840509abc\r
+    xor.w @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78366b2c1234567848509abcdef0\r
+\r
+    xor.w @(0x12345678:32,er3.l),@er1                       ;78376b2c123456780150\r
+    xor.w @(0x12345678:32,er3.l),@(6:2,er1)                 ;78376b2c123456783150\r
+    xor.w @(0x12345678:32,er3.l),@-er1                      ;78376b2c12345678b150\r
+    xor.w @(0x12345678:32,er3.l),@er1+                      ;78376b2c123456788150\r
+    xor.w @(0x12345678:32,er3.l),@er1-                      ;78376b2c12345678a150\r
+    xor.w @(0x12345678:32,er3.l),@+er1                      ;78376b2c123456789150\r
+    xor.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78376b2c12345678c1509abc\r
+    xor.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78376b2c12345678c9509abcdef0\r
+    xor.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78376b2c12345678d2509abc\r
+    xor.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78376b2c12345678e2509abc\r
+    xor.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78376b2c12345678f2509abc\r
+    xor.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78376b2c12345678da509abcdef0\r
+    xor.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78376b2c12345678ea509abcdef0\r
+    xor.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78376b2c12345678fa509abcdef0\r
+    xor.w @(0x12345678:32,er3.l),@0xffff9abc:16             ;78376b2c1234567840509abc\r
+    xor.w @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78376b2c1234567848509abcdef0\r
+\r
+    xor.w @0x1234:16,@er1                              ;6b1512340150\r
+    xor.w @0x1234:16,@(6:2,er1)                        ;6b1512343150\r
+    xor.w @0x1234:16,@-er1                             ;6b151234b150\r
+    xor.w @0x1234:16,@er1+                             ;6b1512348150\r
+    xor.w @0x1234:16,@er1-                             ;6b151234a150\r
+    xor.w @0x1234:16,@+er1                             ;6b1512349150\r
+    xor.w @0x1234:16,@(0xffff9abc:16,er1)              ;6b151234c1509abc\r
+    xor.w @0x1234:16,@(0x9abcdef0:32,er1)              ;6b151234c9509abcdef0\r
+    xor.w @0x1234:16,@(0xffff9abc:16,r2l.b)            ;6b151234d2509abc\r
+    xor.w @0x1234:16,@(0xffff9abc:16,r2.w)            ;6b151234e2509abc\r
+    xor.w @0x1234:16,@(0xffff9abc:16,er2.l)            ;6b151234f2509abc\r
+    xor.w @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;6b151234da509abcdef0\r
+    xor.w @0x1234:16,@(0x9abcdef0:32,r2.w)            ;6b151234ea509abcdef0\r
+    xor.w @0x1234:16,@(0x9abcdef0:32,er2.l)            ;6b151234fa509abcdef0\r
+    xor.w @0x1234:16,@0xffff9abc:16                    ;6b15123440509abc\r
+    xor.w @0x1234:16,@0x9abcdef0:32                    ;6b15123448509abcdef0\r
+\r
+    xor.w @0x12345678:32,@er1                              ;6b35123456780150\r
+    xor.w @0x12345678:32,@(6:2,er1)                        ;6b35123456783150\r
+    xor.w @0x12345678:32,@-er1                             ;6b3512345678b150\r
+    xor.w @0x12345678:32,@er1+                             ;6b35123456788150\r
+    xor.w @0x12345678:32,@er1-                             ;6b3512345678a150\r
+    xor.w @0x12345678:32,@+er1                             ;6b35123456789150\r
+    xor.w @0x12345678:32,@(0xffff9abc:16,er1)              ;6b3512345678c1509abc\r
+    xor.w @0x12345678:32,@(0x9abcdef0:32,er1)              ;6b3512345678c9509abcdef0\r
+    xor.w @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;6b3512345678d2509abc\r
+    xor.w @0x12345678:32,@(0xffff9abc:16,r2.w)            ;6b3512345678e2509abc\r
+    xor.w @0x12345678:32,@(0xffff9abc:16,er2.l)            ;6b3512345678f2509abc\r
+    xor.w @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;6b3512345678da509abcdef0\r
+    xor.w @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;6b3512345678ea509abcdef0\r
+    xor.w @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;6b3512345678fa509abcdef0\r
+    xor.w @0x12345678:32,@0xffff9abc:16                    ;6b351234567840509abc\r
+    xor.w @0x12345678:32,@0x9abcdef0:32                    ;6b351234567848509abcdef0\r
+\r
+    xor.l #0x12345678:32,er1          ;7a5112345678\r
+    xor.l #0x1234:16,er1           ;7a591234\r
+    xor.l #0x12345678:32,@er1          ;010e015812345678\r
+    xor.l #0x12345678:32,@(0xc:2,er1) ;010e315812345678\r
+    xor.l #0x12345678:32,@er1+         ;010e815812345678\r
+    xor.l #0x12345678:32,@-er1         ;010eb15812345678\r
+    xor.l #0x12345678:32,@+er1         ;010e915812345678\r
+    xor.l #0x12345678:32,@er1-         ;010ea15812345678\r
+    xor.l #0x12345678:32,@(0xffff9abc:16,er1)   ;010ec1589abc12345678\r
+    xor.l #0x12345678:32,@(0x9abcdef0:32,er1)   ;010ec9589abcdef012345678\r
+    xor.l #0x12345678:32,@(0xffff9abc:16,r2l.b) ;010ed2589abc12345678\r
+    xor.l #0x12345678:32,@(0xffff9abc:16,r2.w) ;010ee2589abc12345678\r
+    xor.l #0x12345678:32,@(0xffff9abc:16,er2.l) ;010ef2589abc12345678\r
+    xor.l #0x12345678:32,@(0x9abcdef0:32,r2l.b) ;010eda589abcdef012345678\r
+    xor.l #0x12345678:32,@(0x9abcdef0:32,r2.w) ;010eea589abcdef012345678\r
+    xor.l #0x12345678:32,@(0x9abcdef0:32,er2.l) ;010efa589abcdef012345678\r
+    xor.l #0x12345678:32,@0xffff9abc:16        ;010e40589abc12345678\r
+    xor.l #0x12345678:32,@0x9abcdef0:32        ;010e48589abcdef012345678\r
+    xor.l #0x1234:16,@er1          ;010e01501234\r
+    xor.l #0x1234:16,@(0xc:2,er1) ;010e31501234\r
+    xor.l #0x1234:16,@er1+         ;010e81501234\r
+    xor.l #0x1234:16,@-er1         ;010eb1501234\r
+    xor.l #0x1234:16,@+er1         ;010e91501234\r
+    xor.l #0x1234:16,@er1-         ;010ea1501234\r
+    xor.l #0x1234:16,@(0xffff9abc:16,er1)   ;010ec1509abc1234\r
+    xor.l #0x1234:16,@(0x9abcdef0:32,er1)   ;010ec9509abcdef01234\r
+    xor.l #0x1234:16,@(0xffff9abc:16,r2l.b) ;010ed2509abc1234\r
+    xor.l #0x1234:16,@(0xffff9abc:16,r2.w) ;010ee2509abc1234\r
+    xor.l #0x1234:16,@(0xffff9abc:16,er2.l) ;010ef2509abc1234\r
+    xor.l #0x1234:16,@(0x9abcdef0:32,r2l.b) ;010eda509abcdef01234\r
+    xor.l #0x1234:16,@(0x9abcdef0:32,r2.w) ;010eea509abcdef01234\r
+    xor.l #0x1234:16,@(0x9abcdef0:32,er2.l) ;010efa509abcdef01234\r
+    xor.l #0x1234:16,@0xffff9abc:16        ;010e40509abc1234\r
+    xor.l #0x1234:16,@0x9abcdef0:32        ;010e48509abcdef01234\r
+\r
+    xor.l er3,er1            ;01f06531\r
+\r
+    xor.l er3,@er1            ;01090153\r
+    xor.l er3,@(0xc:2,er1)   ;01093153\r
+    xor.l er3,@er1+           ;01098153\r
+    xor.l er3,@-er1           ;0109b153\r
+    xor.l er3,@+er1           ;01099153\r
+    xor.l er3,@er1-           ;0109a153\r
+    xor.l er3,@(0x1234:16,er1)     ;0109c1531234\r
+    xor.l er3,@(0x12345678:32,er1)     ;0109c95312345678\r
+    xor.l er3,@(0x1234:16,r2l.b)   ;0109d2531234\r
+    xor.l er3,@(0x1234:16,r2.w)   ;0109e2531234\r
+    xor.l er3,@(0x1234:16,er2.l)   ;0109f2531234\r
+    xor.l er3,@(0x12345678:32,r2l.b)   ;0109da5312345678\r
+    xor.l er3,@(0x12345678:32,r2.w)   ;0109ea5312345678\r
+    xor.l er3,@(0x12345678:32,er2.l)   ;0109fa5312345678\r
+    xor.l er3,@0x1234:16          ;010940531234\r
+    xor.l er3,@0x12345678:32          ;0109485312345678\r
+\r
+    xor.l @er3,er1            ;010a0351\r
+    xor.l @(0xc:2,er3),er1  ;010a3351\r
+    xor.l @er3+,er1          ;010a8351\r
+    xor.l @-er3,er1          ;010ab351\r
+    xor.l @+er3,er1          ;010a9351\r
+    xor.l @er3-,er1          ;010aa351\r
+    xor.l @(0x1234:16,er1),er1     ;010ac1511234\r
+    xor.l @(0x12345678:32,er1),er1     ;010ac95112345678\r
+    xor.l @(0x1234:16,r2l.b),er1   ;010ad2511234\r
+    xor.l @(0x1234:16,r2.w),er1   ;010ae2511234\r
+    xor.l @(0x1234:16,er2.l),er1   ;010af2511234\r
+    xor.l @(0x12345678:32,r2l.b),er1   ;010ada5112345678\r
+    xor.l @(0x12345678:32,r2.w),er1   ;010aea5112345678\r
+    xor.l @(0x12345678:32,er2.l),er1   ;010afa5112345678\r
+    xor.l @0x1234:16,er1          ;010a40511234\r
+    xor.l @0x12345678:32,er1          ;010a485112345678\r
+\r
+    xor.l @er3,@er1                                ;0104693c0150\r
+    xor.l @er3,@(0xc:2,er1)                          ;0104693c3150\r
+    xor.l @er3,@-er1                               ;0104693cb150\r
+    xor.l @er3,@er1+                               ;0104693c8150\r
+    xor.l @er3,@er1-                               ;0104693ca150\r
+    xor.l @er3,@+er1                               ;0104693c9150\r
+    xor.l @er3,@(0xffff9abc:16,er1)                ;0104693cc1509abc\r
+    xor.l @er3,@(0x9abcdef0:32,er1)                ;0104693cc9509abcdef0\r
+    xor.l @er3,@(0xffff9abc:16,r2l.b)              ;0104693cd2509abc\r
+    xor.l @er3,@(0xffff9abc:16,r2.w)              ;0104693ce2509abc\r
+    xor.l @er3,@(0xffff9abc:16,er2.l)              ;0104693cf2509abc\r
+    xor.l @er3,@(0x9abcdef0:32,r2l.b)              ;0104693cda509abcdef0\r
+    xor.l @er3,@(0x9abcdef0:32,r2.w)              ;0104693cea509abcdef0\r
+    xor.l @er3,@(0x9abcdef0:32,er2.l)              ;0104693cfa509abcdef0\r
+    xor.l @er3,@0xffff9abc:16                      ;0104693c40509abc\r
+    xor.l @er3,@0x9abcdef0:32                      ;0104693c48509abcdef0\r
+\r
+    xor.l @(0xc:2,er3),@er1                       ;0107693c0150\r
+    xor.l @(0xc:2,er3),@(0xc:2,er1)                 ;0107693c3150\r
+    xor.l @(0xc:2,er3),@-er1                      ;0107693cb150\r
+    xor.l @(0xc:2,er3),@er1+                      ;0107693c8150\r
+    xor.l @(0xc:2,er3),@er1-                      ;0107693ca150\r
+    xor.l @(0xc:2,er3),@+er1                      ;0107693c9150\r
+    xor.l @(0xc:2,er3),@(0xffff9abc:16,er1)       ;0107693cc1509abc\r
+    xor.l @(0xc:2,er3),@(0x9abcdef0:32,er1)       ;0107693cc9509abcdef0\r
+    xor.l @(0xc:2,er3),@(0xffff9abc:16,r2l.b)     ;0107693cd2509abc\r
+    xor.l @(0xc:2,er3),@(0xffff9abc:16,r2.w)     ;0107693ce2509abc\r
+    xor.l @(0xc:2,er3),@(0xffff9abc:16,er2.l)     ;0107693cf2509abc\r
+    xor.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b)     ;0107693cda509abcdef0\r
+    xor.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w)     ;0107693cea509abcdef0\r
+    xor.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l)     ;0107693cfa509abcdef0\r
+    xor.l @(0xc:2,er3),@0xffff9abc:16             ;0107693c40509abc\r
+    xor.l @(0xc:2,er3),@0x9abcdef0:32             ;0107693c48509abcdef0\r
+\r
+    xor.l @-er3,@er1                               ;01076d3c0150\r
+    xor.l @-er3,@(0xc:2,er1)                         ;01076d3c3150\r
+    xor.l @-er3,@-er1                              ;01076d3cb150\r
+    xor.l @-er3,@er1+                              ;01076d3c8150\r
+    xor.l @-er3,@er1-                              ;01076d3ca150\r
+    xor.l @-er3,@+er1                              ;01076d3c9150\r
+    xor.l @-er3,@(0xffff9abc:16,er1)               ;01076d3cc1509abc\r
+    xor.l @-er3,@(0x9abcdef0:32,er1)               ;01076d3cc9509abcdef0\r
+    xor.l @-er3,@(0xffff9abc:16,r2l.b)             ;01076d3cd2509abc\r
+    xor.l @-er3,@(0xffff9abc:16,r2.w)             ;01076d3ce2509abc\r
+    xor.l @-er3,@(0xffff9abc:16,er2.l)             ;01076d3cf2509abc\r
+    xor.l @-er3,@(0x9abcdef0:32,r2l.b)             ;01076d3cda509abcdef0\r
+    xor.l @-er3,@(0x9abcdef0:32,r2.w)             ;01076d3cea509abcdef0\r
+    xor.l @-er3,@(0x9abcdef0:32,er2.l)             ;01076d3cfa509abcdef0\r
+    xor.l @-er3,@0xffff9abc:16                     ;01076d3c40509abc\r
+    xor.l @-er3,@0x9abcdef0:32                     ;01076d3c48509abcdef0\r
+\r
+    xor.l @er3+,@er1                               ;01046d3c0150\r
+    xor.l @er3+,@(0xc:2,er1)                         ;01046d3c3150\r
+    xor.l @er3+,@-er1                              ;01046d3cb150\r
+    xor.l @er3+,@er1+                              ;01046d3c8150\r
+    xor.l @er3+,@er1-                              ;01046d3ca150\r
+    xor.l @er3+,@+er1                              ;01046d3c9150\r
+    xor.l @er3+,@(0xffff9abc:16,er1)               ;01046d3cc1509abc\r
+    xor.l @er3+,@(0x9abcdef0:32,er1)               ;01046d3cc9509abcdef0\r
+    xor.l @er3+,@(0xffff9abc:16,r2l.b)             ;01046d3cd2509abc\r
+    xor.l @er3+,@(0xffff9abc:16,r2.w)             ;01046d3ce2509abc\r
+    xor.l @er3+,@(0xffff9abc:16,er2.l)             ;01046d3cf2509abc\r
+    xor.l @er3+,@(0x9abcdef0:32,r2l.b)             ;01046d3cda509abcdef0\r
+    xor.l @er3+,@(0x9abcdef0:32,r2.w)             ;01046d3cea509abcdef0\r
+    xor.l @er3+,@(0x9abcdef0:32,er2.l)             ;01046d3cfa509abcdef0\r
+    xor.l @er3+,@0xffff9abc:16                     ;01046d3c40509abc\r
+    xor.l @er3+,@0x9abcdef0:32                     ;01046d3c48509abcdef0\r
+\r
+    xor.l @er3-,@er1                               ;01066d3c0150\r
+    xor.l @er3-,@(0xc:2,er1)                         ;01066d3c3150\r
+    xor.l @er3-,@-er1                              ;01066d3cb150\r
+    xor.l @er3-,@er1+                              ;01066d3c8150\r
+    xor.l @er3-,@er1-                              ;01066d3ca150\r
+    xor.l @er3-,@+er1                              ;01066d3c9150\r
+    xor.l @er3-,@(0xffff9abc:16,er1)               ;01066d3cc1509abc\r
+    xor.l @er3-,@(0x9abcdef0:32,er1)               ;01066d3cc9509abcdef0\r
+    xor.l @er3-,@(0xffff9abc:16,r2l.b)             ;01066d3cd2509abc\r
+    xor.l @er3-,@(0xffff9abc:16,r2.w)             ;01066d3ce2509abc\r
+    xor.l @er3-,@(0xffff9abc:16,er2.l)             ;01066d3cf2509abc\r
+    xor.l @er3-,@(0x9abcdef0:32,r2l.b)             ;01066d3cda509abcdef0\r
+    xor.l @er3-,@(0x9abcdef0:32,r2.w)             ;01066d3cea509abcdef0\r
+    xor.l @er3-,@(0x9abcdef0:32,er2.l)             ;01066d3cfa509abcdef0\r
+    xor.l @er3-,@0xffff9abc:16                     ;01066d3c40509abc\r
+    xor.l @er3-,@0x9abcdef0:32                     ;01066d3c48509abcdef0\r
+\r
+    xor.l @+er3,@er1                               ;01056d3c0150\r
+    xor.l @+er3,@(0xc:2,er1)                         ;01056d3c3150\r
+    xor.l @+er3,@-er1                              ;01056d3cb150\r
+    xor.l @+er3,@er1+                              ;01056d3c8150\r
+    xor.l @+er3,@er1-                              ;01056d3ca150\r
+    xor.l @+er3,@+er1                              ;01056d3c9150\r
+    xor.l @+er3,@(0xffff9abc:16,er1)               ;01056d3cc1509abc\r
+    xor.l @+er3,@(0x9abcdef0:32,er1)               ;01056d3cc9509abcdef0\r
+    xor.l @+er3,@(0xffff9abc:16,r2l.b)             ;01056d3cd2509abc\r
+    xor.l @+er3,@(0xffff9abc:16,r2.w)             ;01056d3ce2509abc\r
+    xor.l @+er3,@(0xffff9abc:16,er2.l)             ;01056d3cf2509abc\r
+    xor.l @+er3,@(0x9abcdef0:32,r2l.b)             ;01056d3cda509abcdef0\r
+    xor.l @+er3,@(0x9abcdef0:32,r2.w)             ;01056d3cea509abcdef0\r
+    xor.l @+er3,@(0x9abcdef0:32,er2.l)             ;01056d3cfa509abcdef0\r
+    xor.l @+er3,@0xffff9abc:16                     ;01056d3c40509abc\r
+    xor.l @+er3,@0x9abcdef0:32                     ;01056d3c48509abcdef0\r
+\r
+    xor.l @(0x1234:16,er3),@er1                         ;01046f3c12340150\r
+    xor.l @(0x1234:16,er3),@(0xc:2,er1)                   ;01046f3c12343150\r
+    xor.l @(0x1234:16,er3),@-er1                        ;01046f3c1234b150\r
+    xor.l @(0x1234:16,er3),@er1+                        ;01046f3c12348150\r
+    xor.l @(0x1234:16,er3),@er1-                        ;01046f3c1234a150\r
+    xor.l @(0x1234:16,er3),@+er1                        ;01046f3c12349150\r
+    xor.l @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01046f3c1234c1509abc\r
+    xor.l @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01046f3c1234c9509abcdef0\r
+    xor.l @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01046f3c1234d2509abc\r
+    xor.l @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01046f3c1234e2509abc\r
+    xor.l @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01046f3c1234f2509abc\r
+    xor.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01046f3c1234da509abcdef0\r
+    xor.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01046f3c1234ea509abcdef0\r
+    xor.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01046f3c1234fa509abcdef0\r
+    xor.l @(0x1234:16,er3),@0xffff9abc:16               ;01046f3c123440509abc\r
+    xor.l @(0x1234:16,er3),@0x9abcdef0:32               ;01046f3c123448509abcdef0\r
+\r
+    xor.l @(0x12345678:32,er3),@er1                         ;78b46b2c123456780150\r
+    xor.l @(0x12345678:32,er3),@(0xc:2,er1)                   ;78b46b2c123456783150\r
+    xor.l @(0x12345678:32,er3),@-er1                        ;78b46b2c12345678b150\r
+    xor.l @(0x12345678:32,er3),@er1+                        ;78b46b2c123456788150\r
+    xor.l @(0x12345678:32,er3),@er1-                        ;78b46b2c12345678a150\r
+    xor.l @(0x12345678:32,er3),@+er1                        ;78b46b2c123456789150\r
+    xor.l @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78b46b2c12345678c1509abc\r
+    xor.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78b46b2c12345678c9509abcdef0\r
+    xor.l @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78b46b2c12345678d2509abc\r
+    xor.l @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78b46b2c12345678e2509abc\r
+    xor.l @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78b46b2c12345678f2509abc\r
+    xor.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78b46b2c12345678da509abcdef0\r
+    xor.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78b46b2c12345678ea509abcdef0\r
+    xor.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78b46b2c12345678fa509abcdef0\r
+    xor.l @(0x12345678:32,er3),@0xffff9abc:16               ;78b46b2c1234567840509abc\r
+    xor.l @(0x12345678:32,er3),@0x9abcdef0:32               ;78b46b2c1234567848509abcdef0\r
+\r
+    xor.l @(0x1234:16,r3l.b),@er1                       ;01056f3c12340150\r
+    xor.l @(0x1234:16,r3l.b),@(0xc:2,er1)                 ;01056f3c12343150\r
+    xor.l @(0x1234:16,r3l.b),@-er1                      ;01056f3c1234b150\r
+    xor.l @(0x1234:16,r3l.b),@er1+                      ;01056f3c12348150\r
+    xor.l @(0x1234:16,r3l.b),@er1-                      ;01056f3c1234a150\r
+    xor.l @(0x1234:16,r3l.b),@+er1                      ;01056f3c12349150\r
+    xor.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01056f3c1234c1509abc\r
+    xor.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01056f3c1234c9509abcdef0\r
+    xor.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01056f3c1234d2509abc\r
+    xor.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01056f3c1234e2509abc\r
+    xor.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01056f3c1234f2509abc\r
+    xor.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01056f3c1234da509abcdef0\r
+    xor.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01056f3c1234ea509abcdef0\r
+    xor.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01056f3c1234fa509abcdef0\r
+    xor.l @(0x1234:16,r3l.b),@0xffff9abc:16             ;01056f3c123440509abc\r
+    xor.l @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01056f3c123448509abcdef0\r
+\r
+    xor.l @(0x1234:16,r3.w),@er1                       ;01066f3c12340150\r
+    xor.l @(0x1234:16,r3.w),@(0xc:2,er1)                 ;01066f3c12343150\r
+    xor.l @(0x1234:16,r3.w),@-er1                      ;01066f3c1234b150\r
+    xor.l @(0x1234:16,r3.w),@er1+                      ;01066f3c12348150\r
+    xor.l @(0x1234:16,r3.w),@er1-                      ;01066f3c1234a150\r
+    xor.l @(0x1234:16,r3.w),@+er1                      ;01066f3c12349150\r
+    xor.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01066f3c1234c1509abc\r
+    xor.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01066f3c1234c9509abcdef0\r
+    xor.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01066f3c1234d2509abc\r
+    xor.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01066f3c1234e2509abc\r
+    xor.l @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01066f3c1234f2509abc\r
+    xor.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01066f3c1234da509abcdef0\r
+    xor.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01066f3c1234ea509abcdef0\r
+    xor.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01066f3c1234fa509abcdef0\r
+    xor.l @(0x1234:16,r3.w),@0xffff9abc:16             ;01066f3c123440509abc\r
+    xor.l @(0x1234:16,r3.w),@0x9abcdef0:32             ;01066f3c123448509abcdef0\r
+\r
+    xor.l @(0x1234:16,er3.l),@er1                       ;01076f3c12340150\r
+    xor.l @(0x1234:16,er3.l),@(0xc:2,er1)                 ;01076f3c12343150\r
+    xor.l @(0x1234:16,er3.l),@-er1                      ;01076f3c1234b150\r
+    xor.l @(0x1234:16,er3.l),@er1+                      ;01076f3c12348150\r
+    xor.l @(0x1234:16,er3.l),@er1-                      ;01076f3c1234a150\r
+    xor.l @(0x1234:16,er3.l),@+er1                      ;01076f3c12349150\r
+    xor.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01076f3c1234c1509abc\r
+    xor.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01076f3c1234c9509abcdef0\r
+    xor.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01076f3c1234d2509abc\r
+    xor.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01076f3c1234e2509abc\r
+    xor.l @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01076f3c1234f2509abc\r
+    xor.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01076f3c1234da509abcdef0\r
+    xor.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01076f3c1234ea509abcdef0\r
+    xor.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01076f3c1234fa509abcdef0\r
+    xor.l @(0x1234:16,er3.l),@0xffff9abc:16             ;01076f3c123440509abc\r
+    xor.l @(0x1234:16,er3.l),@0x9abcdef0:32             ;01076f3c123448509abcdef0\r
+\r
+    xor.l @(0x12345678:32,r3l.b),@er1                       ;78b56b2c123456780150\r
+    xor.l @(0x12345678:32,r3l.b),@(0xc:2,er1)                 ;78b56b2c123456783150\r
+    xor.l @(0x12345678:32,r3l.b),@-er1                      ;78b56b2c12345678b150\r
+    xor.l @(0x12345678:32,r3l.b),@er1+                      ;78b56b2c123456788150\r
+    xor.l @(0x12345678:32,r3l.b),@er1-                      ;78b56b2c12345678a150\r
+    xor.l @(0x12345678:32,r3l.b),@+er1                      ;78b56b2c123456789150\r
+    xor.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78b56b2c12345678c1509abc\r
+    xor.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78b56b2c12345678c9509abcdef0\r
+    xor.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78b56b2c12345678d2509abc\r
+    xor.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78b56b2c12345678e2509abc\r
+    xor.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78b56b2c12345678f2509abc\r
+    xor.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78b56b2c12345678da509abcdef0\r
+    xor.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78b56b2c12345678ea509abcdef0\r
+    xor.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78b56b2c12345678fa509abcdef0\r
+    xor.l @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78b56b2c1234567840509abc\r
+    xor.l @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78b56b2c1234567848509abcdef0\r
+\r
+    xor.l @(0x12345678:32,r3.w),@er1                       ;78b66b2c123456780150\r
+    xor.l @(0x12345678:32,r3.w),@(0xc:2,er1)                 ;78b66b2c123456783150\r
+    xor.l @(0x12345678:32,r3.w),@-er1                      ;78b66b2c12345678b150\r
+    xor.l @(0x12345678:32,r3.w),@er1+                      ;78b66b2c123456788150\r
+    xor.l @(0x12345678:32,r3.w),@er1-                      ;78b66b2c12345678a150\r
+    xor.l @(0x12345678:32,r3.w),@+er1                      ;78b66b2c123456789150\r
+    xor.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78b66b2c12345678c1509abc\r
+    xor.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78b66b2c12345678c9509abcdef0\r
+    xor.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78b66b2c12345678d2509abc\r
+    xor.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78b66b2c12345678e2509abc\r
+    xor.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78b66b2c12345678f2509abc\r
+    xor.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78b66b2c12345678da509abcdef0\r
+    xor.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78b66b2c12345678ea509abcdef0\r
+    xor.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78b66b2c12345678fa509abcdef0\r
+    xor.l @(0x12345678:32,r3.w),@0xffff9abc:16             ;78b66b2c1234567840509abc\r
+    xor.l @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78b66b2c1234567848509abcdef0\r
+\r
+    xor.l @(0x12345678:32,er3.l),@er1                       ;78b76b2c123456780150\r
+    xor.l @(0x12345678:32,er3.l),@(0xc:2,er1)                 ;78b76b2c123456783150\r
+    xor.l @(0x12345678:32,er3.l),@-er1                      ;78b76b2c12345678b150\r
+    xor.l @(0x12345678:32,er3.l),@er1+                      ;78b76b2c123456788150\r
+    xor.l @(0x12345678:32,er3.l),@er1-                      ;78b76b2c12345678a150\r
+    xor.l @(0x12345678:32,er3.l),@+er1                      ;78b76b2c123456789150\r
+    xor.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78b76b2c12345678c1509abc\r
+    xor.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78b76b2c12345678c9509abcdef0\r
+    xor.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78b76b2c12345678d2509abc\r
+    xor.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78b76b2c12345678e2509abc\r
+    xor.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78b76b2c12345678f2509abc\r
+    xor.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78b76b2c12345678da509abcdef0\r
+    xor.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78b76b2c12345678ea509abcdef0\r
+    xor.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78b76b2c12345678fa509abcdef0\r
+    xor.l @(0x12345678:32,er3.l),@0xffff9abc:16             ;78b76b2c1234567840509abc\r
+    xor.l @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78b76b2c1234567848509abcdef0\r
+\r
+    xor.l @0x1234:16,@er1                              ;01046b0c12340150\r
+    xor.l @0x1234:16,@(0xc:2,er1)                        ;01046b0c12343150\r
+    xor.l @0x1234:16,@-er1                             ;01046b0c1234b150\r
+    xor.l @0x1234:16,@er1+                             ;01046b0c12348150\r
+    xor.l @0x1234:16,@er1-                             ;01046b0c1234a150\r
+    xor.l @0x1234:16,@+er1                             ;01046b0c12349150\r
+    xor.l @0x1234:16,@(0xffff9abc:16,er1)              ;01046b0c1234c1509abc\r
+    xor.l @0x1234:16,@(0x9abcdef0:32,er1)              ;01046b0c1234c9509abcdef0\r
+    xor.l @0x1234:16,@(0xffff9abc:16,r2l.b)            ;01046b0c1234d2509abc\r
+    xor.l @0x1234:16,@(0xffff9abc:16,r2.w)            ;01046b0c1234e2509abc\r
+    xor.l @0x1234:16,@(0xffff9abc:16,er2.l)            ;01046b0c1234f2509abc\r
+    xor.l @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;01046b0c1234da509abcdef0\r
+    xor.l @0x1234:16,@(0x9abcdef0:32,r2.w)            ;01046b0c1234ea509abcdef0\r
+    xor.l @0x1234:16,@(0x9abcdef0:32,er2.l)            ;01046b0c1234fa509abcdef0\r
+    xor.l @0x1234:16,@0xffff9abc:16                    ;01046b0c123440509abc\r
+    xor.l @0x1234:16,@0x9abcdef0:32                    ;01046b0c123448509abcdef0\r
+\r
+    xor.l @0x12345678:32,@er1                              ;01046b2c123456780150\r
+    xor.l @0x12345678:32,@(0xc:2,er1)                        ;01046b2c123456783150\r
+    xor.l @0x12345678:32,@-er1                             ;01046b2c12345678b150\r
+    xor.l @0x12345678:32,@er1+                             ;01046b2c123456788150\r
+    xor.l @0x12345678:32,@er1-                             ;01046b2c12345678a150\r
+    xor.l @0x12345678:32,@+er1                             ;01046b2c123456789150\r
+    xor.l @0x12345678:32,@(0xffff9abc:16,er1)              ;01046b2c12345678c1509abc\r
+    xor.l @0x12345678:32,@(0x9abcdef0:32,er1)              ;01046b2c12345678c9509abcdef0\r
+    xor.l @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;01046b2c12345678d2509abc\r
+    xor.l @0x12345678:32,@(0xffff9abc:16,r2.w)            ;01046b2c12345678e2509abc\r
+    xor.l @0x12345678:32,@(0xffff9abc:16,er2.l)            ;01046b2c12345678f2509abc\r
+    xor.l @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;01046b2c12345678da509abcdef0\r
+    xor.l @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;01046b2c12345678ea509abcdef0\r
+    xor.l @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;01046b2c12345678fa509abcdef0\r
+    xor.l @0x12345678:32,@0xffff9abc:16                    ;01046b2c1234567840509abc\r
+    xor.l @0x12345678:32,@0x9abcdef0:32                    ;01046b2c1234567848509abcdef0\r
+\r
+       .end\r
diff --git a/gas/testsuite/gas/h8300/t10_and.exp b/gas/testsuite/gas/h8300/t10_and.exp
new file mode 100644 (file)
index 0000000..d4bf5db
--- /dev/null
@@ -0,0 +1,3002 @@
+#
+# Some h8300sx tests -- t10_and
+#
+
+proc do_t10_and_test {} {
+    set testname "t10_and.s -- h8sx tests"
+
+    gas_start "t10_and.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*   7 0000 E112" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8 0002 7D10E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9 0006 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9      E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10 000c 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10      E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11 0012 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11      E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12 0018 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12      E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13 001e 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13      E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14 0024 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14      1234E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15 002c 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 0036 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16      1234E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17 003e 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17      1234E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18 0046 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18      1234E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19 004e 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20 0058 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21 0062 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 006c 7F12E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23 0070 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23      E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24 0076 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24      5678E012" { set x [expr $x+1]; exp_continue; }
+       -re ".*  25              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.b #0x12:8, ..."
+           } else {
+               fail "$testname: and.b #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  26 007e 1631" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27              " {
+           if [expr $x == 1] then {
+               pass "$testname: and.b r3h, r1h"
+           } else {
+               fail "$testname: and.b r3h, r1h ($x)"
+           }
+       }
+        default        { fail "$testname: and.b r3h, r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  28 0080 7D101630" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29 0084 01793163" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30 0088 01798163" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31 008c 0179B163" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32 0090 01799163" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33 0094 0179A163" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34 0098 0179C163" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35 009e 0179C963" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 00a6 0179D263" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 00ac 0179E263" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38 00b2 0179F263" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39 00b8 0179DA63" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40 00c0 0179EA63" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41 00c8 0179FA63" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42 00d0 7F121630" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43 00d4 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43      1630" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44 00da 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44      56781630" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45              " {
+           if [expr $x == 27] then {
+               pass "$testname: and.b r3h, ..."
+           } else {
+               fail "$testname: and.b r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  46 00e2 7C301601" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47 00e6 017A3361" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48 00ea 017A8361" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49 00ee 017AB361" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50 00f2 017A9361" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51 00f6 017AA361" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52 00fa 017AC161" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53 0100 017AC961" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 0108 017AD261" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 010e 017AE261" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56 0114 017AF261" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57 011a 017ADA61" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58 0122 017AEA61" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59 012a 017AFA61" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60 0132 7E121601" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61 0136 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61      1601" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62 013c 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62      56781601" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63              " {
+           if [expr $x == 27] then {
+               pass "$testname: and.b ..., r1h"
+           } else {
+               fail "$testname: and.b ..., r1h ($x)"
+           }
+       }
+        default        { fail "$testname: and.b ..., r1h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  64 0144 7C350160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65 0148 7C353160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66 014c 7C35B160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67 0150 7C358160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68 0154 7C35A160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 0158 7C359160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70 015c 7C35C160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71 0162 7C35C960" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72 016a 7C35D260" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73 0170 7C35E260" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74 0176 7C35F260" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75 017c 7C35DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76 0184 7C35EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77 018c 7C35FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78 0194 7C354060" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79 019a 7C354860" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80              " {
+           if [expr $x == 26] then {
+               pass "$testname: and.b @er3, ..."
+           } else {
+               fail "$testname: and.b @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  81 01a2 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82 01a8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83 01ae 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84 01b4 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85 01ba 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86 01c0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87 01c6 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88 01ce 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89 01d8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90 01e0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91 01e8 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92 01f0 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 01fa 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94 0204 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95 020e 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96 0216 01776C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.b @-er3, ..."
+           } else {
+               fail "$testname: and.b @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  98 0220 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99 0226 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100 022c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101 0232 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102 0238 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103 023e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104 0244 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105 024c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106 0256 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107 025e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108 0266 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109 026e 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110 0278 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111 0282 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112 028c 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113 0294 01746C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.b @er3+, ..."
+           } else {
+               fail "$testname: and.b @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 115 029e 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116 02a4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117 02aa 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118 02b0 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119 02b6 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120 02bc 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121 02c2 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122 02ca 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123 02d4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124 02dc 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125 02e4 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126 02ec 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127 02f6 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128 0300 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129 030a 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130 0312 01766C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.b @er3-, ..."
+           } else {
+               fail "$testname: and.b @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 132 031c 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133 0322 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134 0328 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135 032e 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136 0334 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137 033a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138 0340 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139 0348 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140 0352 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141 035a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142 0362 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143 036a 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144 0374 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145 037e 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146 0388 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147 0390 01756C3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.b @+er3, ..."
+           } else {
+               fail "$testname: and.b @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 149 039a 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150 03a2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151 03aa 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152 03b2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153 03ba 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154 03c2 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155 03ca 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156 03d4 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157 03e0 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158 03ea 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159 03f4 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160 03fe 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161 040a 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162 0416 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163 0422 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164 042c 01746E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.b @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: and.b @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 166 0438 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167 0442 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168 044c 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169 0456 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170 0460 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171 046a 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172 0474 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173 0480 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174 048e 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175 049a 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176 04a6 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177 04b2 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178 04c0 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179 04ce 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180 04dc 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181 04e8 78346A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.b @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: and.b @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 183 04f6 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184 04fe 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185 0506 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186 050e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187 0516 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188 051e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189 0526 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190 0530 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191 053c 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 191      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192 0546 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193 0550 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194 055a 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195 0566 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196 0572 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197 057e 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198 0588 01756E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.b @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: and.b @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 200 0594 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201 059c 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202 05a4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203 05ac 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204 05b4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205 05bc 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206 05c4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207 05ce 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208 05da 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209 05e4 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 209      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210 05ee 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211 05f8 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212 0604 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213 0610 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214 061c 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215 0626 01766E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.b @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: and.b @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 217 0632 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218 063a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219 0642 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220 064a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221 0652 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222 065a 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223 0662 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224 066c 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225 0678 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226 0682 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227 068c 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 227      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228 0696 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229 06a2 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230 06ae 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231 06ba 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232 06c4 01776E3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.b @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: and.b @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 234 06d0 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235 06da 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236 06e4 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237 06ee 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238 06f8 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239 0702 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240 070c 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241 0718 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242 0726 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243 0732 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244 073e 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245 074a 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 245      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246 0758 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247 0766 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248 0774 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249 0780 78356A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 250              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.b @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: and.b @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 251 078e 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252 0798 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253 07a2 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254 07ac 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255 07b6 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256 07c0 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257 07ca 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258 07d6 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259 07e4 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260 07f0 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261 07fc 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262 0808 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263 0816 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 263      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264 0824 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265 0832 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266 083e 78366A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 267              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.b @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: and.b @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 268 084c 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269 0856 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270 0860 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271 086a 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272 0874 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273 087e 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274 0888 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275 0894 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276 08a2 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277 08ae 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278 08ba 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279 08c6 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280 08d4 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281 08e2 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 281      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282 08f0 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283 08fc 78376A2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 284              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.b @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: and.b @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 285 090a 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 285      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286 0910 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287 0916 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288 091c 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289 0922 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 289      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290 0928 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291 092e 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292 0936 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293 0940 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294 0948 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295 0950 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296 0958 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297 0962 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298 096c 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299 0976 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300 097e 6A151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 301              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.b @0x1234:16, ..."
+           } else {
+               fail "$testname: and.b @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 302 0988 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 302      56780160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303 0990 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303      56783160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304 0998 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304      5678B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305 09a0 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305      56788160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306 09a8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306      5678A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307 09b0 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307      56789160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308 09b8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308      5678C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 308      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309 09c2 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309      5678C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310 09ce 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      5678D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311 09d8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      5678E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312 09e2 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      5678F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313 09ec 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      5678DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314 09f8 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      5678EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315 0a04 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      5678FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316 0a10 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      56784060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317 0a1a 6A351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317      56784860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 318              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.b @0x12345678:32, ..."
+           } else {
+               fail "$testname: and.b @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.b @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 319 0a26 79611234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320 0a2a 015E0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321 0a30 015E3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322 0a36 015E8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323 0a3c 015EB160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324 0a42 015E9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325 0a48 015EA160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326 0a4e 015EC160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 326      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327 0a56 015EC960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328 0a60 015ED260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329 0a68 015EE260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330 0a70 015EF260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331 0a78 015EDA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332 0a82 015EEA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333 0a8c 015EFA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334 0a96 015E4060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335 0a9e 015E4860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 336              " {
+           if [expr $x == 38] then {
+               pass "$testname: and.w #0x1234:16, ..."
+           } else {
+               fail "$testname: and.w #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 337 0aa8 6631" { set x [expr $x+1]; exp_continue; }
+       -re ".* 338              " {
+           if [expr $x == 1] then {
+               pass "$testname: and.w r3, r1"
+           } else {
+               fail "$testname: and.w r3, r1 ($x)"
+           }
+       }
+        default        { fail "$testname: and.w r3, r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 339 0aaa 7D906630" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340 0aae 01593163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 341 0ab2 01598163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 342 0ab6 0159B163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 343 0aba 01599163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 344 0abe 0159A163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345 0ac2 0159C163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346 0ac8 0159C963" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347 0ad0 0159D263" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348 0ad6 0159E263" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349 0adc 0159F263" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350 0ae2 0159DA63" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351 0aea 0159EA63" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352 0af2 0159FA63" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353 0afa 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353      6630" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354 0b00 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354      56786630" { set x [expr $x+1]; exp_continue; }
+       -re ".* 355              " {
+           if [expr $x == 26] then {
+               pass "$testname: and.w r3, ..."
+           } else {
+               fail "$testname: and.w r3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w r3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 356 0b08 7CB06601" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357 0b0c 015A3361" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358 0b10 015A8361" { set x [expr $x+1]; exp_continue; }
+       -re ".* 359 0b14 015AB361" { set x [expr $x+1]; exp_continue; }
+       -re ".* 360 0b18 015A9361" { set x [expr $x+1]; exp_continue; }
+       -re ".* 361 0b1c 015AA361" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362 0b20 015AC161" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 363 0b26 015AC961" { set x [expr $x+1]; exp_continue; }
+       -re ".* 363      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364 0b2e 015AD261" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365 0b34 015AE261" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366 0b3a 015AF261" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367 0b40 015ADA61" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368 0b48 015AEA61" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369 0b50 015AFA61" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370 0b58 6B101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370      6601" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371 0b5e 6B301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371      56786601" { set x [expr $x+1]; exp_continue; }
+       -re ".* 372              " {
+           if [expr $x == 26] then {
+               pass "$testname: and.w ..., r1"
+           } else {
+               fail "$testname: and.w ..., r1 ($x)"
+           }
+       }
+        default        { fail "$testname: and.w ..., r1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 373 0b66 7CB50160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 374 0b6a 7CB53160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 375 0b6e 7CB5B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 376 0b72 7CB58160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 377 0b76 7CB5A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 378 0b7a 7CB59160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379 0b7e 7CB5C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 380 0b84 7CB5C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 380      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 381 0b8c 7CB5D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 381      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382 0b92 7CB5E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383 0b98 7CB5F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384 0b9e 7CB5DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385 0ba6 7CB5EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386 0bae 7CB5FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387 0bb6 7CB54060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388 0bbc 7CB54860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389              " {
+           if [expr $x == 26] then {
+               pass "$testname: and.w @er3, ..."
+           } else {
+               fail "$testname: and.w @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 390 0bc4 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391 0bca 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392 0bd0 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393 0bd6 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394 0bdc 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395 0be2 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396 0be8 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397 0bf0 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398 0bfa 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399 0c02 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 399      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400 0c0a 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401 0c12 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402 0c1c 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403 0c26 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404 0c30 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405 0c38 01576D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.w @-er3, ..."
+           } else {
+               fail "$testname: and.w @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 407 0c42 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408 0c48 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409 0c4e 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410 0c54 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411 0c5a 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412 0c60 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413 0c66 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414 0c6e 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415 0c78 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416 0c80 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417 0c88 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418 0c90 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 418      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419 0c9a 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420 0ca4 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421 0cae 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422 0cb6 01546D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.w @er3+, ..."
+           } else {
+               fail "$testname: and.w @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 424 0cc0 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425 0cc6 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426 0ccc 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427 0cd2 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428 0cd8 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429 0cde 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430 0ce4 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431 0cec 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432 0cf6 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433 0cfe 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434 0d06 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435 0d0e 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436 0d18 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 436      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437 0d22 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438 0d2c 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439 0d34 01566D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.w @er3-, ..."
+           } else {
+               fail "$testname: and.w @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 441 0d3e 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442 0d44 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443 0d4a 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444 0d50 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 445 0d56 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 445      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446 0d5c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447 0d62 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448 0d6a 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449 0d74 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450 0d7c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451 0d84 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452 0d8c 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453 0d96 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454 0da0 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 454      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455 0daa 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456 0db2 01556D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.w @+er3, ..."
+           } else {
+               fail "$testname: and.w @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @+er3, ...($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 458 0dbc 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459 0dc4 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460 0dcc 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461 0dd4 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462 0ddc 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463 0de4 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464 0dec 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465 0df6 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466 0e02 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467 0e0c 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468 0e16 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469 0e20 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470 0e2c 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471 0e38 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472 0e44 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 472      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473 0e4e 01546F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.w @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: and.w @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 475 0e5a 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476 0e64 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477 0e6e 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478 0e78 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479 0e82 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480 0e8c 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481 0e96 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482 0ea2 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483 0eb0 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484 0ebc 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485 0ec8 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486 0ed4 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487 0ee2 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488 0ef0 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489 0efe 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490 0f0a 78346B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 490      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.w @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: and.w @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 492 0f18 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493 0f20 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494 0f28 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495 0f30 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496 0f38 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497 0f40 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498 0f48 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499 0f52 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500 0f5e 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501 0f68 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502 0f72 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503 0f7c 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504 0f88 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505 0f94 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506 0fa0 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507 0faa 01556F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 508              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.w @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: and.w @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 509 0fb6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510 0fbe 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511 0fc6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512 0fce 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 512      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513 0fd6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514 0fde 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515 0fe6 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516 0ff0 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 516      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517 0ffc 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518 1006 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519 1010 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520 101a 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521 1026 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522 1032 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523 103e 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524 1048 01566F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.w @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: and.w @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 526 1054 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527 105c 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528 1064 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529 106c 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530 1074 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531 107c 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532 1084 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533 108e 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534 109a 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535 10a4 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 535      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536 10ae 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537 10b8 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538 10c4 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539 10d0 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540 10dc 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541 10e6 01576F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.w @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: and.w @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 543 10f2 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544 10fc 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545 1106 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546 1110 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547 111a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548 1124 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549 112e 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550 113a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551 1148 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552 1154 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553 1160 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 553      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554 116c 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555 117a 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556 1188 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557 1196 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558 11a2 78356B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.w @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: and.w @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 560 11b0 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561 11ba 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562 11c4 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563 11ce 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564 11d8 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565 11e2 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566 11ec 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567 11f8 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568 1206 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569 1212 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570 121e 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571 122a 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 571      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572 1238 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573 1246 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574 1254 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575 1260 78366B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.w @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: and.w @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 577 126e 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578 1278 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579 1282 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580 128c 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581 1296 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582 12a0 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583 12aa 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584 12b6 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585 12c4 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586 12d0 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587 12dc 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588 12e8 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589 12f6 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590 1304 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 590      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591 1312 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592 131e 78376B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.w @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: and.w @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 594 132c 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595 1332 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596 1338 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597 133e 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598 1344 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599 134a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600 1350 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601 1358 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602 1362 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603 136a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604 1372 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605 137a 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606 1384 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607 138e 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608 1398 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 608      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609 13a0 6B151234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.w @0x1234:16, ..."
+           } else {
+               fail "$testname: and.w @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 611 13aa 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611      56780160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612 13b2 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612      56783160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613 13ba 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613      5678B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614 13c2 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614      56788160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 615 13ca 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 615      5678A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616 13d2 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616      56789160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617 13da 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617      5678C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618 13e4 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618      5678C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619 13f0 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619      5678D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620 13fa 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620      5678E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621 1404 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      5678F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622 140e 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      5678DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623 141a 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      5678EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624 1426 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      5678FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625 1432 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      56784060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626 143c 6B351234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      56784860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 626      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.w @0x12345678:32, ..."
+           } else {
+               fail "$testname: and.w @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.w @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 628 1448 7A611234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629 144e 7A691234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630 1452 010E0168" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631 145a 010E3168" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 632 1462 010E8168" { set x [expr $x+1]; exp_continue; }
+       -re ".* 632      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633 146a 010EB168" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634 1472 010E9168" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635 147a 010EA168" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636 1482 010EC168" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637 148c 010EC968" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638 1498 010ED268" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639 14a2 010EE268" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640 14ac 010EF268" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641 14b6 010EDA68" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642 14c2 010EEA68" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643 14ce 010EFA68" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644 14da 010E4068" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645 14e4 010E4868" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 645      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646 14f0 010E0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647 14f6 010E3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648 14fc 010E8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649 1502 010EB160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650 1508 010E9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651 150e 010EA160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652 1514 010EC160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653 151c 010EC960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654 1526 010ED260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655 152e 010EE260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656 1536 010EF260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657 153e 010EDA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658 1548 010EEA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659 1552 010EFA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660 155c 010E4060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660      9ABC1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661 1564 010E4860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662              " {
+           if [expr $x == 82] then {
+               pass "$testname: and.l #0x1234:16, ..."
+           } else {
+               fail "$testname: and.l #0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l #0x1234:16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 663 156e 01F06631" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664              " {
+           if [expr $x == 1] then {
+               pass "$testname: and.l er3, er1"
+           } else {
+               fail "$testname: and.l er3, er1 ($x)"
+           }
+       }
+        default        { fail "$testname: and.l er3, er1 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 665 1572 01090163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666 1576 01093163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667 157a 01098163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 668 157e 0109B163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 669 1582 01099163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 670 1586 0109A163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671 158a 0109C163" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672 1590 0109C963" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673 1598 0109D263" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674 159e 0109E263" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675 15a4 0109F263" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676 15aa 0109DA63" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677 15b2 0109EA63" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678 15ba 0109FA63" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679 15c2 01094063" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680 15c8 01094863" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 681              " {
+           if [expr $x == 26] then {
+               pass "$testname: and.l er3, ..."
+           } else {
+               fail "$testname: and.l er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 682 15d0 010A0361" { set x [expr $x+1]; exp_continue; }
+       -re ".* 683 15d4 010A3361" { set x [expr $x+1]; exp_continue; }
+       -re ".* 684 15d8 010A8361" { set x [expr $x+1]; exp_continue; }
+       -re ".* 685 15dc 010AB361" { set x [expr $x+1]; exp_continue; }
+       -re ".* 686 15e0 010A9361" { set x [expr $x+1]; exp_continue; }
+       -re ".* 687 15e4 010AA361" { set x [expr $x+1]; exp_continue; }
+       -re ".* 688 15e8 010AC161" { set x [expr $x+1]; exp_continue; }
+       -re ".* 688      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689 15ee 010AC961" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690 15f6 010AD261" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691 15fc 010AE261" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692 1602 010AF261" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693 1608 010ADA61" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694 1610 010AEA61" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695 1618 010AFA61" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696 1620 010A4061" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697 1626 010A4861" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698              " {
+           if [expr $x == 26] then {
+               pass "$testname: and.l @0x12345678:32, ..."
+           } else {
+               fail "$testname: and.l @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @0x12345678:32, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 699 162e 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 699      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700 1634 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 700      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701 163a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702 1640 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703 1646 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704 164c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705 1652 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706 165a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707 1664 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708 166c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709 1674 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710 167c 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711 1686 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712 1690 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713 169a 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714 16a2 0104693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.l @er3, ..."
+           } else {
+               fail "$testname: and.l @er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 716 16ac 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717 16b2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718 16b8 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 718      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719 16be 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720 16c4 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721 16ca 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722 16d0 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723 16d8 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724 16e2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725 16ea 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726 16f2 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727 16fa 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728 1704 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729 170e 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730 1718 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731 1720 0107693C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.l @(0xc:2,er3), ..."
+           } else {
+               fail "$testname: and.l @(0xc:2,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @(0xc:2,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 733 172a 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734 1730 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735 1736 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736 173c 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 736      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737 1742 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738 1748 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739 174e 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740 1756 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741 1760 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742 1768 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743 1770 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744 1778 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745 1782 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746 178c 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747 1796 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748 179e 01076D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.l @-er3, ..."
+           } else {
+               fail "$testname: and.l @-er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @-er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 750 17a8 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751 17ae 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752 17b4 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753 17ba 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754 17c0 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 755 17c6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 755      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756 17cc 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757 17d4 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758 17de 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759 17e6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760 17ee 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761 17f6 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762 1800 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763 180a 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764 1814 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765 181c 01046D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.l @er3+, ..."
+           } else {
+               fail "$testname: and.l @er3+, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @er3+, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 767 1826 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768 182c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769 1832 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770 1838 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771 183e 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772 1844 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773 184a 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 773      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774 1852 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775 185c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776 1864 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777 186c 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778 1874 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779 187e 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780 1888 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781 1892 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782 189a 01066D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.l @er3-, ..."
+           } else {
+               fail "$testname: and.l @er3-, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @er3-, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 784 18a4 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785 18aa 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786 18b0 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787 18b6 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788 18bc 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789 18c2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790 18c8 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791 18d0 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 791      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792 18da 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793 18e2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794 18ea 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795 18f2 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796 18fc 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797 1906 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798 1910 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799 1918 01056D3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800              " {
+           if [expr $x == 37] then {
+               pass "$testname: and.l @+er3, ..."
+           } else {
+               fail "$testname: and.l @+er3, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @+er3, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 801 1922 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802 192a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803 1932 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804 193a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805 1942 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806 194a 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807 1952 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808 195c 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809 1968 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810 1972 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 810      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811 197c 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812 1986 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813 1992 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814 199e 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815 19aa 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816 19b4 01046F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.l @(0x1234:16,er3), ..."
+           } else {
+               fail "$testname: and.l @(0x1234:16,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @(0x1234:16,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 818 19c0 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819 19ca 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820 19d4 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821 19de 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822 19e8 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823 19f2 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824 19fc 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825 1a08 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826 1a16 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827 1a22 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828 1a2e 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 828      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829 1a3a 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830 1a48 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831 1a56 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832 1a64 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833 1a70 78B46B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.l @(0x12345678:32,er3), ..."
+           } else {
+               fail "$testname: and.l @(0x12345678:32,er3), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @(0x12345678:32,er3), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 835 1a7e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836 1a86 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837 1a8e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838 1a96 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839 1a9e 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840 1aa6 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841 1aae 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842 1ab8 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843 1ac4 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844 1ace 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845 1ad8 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846 1ae2 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 846      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847 1aee 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848 1afa 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849 1b06 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850 1b10 01056F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.l @(0x1234:16,r3l.b), ..."
+           } else {
+               fail "$testname: and.l @(0x1234:16,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @(0x1234:16,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 852 1b1c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853 1b24 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854 1b2c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855 1b34 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856 1b3c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857 1b44 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858 1b4c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859 1b56 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860 1b62 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861 1b6c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862 1b76 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863 1b80 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864 1b8c 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865 1b98 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 865      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866 1ba4 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867 1bae 01066F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.l @(0x1234:16,r3.w), ..."
+           } else {
+               fail "$testname: and.l @(0x1234:16,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @(0x1234:16,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 869 1bba 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870 1bc2 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871 1bca 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872 1bd2 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873 1bda 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874 1be2 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875 1bea 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876 1bf4 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877 1c00 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878 1c0a 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879 1c14 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880 1c1e 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881 1c2a 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882 1c36 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883 1c42 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 883      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884 1c4c 01076F3C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.l @(0x1234:16,er3.l), ..."
+           } else {
+               fail "$testname: and.l @(0x1234:16,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @(0x1234:16,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 886 1c58 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887 1c62 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888 1c6c 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889 1c76 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890 1c80 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891 1c8a 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892 1c94 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893 1ca0 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894 1cae 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895 1cba 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896 1cc6 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897 1cd2 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898 1ce0 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899 1cee 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900 1cfc 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901 1d08 78B56B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 901      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.l @(0x12345678:32,r3l.b), ..."
+           } else {
+               fail "$testname: and.l @(0x12345678:32,r3l.b), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @(0x12345678:32,r3l.b), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 903 1d16 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904 1d20 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905 1d2a 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906 1d34 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907 1d3e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908 1d48 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909 1d52 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910 1d5e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911 1d6c 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912 1d78 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913 1d84 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914 1d90 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915 1d9e 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916 1dac 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917 1dba 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918 1dc6 78B66B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.l @(0x12345678:32,r3.w), ..."
+           } else {
+               fail "$testname: and.l @(0x12345678:32,r3.w), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @(0x12345678:32,r3.w), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 920 1dd4 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 920      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921 1dde 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922 1de8 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923 1df2 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924 1dfc 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925 1e06 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926 1e10 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927 1e1c 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928 1e2a 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929 1e36 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930 1e42 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931 1e4e 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932 1e5c 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933 1e6a 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934 1e78 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935 1e84 78B76B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.l @(0x12345678:32,er3.l), ..."
+           } else {
+               fail "$testname: and.l @(0x12345678:32,er3.l), ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @(0x12345678:32,er3.l), ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 937 1e92 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937      12340160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938 1e9a 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 938      12343160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939 1ea2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939      1234B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940 1eaa 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940      12348160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941 1eb2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941      1234A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942 1eba 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942      12349160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943 1ec2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943      1234C160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944 1ecc 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944      1234C960" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945 1ed8 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945      1234D260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946 1ee2 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946      1234E260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947 1eec 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947      1234F260" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948 1ef6 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948      1234DA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949 1f02 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949      1234EA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950 1f0e 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      1234FA60" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951 1f1a 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      12344060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      9ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952 1f24 01046B0C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      12344860" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      9ABCDEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953              " {
+           if [expr $x == 42] then {
+               pass "$testname: and.l @0x1234:16, ..."
+           } else {
+               fail "$testname: and.l @0x1234:16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @0x1234:16, ... ($x)" }
+    }
+    # FIXME return early, expect bombs out on the next group.
+    return;
+    set x 0
+    expect {
+       -re ".* 954 1f30 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      0160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955 1f3a 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955      3160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956 1f44 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 956      B160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957 1f4e 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957      8160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958 1f58 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958      A160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959 1f62 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959      9160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960 1f6c 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960      C1609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961 1f78 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      C9609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962 1f86 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962      D2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963 1f92 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963      E2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964 1f9e 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      F2609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965 1faa 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      DA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966 1fb8 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      EA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967 1fc6 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      FA609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968 1fd4 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      40609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969 1fe0 01046B2C" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      48609ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      DEF0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970              " {
+           if [expr $x == 53] then {
+               pass "$testname: and.l @0x12345678:32, ..."
+           } else {
+               fail "$testname: and.l @0x12345678:32, ... ($x)"
+           }
+       }
+        default        { fail "$testname: and.l @0x12345678:32, ... ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t10_and_test
+}
+
diff --git a/gas/testsuite/gas/h8300/t10_and.s b/gas/testsuite/gas/h8300/t10_and.s
new file mode 100644 (file)
index 0000000..9fcb261
--- /dev/null
@@ -0,0 +1,971 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;log_1\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+_start:\r
+    and.b #0x12:8,r1h            ;e112\r
+    and.b #0x12:8,@er1          ;7d10e012\r
+    and.b #0x12:8,@(0x3:2,er1)    ;01776818e012\r
+    and.b #0x12:8,@er1+         ;01746c18e012\r
+    and.b #0x12:8,@-er1         ;01776c18e012\r
+    and.b #0x12:8,@+er1         ;01756c18e012\r
+    and.b #0x12:8,@er1-         ;01766c18e012\r
+    and.b #0x12:8,@(0x1234:16,er1)   ;01746e181234e012\r
+    and.b #0x12:8,@(0x12345678:32,er1)   ;78146a2812345678e012\r
+    and.b #0x12:8,@(0x1234:16,r2l.b) ;01756e281234e012\r
+    and.b #0x12:8,@(0x1234:16,r2.w) ;01766e281234e012\r
+    and.b #0x12:8,@(0x1234:16,er2.l) ;01776e281234e012\r
+    and.b #0x12:8,@(0x12345678:32,r2l.b) ;78256a2812345678e012\r
+    and.b #0x12:8,@(0x12345678:32,r2.w) ;78266a2812345678e012\r
+    and.b #0x12:8,@(0x12345678:32,er2.l) ;78276a2812345678e012\r
+    and.b #0x12:8,@0xffffff12:8         ;7f12e012\r
+    and.b #0x12:8,@0x1234:16        ;6a181234e012\r
+    and.b #0x12:8,@0x12345678:32        ;6a3812345678e012\r
+\r
+    and.b r3h,r1h              ;1631\r
+\r
+    and.b r3h,@er1            ;7d101630\r
+    and.b r3h,@(0x3:2,er1)      ;01793163\r
+    and.b r3h,@er1+           ;01798163\r
+    and.b r3h,@-er1           ;0179b163\r
+    and.b r3h,@+er1           ;01799163\r
+    and.b r3h,@er1-           ;0179a163\r
+    and.b r3h,@(0x1234:16,er1)     ;0179c1631234\r
+    and.b r3h,@(0x12345678:32,er1)     ;0179c96312345678\r
+    and.b r3h,@(0x1234:16,r2l.b)   ;0179d2631234\r
+    and.b r3h,@(0x1234:16,r2.w)   ;0179e2631234\r
+    and.b r3h,@(0x1234:16,er2.l)   ;0179f2631234\r
+    and.b r3h,@(0x12345678:32,r2l.b)   ;0179da6312345678\r
+    and.b r3h,@(0x12345678:32,r2.w)   ;0179ea6312345678\r
+    and.b r3h,@(0x12345678:32,er2.l)   ;0179fa6312345678\r
+    and.b r3h,@0xffffff12:8           ;7f121630\r
+    and.b r3h,@0x1234:16          ;6a1812341630\r
+    and.b r3h,@0x12345678:32           ;6a38123456781630\r
+\r
+    and.b @er3,r1h            ;7c301601\r
+    and.b @(0x3:2,er3),r1h     ;017a3361\r
+    and.b @er3+,r1h          ;017a8361\r
+    and.b @-er3,r1h          ;017ab361\r
+    and.b @+er3,r1h          ;017a9361\r
+    and.b @er3-,r1h          ;017aa361\r
+    and.b @(0x1234:16,er1),r1h     ;017ac1611234\r
+    and.b @(0x12345678:32,er1),r1h     ;017ac96112345678\r
+    and.b @(0x1234:16,r2l.b),r1h   ;017ad2611234\r
+    and.b @(0x1234:16,r2.w),r1h   ;017ae2611234\r
+    and.b @(0x1234:16,er2.l),r1h   ;017af2611234\r
+    and.b @(0x12345678:32,r2l.b),r1h   ;017ada6112345678\r
+    and.b @(0x12345678:32,r2.w),r1h   ;017aea6112345678\r
+    and.b @(0x12345678:32,er2.l),r1h   ;017afa6112345678\r
+    and.b @0xffffff12:8,r1h           ;7e121601\r
+    and.b @0x1234:16,r1h          ;6a1012341601\r
+    and.b @0x12345678:32,r1h          ;6a30123456781601\r
+\r
+    and.b @er3,@er1                                ;7c350160\r
+    and.b @er3,@(3:2,er1)                          ;7c353160\r
+    and.b @er3,@-er1                               ;7c35b160\r
+    and.b @er3,@er1+                               ;7c358160\r
+    and.b @er3,@er1-                               ;7c35a160\r
+    and.b @er3,@+er1                               ;7c359160\r
+    and.b @er3,@(0xffff9abc:16,er1)                ;7c35c1609abc\r
+    and.b @er3,@(0x9abcdef0:32,er1)                ;7c35c9609abcdef0\r
+    and.b @er3,@(0xffff9abc:16,r2l.b)              ;7c35d2609abc\r
+    and.b @er3,@(0xffff9abc:16,r2.w)              ;7c35e2609abc\r
+    and.b @er3,@(0xffff9abc:16,er2.l)              ;7c35f2609abc\r
+    and.b @er3,@(0x9abcdef0:32,r2l.b)              ;7c35da609abcdef0\r
+    and.b @er3,@(0x9abcdef0:32,r2.w)              ;7c35ea609abcdef0\r
+    and.b @er3,@(0x9abcdef0:32,er2.l)              ;7c35fa609abcdef0\r
+    and.b @er3,@0xffff9abc:16                      ;7c3540609abc\r
+    and.b @er3,@0x9abcdef0:32                      ;7c3548609abcdef0\r
+\r
+    and.b @-er3,@er1                               ;01776c3c0160\r
+    and.b @-er3,@(3:2,er1)                         ;01776c3c3160\r
+    and.b @-er3,@-er1                              ;01776c3cb160\r
+    and.b @-er3,@er1+                              ;01776c3c8160\r
+    and.b @-er3,@er1-                              ;01776c3ca160\r
+    and.b @-er3,@+er1                              ;01776c3c9160\r
+    and.b @-er3,@(0xffff9abc:16,er1)               ;01776c3cc1609abc\r
+    and.b @-er3,@(0x9abcdef0:32,er1)               ;01776c3cc9609abcdef0\r
+    and.b @-er3,@(0xffff9abc:16,r2l.b)             ;01776c3cd2609abc\r
+    and.b @-er3,@(0xffff9abc:16,r2.w)             ;01776c3ce2609abc\r
+    and.b @-er3,@(0xffff9abc:16,er2.l)             ;01776c3cf2609abc\r
+    and.b @-er3,@(0x9abcdef0:32,r2l.b)             ;01776c3cda609abcdef0\r
+    and.b @-er3,@(0x9abcdef0:32,r2.w)             ;01776c3cea609abcdef0\r
+    and.b @-er3,@(0x9abcdef0:32,er2.l)             ;01776c3cfa609abcdef0\r
+    and.b @-er3,@0xffff9abc:16                     ;01776c3c40609abc\r
+    and.b @-er3,@0x9abcdef0:32                     ;01776c3c48609abcdef0\r
+\r
+    and.b @er3+,@er1                               ;01746c3c0160\r
+    and.b @er3+,@(3:2,er1)                         ;01746c3c3160\r
+    and.b @er3+,@-er1                              ;01746c3cb160\r
+    and.b @er3+,@er1+                              ;01746c3c8160\r
+    and.b @er3+,@er1-                              ;01746c3ca160\r
+    and.b @er3+,@+er1                              ;01746c3c9160\r
+    and.b @er3+,@(0xffff9abc:16,er1)               ;01746c3cc1609abc\r
+    and.b @er3+,@(0x9abcdef0:32,er1)               ;01746c3cc9609abcdef0\r
+    and.b @er3+,@(0xffff9abc:16,r2l.b)             ;01746c3cd2609abc\r
+    and.b @er3+,@(0xffff9abc:16,r2.w)             ;01746c3ce2609abc\r
+    and.b @er3+,@(0xffff9abc:16,er2.l)             ;01746c3cf2609abc\r
+    and.b @er3+,@(0x9abcdef0:32,r2l.b)             ;01746c3cda609abcdef0\r
+    and.b @er3+,@(0x9abcdef0:32,r2.w)             ;01746c3cea609abcdef0\r
+    and.b @er3+,@(0x9abcdef0:32,er2.l)             ;01746c3cfa609abcdef0\r
+    and.b @er3+,@0xffff9abc:16                     ;01746c3c40609abc\r
+    and.b @er3+,@0x9abcdef0:32                     ;01746c3c48609abcdef0\r
+\r
+    and.b @er3-,@er1                               ;01766c3c0160\r
+    and.b @er3-,@(3:2,er1)                         ;01766c3c3160\r
+    and.b @er3-,@-er1                              ;01766c3cb160\r
+    and.b @er3-,@er1+                              ;01766c3c8160\r
+    and.b @er3-,@er1-                              ;01766c3ca160\r
+    and.b @er3-,@+er1                              ;01766c3c9160\r
+    and.b @er3-,@(0xffff9abc:16,er1)               ;01766c3cc1609abc\r
+    and.b @er3-,@(0x9abcdef0:32,er1)               ;01766c3cc9609abcdef0\r
+    and.b @er3-,@(0xffff9abc:16,r2l.b)             ;01766c3cd2609abc\r
+    and.b @er3-,@(0xffff9abc:16,r2.w)             ;01766c3ce2609abc\r
+    and.b @er3-,@(0xffff9abc:16,er2.l)             ;01766c3cf2609abc\r
+    and.b @er3-,@(0x9abcdef0:32,r2l.b)             ;01766c3cda609abcdef0\r
+    and.b @er3-,@(0x9abcdef0:32,r2.w)             ;01766c3cea609abcdef0\r
+    and.b @er3-,@(0x9abcdef0:32,er2.l)             ;01766c3cfa609abcdef0\r
+    and.b @er3-,@0xffff9abc:16                     ;01766c3c40609abc\r
+    and.b @er3-,@0x9abcdef0:32                     ;01766c3c48609abcdef0\r
+\r
+    and.b @+er3,@er1                               ;01756c3c0160\r
+    and.b @+er3,@(3:2,er1)                         ;01756c3c3160\r
+    and.b @+er3,@-er1                              ;01756c3cb160\r
+    and.b @+er3,@er1+                              ;01756c3c8160\r
+    and.b @+er3,@er1-                              ;01756c3ca160\r
+    and.b @+er3,@+er1                              ;01756c3c9160\r
+    and.b @+er3,@(0xffff9abc:16,er1)               ;01756c3cc1609abc\r
+    and.b @+er3,@(0x9abcdef0:32,er1)               ;01756c3cc9609abcdef0\r
+    and.b @+er3,@(0xffff9abc:16,r2l.b)             ;01756c3cd2609abc\r
+    and.b @+er3,@(0xffff9abc:16,r2.w)             ;01756c3ce2609abc\r
+    and.b @+er3,@(0xffff9abc:16,er2.l)             ;01756c3cf2609abc\r
+    and.b @+er3,@(0x9abcdef0:32,r2l.b)             ;01756c3cda609abcdef0\r
+    and.b @+er3,@(0x9abcdef0:32,r2.w)             ;01756c3cea609abcdef0\r
+    and.b @+er3,@(0x9abcdef0:32,er2.l)             ;01756c3cfa609abcdef0\r
+    and.b @+er3,@0xffff9abc:16                     ;01756c3c40609abc\r
+    and.b @+er3,@0x9abcdef0:32                     ;01756c3c48609abcdef0\r
+\r
+    and.b @(0x1234:16,er3),@er1                         ;01746e3c12340160\r
+    and.b @(0x1234:16,er3),@(3:2,er1)                   ;01746e3c12343160\r
+    and.b @(0x1234:16,er3),@-er1                        ;01746e3c1234b160\r
+    and.b @(0x1234:16,er3),@er1+                        ;01746e3c12348160\r
+    and.b @(0x1234:16,er3),@er1-                        ;01746e3c1234a160\r
+    and.b @(0x1234:16,er3),@+er1                        ;01746e3c12349160\r
+    and.b @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01746e3c1234c1609abc\r
+    and.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01746e3c1234c9609abcdef0\r
+    and.b @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01746e3c1234d2609abc\r
+    and.b @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01746e3c1234e2609abc\r
+    and.b @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01746e3c1234f2609abc\r
+    and.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01746e3c1234da609abcdef0\r
+    and.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01746e3c1234ea609abcdef0\r
+    and.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01746e3c1234fa609abcdef0\r
+    and.b @(0x1234:16,er3),@0xffff9abc:16               ;01746e3c123440609abc\r
+    and.b @(0x1234:16,er3),@0x9abcdef0:32               ;01746e3c123448609abcdef0\r
+\r
+    and.b @(0x12345678:32,er3),@er1                         ;78346a2c123456780160\r
+    and.b @(0x12345678:32,er3),@(3:2,er1)                   ;78346a2c123456783160\r
+    and.b @(0x12345678:32,er3),@-er1                        ;78346a2c12345678b160\r
+    and.b @(0x12345678:32,er3),@er1+                        ;78346a2c123456788160\r
+    and.b @(0x12345678:32,er3),@er1-                        ;78346a2c12345678a160\r
+    and.b @(0x12345678:32,er3),@+er1                        ;78346a2c123456789160\r
+    and.b @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78346a2c12345678c1609abc\r
+    and.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78346a2c12345678c9609abcdef0\r
+    and.b @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78346a2c12345678d2609abc\r
+    and.b @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78346a2c12345678e2609abc\r
+    and.b @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78346a2c12345678f2609abc\r
+    and.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78346a2c12345678da609abcdef0\r
+    and.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78346a2c12345678ea609abcdef0\r
+    and.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78346a2c12345678fa609abcdef0\r
+    and.b @(0x12345678:32,er3),@0xffff9abc:16               ;78346a2c1234567840609abc\r
+    and.b @(0x12345678:32,er3),@0x9abcdef0:32               ;78346a2c1234567848609abcdef0\r
+\r
+    and.b @(0x1234:16,r3l.b),@er1                       ;01756e3c12340160\r
+    and.b @(0x1234:16,r3l.b),@(3:2,er1)                 ;01756e3c12343160\r
+    and.b @(0x1234:16,r3l.b),@-er1                      ;01756e3c1234b160\r
+    and.b @(0x1234:16,r3l.b),@er1+                      ;01756e3c12348160\r
+    and.b @(0x1234:16,r3l.b),@er1-                      ;01756e3c1234a160\r
+    and.b @(0x1234:16,r3l.b),@+er1                      ;01756e3c12349160\r
+    and.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01756e3c1234c1609abc\r
+    and.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01756e3c1234c9609abcdef0\r
+    and.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01756e3c1234d2609abc\r
+    and.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01756e3c1234e2609abc\r
+    and.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01756e3c1234f2609abc\r
+    and.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01756e3c1234da609abcdef0\r
+    and.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01756e3c1234ea609abcdef0\r
+    and.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01756e3c1234fa609abcdef0\r
+    and.b @(0x1234:16,r3l.b),@0xffff9abc:16             ;01756e3c123440609abc\r
+    and.b @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01756e3c123448609abcdef0\r
+\r
+    and.b @(0x1234:16,r3.w),@er1                       ;01766e3c12340160\r
+    and.b @(0x1234:16,r3.w),@(3:2,er1)                 ;01766e3c12343160\r
+    and.b @(0x1234:16,r3.w),@-er1                      ;01766e3c1234b160\r
+    and.b @(0x1234:16,r3.w),@er1+                      ;01766e3c12348160\r
+    and.b @(0x1234:16,r3.w),@er1-                      ;01766e3c1234a160\r
+    and.b @(0x1234:16,r3.w),@+er1                      ;01766e3c12349160\r
+    and.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01766e3c1234c1609abc\r
+    and.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01766e3c1234c9609abcdef0\r
+    and.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01766e3c1234d2609abc\r
+    and.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01766e3c1234e2609abc\r
+    and.b @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01766e3c1234f2609abc\r
+    and.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01766e3c1234da609abcdef0\r
+    and.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01766e3c1234ea609abcdef0\r
+    and.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01766e3c1234fa609abcdef0\r
+    and.b @(0x1234:16,r3.w),@0xffff9abc:16             ;01766e3c123440609abc\r
+    and.b @(0x1234:16,r3.w),@0x9abcdef0:32             ;01766e3c123448609abcdef0\r
+\r
+    and.b @(0x1234:16,er3.l),@er1                       ;01776e3c12340160\r
+    and.b @(0x1234:16,er3.l),@(3:2,er1)                 ;01776e3c12343160\r
+    and.b @(0x1234:16,er3.l),@-er1                      ;01776e3c1234b160\r
+    and.b @(0x1234:16,er3.l),@er1+                      ;01776e3c12348160\r
+    and.b @(0x1234:16,er3.l),@er1-                      ;01776e3c1234a160\r
+    and.b @(0x1234:16,er3.l),@+er1                      ;01776e3c12349160\r
+    and.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01776e3c1234c1609abc\r
+    and.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01776e3c1234c9609abcdef0\r
+    and.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01776e3c1234d2609abc\r
+    and.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01776e3c1234e2609abc\r
+    and.b @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01776e3c1234f2609abc\r
+    and.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01776e3c1234da609abcdef0\r
+    and.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01776e3c1234ea609abcdef0\r
+    and.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01776e3c1234fa609abcdef0\r
+    and.b @(0x1234:16,er3.l),@0xffff9abc:16             ;01776e3c123440609abc\r
+    and.b @(0x1234:16,er3.l),@0x9abcdef0:32             ;01776e3c123448609abcdef0\r
+\r
+    and.b @(0x12345678:32,r3l.b),@er1                       ;78356a2c123456780160\r
+    and.b @(0x12345678:32,r3l.b),@(3:2,er1)                 ;78356a2c123456783160\r
+    and.b @(0x12345678:32,r3l.b),@-er1                      ;78356a2c12345678b160\r
+    and.b @(0x12345678:32,r3l.b),@er1+                      ;78356a2c123456788160\r
+    and.b @(0x12345678:32,r3l.b),@er1-                      ;78356a2c12345678a160\r
+    and.b @(0x12345678:32,r3l.b),@+er1                      ;78356a2c123456789160\r
+    and.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78356a2c12345678c1609abc\r
+    and.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78356a2c12345678c9609abcdef0\r
+    and.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78356a2c12345678d2609abc\r
+    and.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78356a2c12345678e2609abc\r
+    and.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78356a2c12345678f2609abc\r
+    and.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78356a2c12345678da609abcdef0\r
+    and.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78356a2c12345678ea609abcdef0\r
+    and.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78356a2c12345678fa609abcdef0\r
+    and.b @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78356a2c1234567840609abc\r
+    and.b @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78356a2c1234567848609abcdef0\r
+\r
+    and.b @(0x12345678:32,r3.w),@er1                       ;78366a2c123456780160\r
+    and.b @(0x12345678:32,r3.w),@(3:2,er1)                 ;78366a2c123456783160\r
+    and.b @(0x12345678:32,r3.w),@-er1                      ;78366a2c12345678b160\r
+    and.b @(0x12345678:32,r3.w),@er1+                      ;78366a2c123456788160\r
+    and.b @(0x12345678:32,r3.w),@er1-                      ;78366a2c12345678a160\r
+    and.b @(0x12345678:32,r3.w),@+er1                      ;78366a2c123456789160\r
+    and.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78366a2c12345678c1609abc\r
+    and.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78366a2c12345678c9609abcdef0\r
+    and.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78366a2c12345678d2609abc\r
+    and.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78366a2c12345678e2609abc\r
+    and.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78366a2c12345678f2609abc\r
+    and.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78366a2c12345678da609abcdef0\r
+    and.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78366a2c12345678ea609abcdef0\r
+    and.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78366a2c12345678fa609abcdef0\r
+    and.b @(0x12345678:32,r3.w),@0xffff9abc:16             ;78366a2c1234567840609abc\r
+    and.b @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78366a2c1234567848609abcdef0\r
+\r
+    and.b @(0x12345678:32,er3.l),@er1                       ;78376a2c123456780160\r
+    and.b @(0x12345678:32,er3.l),@(3:2,er1)                 ;78376a2c123456783160\r
+    and.b @(0x12345678:32,er3.l),@-er1                      ;78376a2c12345678b160\r
+    and.b @(0x12345678:32,er3.l),@er1+                      ;78376a2c123456788160\r
+    and.b @(0x12345678:32,er3.l),@er1-                      ;78376a2c12345678a160\r
+    and.b @(0x12345678:32,er3.l),@+er1                      ;78376a2c123456789160\r
+    and.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78376a2c12345678c1609abc\r
+    and.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78376a2c12345678c9609abcdef0\r
+    and.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78376a2c12345678d2609abc\r
+    and.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78376a2c12345678e2609abc\r
+    and.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78376a2c12345678f2609abc\r
+    and.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78376a2c12345678da609abcdef0\r
+    and.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78376a2c12345678ea609abcdef0\r
+    and.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78376a2c12345678fa609abcdef0\r
+    and.b @(0x12345678:32,er3.l),@0xffff9abc:16             ;78376a2c1234567840609abc\r
+    and.b @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78376a2c1234567848609abcdef0\r
+\r
+    and.b @0x1234:16,@er1                              ;6a1512340160\r
+    and.b @0x1234:16,@(3:2,er1)                        ;6a1512343160\r
+    and.b @0x1234:16,@-er1                             ;6a151234b160\r
+    and.b @0x1234:16,@er1+                             ;6a1512348160\r
+    and.b @0x1234:16,@er1-                             ;6a151234a160\r
+    and.b @0x1234:16,@+er1                             ;6a1512349160\r
+    and.b @0x1234:16,@(0xffff9abc:16,er1)              ;6a151234c1609abc\r
+    and.b @0x1234:16,@(0x9abcdef0:32,er1)              ;6a151234c9609abcdef0\r
+    and.b @0x1234:16,@(0xffff9abc:16,r2l.b)            ;6a151234d2609abc\r
+    and.b @0x1234:16,@(0xffff9abc:16,r2.w)            ;6a151234e2609abc\r
+    and.b @0x1234:16,@(0xffff9abc:16,er2.l)            ;6a151234f2609abc\r
+    and.b @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;6a151234da609abcdef0\r
+    and.b @0x1234:16,@(0x9abcdef0:32,r2.w)            ;6a151234ea609abcdef0\r
+    and.b @0x1234:16,@(0x9abcdef0:32,er2.l)            ;6a151234fa609abcdef0\r
+    and.b @0x1234:16,@0xffff9abc:16                    ;6a15123440609abc\r
+    and.b @0x1234:16,@0x9abcdef0:32                    ;6a15123448609abcdef0\r
+\r
+    and.b @0x12345678:32,@er1                              ;6a35123456780160\r
+    and.b @0x12345678:32,@(3:2,er1)                        ;6a35123456783160\r
+    and.b @0x12345678:32,@-er1                             ;6a3512345678b160\r
+    and.b @0x12345678:32,@er1+                             ;6a35123456788160\r
+    and.b @0x12345678:32,@er1-                             ;6a3512345678a160\r
+    and.b @0x12345678:32,@+er1                             ;6a35123456789160\r
+    and.b @0x12345678:32,@(0xffff9abc:16,er1)              ;6a3512345678c1609abc\r
+    and.b @0x12345678:32,@(0x9abcdef0:32,er1)              ;6a3512345678c9609abcdef0\r
+    and.b @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;6a3512345678d2609abc\r
+    and.b @0x12345678:32,@(0xffff9abc:16,r2.w)            ;6a3512345678e2609abc\r
+    and.b @0x12345678:32,@(0xffff9abc:16,er2.l)            ;6a3512345678f2609abc\r
+    and.b @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;6a3512345678da609abcdef0\r
+    and.b @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;6a3512345678ea609abcdef0\r
+    and.b @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;6a3512345678fa609abcdef0\r
+    and.b @0x12345678:32,@0xffff9abc:16                    ;6a351234567840609abc\r
+    and.b @0x12345678:32,@0x9abcdef0:32                    ;6a351234567848609abcdef0\r
+\r
+    and.w #0x1234:16,r1           ;79611234\r
+    and.w #0x1234:16,@er1          ;015e01601234\r
+    and.w #0x1234:16,@(0x6:2,er1) ;015e31601234\r
+    and.w #0x1234:16,@er1+         ;015e81601234\r
+    and.w #0x1234:16,@-er1         ;015eb1601234\r
+    and.w #0x1234:16,@+er1         ;015e91601234\r
+    and.w #0x1234:16,@er1-         ;015ea1601234\r
+    and.w #0x1234:16,@(0xffff9abc:16,er1)   ;015ec1609abc1234\r
+    and.w #0x1234:16,@(0x9abcdef0:32,er1)   ;015ec9609abcdef01234\r
+    and.w #0x1234:16,@(0xffff9abc:16,r2l.b) ;015ed2609abc1234\r
+    and.w #0x1234:16,@(0xffff9abc:16,r2.w) ;015ee2609abc1234\r
+    and.w #0x1234:16,@(0xffff9abc:16,er2.l) ;015ef2609abc1234\r
+    and.w #0x1234:16,@(0x9abcdef0:32,r2l.b) ;015eda609abcdef01234\r
+    and.w #0x1234:16,@(0x9abcdef0:32,r2.w) ;015eea609abcdef01234\r
+    and.w #0x1234:16,@(0x9abcdef0:32,er2.l) ;015efa609abcdef01234\r
+    and.w #0x1234:16,@0xffff9abc:16         ;015e40609abc1234\r
+    and.w #0x1234:16,@0x9abcdef0:32         ;015e48609abcdef01234\r
+\r
+    and.w r3,r1              ;6631\r
+\r
+    and.w r3,@er1            ;7d906630\r
+    and.w r3,@(0x6:2,er1)   ;01593163\r
+    and.w r3,@er1+           ;01598163\r
+    and.w r3,@-er1           ;0159b163\r
+    and.w r3,@+er1           ;01599163\r
+    and.w r3,@er1-           ;0159a163\r
+    and.w r3,@(0x1234:16,er1)     ;0159c1631234\r
+    and.w r3,@(0x12345678:32,er1)     ;0159c96312345678\r
+    and.w r3,@(0x1234:16,r2l.b)   ;0159d2631234\r
+    and.w r3,@(0x1234:16,r2.w)   ;0159e2631234\r
+    and.w r3,@(0x1234:16,er2.l)   ;0159f2631234\r
+    and.w r3,@(0x12345678:32,r2l.b)   ;0159da6312345678\r
+    and.w r3,@(0x12345678:32,r2.w)   ;0159ea6312345678\r
+    and.w r3,@(0x12345678:32,er2.l)   ;0159fa6312345678\r
+    and.w r3,@0x1234:16          ;6b1812346630\r
+    and.w r3,@0x12345678:32          ;6b38123456786630\r
+\r
+    and.w @er3,r1            ;7cb06601\r
+    and.w @(0x6:2,er3),r1  ;015a3361\r
+    and.w @er3+,r1          ;015a8361\r
+    and.w @-er3,r1          ;015ab361\r
+    and.w @+er3,r1          ;015a9361\r
+    and.w @er3-,r1          ;015aa361\r
+    and.w @(0x1234:16,er1),r1     ;015ac1611234\r
+    and.w @(0x12345678:32,er1),r1     ;015ac96112345678\r
+    and.w @(0x1234:16,r2l.b),r1   ;015ad2611234\r
+    and.w @(0x1234:16,r2.w),r1   ;015ae2611234\r
+    and.w @(0x1234:16,er2.l),r1   ;015af2611234\r
+    and.w @(0x12345678:32,r2l.b),r1   ;015ada6112345678\r
+    and.w @(0x12345678:32,r2.w),r1   ;015aea6112345678\r
+    and.w @(0x12345678:32,er2.l),r1   ;015afa6112345678\r
+    and.w @0x1234:16,r1          ;6b1012346601\r
+    and.w @0x12345678:32,r1          ;6b30123456786601\r
+\r
+    and.w @er3,@er1                                ;7cb50160\r
+    and.w @er3,@(6:2,er1)                          ;7cb53160\r
+    and.w @er3,@-er1                               ;7cb5b160\r
+    and.w @er3,@er1+                               ;7cb58160\r
+    and.w @er3,@er1-                               ;7cb5a160\r
+    and.w @er3,@+er1                               ;7cb59160\r
+    and.w @er3,@(0xffff9abc:16,er1)                ;7cb5c1609abc\r
+    and.w @er3,@(0x9abcdef0:32,er1)                ;7cb5c9609abcdef0\r
+    and.w @er3,@(0xffff9abc:16,r2l.b)              ;7cb5d2609abc\r
+    and.w @er3,@(0xffff9abc:16,r2.w)              ;7cb5e2609abc\r
+    and.w @er3,@(0xffff9abc:16,er2.l)              ;7cb5f2609abc\r
+    and.w @er3,@(0x9abcdef0:32,r2l.b)              ;7cb5da609abcdef0\r
+    and.w @er3,@(0x9abcdef0:32,r2.w)              ;7cb5ea609abcdef0\r
+    and.w @er3,@(0x9abcdef0:32,er2.l)              ;7cb5fa609abcdef0\r
+    and.w @er3,@0xffff9abc:16                      ;7cb540609abc\r
+    and.w @er3,@0x9abcdef0:32                      ;7cb548609abcdef0\r
+\r
+    and.w @-er3,@er1                               ;01576d3c0160\r
+    and.w @-er3,@(6:2,er1)                         ;01576d3c3160\r
+    and.w @-er3,@-er1                              ;01576d3cb160\r
+    and.w @-er3,@er1+                              ;01576d3c8160\r
+    and.w @-er3,@er1-                              ;01576d3ca160\r
+    and.w @-er3,@+er1                              ;01576d3c9160\r
+    and.w @-er3,@(0xffff9abc:16,er1)               ;01576d3cc1609abc\r
+    and.w @-er3,@(0x9abcdef0:32,er1)               ;01576d3cc9609abcdef0\r
+    and.w @-er3,@(0xffff9abc:16,r2l.b)             ;01576d3cd2609abc\r
+    and.w @-er3,@(0xffff9abc:16,r2.w)             ;01576d3ce2609abc\r
+    and.w @-er3,@(0xffff9abc:16,er2.l)             ;01576d3cf2609abc\r
+    and.w @-er3,@(0x9abcdef0:32,r2l.b)             ;01576d3cda609abcdef0\r
+    and.w @-er3,@(0x9abcdef0:32,r2.w)             ;01576d3cea609abcdef0\r
+    and.w @-er3,@(0x9abcdef0:32,er2.l)             ;01576d3cfa609abcdef0\r
+    and.w @-er3,@0xffff9abc:16                     ;01576d3c40609abc\r
+    and.w @-er3,@0x9abcdef0:32                     ;01576d3c48609abcdef0\r
+\r
+    and.w @er3+,@er1                               ;01546d3c0160\r
+    and.w @er3+,@(6:2,er1)                         ;01546d3c3160\r
+    and.w @er3+,@-er1                              ;01546d3cb160\r
+    and.w @er3+,@er1+                              ;01546d3c8160\r
+    and.w @er3+,@er1-                              ;01546d3ca160\r
+    and.w @er3+,@+er1                              ;01546d3c9160\r
+    and.w @er3+,@(0xffff9abc:16,er1)               ;01546d3cc1609abc\r
+    and.w @er3+,@(0x9abcdef0:32,er1)               ;01546d3cc9609abcdef0\r
+    and.w @er3+,@(0xffff9abc:16,r2l.b)             ;01546d3cd2609abc\r
+    and.w @er3+,@(0xffff9abc:16,r2.w)             ;01546d3ce2609abc\r
+    and.w @er3+,@(0xffff9abc:16,er2.l)             ;01546d3cf2609abc\r
+    and.w @er3+,@(0x9abcdef0:32,r2l.b)             ;01546d3cda609abcdef0\r
+    and.w @er3+,@(0x9abcdef0:32,r2.w)             ;01546d3cea609abcdef0\r
+    and.w @er3+,@(0x9abcdef0:32,er2.l)             ;01546d3cfa609abcdef0\r
+    and.w @er3+,@0xffff9abc:16                     ;01546d3c40609abc\r
+    and.w @er3+,@0x9abcdef0:32                     ;01546d3c48609abcdef0\r
+\r
+    and.w @er3-,@er1                               ;01566d3c0160\r
+    and.w @er3-,@(6:2,er1)                         ;01566d3c3160\r
+    and.w @er3-,@-er1                              ;01566d3cb160\r
+    and.w @er3-,@er1+                              ;01566d3c8160\r
+    and.w @er3-,@er1-                              ;01566d3ca160\r
+    and.w @er3-,@+er1                              ;01566d3c9160\r
+    and.w @er3-,@(0xffff9abc:16,er1)               ;01566d3cc1609abc\r
+    and.w @er3-,@(0x9abcdef0:32,er1)               ;01566d3cc9609abcdef0\r
+    and.w @er3-,@(0xffff9abc:16,r2l.b)             ;01566d3cd2609abc\r
+    and.w @er3-,@(0xffff9abc:16,r2.w)             ;01566d3ce2609abc\r
+    and.w @er3-,@(0xffff9abc:16,er2.l)             ;01566d3cf2609abc\r
+    and.w @er3-,@(0x9abcdef0:32,r2l.b)             ;01566d3cda609abcdef0\r
+    and.w @er3-,@(0x9abcdef0:32,r2.w)             ;01566d3cea609abcdef0\r
+    and.w @er3-,@(0x9abcdef0:32,er2.l)             ;01566d3cfa609abcdef0\r
+    and.w @er3-,@0xffff9abc:16                     ;01566d3c40609abc\r
+    and.w @er3-,@0x9abcdef0:32                     ;01566d3c48609abcdef0\r
+\r
+    and.w @+er3,@er1                               ;01556d3c0160\r
+    and.w @+er3,@(6:2,er1)                         ;01556d3c3160\r
+    and.w @+er3,@-er1                              ;01556d3cb160\r
+    and.w @+er3,@er1+                              ;01556d3c8160\r
+    and.w @+er3,@er1-                              ;01556d3ca160\r
+    and.w @+er3,@+er1                              ;01556d3c9160\r
+    and.w @+er3,@(0xffff9abc:16,er1)               ;01556d3cc1609abc\r
+    and.w @+er3,@(0x9abcdef0:32,er1)               ;01556d3cc9609abcdef0\r
+    and.w @+er3,@(0xffff9abc:16,r2l.b)             ;01556d3cd2609abc\r
+    and.w @+er3,@(0xffff9abc:16,r2.w)             ;01556d3ce2609abc\r
+    and.w @+er3,@(0xffff9abc:16,er2.l)             ;01556d3cf2609abc\r
+    and.w @+er3,@(0x9abcdef0:32,r2l.b)             ;01556d3cda609abcdef0\r
+    and.w @+er3,@(0x9abcdef0:32,r2.w)             ;01556d3cea609abcdef0\r
+    and.w @+er3,@(0x9abcdef0:32,er2.l)             ;01556d3cfa609abcdef0\r
+    and.w @+er3,@0xffff9abc:16                     ;01556d3c40609abc\r
+    and.w @+er3,@0x9abcdef0:32                     ;01556d3c48609abcdef0\r
+\r
+    and.w @(0x1234:16,er3),@er1                         ;01546f3c12340160\r
+    and.w @(0x1234:16,er3),@(6:2,er1)                   ;01546f3c12343160\r
+    and.w @(0x1234:16,er3),@-er1                        ;01546f3c1234b160\r
+    and.w @(0x1234:16,er3),@er1+                        ;01546f3c12348160\r
+    and.w @(0x1234:16,er3),@er1-                        ;01546f3c1234a160\r
+    and.w @(0x1234:16,er3),@+er1                        ;01546f3c12349160\r
+    and.w @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01546f3c1234c1609abc\r
+    and.w @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01546f3c1234c9609abcdef0\r
+    and.w @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01546f3c1234d2609abc\r
+    and.w @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01546f3c1234e2609abc\r
+    and.w @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01546f3c1234f2609abc\r
+    and.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01546f3c1234da609abcdef0\r
+    and.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01546f3c1234ea609abcdef0\r
+    and.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01546f3c1234fa609abcdef0\r
+    and.w @(0x1234:16,er3),@0xffff9abc:16               ;01546f3c123440609abc\r
+    and.w @(0x1234:16,er3),@0x9abcdef0:32               ;01546f3c123448609abcdef0\r
+\r
+    and.w @(0x12345678:32,er3),@er1                         ;78346b2c123456780160\r
+    and.w @(0x12345678:32,er3),@(6:2,er1)                   ;78346b2c123456783160\r
+    and.w @(0x12345678:32,er3),@-er1                        ;78346b2c12345678b160\r
+    and.w @(0x12345678:32,er3),@er1+                        ;78346b2c123456788160\r
+    and.w @(0x12345678:32,er3),@er1-                        ;78346b2c12345678a160\r
+    and.w @(0x12345678:32,er3),@+er1                        ;78346b2c123456789160\r
+    and.w @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78346b2c12345678c1609abc\r
+    and.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78346b2c12345678c9609abcdef0\r
+    and.w @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78346b2c12345678d2609abc\r
+    and.w @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78346b2c12345678e2609abc\r
+    and.w @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78346b2c12345678f2609abc\r
+    and.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78346b2c12345678da609abcdef0\r
+    and.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78346b2c12345678ea609abcdef0\r
+    and.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78346b2c12345678fa609abcdef0\r
+    and.w @(0x12345678:32,er3),@0xffff9abc:16               ;78346b2c1234567840609abc\r
+    and.w @(0x12345678:32,er3),@0x9abcdef0:32               ;78346b2c1234567848609abcdef0\r
+\r
+    and.w @(0x1234:16,r3l.b),@er1                       ;01556f3c12340160\r
+    and.w @(0x1234:16,r3l.b),@(6:2,er1)                 ;01556f3c12343160\r
+    and.w @(0x1234:16,r3l.b),@-er1                      ;01556f3c1234b160\r
+    and.w @(0x1234:16,r3l.b),@er1+                      ;01556f3c12348160\r
+    and.w @(0x1234:16,r3l.b),@er1-                      ;01556f3c1234a160\r
+    and.w @(0x1234:16,r3l.b),@+er1                      ;01556f3c12349160\r
+    and.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01556f3c1234c1609abc\r
+    and.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01556f3c1234c9609abcdef0\r
+    and.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01556f3c1234d2609abc\r
+    and.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01556f3c1234e2609abc\r
+    and.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01556f3c1234f2609abc\r
+    and.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01556f3c1234da609abcdef0\r
+    and.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01556f3c1234ea609abcdef0\r
+    and.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01556f3c1234fa609abcdef0\r
+    and.w @(0x1234:16,r3l.b),@0xffff9abc:16             ;01556f3c123440609abc\r
+    and.w @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01556f3c123448609abcdef0\r
+\r
+    and.w @(0x1234:16,r3.w),@er1                       ;01566f3c12340160\r
+    and.w @(0x1234:16,r3.w),@(6:2,er1)                 ;01566f3c12343160\r
+    and.w @(0x1234:16,r3.w),@-er1                      ;01566f3c1234b160\r
+    and.w @(0x1234:16,r3.w),@er1+                      ;01566f3c12348160\r
+    and.w @(0x1234:16,r3.w),@er1-                      ;01566f3c1234a160\r
+    and.w @(0x1234:16,r3.w),@+er1                      ;01566f3c12349160\r
+    and.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01566f3c1234c1609abc\r
+    and.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01566f3c1234c9609abcdef0\r
+    and.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01566f3c1234d2609abc\r
+    and.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01566f3c1234e2609abc\r
+    and.w @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01566f3c1234f2609abc\r
+    and.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01566f3c1234da609abcdef0\r
+    and.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01566f3c1234ea609abcdef0\r
+    and.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01566f3c1234fa609abcdef0\r
+    and.w @(0x1234:16,r3.w),@0xffff9abc:16             ;01566f3c123440609abc\r
+    and.w @(0x1234:16,r3.w),@0x9abcdef0:32             ;01566f3c123448609abcdef0\r
+\r
+    and.w @(0x1234:16,er3.l),@er1                       ;01576f3c12340160\r
+    and.w @(0x1234:16,er3.l),@(6:2,er1)                 ;01576f3c12343160\r
+    and.w @(0x1234:16,er3.l),@-er1                      ;01576f3c1234b160\r
+    and.w @(0x1234:16,er3.l),@er1+                      ;01576f3c12348160\r
+    and.w @(0x1234:16,er3.l),@er1-                      ;01576f3c1234a160\r
+    and.w @(0x1234:16,er3.l),@+er1                      ;01576f3c12349160\r
+    and.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01576f3c1234c1609abc\r
+    and.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01576f3c1234c9609abcdef0\r
+    and.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01576f3c1234d2609abc\r
+    and.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01576f3c1234e2609abc\r
+    and.w @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01576f3c1234f2609abc\r
+    and.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01576f3c1234da609abcdef0\r
+    and.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01576f3c1234ea609abcdef0\r
+    and.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01576f3c1234fa609abcdef0\r
+    and.w @(0x1234:16,er3.l),@0xffff9abc:16             ;01576f3c123440609abc\r
+    and.w @(0x1234:16,er3.l),@0x9abcdef0:32             ;01576f3c123448609abcdef0\r
+\r
+    and.w @(0x12345678:32,r3l.b),@er1                       ;78356b2c123456780160\r
+    and.w @(0x12345678:32,r3l.b),@(6:2,er1)                 ;78356b2c123456783160\r
+    and.w @(0x12345678:32,r3l.b),@-er1                      ;78356b2c12345678b160\r
+    and.w @(0x12345678:32,r3l.b),@er1+                      ;78356b2c123456788160\r
+    and.w @(0x12345678:32,r3l.b),@er1-                      ;78356b2c12345678a160\r
+    and.w @(0x12345678:32,r3l.b),@+er1                      ;78356b2c123456789160\r
+    and.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78356b2c12345678c1609abc\r
+    and.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78356b2c12345678c9609abcdef0\r
+    and.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78356b2c12345678d2609abc\r
+    and.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78356b2c12345678e2609abc\r
+    and.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78356b2c12345678f2609abc\r
+    and.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78356b2c12345678da609abcdef0\r
+    and.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78356b2c12345678ea609abcdef0\r
+    and.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78356b2c12345678fa609abcdef0\r
+    and.w @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78356b2c1234567840609abc\r
+    and.w @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78356b2c1234567848609abcdef0\r
+\r
+    and.w @(0x12345678:32,r3.w),@er1                       ;78366b2c123456780160\r
+    and.w @(0x12345678:32,r3.w),@(6:2,er1)                 ;78366b2c123456783160\r
+    and.w @(0x12345678:32,r3.w),@-er1                      ;78366b2c12345678b160\r
+    and.w @(0x12345678:32,r3.w),@er1+                      ;78366b2c123456788160\r
+    and.w @(0x12345678:32,r3.w),@er1-                      ;78366b2c12345678a160\r
+    and.w @(0x12345678:32,r3.w),@+er1                      ;78366b2c123456789160\r
+    and.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78366b2c12345678c1609abc\r
+    and.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78366b2c12345678c9609abcdef0\r
+    and.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78366b2c12345678d2609abc\r
+    and.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78366b2c12345678e2609abc\r
+    and.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78366b2c12345678f2609abc\r
+    and.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78366b2c12345678da609abcdef0\r
+    and.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78366b2c12345678ea609abcdef0\r
+    and.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78366b2c12345678fa609abcdef0\r
+    and.w @(0x12345678:32,r3.w),@0xffff9abc:16             ;78366b2c1234567840609abc\r
+    and.w @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78366b2c1234567848609abcdef0\r
+\r
+    and.w @(0x12345678:32,er3.l),@er1                       ;78376b2c123456780160\r
+    and.w @(0x12345678:32,er3.l),@(6:2,er1)                 ;78376b2c123456783160\r
+    and.w @(0x12345678:32,er3.l),@-er1                      ;78376b2c12345678b160\r
+    and.w @(0x12345678:32,er3.l),@er1+                      ;78376b2c123456788160\r
+    and.w @(0x12345678:32,er3.l),@er1-                      ;78376b2c12345678a160\r
+    and.w @(0x12345678:32,er3.l),@+er1                      ;78376b2c123456789160\r
+    and.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78376b2c12345678c1609abc\r
+    and.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78376b2c12345678c9609abcdef0\r
+    and.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78376b2c12345678d2609abc\r
+    and.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78376b2c12345678e2609abc\r
+    and.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78376b2c12345678f2609abc\r
+    and.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78376b2c12345678da609abcdef0\r
+    and.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78376b2c12345678ea609abcdef0\r
+    and.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78376b2c12345678fa609abcdef0\r
+    and.w @(0x12345678:32,er3.l),@0xffff9abc:16             ;78376b2c1234567840609abc\r
+    and.w @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78376b2c1234567848609abcdef0\r
+\r
+    and.w @0x1234:16,@er1                              ;6b1512340160\r
+    and.w @0x1234:16,@(6:2,er1)                        ;6b1512343160\r
+    and.w @0x1234:16,@-er1                             ;6b151234b160\r
+    and.w @0x1234:16,@er1+                             ;6b1512348160\r
+    and.w @0x1234:16,@er1-                             ;6b151234a160\r
+    and.w @0x1234:16,@+er1                             ;6b1512349160\r
+    and.w @0x1234:16,@(0xffff9abc:16,er1)              ;6b151234c1609abc\r
+    and.w @0x1234:16,@(0x9abcdef0:32,er1)              ;6b151234c9609abcdef0\r
+    and.w @0x1234:16,@(0xffff9abc:16,r2l.b)            ;6b151234d2609abc\r
+    and.w @0x1234:16,@(0xffff9abc:16,r2.w)            ;6b151234e2609abc\r
+    and.w @0x1234:16,@(0xffff9abc:16,er2.l)            ;6b151234f2609abc\r
+    and.w @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;6b151234da609abcdef0\r
+    and.w @0x1234:16,@(0x9abcdef0:32,r2.w)            ;6b151234ea609abcdef0\r
+    and.w @0x1234:16,@(0x9abcdef0:32,er2.l)            ;6b151234fa609abcdef0\r
+    and.w @0x1234:16,@0xffff9abc:16                    ;6b15123440609abc\r
+    and.w @0x1234:16,@0x9abcdef0:32                    ;6b15123448609abcdef0\r
+\r
+    and.w @0x12345678:32,@er1                              ;6b35123456780160\r
+    and.w @0x12345678:32,@(6:2,er1)                        ;6b35123456783160\r
+    and.w @0x12345678:32,@-er1                             ;6b3512345678b160\r
+    and.w @0x12345678:32,@er1+                             ;6b35123456788160\r
+    and.w @0x12345678:32,@er1-                             ;6b3512345678a160\r
+    and.w @0x12345678:32,@+er1                             ;6b35123456789160\r
+    and.w @0x12345678:32,@(0xffff9abc:16,er1)              ;6b3512345678c1609abc\r
+    and.w @0x12345678:32,@(0x9abcdef0:32,er1)              ;6b3512345678c9609abcdef0\r
+    and.w @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;6b3512345678d2609abc\r
+    and.w @0x12345678:32,@(0xffff9abc:16,r2.w)            ;6b3512345678e2609abc\r
+    and.w @0x12345678:32,@(0xffff9abc:16,er2.l)            ;6b3512345678f2609abc\r
+    and.w @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;6b3512345678da609abcdef0\r
+    and.w @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;6b3512345678ea609abcdef0\r
+    and.w @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;6b3512345678fa609abcdef0\r
+    and.w @0x12345678:32,@0xffff9abc:16                    ;6b351234567840609abc\r
+    and.w @0x12345678:32,@0x9abcdef0:32                    ;6b351234567848609abcdef0\r
+\r
+    and.l #0x12345678:32,er1          ;7a6112345678\r
+    and.l #0x1234:16,er1           ;7a691234\r
+    and.l #0x12345678:32,@er1          ;010e016812345678\r
+    and.l #0x12345678:32,@(0xc:2,er1) ;010e316812345678\r
+    and.l #0x12345678:32,@er1+         ;010e816812345678\r
+    and.l #0x12345678:32,@-er1         ;010eb16812345678\r
+    and.l #0x12345678:32,@+er1         ;010e916812345678\r
+    and.l #0x12345678:32,@er1-         ;010ea16812345678\r
+    and.l #0x12345678:32,@(0xffff9abc:16,er1)   ;010ec1689abc12345678\r
+    and.l #0x12345678:32,@(0x9abcdef0:32,er1)   ;010ec9689abcdef012345678\r
+    and.l #0x12345678:32,@(0xffff9abc:16,r2l.b) ;010ed2689abc12345678\r
+    and.l #0x12345678:32,@(0xffff9abc:16,r2.w) ;010ee2689abc12345678\r
+    and.l #0x12345678:32,@(0xffff9abc:16,er2.l) ;010ef2689abc12345678\r
+    and.l #0x12345678:32,@(0x9abcdef0:32,r2l.b) ;010eda689abcdef012345678\r
+    and.l #0x12345678:32,@(0x9abcdef0:32,r2.w) ;010eea689abcdef012345678\r
+    and.l #0x12345678:32,@(0x9abcdef0:32,er2.l) ;010efa689abcdef012345678\r
+    and.l #0x12345678:32,@0xffff9abc:16         ;010e40689abc12345678\r
+    and.l #0x12345678:32,@0x9abcdef0:32         ;010e48689abcdef012345678\r
+    and.l #0x1234:16,@er1          ;010e01601234\r
+    and.l #0x1234:16,@(0xc:2,er1) ;010e31601234\r
+    and.l #0x1234:16,@er1+         ;010e81601234\r
+    and.l #0x1234:16,@-er1         ;010eb1601234\r
+    and.l #0x1234:16,@+er1         ;010e91601234\r
+    and.l #0x1234:16,@er1-         ;010ea1601234\r
+    and.l #0x1234:16,@(0xffff9abc:16,er1)   ;010ec1609abc1234\r
+    and.l #0x1234:16,@(0x9abcdef0:32,er1)   ;010ec9609abcdef01234\r
+    and.l #0x1234:16,@(0xffff9abc:16,r2l.b) ;010ed2609abc1234\r
+    and.l #0x1234:16,@(0xffff9abc:16,r2.w) ;010ee2609abc1234\r
+    and.l #0x1234:16,@(0xffff9abc:16,er2.l) ;010ef2609abc1234\r
+    and.l #0x1234:16,@(0x9abcdef0:32,r2l.b) ;010eda609abcdef01234\r
+    and.l #0x1234:16,@(0x9abcdef0:32,r2.w) ;010eea609abcdef01234\r
+    and.l #0x1234:16,@(0x9abcdef0:32,er2.l) ;010efa609abcdef01234\r
+    and.l #0x1234:16,@0xffff9abc:16         ;010e40609abc1234\r
+    and.l #0x1234:16,@0x9abcdef0:32         ;010e48609abcdef01234\r
+\r
+    and.l er3,er1            ;01f06631\r
+\r
+    and.l er3,@er1            ;01090163\r
+    and.l er3,@(0xc:2,er1)   ;01093163\r
+    and.l er3,@er1+           ;01098163\r
+    and.l er3,@-er1           ;0109b163\r
+    and.l er3,@+er1           ;01099163\r
+    and.l er3,@er1-           ;0109a163\r
+    and.l er3,@(0x1234:16,er1)     ;0109c1631234\r
+    and.l er3,@(0x12345678:32,er1)     ;0109c96312345678\r
+    and.l er3,@(0x1234:16,r2l.b)   ;0109d2631234\r
+    and.l er3,@(0x1234:16,r2.w)   ;0109e2631234\r
+    and.l er3,@(0x1234:16,er2.l)   ;0109f2631234\r
+    and.l er3,@(0x12345678:32,r2l.b)   ;0109da6312345678\r
+    and.l er3,@(0x12345678:32,r2.w)   ;0109ea6312345678\r
+    and.l er3,@(0x12345678:32,er2.l)   ;0109fa6312345678\r
+    and.l er3,@0x1234:16          ;010940631234\r
+    and.l er3,@0x12345678:32          ;0109486312345678\r
+\r
+    and.l @er3,er1            ;010a0361\r
+    and.l @(0xc:2,er3),er1  ;010a3361\r
+    and.l @er3+,er1          ;010a8361\r
+    and.l @-er3,er1          ;010ab361\r
+    and.l @+er3,er1          ;010a9361\r
+    and.l @er3-,er1          ;010aa361\r
+    and.l @(0x1234:16,er1),er1     ;010ac1611234\r
+    and.l @(0x12345678:32,er1),er1     ;010ac96112345678\r
+    and.l @(0x1234:16,r2l.b),er1   ;010ad2611234\r
+    and.l @(0x1234:16,r2.w),er1   ;010ae2611234\r
+    and.l @(0x1234:16,er2.l),er1   ;010af2611234\r
+    and.l @(0x12345678:32,r2l.b),er1   ;010ada6112345678\r
+    and.l @(0x12345678:32,r2.w),er1   ;010aea6112345678\r
+    and.l @(0x12345678:32,er2.l),er1   ;010afa6112345678\r
+    and.l @0x1234:16,er1          ;010a40611234\r
+    and.l @0x12345678:32,er1          ;010a486112345678\r
+\r
+    and.l @er3,@er1                                ;0104693c0160\r
+    and.l @er3,@(0xc:2,er1)                          ;0104693c3160\r
+    and.l @er3,@-er1                               ;0104693cb160\r
+    and.l @er3,@er1+                               ;0104693c8160\r
+    and.l @er3,@er1-                               ;0104693ca160\r
+    and.l @er3,@+er1                               ;0104693c9160\r
+    and.l @er3,@(0xffff9abc:16,er1)                ;0104693cc1609abc\r
+    and.l @er3,@(0x9abcdef0:32,er1)                ;0104693cc9609abcdef0\r
+    and.l @er3,@(0xffff9abc:16,r2l.b)              ;0104693cd2609abc\r
+    and.l @er3,@(0xffff9abc:16,r2.w)              ;0104693ce2609abc\r
+    and.l @er3,@(0xffff9abc:16,er2.l)              ;0104693cf2609abc\r
+    and.l @er3,@(0x9abcdef0:32,r2l.b)              ;0104693cda609abcdef0\r
+    and.l @er3,@(0x9abcdef0:32,r2.w)              ;0104693cea609abcdef0\r
+    and.l @er3,@(0x9abcdef0:32,er2.l)              ;0104693cfa609abcdef0\r
+    and.l @er3,@0xffff9abc:16                      ;0104693c40609abc\r
+    and.l @er3,@0x9abcdef0:32                      ;0104693c48609abcdef0\r
+\r
+    and.l @(0xc:2,er3),@er1                       ;0107693c0160\r
+    and.l @(0xc:2,er3),@(0xc:2,er1)                 ;0107693c3160\r
+    and.l @(0xc:2,er3),@-er1                      ;0107693cb160\r
+    and.l @(0xc:2,er3),@er1+                      ;0107693c8160\r
+    and.l @(0xc:2,er3),@er1-                      ;0107693ca160\r
+    and.l @(0xc:2,er3),@+er1                      ;0107693c9160\r
+    and.l @(0xc:2,er3),@(0xffff9abc:16,er1)       ;0107693cc1609abc\r
+    and.l @(0xc:2,er3),@(0x9abcdef0:32,er1)       ;0107693cc9609abcdef0\r
+    and.l @(0xc:2,er3),@(0xffff9abc:16,r2l.b)     ;0107693cd2609abc\r
+    and.l @(0xc:2,er3),@(0xffff9abc:16,r2.w)     ;0107693ce2609abc\r
+    and.l @(0xc:2,er3),@(0xffff9abc:16,er2.l)     ;0107693cf2609abc\r
+    and.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b)     ;0107693cda609abcdef0\r
+    and.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w)     ;0107693cea609abcdef0\r
+    and.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l)     ;0107693cfa609abcdef0\r
+    and.l @(0xc:2,er3),@0xffff9abc:16             ;0107693c40609abc\r
+    and.l @(0xc:2,er3),@0x9abcdef0:32             ;0107693c48609abcdef0\r
+\r
+    and.l @-er3,@er1                               ;01076d3c0160\r
+    and.l @-er3,@(0xc:2,er1)                         ;01076d3c3160\r
+    and.l @-er3,@-er1                              ;01076d3cb160\r
+    and.l @-er3,@er1+                              ;01076d3c8160\r
+    and.l @-er3,@er1-                              ;01076d3ca160\r
+    and.l @-er3,@+er1                              ;01076d3c9160\r
+    and.l @-er3,@(0xffff9abc:16,er1)               ;01076d3cc1609abc\r
+    and.l @-er3,@(0x9abcdef0:32,er1)               ;01076d3cc9609abcdef0\r
+    and.l @-er3,@(0xffff9abc:16,r2l.b)             ;01076d3cd2609abc\r
+    and.l @-er3,@(0xffff9abc:16,r2.w)             ;01076d3ce2609abc\r
+    and.l @-er3,@(0xffff9abc:16,er2.l)             ;01076d3cf2609abc\r
+    and.l @-er3,@(0x9abcdef0:32,r2l.b)             ;01076d3cda609abcdef0\r
+    and.l @-er3,@(0x9abcdef0:32,r2.w)             ;01076d3cea609abcdef0\r
+    and.l @-er3,@(0x9abcdef0:32,er2.l)             ;01076d3cfa609abcdef0\r
+    and.l @-er3,@0xffff9abc:16                     ;01076d3c40609abc\r
+    and.l @-er3,@0x9abcdef0:32                     ;01076d3c48609abcdef0\r
+\r
+    and.l @er3+,@er1                               ;01046d3c0160\r
+    and.l @er3+,@(0xc:2,er1)                         ;01046d3c3160\r
+    and.l @er3+,@-er1                              ;01046d3cb160\r
+    and.l @er3+,@er1+                              ;01046d3c8160\r
+    and.l @er3+,@er1-                              ;01046d3ca160\r
+    and.l @er3+,@+er1                              ;01046d3c9160\r
+    and.l @er3+,@(0xffff9abc:16,er1)               ;01046d3cc1609abc\r
+    and.l @er3+,@(0x9abcdef0:32,er1)               ;01046d3cc9609abcdef0\r
+    and.l @er3+,@(0xffff9abc:16,r2l.b)             ;01046d3cd2609abc\r
+    and.l @er3+,@(0xffff9abc:16,r2.w)             ;01046d3ce2609abc\r
+    and.l @er3+,@(0xffff9abc:16,er2.l)             ;01046d3cf2609abc\r
+    and.l @er3+,@(0x9abcdef0:32,r2l.b)             ;01046d3cda609abcdef0\r
+    and.l @er3+,@(0x9abcdef0:32,r2.w)             ;01046d3cea609abcdef0\r
+    and.l @er3+,@(0x9abcdef0:32,er2.l)             ;01046d3cfa609abcdef0\r
+    and.l @er3+,@0xffff9abc:16                     ;01046d3c40609abc\r
+    and.l @er3+,@0x9abcdef0:32                     ;01046d3c48609abcdef0\r
+\r
+    and.l @er3-,@er1                               ;01066d3c0160\r
+    and.l @er3-,@(0xc:2,er1)                         ;01066d3c3160\r
+    and.l @er3-,@-er1                              ;01066d3cb160\r
+    and.l @er3-,@er1+                              ;01066d3c8160\r
+    and.l @er3-,@er1-                              ;01066d3ca160\r
+    and.l @er3-,@+er1                              ;01066d3c9160\r
+    and.l @er3-,@(0xffff9abc:16,er1)               ;01066d3cc1609abc\r
+    and.l @er3-,@(0x9abcdef0:32,er1)               ;01066d3cc9609abcdef0\r
+    and.l @er3-,@(0xffff9abc:16,r2l.b)             ;01066d3cd2609abc\r
+    and.l @er3-,@(0xffff9abc:16,r2.w)             ;01066d3ce2609abc\r
+    and.l @er3-,@(0xffff9abc:16,er2.l)             ;01066d3cf2609abc\r
+    and.l @er3-,@(0x9abcdef0:32,r2l.b)             ;01066d3cda609abcdef0\r
+    and.l @er3-,@(0x9abcdef0:32,r2.w)             ;01066d3cea609abcdef0\r
+    and.l @er3-,@(0x9abcdef0:32,er2.l)             ;01066d3cfa609abcdef0\r
+    and.l @er3-,@0xffff9abc:16                     ;01066d3c40609abc\r
+    and.l @er3-,@0x9abcdef0:32                     ;01066d3c48609abcdef0\r
+\r
+    and.l @+er3,@er1                               ;01056d3c0160\r
+    and.l @+er3,@(0xc:2,er1)                         ;01056d3c3160\r
+    and.l @+er3,@-er1                              ;01056d3cb160\r
+    and.l @+er3,@er1+                              ;01056d3c8160\r
+    and.l @+er3,@er1-                              ;01056d3ca160\r
+    and.l @+er3,@+er1                              ;01056d3c9160\r
+    and.l @+er3,@(0xffff9abc:16,er1)               ;01056d3cc1609abc\r
+    and.l @+er3,@(0x9abcdef0:32,er1)               ;01056d3cc9609abcdef0\r
+    and.l @+er3,@(0xffff9abc:16,r2l.b)             ;01056d3cd2609abc\r
+    and.l @+er3,@(0xffff9abc:16,r2.w)             ;01056d3ce2609abc\r
+    and.l @+er3,@(0xffff9abc:16,er2.l)             ;01056d3cf2609abc\r
+    and.l @+er3,@(0x9abcdef0:32,r2l.b)             ;01056d3cda609abcdef0\r
+    and.l @+er3,@(0x9abcdef0:32,r2.w)             ;01056d3cea609abcdef0\r
+    and.l @+er3,@(0x9abcdef0:32,er2.l)             ;01056d3cfa609abcdef0\r
+    and.l @+er3,@0xffff9abc:16                     ;01056d3c40609abc\r
+    and.l @+er3,@0x9abcdef0:32                     ;01056d3c48609abcdef0\r
+\r
+    and.l @(0x1234:16,er3),@er1                         ;01046f3c12340160\r
+    and.l @(0x1234:16,er3),@(0xc:2,er1)                   ;01046f3c12343160\r
+    and.l @(0x1234:16,er3),@-er1                        ;01046f3c1234b160\r
+    and.l @(0x1234:16,er3),@er1+                        ;01046f3c12348160\r
+    and.l @(0x1234:16,er3),@er1-                        ;01046f3c1234a160\r
+    and.l @(0x1234:16,er3),@+er1                        ;01046f3c12349160\r
+    and.l @(0x1234:16,er3),@(0xffff9abc:16,er1)         ;01046f3c1234c1609abc\r
+    and.l @(0x1234:16,er3),@(0x9abcdef0:32,er1)         ;01046f3c1234c9609abcdef0\r
+    and.l @(0x1234:16,er3),@(0xffff9abc:16,r2l.b)       ;01046f3c1234d2609abc\r
+    and.l @(0x1234:16,er3),@(0xffff9abc:16,r2.w)       ;01046f3c1234e2609abc\r
+    and.l @(0x1234:16,er3),@(0xffff9abc:16,er2.l)       ;01046f3c1234f2609abc\r
+    and.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)       ;01046f3c1234da609abcdef0\r
+    and.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)       ;01046f3c1234ea609abcdef0\r
+    and.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)       ;01046f3c1234fa609abcdef0\r
+    and.l @(0x1234:16,er3),@0xffff9abc:16               ;01046f3c123440609abc\r
+    and.l @(0x1234:16,er3),@0x9abcdef0:32               ;01046f3c123448609abcdef0\r
+\r
+    and.l @(0x12345678:32,er3),@er1                         ;78b46b2c123456780160\r
+    and.l @(0x12345678:32,er3),@(0xc:2,er1)                   ;78b46b2c123456783160\r
+    and.l @(0x12345678:32,er3),@-er1                        ;78b46b2c12345678b160\r
+    and.l @(0x12345678:32,er3),@er1+                        ;78b46b2c123456788160\r
+    and.l @(0x12345678:32,er3),@er1-                        ;78b46b2c12345678a160\r
+    and.l @(0x12345678:32,er3),@+er1                        ;78b46b2c123456789160\r
+    and.l @(0x12345678:32,er3),@(0xffff9abc:16,er1)         ;78b46b2c12345678c1609abc\r
+    and.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1)         ;78b46b2c12345678c9609abcdef0\r
+    and.l @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b)       ;78b46b2c12345678d2609abc\r
+    and.l @(0x12345678:32,er3),@(0xffff9abc:16,r2.w)       ;78b46b2c12345678e2609abc\r
+    and.l @(0x12345678:32,er3),@(0xffff9abc:16,er2.l)       ;78b46b2c12345678f2609abc\r
+    and.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)       ;78b46b2c12345678da609abcdef0\r
+    and.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)       ;78b46b2c12345678ea609abcdef0\r
+    and.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)       ;78b46b2c12345678fa609abcdef0\r
+    and.l @(0x12345678:32,er3),@0xffff9abc:16               ;78b46b2c1234567840609abc\r
+    and.l @(0x12345678:32,er3),@0x9abcdef0:32               ;78b46b2c1234567848609abcdef0\r
+\r
+    and.l @(0x1234:16,r3l.b),@er1                       ;01056f3c12340160\r
+    and.l @(0x1234:16,r3l.b),@(0xc:2,er1)                 ;01056f3c12343160\r
+    and.l @(0x1234:16,r3l.b),@-er1                      ;01056f3c1234b160\r
+    and.l @(0x1234:16,r3l.b),@er1+                      ;01056f3c12348160\r
+    and.l @(0x1234:16,r3l.b),@er1-                      ;01056f3c1234a160\r
+    and.l @(0x1234:16,r3l.b),@+er1                      ;01056f3c12349160\r
+    and.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1)       ;01056f3c1234c1609abc\r
+    and.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)       ;01056f3c1234c9609abcdef0\r
+    and.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b)     ;01056f3c1234d2609abc\r
+    and.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w)     ;01056f3c1234e2609abc\r
+    and.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l)     ;01056f3c1234f2609abc\r
+    and.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)     ;01056f3c1234da609abcdef0\r
+    and.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)     ;01056f3c1234ea609abcdef0\r
+    and.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)     ;01056f3c1234fa609abcdef0\r
+    and.l @(0x1234:16,r3l.b),@0xffff9abc:16             ;01056f3c123440609abc\r
+    and.l @(0x1234:16,r3l.b),@0x9abcdef0:32             ;01056f3c123448609abcdef0\r
+\r
+    and.l @(0x1234:16,r3.w),@er1                       ;01066f3c12340160\r
+    and.l @(0x1234:16,r3.w),@(0xc:2,er1)                 ;01066f3c12343160\r
+    and.l @(0x1234:16,r3.w),@-er1                      ;01066f3c1234b160\r
+    and.l @(0x1234:16,r3.w),@er1+                      ;01066f3c12348160\r
+    and.l @(0x1234:16,r3.w),@er1-                      ;01066f3c1234a160\r
+    and.l @(0x1234:16,r3.w),@+er1                      ;01066f3c12349160\r
+    and.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1)       ;01066f3c1234c1609abc\r
+    and.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)       ;01066f3c1234c9609abcdef0\r
+    and.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b)     ;01066f3c1234d2609abc\r
+    and.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w)     ;01066f3c1234e2609abc\r
+    and.l @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l)     ;01066f3c1234f2609abc\r
+    and.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)     ;01066f3c1234da609abcdef0\r
+    and.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)     ;01066f3c1234ea609abcdef0\r
+    and.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)     ;01066f3c1234fa609abcdef0\r
+    and.l @(0x1234:16,r3.w),@0xffff9abc:16             ;01066f3c123440609abc\r
+    and.l @(0x1234:16,r3.w),@0x9abcdef0:32             ;01066f3c123448609abcdef0\r
+\r
+    and.l @(0x1234:16,er3.l),@er1                       ;01076f3c12340160\r
+    and.l @(0x1234:16,er3.l),@(0xc:2,er1)                 ;01076f3c12343160\r
+    and.l @(0x1234:16,er3.l),@-er1                      ;01076f3c1234b160\r
+    and.l @(0x1234:16,er3.l),@er1+                      ;01076f3c12348160\r
+    and.l @(0x1234:16,er3.l),@er1-                      ;01076f3c1234a160\r
+    and.l @(0x1234:16,er3.l),@+er1                      ;01076f3c12349160\r
+    and.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1)       ;01076f3c1234c1609abc\r
+    and.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)       ;01076f3c1234c9609abcdef0\r
+    and.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b)     ;01076f3c1234d2609abc\r
+    and.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w)     ;01076f3c1234e2609abc\r
+    and.l @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l)     ;01076f3c1234f2609abc\r
+    and.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)     ;01076f3c1234da609abcdef0\r
+    and.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)     ;01076f3c1234ea609abcdef0\r
+    and.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)     ;01076f3c1234fa609abcdef0\r
+    and.l @(0x1234:16,er3.l),@0xffff9abc:16             ;01076f3c123440609abc\r
+    and.l @(0x1234:16,er3.l),@0x9abcdef0:32             ;01076f3c123448609abcdef0\r
+\r
+    and.l @(0x12345678:32,r3l.b),@er1                       ;78b56b2c123456780160\r
+    and.l @(0x12345678:32,r3l.b),@(0xc:2,er1)                 ;78b56b2c123456783160\r
+    and.l @(0x12345678:32,r3l.b),@-er1                      ;78b56b2c12345678b160\r
+    and.l @(0x12345678:32,r3l.b),@er1+                      ;78b56b2c123456788160\r
+    and.l @(0x12345678:32,r3l.b),@er1-                      ;78b56b2c12345678a160\r
+    and.l @(0x12345678:32,r3l.b),@+er1                      ;78b56b2c123456789160\r
+    and.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1)       ;78b56b2c12345678c1609abc\r
+    and.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)       ;78b56b2c12345678c9609abcdef0\r
+    and.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b)     ;78b56b2c12345678d2609abc\r
+    and.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w)     ;78b56b2c12345678e2609abc\r
+    and.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l)     ;78b56b2c12345678f2609abc\r
+    and.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)     ;78b56b2c12345678da609abcdef0\r
+    and.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)     ;78b56b2c12345678ea609abcdef0\r
+    and.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)     ;78b56b2c12345678fa609abcdef0\r
+    and.l @(0x12345678:32,r3l.b),@0xffff9abc:16             ;78b56b2c1234567840609abc\r
+    and.l @(0x12345678:32,r3l.b),@0x9abcdef0:32             ;78b56b2c1234567848609abcdef0\r
+\r
+    and.l @(0x12345678:32,r3.w),@er1                       ;78b66b2c123456780160\r
+    and.l @(0x12345678:32,r3.w),@(0xc:2,er1)                 ;78b66b2c123456783160\r
+    and.l @(0x12345678:32,r3.w),@-er1                      ;78b66b2c12345678b160\r
+    and.l @(0x12345678:32,r3.w),@er1+                      ;78b66b2c123456788160\r
+    and.l @(0x12345678:32,r3.w),@er1-                      ;78b66b2c12345678a160\r
+    and.l @(0x12345678:32,r3.w),@+er1                      ;78b66b2c123456789160\r
+    and.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1)       ;78b66b2c12345678c1609abc\r
+    and.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)       ;78b66b2c12345678c9609abcdef0\r
+    and.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b)     ;78b66b2c12345678d2609abc\r
+    and.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w)     ;78b66b2c12345678e2609abc\r
+    and.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l)     ;78b66b2c12345678f2609abc\r
+    and.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)     ;78b66b2c12345678da609abcdef0\r
+    and.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)     ;78b66b2c12345678ea609abcdef0\r
+    and.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)     ;78b66b2c12345678fa609abcdef0\r
+    and.l @(0x12345678:32,r3.w),@0xffff9abc:16             ;78b66b2c1234567840609abc\r
+    and.l @(0x12345678:32,r3.w),@0x9abcdef0:32             ;78b66b2c1234567848609abcdef0\r
+\r
+    and.l @(0x12345678:32,er3.l),@er1                       ;78b76b2c123456780160\r
+    and.l @(0x12345678:32,er3.l),@(0xc:2,er1)                 ;78b76b2c123456783160\r
+    and.l @(0x12345678:32,er3.l),@-er1                      ;78b76b2c12345678b160\r
+    and.l @(0x12345678:32,er3.l),@er1+                      ;78b76b2c123456788160\r
+    and.l @(0x12345678:32,er3.l),@er1-                      ;78b76b2c12345678a160\r
+    and.l @(0x12345678:32,er3.l),@+er1                      ;78b76b2c123456789160\r
+    and.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1)       ;78b76b2c12345678c1609abc\r
+    and.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)       ;78b76b2c12345678c9609abcdef0\r
+    and.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b)     ;78b76b2c12345678d2609abc\r
+    and.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w)     ;78b76b2c12345678e2609abc\r
+    and.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l)     ;78b76b2c12345678f2609abc\r
+    and.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)     ;78b76b2c12345678da609abcdef0\r
+    and.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)     ;78b76b2c12345678ea609abcdef0\r
+    and.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)     ;78b76b2c12345678fa609abcdef0\r
+    and.l @(0x12345678:32,er3.l),@0xffff9abc:16             ;78b76b2c1234567840609abc\r
+    and.l @(0x12345678:32,er3.l),@0x9abcdef0:32             ;78b76b2c1234567848609abcdef0\r
+\r
+    and.l @0x1234:16,@er1                              ;01046b0c12340160\r
+    and.l @0x1234:16,@(0xc:2,er1)                        ;01046b0c12343160\r
+    and.l @0x1234:16,@-er1                             ;01046b0c1234b160\r
+    and.l @0x1234:16,@er1+                             ;01046b0c12348160\r
+    and.l @0x1234:16,@er1-                             ;01046b0c1234a160\r
+    and.l @0x1234:16,@+er1                             ;01046b0c12349160\r
+    and.l @0x1234:16,@(0xffff9abc:16,er1)              ;01046b0c1234c1609abc\r
+    and.l @0x1234:16,@(0x9abcdef0:32,er1)              ;01046b0c1234c9609abcdef0\r
+    and.l @0x1234:16,@(0xffff9abc:16,r2l.b)            ;01046b0c1234d2609abc\r
+    and.l @0x1234:16,@(0xffff9abc:16,r2.w)            ;01046b0c1234e2609abc\r
+    and.l @0x1234:16,@(0xffff9abc:16,er2.l)            ;01046b0c1234f2609abc\r
+    and.l @0x1234:16,@(0x9abcdef0:32,r2l.b)            ;01046b0c1234da609abcdef0\r
+    and.l @0x1234:16,@(0x9abcdef0:32,r2.w)            ;01046b0c1234ea609abcdef0\r
+    and.l @0x1234:16,@(0x9abcdef0:32,er2.l)            ;01046b0c1234fa609abcdef0\r
+    and.l @0x1234:16,@0xffff9abc:16                    ;01046b0c123440609abc\r
+    and.l @0x1234:16,@0x9abcdef0:32                    ;01046b0c123448609abcdef0\r
+\r
+    and.l @0x12345678:32,@er1                              ;01046b2c123456780160\r
+    and.l @0x12345678:32,@(0xc:2,er1)                        ;01046b2c123456783160\r
+    and.l @0x12345678:32,@-er1                             ;01046b2c12345678b160\r
+    and.l @0x12345678:32,@er1+                             ;01046b2c123456788160\r
+    and.l @0x12345678:32,@er1-                             ;01046b2c12345678a160\r
+    and.l @0x12345678:32,@+er1                             ;01046b2c123456789160\r
+    and.l @0x12345678:32,@(0xffff9abc:16,er1)              ;01046b2c12345678c1609abc\r
+    and.l @0x12345678:32,@(0x9abcdef0:32,er1)              ;01046b2c12345678c9609abcdef0\r
+    and.l @0x12345678:32,@(0xffff9abc:16,r2l.b)            ;01046b2c12345678d2609abc\r
+    and.l @0x12345678:32,@(0xffff9abc:16,r2.w)            ;01046b2c12345678e2609abc\r
+    and.l @0x12345678:32,@(0xffff9abc:16,er2.l)            ;01046b2c12345678f2609abc\r
+    and.l @0x12345678:32,@(0x9abcdef0:32,r2l.b)            ;01046b2c12345678da609abcdef0\r
+    and.l @0x12345678:32,@(0x9abcdef0:32,r2.w)            ;01046b2c12345678ea609abcdef0\r
+    and.l @0x12345678:32,@(0x9abcdef0:32,er2.l)            ;01046b2c12345678fa609abcdef0\r
+    and.l @0x12345678:32,@0xffff9abc:16                    ;01046b2c1234567840609abc\r
+    and.l @0x12345678:32,@0x9abcdef0:32                    ;01046b2c1234567848609abcdef0\r
+\r
+       .end\r
diff --git a/gas/testsuite/gas/h8300/t11_logs.exp b/gas/testsuite/gas/h8300/t11_logs.exp
new file mode 100644 (file)
index 0000000..f75f85a
--- /dev/null
@@ -0,0 +1,3173 @@
+#
+# Some h8300sx tests -- t11_logs
+#
+
+proc do_t11_logs_test {} {
+    set testname "t11_logs.s -- h8sx logic tests"
+
+    gas_start "t11_logs.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*   7 0000 1701" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8 0002 7D101700" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9 0006 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9      1700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10 000c 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10      1700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11 0012 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11      1700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12 0018 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12      1700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13 001e 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13      1700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14 0024 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14      12341700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15 002c 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15      1700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 0036 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16      12341700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17 003e 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17      12341700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18 0046 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18      12341700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19 004e 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19      1700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20 0058 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20      1700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21 0062 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      1700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 006c 7F121700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23 0070 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23      1700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24 0076 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24      56781700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  25              " {
+           if [expr $x == 37] then {
+               pass "$testname: not.b ..."
+           } else {
+               fail "$testname: not.b ... ($x)"
+           }
+       }
+        default        { fail "$testname: not.b ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  26 007e 1711" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27 0080 7D901710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  28 0084 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".*  28      1710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29 008a 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29      1710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30 0090 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30      1710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31 0096 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31      1710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32 009c 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32      1710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33 00a2 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33      12341710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34 00aa 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34      1710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35 00b4 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35      12341710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 00bc 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      12341710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 00c4 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      12341710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38 00cc 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38      1710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39 00d6 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39      1710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40 00e0 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40      1710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41 00ea 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41      1710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42 00f0 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42      56781710" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43              " {
+           if [expr $x == 36] then {
+               pass "$testname: not.w ..."
+           } else {
+               fail "$testname: not.w ... ($x)"
+           }
+       }
+        default        { fail "$testname: not.w ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  44 00f8 1731" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45 00fa 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".*  45      1730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46 0100 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46      1730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47 0106 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47      1730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48 010c 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48      1730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49 0112 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49      1730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50 0118 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50      1730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51 011e 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51      12341730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52 0126 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      1730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53 0130 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53      12341730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 0138 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54      12341730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 0140 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      12341730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56 0148 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56      1730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57 0152 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  57      1730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58 015c 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58      1730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59 0166 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59      12341730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60 016e 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60      1730" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61              " {
+           if [expr $x == 38] then {
+               pass "$testname: not.l ..."
+           } else {
+               fail "$testname: not.l ... ($x)"
+           }
+       }
+        default        { fail "$testname: not.l ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  62 0178 1001" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63 017a 7D101000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64 017e 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64      1000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65 0184 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65      1000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66 018a 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66      1000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67 0190 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67      1000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68 0196 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68      1000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 019c 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69      12341000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70 01a4 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70      1000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71 01ae 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71      12341000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72 01b6 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      12341000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73 01be 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73      12341000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74 01c6 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      1000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75 01d0 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      1000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76 01da 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      1000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77 01e4 7F121000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78 01e8 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78      1000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79 01ee 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79      56781000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80              " {
+           if [expr $x == 37] then {
+               pass "$testname: shll.b ..."
+           } else {
+               fail "$testname: shll.b ... ($x)"
+           }
+       }
+        default        { fail "$testname: shll.b ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  81 01f6 1011" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82 01f8 7D901010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83 01fc 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83      1010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84 0202 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84      1010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85 0208 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85      1010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86 020e 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86      1010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87 0214 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87      1010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88 021a 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      12341010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89 0222 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89      1010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90 022c 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90      12341010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91 0234 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91      12341010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92 023c 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      12341010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 0244 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      1010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94 024e 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      1010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95 0258 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95      1010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96 0262 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96      1010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97 0268 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97      56781010" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98              " {
+           if [expr $x == 36] then {
+               pass "$testname: shll.w ..."
+           } else {
+               fail "$testname: shll.w ... ($x)"
+           }
+       }
+        default        { fail "$testname: shll.w ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  99 0270 1031" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100 0272 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100      1030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101 0278 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101      1030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102 027e 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102      1030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103 0284 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103      1030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104 028a 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104      1030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105 0290 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      1030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106 0296 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106      12341030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107 029e 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107      1030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108 02a8 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108      12341030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109 02b0 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109      12341030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110 02b8 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      12341030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111 02c0 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      1030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112 02ca 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112      1030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113 02d4 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113      1030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114 02de 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114      12341030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115 02e6 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115      1030" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116              " {
+           if [expr $x == 38] then {
+               pass "$testname: shll.l ..."
+           } else {
+               fail "$testname: shll.l ... ($x)"
+           }
+       }
+        default        { fail "$testname: shll.l ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 117 02f0 1041" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118 02f2 7D101040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119 02f6 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119      1040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120 02fc 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120      1040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121 0302 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121      1040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122 0308 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      1040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123 030e 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123      1040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124 0314 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124      12341040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125 031c 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      1040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126 0326 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      12341040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127 032e 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      12341040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128 0336 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      12341040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129 033e 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      1040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130 0348 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130      1040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131 0352 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131      1040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132 035c 7F121040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133 0360 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133      1040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134 0366 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134      56781040" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135              " {
+           if [expr $x == 37] then {
+               pass "$testname: shll.b #2, ..."
+           } else {
+               fail "$testname: shll.b #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shll.b #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 136 036e 1051" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137 0370 7D901050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138 0374 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138      1050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139 037a 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139      1050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140 0380 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140      1050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141 0386 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      1050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142 038c 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      1050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143 0392 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      12341050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144 039a 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      1050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145 03a4 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145      12341050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146 03ac 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      12341050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147 03b4 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      12341050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148 03bc 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148      1050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149 03c6 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 149      1050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150 03d0 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150      1050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151 03da 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151      1050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152 03e0 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152      56781050" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153              " {
+           if [expr $x == 36] then {
+               pass "$testname: shll.w #2, ..."
+           } else {
+               fail "$testname: shll.w #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shll.w #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 154 03e8 1071" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155 03ea 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155      1070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156 03f0 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156      1070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157 03f6 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      1070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158 03fc 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      1070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159 0402 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159      1070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160 0408 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 160      1070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161 040e 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161      12341070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162 0416 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      1070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163 0420 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      12341070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164 0428 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164      12341070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165 0430 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 165      12341070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166 0438 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166      1070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167 0442 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      1070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168 044c 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      1070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169 0456 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169      12341070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170 045e 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 170      1070" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171              " {
+           if [expr $x == 38] then {
+               pass "$testname: shll.l #2, ..."
+           } else {
+               fail "$testname: shll.l #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shll.l #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 172 0468 10A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173 046a 7D1010A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174 046e 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174      10A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175 0474 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 175      10A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176 047a 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 176      10A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177 0480 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 177      10A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178 0486 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 178      10A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179 048c 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 179      123410A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180 0494 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 180      10A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181 049e 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 181      123410A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182 04a6 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 182      123410A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183 04ae 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 183      123410A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184 04b6 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 184      10A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185 04c0 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 185      10A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186 04ca 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 186      10A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 187 04d4 7F1210A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188 04d8 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 188      10A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189 04de 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 189      567810A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 190              " {
+           if [expr $x == 37] then {
+               pass "$testname: shll.b #4, ..."
+           } else {
+               fail "$testname: shll.b #4, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shll.b #4, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 191 04e6 1021" { set x [expr $x+1]; exp_continue; }
+       -re ".* 192 04e8 7D901020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193 04ec 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 193      1020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194 04f2 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 194      1020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195 04f8 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 195      1020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196 04fe 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 196      1020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197 0504 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 197      1020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198 050a 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 198      12341020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199 0512 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 199      1020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200 051c 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 200      12341020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201 0524 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 201      12341020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202 052c 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 202      12341020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203 0534 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 203      1020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204 053e 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 204      1020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205 0548 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 205      1020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206 0552 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 206      1020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207 0558 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 207      56781020" { set x [expr $x+1]; exp_continue; }
+       -re ".* 208              " {
+           if [expr $x == 36] then {
+               pass "$testname: shll.w #4, ..."
+           } else {
+               fail "$testname: shll.w #4, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shll.w #4, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 209 0560 1039" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210 0562 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 210      1038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211 0568 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 211      1038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212 056e 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 212      1038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213 0574 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 213      1038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214 057a 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 214      1038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215 0580 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 215      1038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216 0586 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 216      12341038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217 058e 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 217      1038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218 0598 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 218      12341038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219 05a0 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 219      12341038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220 05a8 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 220      12341038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221 05b0 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 221      1038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222 05ba 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 222      1038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223 05c4 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 223      1038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224 05ce 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 224      12341038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225 05d6 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 225      1038" { set x [expr $x+1]; exp_continue; }
+       -re ".* 226              " {
+           if [expr $x == 38] then {
+               pass "$testname: shll.l #4, ..."
+           } else {
+               fail "$testname: shll.l #4, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shll.l #4, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 227 05e0 1061" { set x [expr $x+1]; exp_continue; }
+       -re ".* 228 05e2 7D901060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229 05e6 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 229      1060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230 05ec 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 230      1060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231 05f2 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 231      1060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232 05f8 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 232      1060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233 05fe 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 233      1060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234 0604 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 234      12341060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235 060c 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 235      1060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236 0616 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 236      12341060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237 061e 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 237      12341060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238 0626 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 238      12341060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239 062e 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 239      1060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240 0638 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 240      1060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241 0642 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 241      1060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242 064c 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 242      1060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243 0652 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 243      56781060" { set x [expr $x+1]; exp_continue; }
+       -re ".* 244              " {
+           if [expr $x == 36] then {
+               pass "$testname: shll.w #8, ..."
+           } else {
+               fail "$testname: shll.w #8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shll.w #8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 245 065a 1079" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246 065c 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 246      1078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247 0662 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 247      1078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248 0668 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 248      1078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249 066e 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 249      1078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 250 0674 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 250      1078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251 067a 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 251      1078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252 0680 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 252      12341078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253 0688 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 253      1078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254 0692 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 254      12341078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255 069a 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 255      12341078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256 06a2 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 256      12341078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257 06aa 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 257      1078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258 06b4 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 258      1078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259 06be 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 259      1078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260 06c8 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 260      12341078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261 06d0 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 261      1078" { set x [expr $x+1]; exp_continue; }
+       -re ".* 262              " {
+           if [expr $x == 38] then {
+               pass "$testname: shll.l #8, ..."
+           } else {
+               fail "$testname: shll.l #8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shll.l #8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 263 06da 10F9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264 06dc 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 264      10F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265 06e2 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 265      10F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266 06e8 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 266      10F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 267 06ee 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 267      10F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268 06f4 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 268      10F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269 06fa 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 269      10F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270 0700 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 270      123410F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271 0708 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 271      10F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272 0712 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 272      123410F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273 071a 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 273      123410F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274 0722 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 274      123410F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275 072a 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 275      10F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276 0734 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 276      10F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277 073e 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 277      10F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278 0748 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 278      123410F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279 0750 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 279      10F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 280              " {
+           if [expr $x == 38] then {
+               pass "$testname: shll.l #16, ..."
+           } else {
+               fail "$testname: shll.l #16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shll.l #16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 281 075a 03871001" { set x [expr $x+1]; exp_continue; }
+       -re ".* 282 075e 038F1011" { set x [expr $x+1]; exp_continue; }
+       -re ".* 283 0762 039F1031" { set x [expr $x+1]; exp_continue; }
+       -re ".* 284              " {
+           if [expr $x == 3] then {
+               pass "$testname: shll.? #imm:5, <reg>"
+           } else {
+               fail "$testname: shll.? #imm:5, <reg> ($x)"
+           }
+       }
+        default        { fail "$testname: shll.? #imm:5, <reg> ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 285 0766 78381001" { set x [expr $x+1]; exp_continue; }
+       -re ".* 286 076a 78381011" { set x [expr $x+1]; exp_continue; }
+       -re ".* 287 076e 78381031" { set x [expr $x+1]; exp_continue; }
+       -re ".* 288              " {
+           if [expr $x == 3] then {
+               pass "$testname: shll.? r3h, <reg>"
+           } else {
+               fail "$testname: shll.? r3h, <reg> ($x)"
+           }
+       }
+        default        { fail "$testname: shll.? r3h, <reg> ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 289 0772 1101" { set x [expr $x+1]; exp_continue; }
+       -re ".* 290 0774 7D101100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291 0778 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 291      1100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292 077e 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 292      1100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293 0784 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 293      1100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294 078a 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 294      1100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295 0790 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 295      1100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296 0796 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 296      12341100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297 079e 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 297      1100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298 07a8 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 298      12341100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299 07b0 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 299      12341100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300 07b8 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 300      12341100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 301 07c0 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 301      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 301      1100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 302 07ca 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 302      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 302      1100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303 07d4 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 303      1100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 304 07de 7F121100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305 07e2 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 305      1100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306 07e8 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 306      56781100" { set x [expr $x+1]; exp_continue; }
+       -re ".* 307              " {
+           if [expr $x == 37] then {
+               pass "$testname: shlr.b ..."
+           } else {
+               fail "$testname: shlr.b ... ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.b ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 308 07f0 1111" { set x [expr $x+1]; exp_continue; }
+       -re ".* 309 07f2 7D901110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310 07f6 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 310      1110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311 07fc 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 311      1110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312 0802 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 312      1110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313 0808 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 313      1110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314 080e 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 314      1110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315 0814 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 315      12341110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316 081c 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 316      1110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317 0826 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 317      12341110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 318 082e 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 318      12341110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 319 0836 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 319      12341110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320 083e 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 320      1110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321 0848 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 321      1110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322 0852 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 322      1110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323 085c 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 323      1110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324 0862 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 324      56781110" { set x [expr $x+1]; exp_continue; }
+       -re ".* 325              " {
+           if [expr $x == 36] then {
+               pass "$testname: shlr.w ..."
+           } else {
+               fail "$testname: shlr.w ... ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.w ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 326 086a 1131" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327 086c 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 327      1130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328 0872 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 328      1130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329 0878 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 329      1130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330 087e 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 330      1130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331 0884 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 331      1130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332 088a 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 332      1130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333 0890 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 333      12341130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334 0898 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 334      1130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335 08a2 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 335      12341130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 336 08aa 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 336      12341130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 337 08b2 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 337      12341130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 338 08ba 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 338      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 338      1130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 339 08c4 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 339      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 339      1130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340 08ce 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 340      1130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 341 08d8 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 341      12341130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 342 08e0 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 342      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 342      1130" { set x [expr $x+1]; exp_continue; }
+       -re ".* 343              " {
+           if [expr $x == 38] then {
+               pass "$testname: shlr.l ..."
+           } else {
+               fail "$testname: shlr.l ... ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.l ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 344 08ea 1141" { set x [expr $x+1]; exp_continue; }
+       -re ".* 345 08ec 7D101140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346 08f0 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 346      1140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347 08f6 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 347      1140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348 08fc 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 348      1140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349 0902 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 349      1140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350 0908 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 350      1140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351 090e 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 351      12341140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352 0916 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 352      1140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353 0920 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 353      12341140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354 0928 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 354      12341140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 355 0930 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 355      12341140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 356 0938 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 356      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 356      1140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357 0942 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 357      1140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358 094c 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 358      1140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 359 0956 7F121140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 360 095a 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 360      1140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 361 0960 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 361      56781140" { set x [expr $x+1]; exp_continue; }
+       -re ".* 362              " {
+           if [expr $x == 37] then {
+               pass "$testname: shlr.b #2, ..."
+           } else {
+               fail "$testname: shlr.b #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.b #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 363 0968 1151" { set x [expr $x+1]; exp_continue; }
+       -re ".* 364 096a 7D901150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365 096e 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 365      1150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366 0974 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 366      1150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367 097a 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 367      1150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368 0980 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 368      1150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369 0986 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 369      1150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370 098c 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 370      12341150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371 0994 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 371      1150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 372 099e 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 372      12341150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 373 09a6 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 373      12341150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 374 09ae 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 374      12341150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 375 09b6 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 375      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 375      1150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 376 09c0 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 376      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 376      1150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 377 09ca 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 377      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 377      1150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 378 09d4 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 378      1150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379 09da 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 379      56781150" { set x [expr $x+1]; exp_continue; }
+       -re ".* 380              " {
+           if [expr $x == 36] then {
+               pass "$testname: shlr.w #2, ..."
+           } else {
+               fail "$testname: shlr.w #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.w #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 381 09e2 1171" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382 09e4 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 382      1170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383 09ea 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 383      1170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384 09f0 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 384      1170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385 09f6 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 385      1170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386 09fc 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 386      1170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387 0a02 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 387      1170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388 0a08 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 388      12341170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389 0a10 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 389      1170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390 0a1a 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 390      12341170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391 0a22 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 391      12341170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392 0a2a 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 392      12341170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393 0a32 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 393      1170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394 0a3c 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 394      1170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395 0a46 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 395      1170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396 0a50 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 396      12341170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397 0a58 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 397      1170" { set x [expr $x+1]; exp_continue; }
+       -re ".* 398              " {
+           if [expr $x == 38] then {
+               pass "$testname: shlr.l #2, ..."
+           } else {
+               fail "$testname: shlr.l #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.l #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 399 0a62 11A1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 400 0a64 7D1011A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401 0a68 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 401      11A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402 0a6e 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 402      11A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403 0a74 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 403      11A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404 0a7a 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 404      11A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405 0a80 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 405      11A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406 0a86 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 406      123411A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407 0a8e 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 407      11A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408 0a98 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 408      123411A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409 0aa0 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 409      123411A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410 0aa8 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 410      123411A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411 0ab0 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 411      11A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412 0aba 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 412      11A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413 0ac4 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 413      11A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 414 0ace 7F1211A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415 0ad2 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 415      11A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416 0ad8 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 416      567811A0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 417              " {
+           if [expr $x == 37] then {
+               pass "$testname: shlr.b #4, ..."
+           } else {
+               fail "$testname: shlr.b #4, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.b #4, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 418 0ae0 1121" { set x [expr $x+1]; exp_continue; }
+       -re ".* 419 0ae2 7D901120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420 0ae6 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 420      1120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421 0aec 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 421      1120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422 0af2 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 422      1120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423 0af8 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 423      1120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424 0afe 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 424      1120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425 0b04 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 425      12341120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426 0b0c 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 426      1120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427 0b16 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 427      12341120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428 0b1e 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 428      12341120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429 0b26 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 429      12341120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430 0b2e 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 430      1120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431 0b38 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 431      1120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432 0b42 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 432      1120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433 0b4c 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 433      1120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434 0b52 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 434      56781120" { set x [expr $x+1]; exp_continue; }
+       -re ".* 435              " {
+           if [expr $x == 36] then {
+               pass "$testname: shlr.w #4, ..."
+           } else {
+               fail "$testname: shlr.w #4, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.w #4, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 436 0b5a 1139" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437 0b5c 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 437      1138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438 0b62 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 438      1138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439 0b68 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 439      1138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440 0b6e 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 440      1138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441 0b74 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 441      1138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442 0b7a 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 442      1138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443 0b80 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 443      12341138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444 0b88 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 444      1138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 445 0b92 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 445      12341138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446 0b9a 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 446      12341138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447 0ba2 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 447      12341138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448 0baa 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 448      1138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449 0bb4 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 449      1138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450 0bbe 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 450      1138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451 0bc8 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 451      12341138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452 0bd0 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 452      1138" { set x [expr $x+1]; exp_continue; }
+       -re ".* 453              " {
+           if [expr $x == 38] then {
+               pass "$testname: shlr.l #4, ..."
+           } else {
+               fail "$testname: shlr.l #4, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.l #4, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 454 0bda 1161" { set x [expr $x+1]; exp_continue; }
+       -re ".* 455 0bdc 7D901160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456 0be0 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 456      1160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457 0be6 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 457      1160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458 0bec 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 458      1160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459 0bf2 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 459      1160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460 0bf8 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 460      1160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461 0bfe 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 461      12341160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462 0c06 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 462      1160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463 0c10 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 463      12341160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464 0c18 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 464      12341160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465 0c20 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 465      12341160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466 0c28 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 466      1160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467 0c32 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 467      1160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468 0c3c 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 468      1160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469 0c46 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 469      1160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470 0c4c 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 470      56781160" { set x [expr $x+1]; exp_continue; }
+       -re ".* 471              " {
+           if [expr $x == 36] then {
+               pass "$testname: shlr.w #8, ..."
+           } else {
+               fail "$testname: shlr.w #8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.w #8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 472 0c54 1179" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473 0c56 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 473      1178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474 0c5c 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 474      1178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475 0c62 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 475      1178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476 0c68 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 476      1178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477 0c6e 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 477      1178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478 0c74 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 478      1178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479 0c7a 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 479      12341178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480 0c82 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 480      1178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481 0c8c 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 481      12341178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482 0c94 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 482      12341178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483 0c9c 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 483      12341178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484 0ca4 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 484      1178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485 0cae 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 485      1178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486 0cb8 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 486      1178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487 0cc2 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 487      12341178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488 0cca 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 488      1178" { set x [expr $x+1]; exp_continue; }
+       -re ".* 489              " {
+           if [expr $x == 38] then {
+               pass "$testname: shlr.l #8, ..."
+           } else {
+               fail "$testname: shlr.l #8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.l #8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 490 0cd4 11F9" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491 0cd6 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 491      11F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492 0cdc 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 492      11F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493 0ce2 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 493      11F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494 0ce8 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 494      11F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495 0cee 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 495      11F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496 0cf4 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 496      11F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497 0cfa 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 497      123411F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498 0d02 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 498      11F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499 0d0c 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 499      123411F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500 0d14 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 500      123411F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501 0d1c 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 501      123411F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502 0d24 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 502      11F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503 0d2e 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 503      11F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504 0d38 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 504      11F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505 0d42 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 505      123411F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506 0d4a 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 506      11F8" { set x [expr $x+1]; exp_continue; }
+       -re ".* 507              " {
+           if [expr $x == 38] then {
+               pass "$testname: shlr.l #16, ..."
+           } else {
+               fail "$testname: shlr.l #16, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.l #16, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 508 0d54 03871101" { set x [expr $x+1]; exp_continue; }
+       -re ".* 509 0d58 038F1111" { set x [expr $x+1]; exp_continue; }
+       -re ".* 510 0d5c 039F1131" { set x [expr $x+1]; exp_continue; }
+       -re ".* 511              " {
+           if [expr $x == 3] then {
+               pass "$testname: shlr.? #imm:5, <reg>"
+           } else {
+               fail "$testname: shlr.? #imm:5, <reg> ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.? #imm:5, <reg> ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 512 0d60 78381101" { set x [expr $x+1]; exp_continue; }
+       -re ".* 513 0d64 78381111" { set x [expr $x+1]; exp_continue; }
+       -re ".* 514 0d68 78381131" { set x [expr $x+1]; exp_continue; }
+       -re ".* 515              " {
+           if [expr $x == 3] then {
+               pass "$testname: shlr.? r3h, <reg>"
+           } else {
+               fail "$testname: shlr.? r3h, <reg> ($x)"
+           }
+       }
+        default        { fail "$testname: shlr.? r3h, <reg> ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 516 0d6c 1081" { set x [expr $x+1]; exp_continue; }
+       -re ".* 517 0d6e 7D101080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518 0d72 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 518      1080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519 0d78 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 519      1080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520 0d7e 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 520      1080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521 0d84 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 521      1080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522 0d8a 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 522      1080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523 0d90 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 523      12341080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524 0d98 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 524      1080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525 0da2 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 525      12341080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526 0daa 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 526      12341080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527 0db2 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 527      12341080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528 0dba 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 528      1080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529 0dc4 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 529      1080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530 0dce 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 530      1080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 531 0dd8 7F121080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532 0ddc 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 532      1080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533 0de2 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 533      56781080" { set x [expr $x+1]; exp_continue; }
+       -re ".* 534              " {
+           if [expr $x == 37] then {
+               pass "$testname: shal.b ..."
+           } else {
+               fail "$testname: shal.b ... ($x)"
+           }
+       }
+        default        { fail "$testname: shal.b ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 535 0dea 1091" { set x [expr $x+1]; exp_continue; }
+       -re ".* 536 0dec 7D901090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537 0df0 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 537      1090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538 0df6 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 538      1090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539 0dfc 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 539      1090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540 0e02 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 540      1090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541 0e08 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 541      1090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542 0e0e 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 542      12341090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543 0e16 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 543      1090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544 0e20 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 544      12341090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545 0e28 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 545      12341090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546 0e30 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 546      12341090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547 0e38 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 547      1090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548 0e42 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 548      1090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549 0e4c 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 549      1090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550 0e56 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 550      1090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551 0e5c 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 551      56781090" { set x [expr $x+1]; exp_continue; }
+       -re ".* 552              " {
+           if [expr $x == 36] then {
+               pass "$testname: shal.w ..."
+           } else {
+               fail "$testname: shal.w ... ($x)"
+           }
+       }
+        default        { fail "$testname: shal.w ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 553 0e64 10B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554 0e66 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 554      10B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555 0e6c 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 555      10B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556 0e72 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 556      10B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557 0e78 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 557      10B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558 0e7e 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 558      10B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559 0e84 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 559      10B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560 0e8a 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 560      123410B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561 0e92 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 561      10B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562 0e9c 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 562      123410B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563 0ea4 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 563      123410B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564 0eac 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 564      123410B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565 0eb4 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 565      10B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566 0ebe 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 566      10B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567 0ec8 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 567      10B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568 0ed2 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 568      123410B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569 0eda 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 569      10B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 570              " {
+           if [expr $x == 38] then {
+               pass "$testname: shal.l ..."
+           } else {
+               fail "$testname: shal.l ... ($x)"
+           }
+       }
+        default        { fail "$testname: shal.l ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 571 0ee4 10C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 572 0ee6 7D1010C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573 0eea 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 573      10C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574 0ef0 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 574      10C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575 0ef6 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 575      10C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576 0efc 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 576      10C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577 0f02 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 577      10C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578 0f08 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 578      123410C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579 0f10 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 579      10C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580 0f1a 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 580      123410C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581 0f22 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 581      123410C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582 0f2a 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 582      123410C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583 0f32 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 583      10C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584 0f3c 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 584      10C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585 0f46 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 585      10C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 586 0f50 7F1210C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587 0f54 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 587      10C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588 0f5a 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 588      567810C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 589              " {
+           if [expr $x == 37] then {
+               pass "$testname: shal.b #2, ..."
+           } else {
+               fail "$testname: shal.b #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shal.b #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 590 0f62 10D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 591 0f64 7D9010D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592 0f68 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 592      10D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593 0f6e 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 593      10D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594 0f74 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 594      10D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595 0f7a 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 595      10D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596 0f80 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 596      10D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597 0f86 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 597      123410D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598 0f8e 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 598      10D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599 0f98 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 599      123410D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600 0fa0 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 600      123410D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601 0fa8 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 601      123410D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602 0fb0 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 602      10D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603 0fba 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 603      10D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604 0fc4 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 604      10D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605 0fce 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 605      10D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606 0fd4 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 606      567810D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 607              " {
+           if [expr $x == 36] then {
+               pass "$testname: shal.w #2, ..."
+           } else {
+               fail "$testname: shal.w #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shal.w #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 608 0fdc 10F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609 0fde 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 609      10F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610 0fe4 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 610      10F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611 0fea 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 611      10F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612 0ff0 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 612      10F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613 0ff6 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 613      10F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614 0ffc 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 614      10F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 615 1002 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 615      123410F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616 100a 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 616      10F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617 1014 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 617      123410F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618 101c 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 618      123410F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619 1024 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 619      123410F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620 102c 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 620      10F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621 1036 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 621      10F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622 1040 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 622      10F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623 104a 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 623      123410F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624 1052 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 624      10F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 625              " {
+           if [expr $x == 38] then {
+               pass "$testname: shal.l #2, ..."
+           } else {
+               fail "$testname: shal.l #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shal.l #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 626 105c 1181" { set x [expr $x+1]; exp_continue; }
+       -re ".* 627 105e 7D101180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628 1062 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 628      1180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629 1068 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 629      1180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630 106e 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 630      1180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631 1074 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 631      1180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 632 107a 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 632      1180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633 1080 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 633      12341180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634 1088 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 634      1180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635 1092 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 635      12341180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636 109a 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 636      12341180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637 10a2 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 637      12341180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638 10aa 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 638      1180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639 10b4 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 639      1180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640 10be 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 640      1180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 641 10c8 7F121180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642 10cc 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 642      1180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643 10d2 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 643      56781180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 644              " {
+           if [expr $x == 37] then {
+               pass "$testname: shar.b ..."
+           } else {
+               fail "$testname: shar.b ... ($x)"
+           }
+       }
+        default        { fail "$testname: shar.b ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 645 10da 1191" { set x [expr $x+1]; exp_continue; }
+       -re ".* 646 10dc 7D901190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647 10e0 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 647      1190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648 10e6 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 648      1190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649 10ec 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 649      1190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650 10f2 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 650      1190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651 10f8 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 651      1190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652 10fe 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 652      12341190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653 1106 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 653      1190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654 1110 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 654      12341190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655 1118 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 655      12341190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656 1120 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 656      12341190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657 1128 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 657      1190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658 1132 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 658      1190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659 113c 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 659      1190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660 1146 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 660      1190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661 114c 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 661      56781190" { set x [expr $x+1]; exp_continue; }
+       -re ".* 662              " {
+           if [expr $x == 36] then {
+               pass "$testname: shar.w ..."
+           } else {
+               fail "$testname: shar.w ... ($x)"
+           }
+       }
+        default        { fail "$testname: shar.w ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 663 1154 11B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664 1156 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 664      11B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 665 115c 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 665      11B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666 1162 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 666      11B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667 1168 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 667      11B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 668 116e 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 668      11B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 669 1174 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 669      11B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 670 117a 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 670      123411B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671 1182 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 671      11B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672 118c 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 672      123411B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673 1194 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 673      123411B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674 119c 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 674      123411B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675 11a4 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 675      11B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676 11ae 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 676      11B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677 11b8 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 677      11B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678 11c2 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 678      123411B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679 11ca 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 679      11B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 680              " {
+           if [expr $x == 38] then {
+               pass "$testname: shar.l ..."
+           } else {
+               fail "$testname: shar.l ... ($x)"
+           }
+       }
+        default        { fail "$testname: shar.l ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 681 11d4 11C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 682 11d6 7D1011C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 683 11da 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 683      11C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 684 11e0 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 684      11C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 685 11e6 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 685      11C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 686 11ec 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 686      11C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 687 11f2 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 687      11C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 688 11f8 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 688      123411C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689 1200 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 689      11C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690 120a 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 690      123411C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691 1212 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 691      123411C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692 121a 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 692      123411C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693 1222 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 693      11C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694 122c 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 694      11C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695 1236 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 695      11C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 696 1240 7F1211C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697 1244 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 697      11C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698 124a 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 698      567811C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 699              " {
+           if [expr $x == 37] then {
+               pass "$testname: shar.b #2, ..."
+           } else {
+               fail "$testname: shar.b #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shar.b #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 700 1252 11D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 701 1254 7D9011D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702 1258 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 702      11D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703 125e 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 703      11D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704 1264 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 704      11D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705 126a 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 705      11D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706 1270 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 706      11D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707 1276 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 707      123411D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708 127e 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 708      11D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709 1288 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 709      123411D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710 1290 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 710      123411D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711 1298 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 711      123411D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712 12a0 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 712      11D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713 12aa 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 713      11D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714 12b4 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 714      11D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715 12be 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 715      11D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716 12c4 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 716      567811D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 717              " {
+           if [expr $x == 36] then {
+               pass "$testname: shar.w #2, ..."
+           } else {
+               fail "$testname: shar.w #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shar.w #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 718 12cc 11F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719 12ce 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 719      11F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720 12d4 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 720      11F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721 12da 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 721      11F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722 12e0 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 722      11F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723 12e6 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 723      11F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724 12ec 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 724      11F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725 12f2 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 725      123411F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726 12fa 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 726      11F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727 1304 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 727      123411F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728 130c 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 728      123411F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729 1314 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 729      123411F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730 131c 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 730      11F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731 1326 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 731      11F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732 1330 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 732      11F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733 133a 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 733      123411F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734 1342 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 734      11F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 735              " {
+           if [expr $x == 38] then {
+               pass "$testname: shar.l #2, ..."
+           } else {
+               fail "$testname: shar.l #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: shar.l #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 736 134c 1201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 737 134e 7D101200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738 1352 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 738      1200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739 1358 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 739      1200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740 135e 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 740      1200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741 1364 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 741      1200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742 136a 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 742      1200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743 1370 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 743      12341200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744 1378 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 744      1200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745 1382 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 745      12341200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746 138a 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 746      12341200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747 1392 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 747      12341200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748 139a 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 748      1200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749 13a4 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 749      1200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750 13ae 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 750      1200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 751 13b8 7F121200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752 13bc 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 752      1200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753 13c2 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 753      56781200" { set x [expr $x+1]; exp_continue; }
+       -re ".* 754              " {
+           if [expr $x == 37] then {
+               pass "$testname: rotxl.b ..."
+           } else {
+               fail "$testname: rotxl.b ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotxl.b ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 755 13ca 1211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 756 13cc 7D901210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757 13d0 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 757      1210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758 13d6 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 758      1210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759 13dc 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 759      1210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760 13e2 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 760      1210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761 13e8 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 761      1210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762 13ee 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 762      12341210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763 13f6 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 763      1210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764 1400 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 764      12341210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765 1408 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 765      12341210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766 1410 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 766      12341210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767 1418 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 767      1210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768 1422 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 768      1210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769 142c 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 769      1210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770 1436 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 770      1210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771 143c 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 771      56781210" { set x [expr $x+1]; exp_continue; }
+       -re ".* 772              " {
+           if [expr $x == 36] then {
+               pass "$testname: rotxl.w ..."
+           } else {
+               fail "$testname: rotxl.w ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotxl.w ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 773 1444 1231" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774 1446 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 774      1230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775 144c 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 775      1230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776 1452 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 776      1230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777 1458 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 777      1230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778 145e 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 778      1230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779 1464 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 779      1230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780 146a 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 780      12341230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781 1472 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 781      1230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782 147c 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 782      12341230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783 1484 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 783      12341230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784 148c 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 784      12341230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785 1494 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 785      1230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786 149e 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 786      1230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787 14a8 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 787      1230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788 14b2 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 788      12341230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789 14ba 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 789      1230" { set x [expr $x+1]; exp_continue; }
+       -re ".* 790              " {
+           if [expr $x == 38] then {
+               pass "$testname: rotxl.l ..."
+           } else {
+               fail "$testname: rotxl.l ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotxl.l ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 791 14c4 1241" { set x [expr $x+1]; exp_continue; }
+       -re ".* 792 14c6 7D101240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793 14ca 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 793      1240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794 14d0 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 794      1240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795 14d6 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 795      1240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796 14dc 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 796      1240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797 14e2 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 797      1240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798 14e8 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 798      12341240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799 14f0 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 799      1240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800 14fa 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 800      12341240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801 1502 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 801      12341240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802 150a 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 802      12341240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803 1512 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 803      1240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804 151c 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 804      1240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805 1526 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 805      1240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 806 1530 7F121240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807 1534 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 807      1240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808 153a 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 808      56781240" { set x [expr $x+1]; exp_continue; }
+       -re ".* 809              " {
+           if [expr $x == 37] then {
+               pass "$testname: rotxl.b #2, ..."
+           } else {
+               fail "$testname: rotxl.b #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotxl.b #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 810 1542 1251" { set x [expr $x+1]; exp_continue; }
+       -re ".* 811 1544 7D901250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812 1548 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 812      1250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813 154e 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 813      1250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814 1554 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 814      1250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815 155a 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 815      1250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816 1560 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 816      1250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817 1566 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 817      12341250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818 156e 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 818      1250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819 1578 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 819      12341250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820 1580 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 820      12341250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821 1588 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 821      12341250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822 1590 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 822      1250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823 159a 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 823      1250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824 15a4 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 824      1250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825 15ae 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 825      1250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826 15b4 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 826      56781250" { set x [expr $x+1]; exp_continue; }
+       -re ".* 827              " {
+           if [expr $x == 36] then {
+               pass "$testname: rotxl.w #2, ..."
+           } else {
+               fail "$testname: rotxl.w #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotxl.w #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 828 15bc 1271" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829 15be 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 829      1270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830 15c4 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 830      1270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831 15ca 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 831      1270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832 15d0 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 832      1270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833 15d6 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 833      1270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834 15dc 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 834      1270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835 15e2 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 835      12341270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836 15ea 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 836      1270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837 15f4 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 837      12341270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838 15fc 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 838      12341270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839 1604 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 839      12341270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840 160c 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 840      1270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841 1616 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 841      1270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842 1620 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 842      1270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843 162a 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 843      12341270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844 1632 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 844      1270" { set x [expr $x+1]; exp_continue; }
+       -re ".* 845              " {
+           if [expr $x == 38] then {
+               pass "$testname: rotxl.l #2, ..."
+           } else {
+               fail "$testname: rotxl.l #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotxl.l #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 846 163c 1301" { set x [expr $x+1]; exp_continue; }
+       -re ".* 847 163e 7D101300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848 1642 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 848      1300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849 1648 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 849      1300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850 164e 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 850      1300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851 1654 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 851      1300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852 165a 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 852      1300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853 1660 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 853      12341300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854 1668 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 854      1300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855 1672 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 855      12341300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856 167a 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 856      12341300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857 1682 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 857      12341300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858 168a 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 858      1300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859 1694 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 859      1300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860 169e 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 860      1300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 861 16a8 7F121300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862 16ac 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 862      1300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863 16b2 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 863      56781300" { set x [expr $x+1]; exp_continue; }
+       -re ".* 864              " {
+           if [expr $x == 37] then {
+               pass "$testname: rotxr.b ..."
+           } else {
+               fail "$testname: rotxr.b ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotxr.b ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 865 16ba 1311" { set x [expr $x+1]; exp_continue; }
+       -re ".* 866 16bc 7D901310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867 16c0 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 867      1310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868 16c6 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 868      1310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869 16cc 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 869      1310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870 16d2 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 870      1310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871 16d8 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 871      1310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872 16de 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 872      12341310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873 16e6 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 873      1310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874 16f0 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 874      12341310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875 16f8 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 875      12341310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876 1700 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 876      12341310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877 1708 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 877      1310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878 1712 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 878      1310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879 171c 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 879      1310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880 1726 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 880      1310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881 172c 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 881      56781310" { set x [expr $x+1]; exp_continue; }
+       -re ".* 882              " {
+           if [expr $x == 36] then {
+               pass "$testname: rotxr.w ..."
+           } else {
+               fail "$testname: rotxr.w ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotxr.w ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 883 1734 1331" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884 1736 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 884      1330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885 173c 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 885      1330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886 1742 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 886      1330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887 1748 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 887      1330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888 174e 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 888      1330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889 1754 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 889      1330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890 175a 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 890      12341330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891 1762 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 891      1330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892 176c 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 892      12341330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893 1774 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 893      12341330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894 177c 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 894      12341330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895 1784 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 895      1330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896 178e 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 896      1330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897 1798 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 897      1330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898 17a2 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 898      12341330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899 17aa 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 899      1330" { set x [expr $x+1]; exp_continue; }
+       -re ".* 900              " {
+           if [expr $x == 38] then {
+               pass "$testname: rotxr.l ..."
+           } else {
+               fail "$testname: rotxr.l ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotxr.l ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 901 17b4 1341" { set x [expr $x+1]; exp_continue; }
+       -re ".* 902 17b6 7D101340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903 17ba 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 903      1340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904 17c0 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 904      1340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905 17c6 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 905      1340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906 17cc 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 906      1340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907 17d2 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 907      1340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908 17d8 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 908      12341340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909 17e0 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 909      1340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910 17ea 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 910      12341340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911 17f2 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 911      12341340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912 17fa 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 912      12341340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913 1802 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 913      1340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914 180c 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 914      1340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915 1816 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 915      1340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 916 1820 7F121340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917 1824 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 917      1340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918 182a 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 918      56781340" { set x [expr $x+1]; exp_continue; }
+       -re ".* 919              " {
+           if [expr $x == 37] then {
+               pass "$testname: rotxr.b #2, ..."
+           } else {
+               fail "$testname: rotxr.b #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotxr.b #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 920 1832 1351" { set x [expr $x+1]; exp_continue; }
+       -re ".* 921 1834 7D901350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922 1838 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 922      1350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923 183e 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 923      1350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924 1844 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 924      1350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925 184a 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 925      1350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926 1850 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 926      1350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927 1856 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 927      12341350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928 185e 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 928      1350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929 1868 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 929      12341350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930 1870 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 930      12341350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931 1878 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 931      12341350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932 1880 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 932      1350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933 188a 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 933      1350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934 1894 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 934      1350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935 189e 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 935      1350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936 18a4 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 936      56781350" { set x [expr $x+1]; exp_continue; }
+       -re ".* 937              " {
+           if [expr $x == 36] then {
+               pass "$testname: rotxr.w #2, ..."
+           } else {
+               fail "$testname: rotxr.w #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotxr.w #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 938 18ac 1371" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939 18ae 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 939      1370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940 18b4 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 940      1370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941 18ba 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 941      1370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942 18c0 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 942      1370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943 18c6 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 943      1370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944 18cc 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 944      1370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945 18d2 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 945      12341370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946 18da 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 946      1370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947 18e4 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 947      12341370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948 18ec 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 948      12341370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949 18f4 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 949      12341370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950 18fc 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 950      1370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951 1906 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 951      1370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952 1910 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 952      1370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953 191a 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 953      12341370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954 1922 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 954      1370" { set x [expr $x+1]; exp_continue; }
+       -re ".* 955              " {
+           if [expr $x == 38] then {
+               pass "$testname: rotxr.l #2, ..."
+           } else {
+               fail "$testname: rotxr.l #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotxr.l #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 956 192c 1281" { set x [expr $x+1]; exp_continue; }
+       -re ".* 957 192e 7D101280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958 1932 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 958      1280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959 1938 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 959      1280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960 193e 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 960      1280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961 1944 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 961      1280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962 194a 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 962      1280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963 1950 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 963      12341280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964 1958 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 964      1280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965 1962 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 965      12341280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966 196a 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 966      12341280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967 1972 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 967      12341280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968 197a 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 968      1280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969 1984 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 969      1280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970 198e 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 970      1280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 971 1998 7F121280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972 199c 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 972      1280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 973 19a2 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 973      56781280" { set x [expr $x+1]; exp_continue; }
+       -re ".* 974              " {
+           if [expr $x == 37] then {
+               pass "$testname: rotl.b ..."
+           } else {
+               fail "$testname: rotl.b ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotl.b ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 975 19aa 1291" { set x [expr $x+1]; exp_continue; }
+       -re ".* 976 19ac 7D901290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 977 19b0 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 977      1290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 978 19b6 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 978      1290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 979 19bc 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 979      1290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 980 19c2 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 980      1290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 981 19c8 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 981      1290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 982 19ce 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 982      12341290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 983 19d6 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 983      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 983      1290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 984 19e0 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 984      12341290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 985 19e8 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 985      12341290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 986 19f0 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 986      12341290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 987 19f8 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 987      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 987      1290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 988 1a02 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 988      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 988      1290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 989 1a0c 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 989      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 989      1290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 990 1a16 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 990      1290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 991 1a1c 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 991      56781290" { set x [expr $x+1]; exp_continue; }
+       -re ".* 992              " {
+           if [expr $x == 36] then {
+               pass "$testname: rotl.w ..."
+           } else {
+               fail "$testname: rotl.w ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotl.w ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 993 1a24 12B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 994 1a26 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 994      12B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 995 1a2c 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 995      12B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 996 1a32 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 996      12B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 997 1a38 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 997      12B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 998 1a3e 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 998      12B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 999 1a44 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 999      12B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1000 1a4a 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1000      123412B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1001 1a52 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1001      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1001      12B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1002 1a5c 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1002      123412B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1003 1a64 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1003      123412B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1004 1a6c 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1004      123412B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1005 1a74 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1005      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1005      12B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1006 1a7e 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1006      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1006      12B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1007 1a88 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1007      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1007      12B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1008 1a92 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1008      123412B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1009 1a9a 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1009      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1009      12B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1010             " {
+           if [expr $x == 38] then {
+               pass "$testname: rotl.l ..."
+           } else {
+               fail "$testname: rotl.l ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotl.l ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1011 1aa4 12C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1012 1aa6 7D1012C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1013 1aaa 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1013      12C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1014 1ab0 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1014      12C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1015 1ab6 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1015      12C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1016 1abc 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1016      12C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1017 1ac2 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1017      12C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1018 1ac8 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1018      123412C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1019 1ad0 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1019      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1019      12C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1020 1ada 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1020      123412C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1021 1ae2 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1021      123412C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1022 1aea 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1022      123412C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1023 1af2 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1023      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1023      12C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1024 1afc 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1024      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1024      12C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1025 1b06 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1025      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1025      12C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1026 1b10 7F1212C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1027 1b14 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1027      12C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1028 1b1a 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1028      567812C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1029             " {
+           if [expr $x == 37] then {
+               pass "$testname: rotl.b #2, ..."
+           } else {
+               fail "$testname: rotl.b #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotl.b #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1030 1b22 12D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1031 1b24 7D9012D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1032 1b28 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1032      12D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1033 1b2e 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1033      12D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1034 1b34 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1034      12D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1035 1b3a 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1035      12D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1036 1b40 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1036      12D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1037 1b46 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1037      123412D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1038 1b4e 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1038      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1038      12D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1039 1b58 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1039      123412D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1040 1b60 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1040      123412D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1041 1b68 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1041      123412D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1042 1b70 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1042      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1042      12D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1043 1b7a 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1043      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1043      12D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1044 1b84 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1044      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1044      12D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1045 1b8e 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1045      12D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1046 1b94 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1046      567812D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1047             " {
+           if [expr $x == 36] then {
+               pass "$testname: rotl.w #2, ..."
+           } else {
+               fail "$testname: rotl.w #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotl.w #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1048 1b9c 12F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1049 1b9e 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1049      12F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1050 1ba4 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1050      12F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1051 1baa 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1051      12F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1052 1bb0 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1052      12F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1053 1bb6 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1053      12F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1054 1bbc 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1054      12F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1055 1bc2 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1055      123412F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1056 1bca 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1056      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1056      12F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1057 1bd4 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1057      123412F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1058 1bdc 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1058      123412F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1059 1be4 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1059      123412F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1060 1bec 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1060      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1060      12F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1061 1bf6 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1061      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1061      12F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1062 1c00 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1062      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1062      12F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1063 1c0a 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1063      123412F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1064 1c12 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1064      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1064      12F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1065             " {
+           if [expr $x == 38] then {
+               pass "$testname: rotl.l #2, ..."
+           } else {
+               fail "$testname: rotl.l #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotl.l #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1066 1c1c 1381" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1067 1c1e 7D101380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1068 1c22 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1068      1380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1069 1c28 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1069      1380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1070 1c2e 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1070      1380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1071 1c34 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1071      1380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1072 1c3a 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1072      1380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1073 1c40 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1073      12341380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1074 1c48 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1074      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1074      1380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1075 1c52 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1075      12341380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1076 1c5a 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1076      12341380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1077 1c62 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1077      12341380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1078 1c6a 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1078      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1078      1380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1079 1c74 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1079      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1079      1380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1080 1c7e 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1080      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1080      1380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1081 1c88 7F121380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1082 1c8c 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1082      1380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1083 1c92 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1083      56781380" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1084             " {
+           if [expr $x == 37] then {
+               pass "$testname: rotr.b ..."
+           } else {
+               fail "$testname: rotr.b ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotr.b ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1085 1c9a 1391" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1086 1c9c 7D901390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1087 1ca0 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1087      1390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1088 1ca6 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1088      1390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1089 1cac 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1089      1390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1090 1cb2 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1090      1390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1091 1cb8 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1091      1390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1092 1cbe 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1092      12341390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1093 1cc6 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1093      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1093      1390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1094 1cd0 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1094      12341390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1095 1cd8 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1095      12341390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1096 1ce0 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1096      12341390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1097 1ce8 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1097      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1097      1390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1098 1cf2 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1098      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1098      1390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1099 1cfc 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1099      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1099      1390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1100 1d06 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1100      1390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1101 1d0c 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1101      56781390" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1102             " {
+           if [expr $x == 36] then {
+               pass "$testname: rotr.w ..."
+           } else {
+               fail "$testname: rotr.w ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotr.w ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1103 1d14 13B1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1104 1d16 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1104      13B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1105 1d1c 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1105      13B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1106 1d22 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1106      13B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1107 1d28 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1107      13B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1108 1d2e 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1108      13B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1109 1d34 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1109      13B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1110 1d3a 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1110      123413B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1111 1d42 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1111      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1111      13B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1112 1d4c 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1112      123413B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1113 1d54 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1113      123413B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1114 1d5c 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1114      123413B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1115 1d64 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1115      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1115      13B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1116 1d6e 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1116      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1116      13B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1117 1d78 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1117      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1117      13B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1118 1d82 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1118      123413B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1119 1d8a 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1119      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1119      13B0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1120             " {
+           if [expr $x == 38] then {
+               pass "$testname: rotr.l ..."
+           } else {
+               fail "$testname: rotr.l ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotr.l ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1121 1d94 13C1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1122 1d96 7D1013C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1123 1d9a 01776818" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1123      13C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1124 1da0 01746C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1124      13C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1125 1da6 01776C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1125      13C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1126 1dac 01756C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1126      13C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1127 1db2 01766C18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1127      13C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1128 1db8 01746E18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1128      123413C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1129 1dc0 78146A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1129      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1129      13C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1130 1dca 01756E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1130      123413C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1131 1dd2 01766E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1131      123413C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1132 1dda 01776E28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1132      123413C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1133 1de2 78256A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1133      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1133      13C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1134 1dec 78266A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1134      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1134      13C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1135 1df6 78276A28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1135      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1135      13C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1136 1e00 7F1213C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1137 1e04 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1137      13C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1138 1e0a 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1138      567813C0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1139             " {
+           if [expr $x == 37] then {
+               pass "$testname: rotr.b #2, ..."
+           } else {
+               fail "$testname: rotr.b #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotr.b #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1140 1e12 13D1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1141 1e14 7D9013D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1142 1e18 01576918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1142      13D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1143 1e1e 01546D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1143      13D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1144 1e24 01576D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1144      13D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1145 1e2a 01556D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1145      13D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1146 1e30 01566D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1146      13D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1147 1e36 01546F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1147      123413D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1148 1e3e 78146B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1148      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1148      13D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1149 1e48 01556F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1149      123413D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1150 1e50 01566F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1150      123413D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1151 1e58 01576F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1151      123413D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1152 1e60 78256B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1152      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1152      13D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1153 1e6a 78266B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1153      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1153      13D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1154 1e74 78276B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1154      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1154      13D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1155 1e7e 6B181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1155      13D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1156 1e84 6B381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1156      567813D0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1157             " {
+           if [expr $x == 36] then {
+               pass "$testname: rotr.w #2, ..."
+           } else {
+               fail "$testname: rotr.w #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotr.w #2, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 1158 1e8c 13F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1159 1e8e 01046918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1159      13F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1160 1e94 01076918" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1160      13F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1161 1e9a 01046D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1161      13F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1162 1ea0 01076D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1162      13F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1163 1ea6 01056D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1163      13F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1164 1eac 01066D18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1164      13F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1165 1eb2 01046F18" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1165      123413F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1166 1eba 78946B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1166      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1166      13F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1167 1ec4 01056F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1167      123413F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1168 1ecc 01066F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1168      123413F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1169 1ed4 01076F28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1169      123413F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1170 1edc 78A56B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1170      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1170      13F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1171 1ee6 78A66B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1171      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1171      13F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1172 1ef0 78A76B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1172      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1172      13F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1173 1efa 01046B08" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1173      123413F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1174 1f02 01046B28" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1174      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1174      13F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 1175             " {
+           if [expr $x == 38] then {
+               pass "$testname: rotr.l #2, ..."
+           } else {
+               fail "$testname: rotr.l #2, ... ($x)"
+           }
+       }
+        default        { fail "$testname: rotr.l #2, ... ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t11_logs_test
+}
+
diff --git a/gas/testsuite/gas/h8300/t11_logs.s b/gas/testsuite/gas/h8300/t11_logs.s
new file mode 100644 (file)
index 0000000..66a9a5a
--- /dev/null
@@ -0,0 +1,1176 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;log_sft\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+_start:\r
+    not.b r1h                 ;1701\r
+    not.b @er1               ;7d101700\r
+    not.b @(0x3:2,er1)         ;017768181700\r
+    not.b @er1+              ;01746c181700\r
+    not.b @-er1              ;01776c181700\r
+    not.b @+er1              ;01756c181700\r
+    not.b @er1-              ;01766c181700\r
+    not.b @(0x1234:16,er1)        ;01746e1812341700\r
+    not.b @(0x12345678:32,er1)        ;78146a28123456781700\r
+    not.b @(0x1234:16,r2l.b)      ;01756e2812341700\r
+    not.b @(0x1234:16,r2.w)      ;01766e2812341700\r
+    not.b @(0x1234:16,er2.l)      ;01776e2812341700\r
+    not.b @(0x12345678:32,r2l.b)      ;78256a28123456781700\r
+    not.b @(0x12345678:32,r2.w)      ;78266a28123456781700\r
+    not.b @(0x12345678:32,er2.l)      ;78276a28123456781700\r
+    not.b @0xffffff12:8              ;7f121700\r
+    not.b @0x1234:16             ;6a1812341700\r
+    not.b @0x12345678:32             ;6a38123456781700\r
+\r
+    not.w r1                 ;1711\r
+    not.w @er1               ;7d901710\r
+    not.w @(0x6:2,er1)      ;015769181710\r
+    not.w @er1+              ;01546d181710\r
+    not.w @-er1              ;01576d181710\r
+    not.w @+er1              ;01556d181710\r
+    not.w @er1-              ;01566d181710\r
+    not.w @(0x1234:16,er1)        ;01546f1812341710\r
+    not.w @(0x12345678:32,er1)        ;78146b28123456781710\r
+    not.w @(0x1234:16,r2l.b)      ;01556f2812341710\r
+    not.w @(0x1234:16,r2.w)      ;01566f2812341710\r
+    not.w @(0x1234:16,er2.l)      ;01576f2812341710\r
+    not.w @(0x12345678:32,r2l.b)      ;78256b28123456781710\r
+    not.w @(0x12345678:32,r2.w)      ;78266b28123456781710\r
+    not.w @(0x12345678:32,er2.l)      ;78276b28123456781710\r
+    not.w @0x1234:16             ;6b1812341710\r
+    not.w @0x12345678:32             ;6b38123456781710\r
+\r
+    not.l er1                 ;1731\r
+    not.l @er1               ;010469181730\r
+    not.l @(0xc:2,er1)      ;010769181730\r
+    not.l @er1+              ;01046d181730\r
+    not.l @-er1              ;01076d181730\r
+    not.l @+er1              ;01056d181730\r
+    not.l @er1-              ;01066d181730\r
+    not.l @(0x1234:16,er1)        ;01046f1812341730\r
+    not.l @(0x12345678:32,er1)        ;78946b28123456781730\r
+    not.l @(0x1234:16,r2l.b)      ;01056f2812341730\r
+    not.l @(0x1234:16,r2.w)      ;01066f2812341730\r
+    not.l @(0x1234:16,er2.l)      ;01076f2812341730\r
+    not.l @(0x12345678:32,r2l.b)      ;78a56b28123456781730\r
+    not.l @(0x12345678:32,r2.w)      ;78a66b28123456781730\r
+    not.l @(0x12345678:32,er2.l)      ;78a76b28123456781730\r
+    not.l @0x1234:16             ;01046b0812341730\r
+    not.l @0x12345678:32             ;01046b28123456781730\r
+\r
+    shll.b r1h                ;1001\r
+    shll.b @er1              ;7d101000\r
+    shll.b @(0x3:2,er1)        ;017768181000\r
+    shll.b @er1+             ;01746c181000\r
+    shll.b @-er1             ;01776c181000\r
+    shll.b @+er1             ;01756c181000\r
+    shll.b @er1-             ;01766c181000\r
+    shll.b @(0x1234:16,er1)       ;01746e1812341000\r
+    shll.b @(0x12345678:32,er1)       ;78146a28123456781000\r
+    shll.b @(0x1234:16,r2l.b)     ;01756e2812341000\r
+    shll.b @(0x1234:16,r2.w)     ;01766e2812341000\r
+    shll.b @(0x1234:16,er2.l)     ;01776e2812341000\r
+    shll.b @(0x12345678:32,r2l.b)     ;78256a28123456781000\r
+    shll.b @(0x12345678:32,r2.w)     ;78266a28123456781000\r
+    shll.b @(0x12345678:32,er2.l)     ;78276a28123456781000\r
+    shll.b @0xffffff12:8             ;7f121000\r
+    shll.b @0x1234:16            ;6a1812341000\r
+    shll.b @0x12345678:32            ;6a38123456781000\r
+\r
+    shll.w r1                ;1011\r
+    shll.w @er1              ;7d901010\r
+    shll.w @(0x6:2,er1)     ;015769181010\r
+    shll.w @er1+             ;01546d181010\r
+    shll.w @-er1             ;01576d181010\r
+    shll.w @+er1             ;01556d181010\r
+    shll.w @er1-             ;01566d181010\r
+    shll.w @(0x1234:16,er1)       ;01546f1812341010\r
+    shll.w @(0x12345678:32,er1)       ;78146b28123456781010\r
+    shll.w @(0x1234:16,r2l.b)     ;01556f2812341010\r
+    shll.w @(0x1234:16,r2.w)     ;01566f2812341010\r
+    shll.w @(0x1234:16,er2.l)     ;01576f2812341010\r
+    shll.w @(0x12345678:32,r2l.b)     ;78256b28123456781010\r
+    shll.w @(0x12345678:32,r2.w)     ;78266b28123456781010\r
+    shll.w @(0x12345678:32,er2.l)     ;78276b28123456781010\r
+    shll.w @0x1234:16            ;6b1812341010\r
+    shll.w @0x12345678:32            ;6b38123456781010\r
+\r
+    shll.l er1                ;1031\r
+    shll.l @er1              ;010469181030\r
+    shll.l @(0xc:2,er1)     ;010769181030\r
+    shll.l @er1+             ;01046d181030\r
+    shll.l @-er1             ;01076d181030\r
+    shll.l @+er1             ;01056d181030\r
+    shll.l @er1-             ;01066d181030\r
+    shll.l @(0x1234:16,er1)       ;01046f1812341030\r
+    shll.l @(0x12345678:32,er1)       ;78946b28123456781030\r
+    shll.l @(0x1234:16,r2l.b)     ;01056f2812341030\r
+    shll.l @(0x1234:16,r2.w)     ;01066f2812341030\r
+    shll.l @(0x1234:16,er2.l)     ;01076f2812341030\r
+    shll.l @(0x12345678:32,r2l.b)     ;78a56b28123456781030\r
+    shll.l @(0x12345678:32,r2.w)     ;78a66b28123456781030\r
+    shll.l @(0x12345678:32,er2.l)     ;78a76b28123456781030\r
+    shll.l @0x1234:16            ;01046b0812341030\r
+    shll.l @0x12345678:32            ;01046b28123456781030\r
+\r
+    shll.b #2,r1h             ;1041\r
+    shll.b #2,@er1           ;7d101040\r
+    shll.b #2,@(0x3:2,er1)     ;017768181040\r
+    shll.b #2,@er1+          ;01746c181040\r
+    shll.b #2,@-er1          ;01776c181040\r
+    shll.b #2,@+er1          ;01756c181040\r
+    shll.b #2,@er1-          ;01766c181040\r
+    shll.b #2,@(0x1234:16,er1)    ;01746e1812341040\r
+    shll.b #2,@(0x12345678:32,er1)    ;78146a28123456781040\r
+    shll.b #2,@(0x1234:16,r2l.b)  ;01756e2812341040\r
+    shll.b #2,@(0x1234:16,r2.w)  ;01766e2812341040\r
+    shll.b #2,@(0x1234:16,er2.l)  ;01776e2812341040\r
+    shll.b #2,@(0x12345678:32,r2l.b)  ;78256a28123456781040\r
+    shll.b #2,@(0x12345678:32,r2.w)  ;78266a28123456781040\r
+    shll.b #2,@(0x12345678:32,er2.l)  ;78276a28123456781040\r
+    shll.b #2,@0xffffff12:8          ;7f121040\r
+    shll.b #2,@0x1234:16         ;6a1812341040\r
+    shll.b #2,@0x12345678:32         ;6a38123456781040\r
+\r
+    shll.w #2,r1             ;1051\r
+    shll.w #2,@er1           ;7d901050\r
+    shll.w #2,@(0x6:2,er1)  ;015769181050\r
+    shll.w #2,@er1+          ;01546d181050\r
+    shll.w #2,@-er1          ;01576d181050\r
+    shll.w #2,@+er1          ;01556d181050\r
+    shll.w #2,@er1-          ;01566d181050\r
+    shll.w #2,@(0x1234:16,er1)    ;01546f1812341050\r
+    shll.w #2,@(0x12345678:32,er1)    ;78146b28123456781050\r
+    shll.w #2,@(0x1234:16,r2l.b)  ;01556f2812341050\r
+    shll.w #2,@(0x1234:16,r2.w)  ;01566f2812341050\r
+    shll.w #2,@(0x1234:16,er2.l)  ;01576f2812341050\r
+    shll.w #2,@(0x12345678:32,r2l.b)  ;78256b28123456781050\r
+    shll.w #2,@(0x12345678:32,r2.w)  ;78266b28123456781050\r
+    shll.w #2,@(0x12345678:32,er2.l)  ;78276b28123456781050\r
+    shll.w #2,@0x1234:16         ;6b1812341050\r
+    shll.w #2,@0x12345678:32         ;6b38123456781050\r
+\r
+    shll.l #2,er1             ;1071\r
+    shll.l #2,@er1           ;010469181070\r
+    shll.l #2,@(0xc:2,er1)  ;010769181070\r
+    shll.l #2,@er1+          ;01046d181070\r
+    shll.l #2,@-er1          ;01076d181070\r
+    shll.l #2,@+er1          ;01056d181070\r
+    shll.l #2,@er1-          ;01066d181070\r
+    shll.l #2,@(0x1234:16,er1)    ;01046f1812341070\r
+    shll.l #2,@(0x12345678:32,er1)    ;78946b28123456781070\r
+    shll.l #2,@(0x1234:16,r2l.b)  ;01056f2812341070\r
+    shll.l #2,@(0x1234:16,r2.w)  ;01066f2812341070\r
+    shll.l #2,@(0x1234:16,er2.l)  ;01076f2812341070\r
+    shll.l #2,@(0x12345678:32,r2l.b)  ;78a56b28123456781070\r
+    shll.l #2,@(0x12345678:32,r2.w)  ;78a66b28123456781070\r
+    shll.l #2,@(0x12345678:32,er2.l)  ;78a76b28123456781070\r
+    shll.l #2,@0x1234:16         ;01046b0812341070\r
+    shll.l #2,@0x12345678:32         ;01046b28123456781070\r
+\r
+    shll.b #4,r1h             ;10a1\r
+    shll.b #4,@er1           ;7d1010a0\r
+    shll.b #4,@(0x3:2,er1)     ;0177681810a0\r
+    shll.b #4,@er1+          ;01746c1810a0\r
+    shll.b #4,@-er1          ;01776c1810a0\r
+    shll.b #4,@+er1          ;01756c1810a0\r
+    shll.b #4,@er1-          ;01766c1810a0\r
+    shll.b #4,@(0x1234:16,er1)    ;01746e18123410a0\r
+    shll.b #4,@(0x12345678:32,er1)    ;78146a281234567810a0\r
+    shll.b #4,@(0x1234:16,r2l.b)  ;01756e28123410a0\r
+    shll.b #4,@(0x1234:16,r2.w)  ;01766e28123410a0\r
+    shll.b #4,@(0x1234:16,er2.l)  ;01776e28123410a0\r
+    shll.b #4,@(0x12345678:32,r2l.b)  ;78256a281234567810a0\r
+    shll.b #4,@(0x12345678:32,r2.w)  ;78266a281234567810a0\r
+    shll.b #4,@(0x12345678:32,er2.l)  ;78276a281234567810a0\r
+    shll.b #4,@0xffffff12:8          ;7f1210a0\r
+    shll.b #4,@0x1234:16         ;6a18123410a0\r
+    shll.b #4,@0x12345678:32         ;6a381234567810a0\r
+\r
+    shll.w #4,r1             ;1021\r
+    shll.w #4,@er1           ;7d901020\r
+    shll.w #4,@(0x6:2,er1)  ;015769181020\r
+    shll.w #4,@er1+          ;01546d181020\r
+    shll.w #4,@-er1          ;01576d181020\r
+    shll.w #4,@+er1          ;01556d181020\r
+    shll.w #4,@er1-          ;01566d181020\r
+    shll.w #4,@(0x1234:16,er1)    ;01546f1812341020\r
+    shll.w #4,@(0x12345678:32,er1)    ;78146b28123456781020\r
+    shll.w #4,@(0x1234:16,r2l.b)  ;01556f2812341020\r
+    shll.w #4,@(0x1234:16,r2.w)  ;01566f2812341020\r
+    shll.w #4,@(0x1234:16,er2.l)  ;01576f2812341020\r
+    shll.w #4,@(0x12345678:32,r2l.b)  ;78256b28123456781020\r
+    shll.w #4,@(0x12345678:32,r2.w)  ;78266b28123456781020\r
+    shll.w #4,@(0x12345678:32,er2.l)  ;78276b28123456781020\r
+    shll.w #4,@0x1234:16         ;6b1812341020\r
+    shll.w #4,@0x12345678:32         ;6b38123456781020\r
+\r
+    shll.l #4,er1             ;1039\r
+    shll.l #4,@er1           ;010469181038\r
+    shll.l #4,@(0xc:2,er1)  ;010769181038\r
+    shll.l #4,@er1+          ;01046d181038\r
+    shll.l #4,@-er1          ;01076d181038\r
+    shll.l #4,@+er1          ;01056d181038\r
+    shll.l #4,@er1-          ;01066d181038\r
+    shll.l #4,@(0x1234:16,er1)    ;01046f1812341038\r
+    shll.l #4,@(0x12345678:32,er1)    ;78946b28123456781038\r
+    shll.l #4,@(0x1234:16,r2l.b)  ;01056f2812341038\r
+    shll.l #4,@(0x1234:16,r2.w)  ;01066f2812341038\r
+    shll.l #4,@(0x1234:16,er2.l)  ;01076f2812341038\r
+    shll.l #4,@(0x12345678:32,r2l.b)  ;78a56b28123456781038\r
+    shll.l #4,@(0x12345678:32,r2.w)  ;78a66b28123456781038\r
+    shll.l #4,@(0x12345678:32,er2.l)  ;78a76b28123456781038\r
+    shll.l #4,@0x1234:16         ;01046b0812341038\r
+    shll.l #4,@0x12345678:32         ;01046b28123456781038\r
+\r
+    shll.w #8,r1             ;1061\r
+    shll.w #8,@er1           ;7d901060\r
+    shll.w #8,@(0x6:2,er1)  ;015769181060\r
+    shll.w #8,@er1+          ;01546d181060\r
+    shll.w #8,@-er1          ;01576d181060\r
+    shll.w #8,@+er1          ;01556d181060\r
+    shll.w #8,@er1-          ;01566d181060\r
+    shll.w #8,@(0x1234:16,er1)    ;01546f1812341060\r
+    shll.w #8,@(0x12345678:32,er1)    ;78146b28123456781060\r
+    shll.w #8,@(0x1234:16,r2l.b)  ;01556f2812341060\r
+    shll.w #8,@(0x1234:16,r2.w)  ;01566f2812341060\r
+    shll.w #8,@(0x1234:16,er2.l)  ;01576f2812341060\r
+    shll.w #8,@(0x12345678:32,r2l.b)  ;78256b28123456781060\r
+    shll.w #8,@(0x12345678:32,r2.w)  ;78266b28123456781060\r
+    shll.w #8,@(0x12345678:32,er2.l)  ;78276b28123456781060\r
+    shll.w #8,@0x1234:16         ;6b1812341060\r
+    shll.w #8,@0x12345678:32         ;6b38123456781060\r
+\r
+    shll.l #8,er1             ;1079\r
+    shll.l #8,@er1           ;010469181078\r
+    shll.l #8,@(0xc:2,er1)  ;010769181078\r
+    shll.l #8,@er1+          ;01046d181078\r
+    shll.l #8,@-er1          ;01076d181078\r
+    shll.l #8,@+er1          ;01056d181078\r
+    shll.l #8,@er1-          ;01066d181078\r
+    shll.l #8,@(0x1234:16,er1)    ;01046f1812341078\r
+    shll.l #8,@(0x12345678:32,er1)    ;78946b28123456781078\r
+    shll.l #8,@(0x1234:16,r2l.b)  ;01056f2812341078\r
+    shll.l #8,@(0x1234:16,r2.w)  ;01066f2812341078\r
+    shll.l #8,@(0x1234:16,er2.l)  ;01076f2812341078\r
+    shll.l #8,@(0x12345678:32,r2l.b)  ;78a56b28123456781078\r
+    shll.l #8,@(0x12345678:32,r2.w)  ;78a66b28123456781078\r
+    shll.l #8,@(0x12345678:32,er2.l)  ;78a76b28123456781078\r
+    shll.l #8,@0x1234:16         ;01046b0812341078\r
+    shll.l #8,@0x12345678:32         ;01046b28123456781078\r
+\r
+    shll.l #16,er1            ;10f9\r
+    shll.l #16,@er1          ;0104691810f8\r
+    shll.l #16,@(0xc:2,er1) ;0107691810f8\r
+    shll.l #16,@er1+         ;01046d1810f8\r
+    shll.l #16,@-er1         ;01076d1810f8\r
+    shll.l #16,@+er1         ;01056d1810f8\r
+    shll.l #16,@er1-         ;01066d1810f8\r
+    shll.l #16,@(0x1234:16,er1)   ;01046f18123410f8\r
+    shll.l #16,@(0x12345678:32,er1)   ;78946b281234567810f8\r
+    shll.l #16,@(0x1234:16,r2l.b) ;01056f28123410f8\r
+    shll.l #16,@(0x1234:16,r2.w) ;01066f28123410f8\r
+    shll.l #16,@(0x1234:16,er2.l) ;01076f28123410f8\r
+    shll.l #16,@(0x12345678:32,r2l.b) ;78a56b281234567810f8\r
+    shll.l #16,@(0x12345678:32,r2.w) ;78a66b281234567810f8\r
+    shll.l #16,@(0x12345678:32,er2.l) ;78a76b281234567810f8\r
+    shll.l #16,@0x1234:16        ;01046b08123410f8\r
+    shll.l #16,@0x12345678:32        ;01046b281234567810f8\r
+\r
+    shll.b #0x7:5,r1h        ;03871001\r
+    shll.w #0xf:5,r1         ;038f1011\r
+    shll.l #0x1f:5,er1       ;039f1031\r
+\r
+    shll.b r3h,r1h           ;78381001\r
+    shll.w r3h,r1            ;78381011\r
+    shll.l r3h,er1           ;78381031\r
+\r
+    shlr.b r1h               ;1101\r
+    shlr.b @er1              ;7d101100\r
+    shlr.b @(0x3:2,er1)      ;017768181100\r
+    shlr.b @er1+             ;01746c181100\r
+    shlr.b @-er1             ;01776c181100\r
+    shlr.b @+er1             ;01756c181100\r
+    shlr.b @er1-             ;01766c181100\r
+    shlr.b @(0x1234:16,er1)       ;01746e1812341100\r
+    shlr.b @(0x12345678:32,er1)       ;78146a28123456781100\r
+    shlr.b @(0x1234:16,r2l.b)     ;01756e2812341100\r
+    shlr.b @(0x1234:16,r2.w)     ;01766e2812341100\r
+    shlr.b @(0x1234:16,er2.l)     ;01776e2812341100\r
+    shlr.b @(0x12345678:32,r2l.b)     ;78256a28123456781100\r
+    shlr.b @(0x12345678:32,r2.w)     ;78266a28123456781100\r
+    shlr.b @(0x12345678:32,er2.l)     ;78276a28123456781100\r
+    shlr.b @0xffffff12:8             ;7f121100\r
+    shlr.b @0x1234:16            ;6a1812341100\r
+    shlr.b @0x12345678:32            ;6a38123456781100\r
+\r
+    shlr.w r1                ;1111\r
+    shlr.w @er1              ;7d901110\r
+    shlr.w @(0x6:2,er1)     ;015769181110\r
+    shlr.w @er1+             ;01546d181110\r
+    shlr.w @-er1             ;01576d181110\r
+    shlr.w @+er1             ;01556d181110\r
+    shlr.w @er1-             ;01566d181110\r
+    shlr.w @(0x1234:16,er1)       ;01546f1812341110\r
+    shlr.w @(0x12345678:32,er1)       ;78146b28123456781110\r
+    shlr.w @(0x1234:16,r2l.b)     ;01556f2812341110\r
+    shlr.w @(0x1234:16,r2.w)     ;01566f2812341110\r
+    shlr.w @(0x1234:16,er2.l)     ;01576f2812341110\r
+    shlr.w @(0x12345678:32,r2l.b)     ;78256b28123456781110\r
+    shlr.w @(0x12345678:32,r2.w)     ;78266b28123456781110\r
+    shlr.w @(0x12345678:32,er2.l)     ;78276b28123456781110\r
+    shlr.w @0x1234:16            ;6b1812341110\r
+    shlr.w @0x12345678:32            ;6b38123456781110\r
+\r
+    shlr.l er1                ;1131\r
+    shlr.l @er1              ;010469181130\r
+    shlr.l @(0xc:2,er1)     ;010769181130\r
+    shlr.l @er1+             ;01046d181130\r
+    shlr.l @-er1             ;01076d181130\r
+    shlr.l @+er1             ;01056d181130\r
+    shlr.l @er1-             ;01066d181130\r
+    shlr.l @(0x1234:16,er1)       ;01046f1812341130\r
+    shlr.l @(0x12345678:32,er1)       ;78946b28123456781130\r
+    shlr.l @(0x1234:16,r2l.b)     ;01056f2812341130\r
+    shlr.l @(0x1234:16,r2.w)     ;01066f2812341130\r
+    shlr.l @(0x1234:16,er2.l)     ;01076f2812341130\r
+    shlr.l @(0x12345678:32,r2l.b)     ;78a56b28123456781130\r
+    shlr.l @(0x12345678:32,r2.w)     ;78a66b28123456781130\r
+    shlr.l @(0x12345678:32,er2.l)     ;78a76b28123456781130\r
+    shlr.l @0x1234:16            ;01046b0812341130\r
+    shlr.l @0x12345678:32            ;01046b28123456781130\r
+\r
+    shlr.b #2,r1h             ;1141\r
+    shlr.b #2,@er1           ;7d101140\r
+    shlr.b #2,@(0x3:2,er1)     ;017768181140\r
+    shlr.b #2,@er1+          ;01746c181140\r
+    shlr.b #2,@-er1          ;01776c181140\r
+    shlr.b #2,@+er1          ;01756c181140\r
+    shlr.b #2,@er1-          ;01766c181140\r
+    shlr.b #2,@(0x1234:16,er1)    ;01746e1812341140\r
+    shlr.b #2,@(0x12345678:32,er1)    ;78146a28123456781140\r
+    shlr.b #2,@(0x1234:16,r2l.b)  ;01756e2812341140\r
+    shlr.b #2,@(0x1234:16,r2.w)  ;01766e2812341140\r
+    shlr.b #2,@(0x1234:16,er2.l)  ;01776e2812341140\r
+    shlr.b #2,@(0x12345678:32,r2l.b)  ;78256a28123456781140\r
+    shlr.b #2,@(0x12345678:32,r2.w)  ;78266a28123456781140\r
+    shlr.b #2,@(0x12345678:32,er2.l)  ;78276a28123456781140\r
+    shlr.b #2,@0xffffff12:8          ;7f121140\r
+    shlr.b #2,@0x1234:16         ;6a1812341140\r
+    shlr.b #2,@0x12345678:32         ;6a38123456781140\r
+\r
+    shlr.w #2,r1             ;1151\r
+    shlr.w #2,@er1           ;7d901150\r
+    shlr.w #2,@(0x6:2,er1)  ;015769181150\r
+    shlr.w #2,@er1+          ;01546d181150\r
+    shlr.w #2,@-er1          ;01576d181150\r
+    shlr.w #2,@+er1          ;01556d181150\r
+    shlr.w #2,@er1-          ;01566d181150\r
+    shlr.w #2,@(0x1234:16,er1)    ;01546f1812341150\r
+    shlr.w #2,@(0x12345678:32,er1)    ;78146b28123456781150\r
+    shlr.w #2,@(0x1234:16,r2l.b)  ;01556f2812341150\r
+    shlr.w #2,@(0x1234:16,r2.w)  ;01566f2812341150\r
+    shlr.w #2,@(0x1234:16,er2.l)  ;01576f2812341150\r
+    shlr.w #2,@(0x12345678:32,r2l.b)  ;78256b28123456781150\r
+    shlr.w #2,@(0x12345678:32,r2.w)  ;78266b28123456781150\r
+    shlr.w #2,@(0x12345678:32,er2.l)  ;78276b28123456781150\r
+    shlr.w #2,@0x1234:16         ;6b1812341150\r
+    shlr.w #2,@0x12345678:32         ;6b38123456781150\r
+\r
+    shlr.l #2,er1             ;1171\r
+    shlr.l #2,@er1           ;010469181170\r
+    shlr.l #2,@(0xc:2,er1)  ;010769181170\r
+    shlr.l #2,@er1+          ;01046d181170\r
+    shlr.l #2,@-er1          ;01076d181170\r
+    shlr.l #2,@+er1          ;01056d181170\r
+    shlr.l #2,@er1-          ;01066d181170\r
+    shlr.l #2,@(0x1234:16,er1)    ;01046f1812341170\r
+    shlr.l #2,@(0x12345678:32,er1)    ;78946b28123456781170\r
+    shlr.l #2,@(0x1234:16,r2l.b)  ;01056f2812341170\r
+    shlr.l #2,@(0x1234:16,r2.w)  ;01066f2812341170\r
+    shlr.l #2,@(0x1234:16,er2.l)  ;01076f2812341170\r
+    shlr.l #2,@(0x12345678:32,r2l.b)  ;78a56b28123456781170\r
+    shlr.l #2,@(0x12345678:32,r2.w)  ;78a66b28123456781170\r
+    shlr.l #2,@(0x12345678:32,er2.l)  ;78a76b28123456781170\r
+    shlr.l #2,@0x1234:16         ;01046b0812341170\r
+    shlr.l #2,@0x12345678:32         ;01046b28123456781170\r
+\r
+    shlr.b #4,r1h             ;11a1\r
+    shlr.b #4,@er1           ;7d1011a0\r
+    shlr.b #4,@(0x3:2,er1)     ;0177681811a0\r
+    shlr.b #4,@er1+          ;01746c1811a0\r
+    shlr.b #4,@-er1          ;01776c1811a0\r
+    shlr.b #4,@+er1          ;01756c1811a0\r
+    shlr.b #4,@er1-          ;01766c1811a0\r
+    shlr.b #4,@(0x1234:16,er1)    ;01746e18123411a0\r
+    shlr.b #4,@(0x12345678:32,er1)    ;78146a281234567811a0\r
+    shlr.b #4,@(0x1234:16,r2l.b)  ;01756e28123411a0\r
+    shlr.b #4,@(0x1234:16,r2.w)  ;01766e28123411a0\r
+    shlr.b #4,@(0x1234:16,er2.l)  ;01776e28123411a0\r
+    shlr.b #4,@(0x12345678:32,r2l.b)  ;78256a281234567811a0\r
+    shlr.b #4,@(0x12345678:32,r2.w)  ;78266a281234567811a0\r
+    shlr.b #4,@(0x12345678:32,er2.l)  ;78276a281234567811a0\r
+    shlr.b #4,@0xffffff12:8          ;7f1211a0\r
+    shlr.b #4,@0x1234:16         ;6a18123411a0\r
+    shlr.b #4,@0x12345678:32         ;6a381234567811a0\r
+\r
+    shlr.w #4,r1             ;1121\r
+    shlr.w #4,@er1           ;7d901120\r
+    shlr.w #4,@(0x6:2,er1)     ;015769181120\r
+    shlr.w #4,@er1+          ;01546d181120\r
+    shlr.w #4,@-er1          ;01576d181120\r
+    shlr.w #4,@+er1          ;01556d181120\r
+    shlr.w #4,@er1-          ;01566d181120\r
+    shlr.w #4,@(0x1234:16,er1)    ;01546f1812341120\r
+    shlr.w #4,@(0x12345678:32,er1)    ;78146b28123456781120\r
+    shlr.w #4,@(0x1234:16,r2l.b)  ;01556f2812341120\r
+    shlr.w #4,@(0x1234:16,r2.w)  ;01566f2812341120\r
+    shlr.w #4,@(0x1234:16,er2.l)  ;01576f2812341120\r
+    shlr.w #4,@(0x12345678:32,r2l.b)  ;78256b28123456781120\r
+    shlr.w #4,@(0x12345678:32,r2.w)  ;78266b28123456781120\r
+    shlr.w #4,@(0x12345678:32,er2.l)  ;78276b28123456781120\r
+    shlr.w #4,@0x1234:16         ;6b1812341120\r
+    shlr.w #4,@0x12345678:32         ;6b38123456781120\r
+\r
+    shlr.l #4,er1             ;1139\r
+    shlr.l #4,@er1           ;010469181138\r
+    shlr.l #4,@(0xc:2,er1)     ;010769181138\r
+    shlr.l #4,@er1+          ;01046d181138\r
+    shlr.l #4,@-er1          ;01076d181138\r
+    shlr.l #4,@+er1          ;01056d181138\r
+    shlr.l #4,@er1-          ;01066d181138\r
+    shlr.l #4,@(0x1234:16,er1)    ;01046f1812341138\r
+    shlr.l #4,@(0x12345678:32,er1)    ;78946b28123456781138\r
+    shlr.l #4,@(0x1234:16,r2l.b)  ;01056f2812341138\r
+    shlr.l #4,@(0x1234:16,r2.w)  ;01066f2812341138\r
+    shlr.l #4,@(0x1234:16,er2.l)  ;01076f2812341138\r
+    shlr.l #4,@(0x12345678:32,r2l.b)  ;78a56b28123456781138\r
+    shlr.l #4,@(0x12345678:32,r2.w)  ;78a66b28123456781138\r
+    shlr.l #4,@(0x12345678:32,er2.l)  ;78a76b28123456781138\r
+    shlr.l #4,@0x1234:16         ;01046b0812341138\r
+    shlr.l #4,@0x12345678:32         ;01046b28123456781138\r
+\r
+    shlr.w #8,r1             ;1161\r
+    shlr.w #8,@er1           ;7d901160\r
+    shlr.w #8,@(0x6:2,er1)  ;015769181160\r
+    shlr.w #8,@er1+          ;01546d181160\r
+    shlr.w #8,@-er1          ;01576d181160\r
+    shlr.w #8,@+er1          ;01556d181160\r
+    shlr.w #8,@er1-          ;01566d181160\r
+    shlr.w #8,@(0x1234:16,er1)    ;01546f1812341160\r
+    shlr.w #8,@(0x12345678:32,er1)    ;78146b28123456781160\r
+    shlr.w #8,@(0x1234:16,r2l.b)  ;01556f2812341160\r
+    shlr.w #8,@(0x1234:16,r2.w)  ;01566f2812341160\r
+    shlr.w #8,@(0x1234:16,er2.l)  ;01576f2812341160\r
+    shlr.w #8,@(0x12345678:32,r2l.b)  ;78256b28123456781160\r
+    shlr.w #8,@(0x12345678:32,r2.w)  ;78266b28123456781160\r
+    shlr.w #8,@(0x12345678:32,er2.l)  ;78276b28123456781160\r
+    shlr.w #8,@0x1234:16         ;6b1812341160\r
+    shlr.w #8,@0x12345678:32         ;6b38123456781160\r
+\r
+    shlr.l #8,er1             ;1179\r
+    shlr.l #8,@er1           ;010469181178\r
+    shlr.l #8,@(0xc:2,er1)  ;010769181178\r
+    shlr.l #8,@er1+          ;01046d181178\r
+    shlr.l #8,@-er1          ;01076d181178\r
+    shlr.l #8,@+er1          ;01056d181178\r
+    shlr.l #8,@er1-          ;01066d181178\r
+    shlr.l #8,@(0x1234:16,er1)    ;01046f1812341178\r
+    shlr.l #8,@(0x12345678:32,er1)    ;78946b28123456781178\r
+    shlr.l #8,@(0x1234:16,r2l.b)  ;01056f2812341178\r
+    shlr.l #8,@(0x1234:16,r2.w)  ;01066f2812341178\r
+    shlr.l #8,@(0x1234:16,er2.l)  ;01076f2812341178\r
+    shlr.l #8,@(0x12345678:32,r2l.b)  ;78a56b28123456781178\r
+    shlr.l #8,@(0x12345678:32,r2.w)  ;78a66b28123456781178\r
+    shlr.l #8,@(0x12345678:32,er2.l)  ;78a76b28123456781178\r
+    shlr.l #8,@0x1234:16         ;01046b0812341178\r
+    shlr.l #8,@0x12345678:32         ;01046b28123456781178\r
+\r
+    shlr.l #16,er1            ;11f9\r
+    shlr.l #16,@er1          ;0104691811f8\r
+    shlr.l #16,@(0xc:2,er1) ;0107691811f8\r
+    shlr.l #16,@er1+         ;01046d1811f8\r
+    shlr.l #16,@-er1         ;01076d1811f8\r
+    shlr.l #16,@+er1         ;01056d1811f8\r
+    shlr.l #16,@er1-         ;01066d1811f8\r
+    shlr.l #16,@(0x1234:16,er1)   ;01046f18123411f8\r
+    shlr.l #16,@(0x12345678:32,er1)   ;78946b281234567811f8\r
+    shlr.l #16,@(0x1234:16,r2l.b) ;01056f28123411f8\r
+    shlr.l #16,@(0x1234:16,r2.w) ;01066f28123411f8\r
+    shlr.l #16,@(0x1234:16,er2.l) ;01076f28123411f8\r
+    shlr.l #16,@(0x12345678:32,r2l.b) ;78a56b281234567811f8\r
+    shlr.l #16,@(0x12345678:32,r2.w) ;78a66b281234567811f8\r
+    shlr.l #16,@(0x12345678:32,er2.l) ;78a76b281234567811f8\r
+    shlr.l #16,@0x1234:16        ;01046b08123411f8\r
+    shlr.l #16,@0x12345678:32        ;01046b281234567811f8\r
+\r
+    shlr.b #0x7:5,r1h        ;03871101\r
+    shlr.w #0xf:5,r1         ;038f1111\r
+    shlr.l #0x1f:5,er1       ;039f1131\r
+\r
+    shlr.b r3h,r1h           ;78381101\r
+    shlr.w r3h,r1            ;78381111\r
+    shlr.l r3h,er1           ;78381131\r
+\r
+    shal.b r1h               ;1081\r
+    shal.b @er1              ;7d101080\r
+    shal.b @(0x3:2,er1)      ;017768181080\r
+    shal.b @er1+             ;01746c181080\r
+    shal.b @-er1             ;01776c181080\r
+    shal.b @+er1             ;01756c181080\r
+    shal.b @er1-             ;01766c181080\r
+    shal.b @(0x1234:16,er1)       ;01746e1812341080\r
+    shal.b @(0x12345678:32,er1)       ;78146a28123456781080\r
+    shal.b @(0x1234:16,r2l.b)     ;01756e2812341080\r
+    shal.b @(0x1234:16,r2.w)     ;01766e2812341080\r
+    shal.b @(0x1234:16,er2.l)     ;01776e2812341080\r
+    shal.b @(0x12345678:32,r2l.b)     ;78256a28123456781080\r
+    shal.b @(0x12345678:32,r2.w)     ;78266a28123456781080\r
+    shal.b @(0x12345678:32,er2.l)     ;78276a28123456781080\r
+    shal.b @0xffffff12:8             ;7f121080\r
+    shal.b @0x1234:16            ;6a1812341080\r
+    shal.b @0x12345678:32            ;6a38123456781080\r
+\r
+    shal.w r1                ;1091\r
+    shal.w @er1              ;7d901090\r
+    shal.w @(0x6:2,er1)     ;015769181090\r
+    shal.w @er1+             ;01546d181090\r
+    shal.w @-er1             ;01576d181090\r
+    shal.w @+er1             ;01556d181090\r
+    shal.w @er1-             ;01566d181090\r
+    shal.w @(0x1234:16,er1)       ;01546f1812341090\r
+    shal.w @(0x12345678:32,er1)       ;78146b28123456781090\r
+    shal.w @(0x1234:16,r2l.b)     ;01556f2812341090\r
+    shal.w @(0x1234:16,r2.w)     ;01566f2812341090\r
+    shal.w @(0x1234:16,er2.l)     ;01576f2812341090\r
+    shal.w @(0x12345678:32,r2l.b)     ;78256b28123456781090\r
+    shal.w @(0x12345678:32,r2.w)     ;78266b28123456781090\r
+    shal.w @(0x12345678:32,er2.l)     ;78276b28123456781090\r
+    shal.w @0x1234:16            ;6b1812341090\r
+    shal.w @0x12345678:32            ;6b38123456781090\r
+\r
+    shal.l er1                ;10b1\r
+    shal.l @er1              ;0104691810b0\r
+    shal.l @(0xc:2,er1)     ;0107691810b0\r
+    shal.l @er1+             ;01046d1810b0\r
+    shal.l @-er1             ;01076d1810b0\r
+    shal.l @+er1             ;01056d1810b0\r
+    shal.l @er1-             ;01066d1810b0\r
+    shal.l @(0x1234:16,er1)       ;01046f18123410b0\r
+    shal.l @(0x12345678:32,er1)       ;78946b281234567810b0\r
+    shal.l @(0x1234:16,r2l.b)     ;01056f28123410b0\r
+    shal.l @(0x1234:16,r2.w)     ;01066f28123410b0\r
+    shal.l @(0x1234:16,er2.l)     ;01076f28123410b0\r
+    shal.l @(0x12345678:32,r2l.b)     ;78a56b281234567810b0\r
+    shal.l @(0x12345678:32,r2.w)     ;78a66b281234567810b0\r
+    shal.l @(0x12345678:32,er2.l)     ;78a76b281234567810b0\r
+    shal.l @0x1234:16            ;01046b08123410b0\r
+    shal.l @0x12345678:32            ;01046b281234567810b0\r
+\r
+    shal.b #2,r1h             ;10c1\r
+    shal.b #2,@er1           ;7d1010c0\r
+    shal.b #2,@(0x3:2,er1)     ;0177681810c0\r
+    shal.b #2,@er1+          ;01746c1810c0\r
+    shal.b #2,@-er1          ;01776c1810c0\r
+    shal.b #2,@+er1          ;01756c1810c0\r
+    shal.b #2,@er1-          ;01766c1810c0\r
+    shal.b #2,@(0x1234:16,er1)    ;01746e18123410c0\r
+    shal.b #2,@(0x12345678:32,er1)    ;78146a281234567810c0\r
+    shal.b #2,@(0x1234:16,r2l.b)  ;01756e28123410c0\r
+    shal.b #2,@(0x1234:16,r2.w)  ;01766e28123410c0\r
+    shal.b #2,@(0x1234:16,er2.l)  ;01776e28123410c0\r
+    shal.b #2,@(0x12345678:32,r2l.b)  ;78256a281234567810c0\r
+    shal.b #2,@(0x12345678:32,r2.w)  ;78266a281234567810c0\r
+    shal.b #2,@(0x12345678:32,er2.l)  ;78276a281234567810c0\r
+    shal.b #2,@0xffffff12:8          ;7f1210c0\r
+    shal.b #2,@0x1234:16         ;6a18123410c0\r
+    shal.b #2,@0x12345678:32         ;6a381234567810c0\r
+\r
+    shal.w #2,r1             ;10d1\r
+    shal.w #2,@er1           ;7d9010d0\r
+    shal.w #2,@(0x6:2,er1)  ;0157691810d0\r
+    shal.w #2,@er1+          ;01546d1810d0\r
+    shal.w #2,@-er1          ;01576d1810d0\r
+    shal.w #2,@+er1          ;01556d1810d0\r
+    shal.w #2,@er1-          ;01566d1810d0\r
+    shal.w #2,@(0x1234:16,er1)    ;01546f18123410d0\r
+    shal.w #2,@(0x12345678:32,er1)    ;78146b281234567810d0\r
+    shal.w #2,@(0x1234:16,r2l.b)  ;01556f28123410d0\r
+    shal.w #2,@(0x1234:16,r2.w)  ;01566f28123410d0\r
+    shal.w #2,@(0x1234:16,er2.l)  ;01576f28123410d0\r
+    shal.w #2,@(0x12345678:32,r2l.b)  ;78256b281234567810d0\r
+    shal.w #2,@(0x12345678:32,r2.w)  ;78266b281234567810d0\r
+    shal.w #2,@(0x12345678:32,er2.l)  ;78276b281234567810d0\r
+    shal.w #2,@0x1234:16         ;6b18123410d0\r
+    shal.w #2,@0x12345678:32         ;6b381234567810d0\r
+\r
+    shal.l #2,er1             ;10f1\r
+    shal.l #2,@er1           ;0104691810f0\r
+    shal.l #2,@(0xc:2,er1)  ;0107691810f0\r
+    shal.l #2,@er1+          ;01046d1810f0\r
+    shal.l #2,@-er1          ;01076d1810f0\r
+    shal.l #2,@+er1          ;01056d1810f0\r
+    shal.l #2,@er1-          ;01066d1810f0\r
+    shal.l #2,@(0x1234:16,er1)    ;01046f18123410f0\r
+    shal.l #2,@(0x12345678:32,er1)    ;78946b281234567810f0\r
+    shal.l #2,@(0x1234:16,r2l.b)  ;01056f28123410f0\r
+    shal.l #2,@(0x1234:16,r2.w)  ;01066f28123410f0\r
+    shal.l #2,@(0x1234:16,er2.l)  ;01076f28123410f0\r
+    shal.l #2,@(0x12345678:32,r2l.b)  ;78a56b281234567810f0\r
+    shal.l #2,@(0x12345678:32,r2.w)  ;78a66b281234567810f0\r
+    shal.l #2,@(0x12345678:32,er2.l)  ;78a76b281234567810f0\r
+    shal.l #2,@0x1234:16         ;01046b08123410f0\r
+    shal.l #2,@0x12345678:32         ;01046b281234567810f0\r
+\r
+    shar.b r1h                ;1181\r
+    shar.b @er1              ;7d101180\r
+    shar.b @(0x3:2,er1)        ;017768181180\r
+    shar.b @er1+             ;01746c181180\r
+    shar.b @-er1             ;01776c181180\r
+    shar.b @+er1             ;01756c181180\r
+    shar.b @er1-             ;01766c181180\r
+    shar.b @(0x1234:16,er1)       ;01746e1812341180\r
+    shar.b @(0x12345678:32,er1)       ;78146a28123456781180\r
+    shar.b @(0x1234:16,r2l.b)     ;01756e2812341180\r
+    shar.b @(0x1234:16,r2.w)     ;01766e2812341180\r
+    shar.b @(0x1234:16,er2.l)     ;01776e2812341180\r
+    shar.b @(0x12345678:32,r2l.b)     ;78256a28123456781180\r
+    shar.b @(0x12345678:32,r2.w)     ;78266a28123456781180\r
+    shar.b @(0x12345678:32,er2.l)     ;78276a28123456781180\r
+    shar.b @0xffffff12:8             ;7f121180\r
+    shar.b @0x1234:16            ;6a1812341180\r
+    shar.b @0x12345678:32            ;6a38123456781180\r
+\r
+    shar.w r1                ;1191\r
+    shar.w @er1              ;7d901190\r
+    shar.w @(0x6:2,er1)     ;015769181190\r
+    shar.w @er1+             ;01546d181190\r
+    shar.w @-er1             ;01576d181190\r
+    shar.w @+er1             ;01556d181190\r
+    shar.w @er1-             ;01566d181190\r
+    shar.w @(0x1234:16,er1)       ;01546f1812341190\r
+    shar.w @(0x12345678:32,er1)       ;78146b28123456781190\r
+    shar.w @(0x1234:16,r2l.b)     ;01556f2812341190\r
+    shar.w @(0x1234:16,r2.w)     ;01566f2812341190\r
+    shar.w @(0x1234:16,er2.l)     ;01576f2812341190\r
+    shar.w @(0x12345678:32,r2l.b)     ;78256b28123456781190\r
+    shar.w @(0x12345678:32,r2.w)     ;78266b28123456781190\r
+    shar.w @(0x12345678:32,er2.l)     ;78276b28123456781190\r
+    shar.w @0x1234:16            ;6b1812341190\r
+    shar.w @0x12345678:32            ;6b38123456781190\r
+\r
+    shar.l er1                ;11b1\r
+    shar.l @er1              ;0104691811b0\r
+    shar.l @(0xc:2,er1)     ;0107691811b0\r
+    shar.l @er1+             ;01046d1811b0\r
+    shar.l @-er1             ;01076d1811b0\r
+    shar.l @+er1             ;01056d1811b0\r
+    shar.l @er1-             ;01066d1811b0\r
+    shar.l @(0x1234:16,er1)       ;01046f18123411b0\r
+    shar.l @(0x12345678:32,er1)       ;78946b281234567811b0\r
+    shar.l @(0x1234:16,r2l.b)     ;01056f28123411b0\r
+    shar.l @(0x1234:16,r2.w)     ;01066f28123411b0\r
+    shar.l @(0x1234:16,er2.l)     ;01076f28123411b0\r
+    shar.l @(0x12345678:32,r2l.b)     ;78a56b281234567811b0\r
+    shar.l @(0x12345678:32,r2.w)     ;78a66b281234567811b0\r
+    shar.l @(0x12345678:32,er2.l)     ;78a76b281234567811b0\r
+    shar.l @0x1234:16            ;01046b08123411b0\r
+    shar.l @0x12345678:32            ;01046b281234567811b0\r
+\r
+    shar.b #2,r1h             ;11c1\r
+    shar.b #2,@er1           ;7d1011c0\r
+    shar.b #2,@(0x3:2,er1)     ;0177681811c0\r
+    shar.b #2,@er1+          ;01746c1811c0\r
+    shar.b #2,@-er1          ;01776c1811c0\r
+    shar.b #2,@+er1          ;01756c1811c0\r
+    shar.b #2,@er1-          ;01766c1811c0\r
+    shar.b #2,@(0x1234:16,er1)    ;01746e18123411c0\r
+    shar.b #2,@(0x12345678:32,er1)    ;78146a281234567811c0\r
+    shar.b #2,@(0x1234:16,r2l.b)  ;01756e28123411c0\r
+    shar.b #2,@(0x1234:16,r2.w)  ;01766e28123411c0\r
+    shar.b #2,@(0x1234:16,er2.l)  ;01776e28123411c0\r
+    shar.b #2,@(0x12345678:32,r2l.b)  ;78256a281234567811c0\r
+    shar.b #2,@(0x12345678:32,r2.w)  ;78266a281234567811c0\r
+    shar.b #2,@(0x12345678:32,er2.l)  ;78276a281234567811c0\r
+    shar.b #2,@0xffffff12:8          ;7f1211c0\r
+    shar.b #2,@0x1234:16         ;6a18123411c0\r
+    shar.b #2,@0x12345678:32         ;6a381234567811c0\r
+\r
+    shar.w #2,r1             ;11d1\r
+    shar.w #2,@er1           ;7d9011d0\r
+    shar.w #2,@(0x6:2,er1)  ;0157691811d0\r
+    shar.w #2,@er1+          ;01546d1811d0\r
+    shar.w #2,@-er1          ;01576d1811d0\r
+    shar.w #2,@+er1          ;01556d1811d0\r
+    shar.w #2,@er1-          ;01566d1811d0\r
+    shar.w #2,@(0x1234:16,er1)    ;01546f18123411d0\r
+    shar.w #2,@(0x12345678:32,er1)    ;78146b281234567811d0\r
+    shar.w #2,@(0x1234:16,r2l.b)  ;01556f28123411d0\r
+    shar.w #2,@(0x1234:16,r2.w)  ;01566f28123411d0\r
+    shar.w #2,@(0x1234:16,er2.l)  ;01576f28123411d0\r
+    shar.w #2,@(0x12345678:32,r2l.b)  ;78256b281234567811d0\r
+    shar.w #2,@(0x12345678:32,r2.w)  ;78266b281234567811d0\r
+    shar.w #2,@(0x12345678:32,er2.l)  ;78276b281234567811d0\r
+    shar.w #2,@0x1234:16         ;6b18123411d0\r
+    shar.w #2,@0x12345678:32         ;6b381234567811d0\r
+\r
+    shar.l #2,er1             ;11f1\r
+    shar.l #2,@er1           ;0104691811f0\r
+    shar.l #2,@(0xc:2,er1)  ;0107691811f0\r
+    shar.l #2,@er1+          ;01046d1811f0\r
+    shar.l #2,@-er1          ;01076d1811f0\r
+    shar.l #2,@+er1          ;01056d1811f0\r
+    shar.l #2,@er1-          ;01066d1811f0\r
+    shar.l #2,@(0x1234:16,er1)    ;01046f18123411f0\r
+    shar.l #2,@(0x12345678:32,er1)    ;78946b281234567811f0\r
+    shar.l #2,@(0x1234:16,r2l.b)  ;01056f28123411f0\r
+    shar.l #2,@(0x1234:16,r2.w)  ;01066f28123411f0\r
+    shar.l #2,@(0x1234:16,er2.l)  ;01076f28123411f0\r
+    shar.l #2,@(0x12345678:32,r2l.b)  ;78a56b281234567811f0\r
+    shar.l #2,@(0x12345678:32,r2.w)  ;78a66b281234567811f0\r
+    shar.l #2,@(0x12345678:32,er2.l)  ;78a76b281234567811f0\r
+    shar.l #2,@0x1234:16         ;01046b08123411f0\r
+    shar.l #2,@0x12345678:32         ;01046b281234567811f0\r
+\r
+    rotxl.b r1h               ;1201\r
+    rotxl.b @er1             ;7d101200\r
+    rotxl.b @(0x3:2,er1)       ;017768181200\r
+    rotxl.b @er1+            ;01746c181200\r
+    rotxl.b @-er1            ;01776c181200\r
+    rotxl.b @+er1            ;01756c181200\r
+    rotxl.b @er1-            ;01766c181200\r
+    rotxl.b @(0x1234:16,er1)      ;01746e1812341200\r
+    rotxl.b @(0x12345678:32,er1)      ;78146a28123456781200\r
+    rotxl.b @(0x1234:16,r2l.b)    ;01756e2812341200\r
+    rotxl.b @(0x1234:16,r2.w)    ;01766e2812341200\r
+    rotxl.b @(0x1234:16,er2.l)    ;01776e2812341200\r
+    rotxl.b @(0x12345678:32,r2l.b)    ;78256a28123456781200\r
+    rotxl.b @(0x12345678:32,r2.w)    ;78266a28123456781200\r
+    rotxl.b @(0x12345678:32,er2.l)    ;78276a28123456781200\r
+    rotxl.b @0xffffff12:8            ;7f121200\r
+    rotxl.b @0x1234:16           ;6a1812341200\r
+    rotxl.b @0x12345678:32           ;6a38123456781200\r
+\r
+    rotxl.w r1               ;1211\r
+    rotxl.w @er1             ;7d901210\r
+    rotxl.w @(0x6:2,er1)    ;015769181210\r
+    rotxl.w @er1+            ;01546d181210\r
+    rotxl.w @-er1            ;01576d181210\r
+    rotxl.w @+er1            ;01556d181210\r
+    rotxl.w @er1-            ;01566d181210\r
+    rotxl.w @(0x1234:16,er1)      ;01546f1812341210\r
+    rotxl.w @(0x12345678:32,er1)      ;78146b28123456781210\r
+    rotxl.w @(0x1234:16,r2l.b)    ;01556f2812341210\r
+    rotxl.w @(0x1234:16,r2.w)    ;01566f2812341210\r
+    rotxl.w @(0x1234:16,er2.l)    ;01576f2812341210\r
+    rotxl.w @(0x12345678:32,r2l.b)    ;78256b28123456781210\r
+    rotxl.w @(0x12345678:32,r2.w)    ;78266b28123456781210\r
+    rotxl.w @(0x12345678:32,er2.l)    ;78276b28123456781210\r
+    rotxl.w @0x1234:16           ;6b1812341210\r
+    rotxl.w @0x12345678:32           ;6b38123456781210\r
+\r
+    rotxl.l er1               ;1231\r
+    rotxl.l @er1             ;010469181230\r
+    rotxl.l @(0xc:2,er1)    ;010769181230\r
+    rotxl.l @er1+            ;01046d181230\r
+    rotxl.l @-er1            ;01076d181230\r
+    rotxl.l @+er1            ;01056d181230\r
+    rotxl.l @er1-            ;01066d181230\r
+    rotxl.l @(0x1234:16,er1)      ;01046f1812341230\r
+    rotxl.l @(0x12345678:32,er1)      ;78946b28123456781230\r
+    rotxl.l @(0x1234:16,r2l.b)    ;01056f2812341230\r
+    rotxl.l @(0x1234:16,r2.w)    ;01066f2812341230\r
+    rotxl.l @(0x1234:16,er2.l)    ;01076f2812341230\r
+    rotxl.l @(0x12345678:32,r2l.b)    ;78a56b28123456781230\r
+    rotxl.l @(0x12345678:32,r2.w)    ;78a66b28123456781230\r
+    rotxl.l @(0x12345678:32,er2.l)    ;78a76b28123456781230\r
+    rotxl.l @0x1234:16           ;01046b0812341230\r
+    rotxl.l @0x12345678:32           ;01046b28123456781230\r
+\r
+    rotxl.b #2,r1h            ;1241\r
+    rotxl.b #2,@er1          ;7d101240\r
+    rotxl.b #2,@(0x3:2,er1)    ;017768181240\r
+    rotxl.b #2,@er1+         ;01746c181240\r
+    rotxl.b #2,@-er1         ;01776c181240\r
+    rotxl.b #2,@+er1         ;01756c181240\r
+    rotxl.b #2,@er1-         ;01766c181240\r
+    rotxl.b #2,@(0x1234:16,er1)   ;01746e1812341240\r
+    rotxl.b #2,@(0x12345678:32,er1)   ;78146a28123456781240\r
+    rotxl.b #2,@(0x1234:16,r2l.b) ;01756e2812341240\r
+    rotxl.b #2,@(0x1234:16,r2.w) ;01766e2812341240\r
+    rotxl.b #2,@(0x1234:16,er2.l) ;01776e2812341240\r
+    rotxl.b #2,@(0x12345678:32,r2l.b) ;78256a28123456781240\r
+    rotxl.b #2,@(0x12345678:32,r2.w) ;78266a28123456781240\r
+    rotxl.b #2,@(0x12345678:32,er2.l) ;78276a28123456781240\r
+    rotxl.b #2,@0xffffff12:8         ;7f121240\r
+    rotxl.b #2,@0x1234:16        ;6a1812341240\r
+    rotxl.b #2,@0x12345678:32        ;6a38123456781240\r
+\r
+    rotxl.w #2,r1            ;1251\r
+    rotxl.w #2,@er1          ;7d901250\r
+    rotxl.w #2,@(0x6:2,er1) ;015769181250\r
+    rotxl.w #2,@er1+         ;01546d181250\r
+    rotxl.w #2,@-er1         ;01576d181250\r
+    rotxl.w #2,@+er1         ;01556d181250\r
+    rotxl.w #2,@er1-         ;01566d181250\r
+    rotxl.w #2,@(0x1234:16,er1)   ;01546f1812341250\r
+    rotxl.w #2,@(0x12345678:32,er1)   ;78146b28123456781250\r
+    rotxl.w #2,@(0x1234:16,r2l.b) ;01556f2812341250\r
+    rotxl.w #2,@(0x1234:16,r2.w) ;01566f2812341250\r
+    rotxl.w #2,@(0x1234:16,er2.l) ;01576f2812341250\r
+    rotxl.w #2,@(0x12345678:32,r2l.b) ;78256b28123456781250\r
+    rotxl.w #2,@(0x12345678:32,r2.w) ;78266b28123456781250\r
+    rotxl.w #2,@(0x12345678:32,er2.l) ;78276b28123456781250\r
+    rotxl.w #2,@0x1234:16        ;6b1812341250\r
+    rotxl.w #2,@0x12345678:32        ;6b38123456781250\r
+\r
+    rotxl.l #2,er1            ;1271\r
+    rotxl.l #2,@er1          ;010469181270\r
+    rotxl.l #2,@(0xc:2,er1) ;010769181270\r
+    rotxl.l #2,@er1+         ;01046d181270\r
+    rotxl.l #2,@-er1         ;01076d181270\r
+    rotxl.l #2,@+er1         ;01056d181270\r
+    rotxl.l #2,@er1-         ;01066d181270\r
+    rotxl.l #2,@(0x1234:16,er1)   ;01046f1812341270\r
+    rotxl.l #2,@(0x12345678:32,er1)   ;78946b28123456781270\r
+    rotxl.l #2,@(0x1234:16,r2l.b) ;01056f2812341270\r
+    rotxl.l #2,@(0x1234:16,r2.w) ;01066f2812341270\r
+    rotxl.l #2,@(0x1234:16,er2.l) ;01076f2812341270\r
+    rotxl.l #2,@(0x12345678:32,r2l.b) ;78a56b28123456781270\r
+    rotxl.l #2,@(0x12345678:32,r2.w) ;78a66b28123456781270\r
+    rotxl.l #2,@(0x12345678:32,er2.l) ;78a76b28123456781270\r
+    rotxl.l #2,@0x1234:16        ;01046b0812341270\r
+    rotxl.l #2,@0x12345678:32        ;01046b28123456781270\r
+\r
+    rotxr.b r1h               ;1301\r
+    rotxr.b @er1             ;7d101300\r
+    rotxr.b @(0x3:2,er1)       ;017768181300\r
+    rotxr.b @er1+            ;01746c181300\r
+    rotxr.b @-er1            ;01776c181300\r
+    rotxr.b @+er1            ;01756c181300\r
+    rotxr.b @er1-            ;01766c181300\r
+    rotxr.b @(0x1234:16,er1)      ;01746e1812341300\r
+    rotxr.b @(0x12345678:32,er1)      ;78146a28123456781300\r
+    rotxr.b @(0x1234:16,r2l.b)    ;01756e2812341300\r
+    rotxr.b @(0x1234:16,r2.w)    ;01766e2812341300\r
+    rotxr.b @(0x1234:16,er2.l)    ;01776e2812341300\r
+    rotxr.b @(0x12345678:32,r2l.b)    ;78256a28123456781300\r
+    rotxr.b @(0x12345678:32,r2.w)    ;78266a28123456781300\r
+    rotxr.b @(0x12345678:32,er2.l)    ;78276a28123456781300\r
+    rotxr.b @0xffffff12:8            ;7f121300\r
+    rotxr.b @0x1234:16           ;6a1812341300\r
+    rotxr.b @0x12345678:32           ;6a38123456781300\r
+\r
+    rotxr.w r1               ;1311\r
+    rotxr.w @er1             ;7d901310\r
+    rotxr.w @(0x6:2,er1)    ;015769181310\r
+    rotxr.w @er1+            ;01546d181310\r
+    rotxr.w @-er1            ;01576d181310\r
+    rotxr.w @+er1            ;01556d181310\r
+    rotxr.w @er1-            ;01566d181310\r
+    rotxr.w @(0x1234:16,er1)      ;01546f1812341310\r
+    rotxr.w @(0x12345678:32,er1)      ;78146b28123456781310\r
+    rotxr.w @(0x1234:16,r2l.b)    ;01556f2812341310\r
+    rotxr.w @(0x1234:16,r2.w)    ;01566f2812341310\r
+    rotxr.w @(0x1234:16,er2.l)    ;01576f2812341310\r
+    rotxr.w @(0x12345678:32,r2l.b)    ;78256b28123456781310\r
+    rotxr.w @(0x12345678:32,r2.w)    ;78266b28123456781310\r
+    rotxr.w @(0x12345678:32,er2.l)    ;78276b28123456781310\r
+    rotxr.w @0x1234:16           ;6b1812341310\r
+    rotxr.w @0x12345678:32           ;6b38123456781310\r
+\r
+    rotxr.l er1               ;1331\r
+    rotxr.l @er1             ;010469181330\r
+    rotxr.l @(0xc:2,er1)    ;010769181330\r
+    rotxr.l @er1+            ;01046d181330\r
+    rotxr.l @-er1            ;01076d181330\r
+    rotxr.l @+er1            ;01056d181330\r
+    rotxr.l @er1-            ;01066d181330\r
+    rotxr.l @(0x1234:16,er1)      ;01046f1812341330\r
+    rotxr.l @(0x12345678:32,er1)      ;78946b28123456781330\r
+    rotxr.l @(0x1234:16,r2l.b)    ;01056f2812341330\r
+    rotxr.l @(0x1234:16,r2.w)    ;01066f2812341330\r
+    rotxr.l @(0x1234:16,er2.l)    ;01076f2812341330\r
+    rotxr.l @(0x12345678:32,r2l.b)    ;78a56b28123456781330\r
+    rotxr.l @(0x12345678:32,r2.w)    ;78a66b28123456781330\r
+    rotxr.l @(0x12345678:32,er2.l)    ;78a76b28123456781330\r
+    rotxr.l @0x1234:16           ;01046b0812341330\r
+    rotxr.l @0x12345678:32           ;01046b28123456781330\r
+\r
+    rotxr.b #2,r1h            ;1341\r
+    rotxr.b #2,@er1          ;7d101340\r
+    rotxr.b #2,@(0x3:2,er1)    ;017768181340\r
+    rotxr.b #2,@er1+         ;01746c181340\r
+    rotxr.b #2,@-er1         ;01776c181340\r
+    rotxr.b #2,@+er1         ;01756c181340\r
+    rotxr.b #2,@er1-         ;01766c181340\r
+    rotxr.b #2,@(0x1234:16,er1)   ;01746e1812341340\r
+    rotxr.b #2,@(0x12345678:32,er1)   ;78146a28123456781340\r
+    rotxr.b #2,@(0x1234:16,r2l.b) ;01756e2812341340\r
+    rotxr.b #2,@(0x1234:16,r2.w) ;01766e2812341340\r
+    rotxr.b #2,@(0x1234:16,er2.l) ;01776e2812341340\r
+    rotxr.b #2,@(0x12345678:32,r2l.b) ;78256a28123456781340\r
+    rotxr.b #2,@(0x12345678:32,r2.w) ;78266a28123456781340\r
+    rotxr.b #2,@(0x12345678:32,er2.l) ;78276a28123456781340\r
+    rotxr.b #2,@0xffffff12:8         ;7f121340\r
+    rotxr.b #2,@0x1234:16        ;6a1812341340\r
+    rotxr.b #2,@0x12345678:32        ;6a38123456781340\r
+\r
+    rotxr.w #2,r1            ;1351\r
+    rotxr.w #2,@er1          ;7d901350\r
+    rotxr.w #2,@(0x6:2,er1) ;015769181350\r
+    rotxr.w #2,@er1+         ;01546d181350\r
+    rotxr.w #2,@-er1         ;01576d181350\r
+    rotxr.w #2,@+er1         ;01556d181350\r
+    rotxr.w #2,@er1-         ;01566d181350\r
+    rotxr.w #2,@(0x1234:16,er1)   ;01546f1812341350\r
+    rotxr.w #2,@(0x12345678:32,er1)   ;78146b28123456781350\r
+    rotxr.w #2,@(0x1234:16,r2l.b) ;01556f2812341350\r
+    rotxr.w #2,@(0x1234:16,r2.w) ;01566f2812341350\r
+    rotxr.w #2,@(0x1234:16,er2.l) ;01576f2812341350\r
+    rotxr.w #2,@(0x12345678:32,r2l.b) ;78256b28123456781350\r
+    rotxr.w #2,@(0x12345678:32,r2.w) ;78266b28123456781350\r
+    rotxr.w #2,@(0x12345678:32,er2.l) ;78276b28123456781350\r
+    rotxr.w #2,@0x1234:16        ;6b1812341350\r
+    rotxr.w #2,@0x12345678:32        ;6b38123456781350\r
+\r
+    rotxr.l #2,er1            ;1371\r
+    rotxr.l #2,@er1          ;010469181370\r
+    rotxr.l #2,@(0xc:2,er1) ;010769181370\r
+    rotxr.l #2,@er1+         ;01046d181370\r
+    rotxr.l #2,@-er1         ;01076d181370\r
+    rotxr.l #2,@+er1         ;01056d181370\r
+    rotxr.l #2,@er1-         ;01066d181370\r
+    rotxr.l #2,@(0x1234:16,er1)   ;01046f1812341370\r
+    rotxr.l #2,@(0x12345678:32,er1)   ;78946b28123456781370\r
+    rotxr.l #2,@(0x1234:16,r2l.b) ;01056f2812341370\r
+    rotxr.l #2,@(0x1234:16,r2.w) ;01066f2812341370\r
+    rotxr.l #2,@(0x1234:16,er2.l) ;01076f2812341370\r
+    rotxr.l #2,@(0x12345678:32,r2l.b) ;78a56b28123456781370\r
+    rotxr.l #2,@(0x12345678:32,r2.w) ;78a66b28123456781370\r
+    rotxr.l #2,@(0x12345678:32,er2.l) ;78a76b28123456781370\r
+    rotxr.l #2,@0x1234:16        ;01046b0812341370\r
+    rotxr.l #2,@0x12345678:32        ;01046b28123456781370\r
+\r
+    rotl.b r1h                ;1281\r
+    rotl.b @er1              ;7d101280\r
+    rotl.b @(0x3:2,er1)        ;017768181280\r
+    rotl.b @er1+             ;01746c181280\r
+    rotl.b @-er1             ;01776c181280\r
+    rotl.b @+er1             ;01756c181280\r
+    rotl.b @er1-             ;01766c181280\r
+    rotl.b @(0x1234:16,er1)       ;01746e1812341280\r
+    rotl.b @(0x12345678:32,er1)       ;78146a28123456781280\r
+    rotl.b @(0x1234:16,r2l.b)     ;01756e2812341280\r
+    rotl.b @(0x1234:16,r2.w)     ;01766e2812341280\r
+    rotl.b @(0x1234:16,er2.l)     ;01776e2812341280\r
+    rotl.b @(0x12345678:32,r2l.b)     ;78256a28123456781280\r
+    rotl.b @(0x12345678:32,r2.w)     ;78266a28123456781280\r
+    rotl.b @(0x12345678:32,er2.l)     ;78276a28123456781280\r
+    rotl.b @0xffffff12:8             ;7f121280\r
+    rotl.b @0x1234:16            ;6a1812341280\r
+    rotl.b @0x12345678:32            ;6a38123456781280\r
+\r
+    rotl.w r1                ;1291\r
+    rotl.w @er1              ;7d901290\r
+    rotl.w @(0x6:2,er1)     ;015769181290\r
+    rotl.w @-er1             ;01576d181290\r
+    rotl.w @er1+             ;01546d181290\r
+    rotl.w @er1-             ;01566d181290\r
+    rotl.w @+er1             ;01556d181290\r
+    rotl.w @(0x1234:16,er1)       ;01546f1812341290\r
+    rotl.w @(0x12345678:32,er1)       ;78146b28123456781290\r
+    rotl.w @(0x1234:16,r2l.b)     ;01556f2812341290\r
+    rotl.w @(0x1234:16,r2.w)     ;01566f2812341290\r
+    rotl.w @(0x1234:16,er2.l)     ;01576f2812341290\r
+    rotl.w @(0x12345678:32,r2l.b)     ;78256b28123456781290\r
+    rotl.w @(0x12345678:32,r2.w)     ;78266b28123456781290\r
+    rotl.w @(0x12345678:32,er2.l)     ;78276b28123456781290\r
+    rotl.w @0x1234:16            ;6b1812341290\r
+    rotl.w @0x12345678:32            ;6b38123456781290\r
+\r
+    rotl.l er1                ;12b1\r
+    rotl.l @er1              ;0104691812b0\r
+    rotl.l @(0xc:2,er1)     ;0107691812b0\r
+    rotl.l @er1+             ;01046d1812b0\r
+    rotl.l @-er1             ;01076d1812b0\r
+    rotl.l @+er1             ;01056d1812b0\r
+    rotl.l @er1-             ;01066d1812b0\r
+    rotl.l @(0x1234:16,er1)       ;01046f18123412b0\r
+    rotl.l @(0x12345678:32,er1)       ;78946b281234567812b0\r
+    rotl.l @(0x1234:16,r2l.b)     ;01056f28123412b0\r
+    rotl.l @(0x1234:16,r2.w)     ;01066f28123412b0\r
+    rotl.l @(0x1234:16,er2.l)     ;01076f28123412b0\r
+    rotl.l @(0x12345678:32,r2l.b)     ;78a56b281234567812b0\r
+    rotl.l @(0x12345678:32,r2.w)     ;78a66b281234567812b0\r
+    rotl.l @(0x12345678:32,er2.l)     ;78a76b281234567812b0\r
+    rotl.l @0x1234:16            ;01046b08123412b0\r
+    rotl.l @0x12345678:32            ;01046b281234567812b0\r
+\r
+    rotl.b #2,r1h             ;12c1\r
+    rotl.b #2,@er1           ;7d1012c0\r
+    rotl.b #2,@(0x3:2,er1)     ;0177681812c0\r
+    rotl.b #2,@er1+          ;01746c1812c0\r
+    rotl.b #2,@-er1          ;01776c1812c0\r
+    rotl.b #2,@+er1          ;01756c1812c0\r
+    rotl.b #2,@er1-          ;01766c1812c0\r
+    rotl.b #2,@(0x1234:16,er1)    ;01746e18123412c0\r
+    rotl.b #2,@(0x12345678:32,er1)    ;78146a281234567812c0\r
+    rotl.b #2,@(0x1234:16,r2l.b)  ;01756e28123412c0\r
+    rotl.b #2,@(0x1234:16,r2.w)  ;01766e28123412c0\r
+    rotl.b #2,@(0x1234:16,er2.l)  ;01776e28123412c0\r
+    rotl.b #2,@(0x12345678:32,r2l.b)  ;78256a281234567812c0\r
+    rotl.b #2,@(0x12345678:32,r2.w)  ;78266a281234567812c0\r
+    rotl.b #2,@(0x12345678:32,er2.l)  ;78276a281234567812c0\r
+    rotl.b #2,@0xffffff12:8          ;7f1212c0\r
+    rotl.b #2,@0x1234:16         ;6a18123412c0\r
+    rotl.b #2,@0x12345678:32         ;6a381234567812c0\r
+\r
+    rotl.w #2,r1             ;12d1\r
+    rotl.w #2,@er1           ;7d9012d0\r
+    rotl.w #2,@(0x6:2,er1)  ;0157691812d0\r
+    rotl.w #2,@er1+          ;01546d1812d0\r
+    rotl.w #2,@-er1          ;01576d1812d0\r
+    rotl.w #2,@+er1          ;01556d1812d0\r
+    rotl.w #2,@er1-          ;01566d1812d0\r
+    rotl.w #2,@(0x1234:16,er1)    ;01546f18123412d0\r
+    rotl.w #2,@(0x12345678:32,er1)    ;78146b281234567812d0\r
+    rotl.w #2,@(0x1234:16,r2l.b)  ;01556f28123412d0\r
+    rotl.w #2,@(0x1234:16,r2.w)  ;01566f28123412d0\r
+    rotl.w #2,@(0x1234:16,er2.l)  ;01576f28123412d0\r
+    rotl.w #2,@(0x12345678:32,r2l.b)  ;78256b281234567812d0\r
+    rotl.w #2,@(0x12345678:32,r2.w)  ;78266b281234567812d0\r
+    rotl.w #2,@(0x12345678:32,er2.l)  ;78276b281234567812d0\r
+    rotl.w #2,@0x1234:16         ;6b18123412d0\r
+    rotl.w #2,@0x12345678:32         ;6b381234567812d0\r
+\r
+    rotl.l #2,er1             ;12f1\r
+    rotl.l #2,@er1           ;0104691812f0\r
+    rotl.l #2,@(0xc:2,er1)  ;0107691812f0\r
+    rotl.l #2,@er1+          ;01046d1812f0\r
+    rotl.l #2,@-er1          ;01076d1812f0\r
+    rotl.l #2,@+er1          ;01056d1812f0\r
+    rotl.l #2,@er1-          ;01066d1812f0\r
+    rotl.l #2,@(0x1234:16,er1)    ;01046f18123412f0\r
+    rotl.l #2,@(0x12345678:32,er1)    ;78946b281234567812f0\r
+    rotl.l #2,@(0x1234:16,r2l.b)  ;01056f28123412f0\r
+    rotl.l #2,@(0x1234:16,r2.w)  ;01066f28123412f0\r
+    rotl.l #2,@(0x1234:16,er2.l)  ;01076f28123412f0\r
+    rotl.l #2,@(0x12345678:32,r2l.b)  ;78a56b281234567812f0\r
+    rotl.l #2,@(0x12345678:32,r2.w)  ;78a66b281234567812f0\r
+    rotl.l #2,@(0x12345678:32,er2.l)  ;78a76b281234567812f0\r
+    rotl.l #2,@0x1234:16         ;01046b08123412f0\r
+    rotl.l #2,@0x12345678:32         ;01046b281234567812f0\r
+\r
+    rotr.b r1h                ;1381\r
+    rotr.b @er1              ;7d101380\r
+    rotr.b @(0x3:2,er1)        ;017768181380\r
+    rotr.b @er1+             ;01746c181380\r
+    rotr.b @-er1             ;01776c181380\r
+    rotr.b @+er1             ;01756c181380\r
+    rotr.b @er1-             ;01766c181380\r
+    rotr.b @(0x1234:16,er1)       ;01746e1812341380\r
+    rotr.b @(0x12345678:32,er1)       ;78146a28123456781380\r
+    rotr.b @(0x1234:16,r2l.b)     ;01756e2812341380\r
+    rotr.b @(0x1234:16,r2.w)     ;01766e2812341380\r
+    rotr.b @(0x1234:16,er2.l)     ;01776e2812341380\r
+    rotr.b @(0x12345678:32,r2l.b)     ;78256a28123456781380\r
+    rotr.b @(0x12345678:32,r2.w)     ;78266a28123456781380\r
+    rotr.b @(0x12345678:32,er2.l)     ;78276a28123456781380\r
+    rotr.b @0xffffff12:8             ;7f121380\r
+    rotr.b @0x1234:16            ;6a1812341380\r
+    rotr.b @0x12345678:32            ;6a38123456781380\r
+\r
+    rotr.w r1                ;1391\r
+    rotr.w @er1              ;7d901390\r
+    rotr.w @(0x6:2,er1)     ;015769181390\r
+    rotr.w @-er1             ;01576d181390\r
+    rotr.w @er1+             ;01546d181390\r
+    rotr.w @er1-             ;01566d181390\r
+    rotr.w @+er1             ;01556d181390\r
+    rotr.w @(0x1234:16,er1)       ;01546f1812341390\r
+    rotr.w @(0x12345678:32,er1)       ;78146b28123456781390\r
+    rotr.w @(0x1234:16,r2l.b)     ;01556f2812341390\r
+    rotr.w @(0x1234:16,r2.w)     ;01566f2812341390\r
+    rotr.w @(0x1234:16,er2.l)     ;01576f2812341390\r
+    rotr.w @(0x12345678:32,r2l.b)     ;78256b28123456781390\r
+    rotr.w @(0x12345678:32,r2.w)     ;78266b28123456781390\r
+    rotr.w @(0x12345678:32,er2.l)     ;78276b28123456781390\r
+    rotr.w @0x1234:16            ;6b1812341390\r
+    rotr.w @0x12345678:32            ;6b38123456781390\r
+\r
+    rotr.l er1                ;13b1\r
+    rotr.l @er1              ;0104691813b0\r
+    rotr.l @(0xc:2,er1)     ;0107691813b0\r
+    rotr.l @er1+             ;01046d1813b0\r
+    rotr.l @-er1             ;01076d1813b0\r
+    rotr.l @+er1             ;01056d1813b0\r
+    rotr.l @er1-             ;01066d1813b0\r
+    rotr.l @(0x1234:16,er1)       ;01046f18123413b0\r
+    rotr.l @(0x12345678:32,er1)       ;78946b281234567813b0\r
+    rotr.l @(0x1234:16,r2l.b)     ;01056f28123413b0\r
+    rotr.l @(0x1234:16,r2.w)     ;01066f28123413b0\r
+    rotr.l @(0x1234:16,er2.l)     ;01076f28123413b0\r
+    rotr.l @(0x12345678:32,r2l.b)     ;78a56b281234567813b0\r
+    rotr.l @(0x12345678:32,r2.w)     ;78a66b281234567813b0\r
+    rotr.l @(0x12345678:32,er2.l)     ;78a76b281234567813b0\r
+    rotr.l @0x1234:16            ;01046b08123413b0\r
+    rotr.l @0x12345678:32            ;01046b281234567813b0\r
+\r
+    rotr.b #2,r1h             ;13c1\r
+    rotr.b #2,@er1           ;7d1013c0\r
+    rotr.b #2,@(0x3:2,er1)     ;0177681813c0\r
+    rotr.b #2,@er1+          ;01746c1813c0\r
+    rotr.b #2,@-er1          ;01776c1813c0\r
+    rotr.b #2,@+er1          ;01756c1813c0\r
+    rotr.b #2,@er1-          ;01766c1813c0\r
+    rotr.b #2,@(0x1234:16,er1)    ;01746e18123413c0\r
+    rotr.b #2,@(0x12345678:32,er1)    ;78146a281234567813c0\r
+    rotr.b #2,@(0x1234:16,r2l.b)  ;01756e28123413c0\r
+    rotr.b #2,@(0x1234:16,r2.w)  ;01766e28123413c0\r
+    rotr.b #2,@(0x1234:16,er2.l)  ;01776e28123413c0\r
+    rotr.b #2,@(0x12345678:32,r2l.b)  ;78256a281234567813c0\r
+    rotr.b #2,@(0x12345678:32,r2.w)  ;78266a281234567813c0\r
+    rotr.b #2,@(0x12345678:32,er2.l)  ;78276a281234567813c0\r
+    rotr.b #2,@0xffffff12:8          ;7f1213c0\r
+    rotr.b #2,@0x1234:16         ;6a18123413c0\r
+    rotr.b #2,@0x12345678:32         ;6a381234567813c0\r
+\r
+    rotr.w #2,r1             ;13d1\r
+    rotr.w #2,@er1           ;7d9013d0\r
+    rotr.w #2,@(0x6:2,er1)  ;0157691813d0\r
+    rotr.w #2,@er1+          ;01546d1813d0\r
+    rotr.w #2,@-er1          ;01576d1813d0\r
+    rotr.w #2,@+er1          ;01556d1813d0\r
+    rotr.w #2,@er1-          ;01566d1813d0\r
+    rotr.w #2,@(0x1234:16,er1)    ;01546f18123413d0\r
+    rotr.w #2,@(0x12345678:32,er1)    ;78146b281234567813d0\r
+    rotr.w #2,@(0x1234:16,r2l.b)  ;01556f28123413d0\r
+    rotr.w #2,@(0x1234:16,r2.w)  ;01566f28123413d0\r
+    rotr.w #2,@(0x1234:16,er2.l)  ;01576f28123413d0\r
+    rotr.w #2,@(0x12345678:32,r2l.b)  ;78256b281234567813d0\r
+    rotr.w #2,@(0x12345678:32,r2.w)  ;78266b281234567813d0\r
+    rotr.w #2,@(0x12345678:32,er2.l)  ;78276b281234567813d0\r
+    rotr.w #2,@0x1234:16         ;6b18123413d0\r
+    rotr.w #2,@0x12345678:32         ;6b381234567813d0\r
+\r
+    rotr.l #2,er1             ;13f1\r
+    rotr.l #2,@er1           ;0104691813f0\r
+    rotr.l #2,@(0xc:2,er1)  ;0107691813f0\r
+    rotr.l #2,@er1+          ;01046d1813f0\r
+    rotr.l #2,@-er1          ;01076d1813f0\r
+    rotr.l #2,@+er1          ;01056d1813f0\r
+    rotr.l #2,@er1-          ;01066d1813f0\r
+    rotr.l #2,@(0x1234:16,er1)    ;01046f18123413f0\r
+    rotr.l #2,@(0x12345678:32,er1)    ;78946b281234567813f0\r
+    rotr.l #2,@(0x1234:16,r2l.b)  ;01056f28123413f0\r
+    rotr.l #2,@(0x1234:16,r2.w)  ;01066f28123413f0\r
+    rotr.l #2,@(0x1234:16,er2.l)  ;01076f28123413f0\r
+    rotr.l #2,@(0x12345678:32,r2l.b)  ;78a56b281234567813f0\r
+    rotr.l #2,@(0x12345678:32,r2.w)  ;78a66b281234567813f0\r
+    rotr.l #2,@(0x12345678:32,er2.l)  ;78a76b281234567813f0\r
+    rotr.l #2,@0x1234:16         ;01046b08123413f0\r
+    rotr.l #2,@0x12345678:32         ;01046b281234567813f0\r
+\r
+       .end\r
diff --git a/gas/testsuite/gas/h8300/t12_bit.exp b/gas/testsuite/gas/h8300/t12_bit.exp
new file mode 100644 (file)
index 0000000..020a13b
--- /dev/null
@@ -0,0 +1,582 @@
+#
+# Some h8300sx tests -- t12_bit
+#
+
+proc do_t12_bit_test {} {
+    set testname "t12_bit.s -- h8sx bit tests"
+
+    gas_start "t12_bit.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*   7 0000 7071" { set x [expr $x+1]; exp_continue; }
+       -re ".*   8 0002 7D107070" { set x [expr $x+1]; exp_continue; }
+       -re ".*   9 0006 7F127070" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10 000a 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  10      7070" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11 0010 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  11      56787070" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12              " {
+           if [expr $x == 7] then {
+               pass "$testname: bset #0x7, ..."
+           } else {
+               fail "$testname: bset #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bset #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  13 0018 6031" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14 001a 7D106030" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15 001e 7F126030" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 0022 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16      6030" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17 0028 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17      56786030" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18              " {
+           if [expr $x == 7] then {
+               pass "$testname: bset r3h, ..."
+           } else {
+               fail "$testname: bset r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bset r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  19 0030 7D107077" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20 0034 7F127077" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21 0038 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21      7077" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 003e 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22      56787077" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23              " {
+           if [expr $x == 6] then {
+               pass "$testname: bset/eq #0x7, ..."
+           } else {
+               fail "$testname: bset/eq #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bset/eq #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  24 0046 7D106037" { set x [expr $x+1]; exp_continue; }
+       -re ".*  25 004a 7F126037" { set x [expr $x+1]; exp_continue; }
+       -re ".*  26 004e 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  26      6037" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27 0054 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27      56786037" { set x [expr $x+1]; exp_continue; }
+       -re ".*  28              " {
+           if [expr $x == 6] then {
+               pass "$testname: bset/eq r3h, ..."
+           } else {
+               fail "$testname: bset/eq r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bset/eq r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  29 005c 7D107076" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30 0060 7F127076" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31 0064 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31      7076" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32 006a 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32      56787076" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33              " {
+           if [expr $x == 6] then {
+               pass "$testname: bset/ne #0x7, ..."
+           } else {
+               fail "$testname: bset/ne #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bset/ne #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  34 0072 7D106036" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35 0076 7F126036" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 007a 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36      6036" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 0080 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37      56786036" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38              " {
+           if [expr $x == 6] then {
+               pass "$testname: bset/ne r3h, ..."
+           } else {
+               fail "$testname: bset/ne r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bset/ne r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  39 0088 7171" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40 008a 7D107170" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41 008e 7F127170" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42 0092 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42      7170" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43 0098 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43      56787170" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44              " {
+           if [expr $x == 7] then {
+               pass "$testname: bnot #0x7, ..."
+           } else {
+               fail "$testname: bnot #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bnot #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  45 00a0 6131" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46 00a2 7D106130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47 00a6 7F126130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48 00aa 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  48      6130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49 00b0 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49      56786130" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50              " {
+           if [expr $x == 7] then {
+               pass "$testname: bnot r3h, ..."
+           } else {
+               fail "$testname: bnot r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bnot r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  51 00b8 7271" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52 00ba 7D107270" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53 00be 7F127270" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 00c2 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54      7270" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 00c8 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      56787270" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56              " {
+           if [expr $x == 7] then {
+               pass "$testname: bclr #0x7, ..."
+           } else {
+               fail "$testname: bclr #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bclr #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  57 00d0 6231" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58 00d2 7D106230" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59 00d6 7F126230" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60 00da 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60      6230" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61 00e0 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61      56786230" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62              " {
+           if [expr $x == 7] then {
+               pass "$testname: bclr r3h, ..."
+           } else {
+               fail "$testname: bclr r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bclr r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  63 00e8 7D107277" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64 00ec 7F127277" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65 00f0 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65      7277" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66 00f6 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66      56787277" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67              " {
+           if [expr $x == 6] then {
+               pass "$testname: bclr/eq #0x7, ..."
+           } else {
+               fail "$testname: bclr/eq #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bclr/eq #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  68 00fe 7D106237" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 0102 7F126237" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70 0106 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70      6237" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71 010c 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71      56786237" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72              " {
+           if [expr $x == 6] then {
+               pass "$testname: bclr/eq r3h, ..."
+           } else {
+               fail "$testname: bclr/eq r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bclr/eq r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  73 0114 7D107276" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74 0118 7F127276" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75 011c 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75      7276" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76 0122 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  76      56787276" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77              " {
+           if [expr $x == 6] then {
+               pass "$testname: bclr/ne #0x7, ..."
+           } else {
+               fail "$testname: bclr/ne #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bclr/ne #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  78 012a 7D106236" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79 012e 7F126236" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80 0132 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  80      6236" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81 0138 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81      56786236" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82              " {
+           if [expr $x == 6] then {
+               pass "$testname: bclr/ne r3h, ..."
+           } else {
+               fail "$testname: bclr/ne r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bclr/ne r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  83 0140 7371" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84 0142 7C107370" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85 0146 7E127370" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86 014a 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  86      7370" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87 0150 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87      56787370" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88              " {
+           if [expr $x == 7] then {
+               pass "$testname: btst #0x7, ..."
+           } else {
+               fail "$testname: btst #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: btst #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  89 0158 6331" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90 015a 7C106330" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91 015e 7E126330" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92 0162 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  92      6330" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 0168 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93      56786330" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94              " {
+           if [expr $x == 7] then {
+               pass "$testname: btst r3h, ..."
+           } else {
+               fail "$testname: btst r3h, ... ($x)"
+           }
+       }
+        default        { fail "$testname: btst r3h, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  95 0170 7471" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96 0172 7C107470" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97 0176 7E127470" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98 017a 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  98      7470" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99 0180 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99      56787470" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100              " {
+           if [expr $x == 7] then {
+               pass "$testname: bor #0x7, ..."
+           } else {
+               fail "$testname: bor #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bor #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 101 0188 74F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102 018a 7C1074F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103 018e 7E1274F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104 0192 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 104      74F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105 0198 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105      567874F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 106              " {
+           if [expr $x == 7] then {
+               pass "$testname: bior #0x7, ..."
+           } else {
+               fail "$testname: bior #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bior #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 107 01a0 7571" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108 01a2 7C107570" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109 01a6 7E127570" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110 01aa 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110      7570" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111 01b0 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111      56787570" { set x [expr $x+1]; exp_continue; }
+       -re ".* 112              " {
+           if [expr $x == 7] then {
+               pass "$testname: bxor #0x7, ..."
+           } else {
+               fail "$testname: bxor #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bxor #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 113 01b8 75F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114 01ba 7C1075F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115 01be 7E1275F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116 01c2 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      75F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117 01c8 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117      567875F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118              " {
+           if [expr $x == 7] then {
+               pass "$testname: bixor #0x7, ..."
+           } else {
+               fail "$testname: bixor #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bixor #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 119 01d0 7671" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120 01d2 7C107670" { set x [expr $x+1]; exp_continue; }
+       -re ".* 121 01d6 7E127670" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122 01da 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122      7670" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123 01e0 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123      56787670" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124              " {
+           if [expr $x == 7] then {
+               pass "$testname: band #0x7, ..."
+           } else {
+               fail "$testname: band #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: band #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 125 01e8 76F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126 01ea 7C1076F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127 01ee 7E1276F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128 01f2 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      76F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129 01f8 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129      567876F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 130              " {
+           if [expr $x == 7] then {
+               pass "$testname: biand #0x7, ..."
+           } else {
+               fail "$testname: biand #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: biand #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 131 0200 7771" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132 0202 7C107770" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133 0206 7E127770" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134 020a 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134      7770" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135 0210 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135      56787770" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136              " {
+           if [expr $x == 7] then {
+               pass "$testname: bld #0x7, ..."
+           } else {
+               fail "$testname: bld #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bld #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 137 0218 77F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 138 021a 7C1077F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139 021e 7E1277F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140 0222 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140      77F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141 0228 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      567877F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142              " {
+           if [expr $x == 7] then {
+               pass "$testname: bild #0x7, ..."
+           } else {
+               fail "$testname: bild #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bild #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 143 0230 6771" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144 0232 7D106770" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145 0236 7F126770" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146 023a 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 146      6770" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147 0240 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147      56786770" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148              " {
+           if [expr $x == 7] then {
+               pass "$testname: bst #0x7, ..."
+           } else {
+               fail "$testname: bst #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bst #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 149 0248 7D106777" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150 024c 7F126777" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151 0250 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151      6777" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152 0256 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 152      56786777" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153              " {
+           if [expr $x == 6] then {
+               pass "$testname: bstz #0x7, ..."
+           } else {
+               fail "$testname: bstz #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bstz #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 154 025e 67F1" { set x [expr $x+1]; exp_continue; }
+       -re ".* 155 0260 7D1067F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156 0264 7F1267F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157 0268 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 157      67F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158 026e 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158      567867F0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 159              " {
+           if [expr $x == 7] then {
+               pass "$testname: bist #0x7, ..."
+           } else {
+               fail "$testname: bist #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bist #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 160 0276 7D1067F7" { set x [expr $x+1]; exp_continue; }
+       -re ".* 161 027a 7F1267F7" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162 027e 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 162      67F7" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163 0284 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 163      567867F7" { set x [expr $x+1]; exp_continue; }
+       -re ".* 164              " {
+           if [expr $x == 6] then {
+               pass "$testname: bistz #0x7, ..."
+           } else {
+               fail "$testname: bistz #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bistz #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 165 028c 7C10F334" { set x [expr $x+1]; exp_continue; }
+       -re ".* 166 0290 7E12F334" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167 0294 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 167      F334" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168 029a 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 168      5678F334" { set x [expr $x+1]; exp_continue; }
+       -re ".* 169              " {
+           if [expr $x == 6] then {
+               pass "$testname: bfld #0x34:8, ..., r3h"
+           } else {
+               fail "$testname: bfld #0x34:8, ..., r3h ($x)"
+           }
+       }
+        default        { fail "$testname: bfld #0x34:8, ..., r3h ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 170 02a2 7D10F334" { set x [expr $x+1]; exp_continue; }
+       -re ".* 171 02a6 7F12F334" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172 02aa 6A181234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 172      F334" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173 02b0 6A381234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 173      5678F334" { set x [expr $x+1]; exp_continue; }
+       -re ".* 174              " {
+           if [expr $x == 6] then {
+               pass "$testname: bfst r3h, #0x34:8, ..."
+           } else {
+               fail "$testname: bfst r3h, #0x34:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bfst r3h, #0x34:8, ... ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t12_bit_test
+}
+
diff --git a/gas/testsuite/gas/h8300/t12_bit.s b/gas/testsuite/gas/h8300/t12_bit.s
new file mode 100644 (file)
index 0000000..e02cb2d
--- /dev/null
@@ -0,0 +1,175 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;bit\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+_start:\r
+    bset #0x7,r1h               ;7071\r
+    bset #0x7,@er1             ;7d107070\r
+    bset #0x7,@0xffffff12:8            ;7f127070\r
+    bset #0x7,@0x1234:16           ;6a1812347070\r
+    bset #0x7,@0x12345678:32           ;6a38123456787070\r
+\r
+    bset r3h,r1h               ;6031\r
+    bset r3h,@er1             ;7d106030\r
+    bset r3h,@0xffffff12:8            ;7f126030\r
+    bset r3h,@0x1234:16           ;6a1812346030\r
+    bset r3h,@0x12345678:32           ;6a38123456786030\r
+\r
+    bset/eq #0x7,@er1             ;7d107077\r
+    bset/eq #0x7,@0xffffff12:8            ;7f127077\r
+    bset/eq #0x7,@0x1234:16           ;6a1812347077\r
+    bset/eq #0x7,@0x12345678:32           ;6a38123456787077\r
+\r
+    bset/eq r3h,@er1             ;7d106037\r
+    bset/eq r3h,@0xffffff12:8            ;7f126037\r
+    bset/eq r3h,@0x1234:16           ;6a1812346037\r
+    bset/eq r3h,@0x12345678:32           ;6a38123456786037\r
+\r
+    bset/ne #0x7,@er1             ;7d107076\r
+    bset/ne #0x7,@0xffffff12:8            ;7f127076\r
+    bset/ne #0x7,@0x1234:16           ;6a1812347076\r
+    bset/ne #0x7,@0x12345678:32           ;6a38123456787076\r
+\r
+    bset/ne r3h,@er1             ;7d106036\r
+    bset/ne r3h,@0xffffff12:8            ;7f126036\r
+    bset/ne r3h,@0x1234:16           ;6a1812346036\r
+    bset/ne r3h,@0x12345678:32           ;6a38123456786036\r
+\r
+    bnot #0x7,r1h               ;7171\r
+    bnot #0x7,@er1             ;7d107170\r
+    bnot #0x7,@0xffffff12:8            ;7f127170\r
+    bnot #0x7,@0x1234:16           ;6a1812347170\r
+    bnot #0x7,@0x12345678:32           ;6a38123456787170\r
+\r
+    bnot r3h,r1h               ;6131\r
+    bnot r3h,@er1             ;7d106130\r
+    bnot r3h,@0xffffff12:8            ;7f126130\r
+    bnot r3h,@0x1234:16           ;6a1812346130\r
+    bnot r3h,@0x12345678:32           ;6a38123456786130\r
+\r
+    bclr #0x7,r1h               ;7271\r
+    bclr #0x7,@er1             ;7d107270\r
+    bclr #0x7,@0xffffff12:8            ;7f127270\r
+    bclr #0x7,@0x1234:16           ;6a1812347270\r
+    bclr #0x7,@0x12345678:32           ;6a38123456787270\r
+\r
+    bclr r3h,r1h               ;6231\r
+    bclr r3h,@er1             ;7d106230\r
+    bclr r3h,@0xffffff12:8            ;7f126230\r
+    bclr r3h,@0x1234:16           ;6a1812346230\r
+    bclr r3h,@0x12345678:32           ;6a38123456786230\r
+\r
+    bclr/eq #0x7,@er1             ;7d107277\r
+    bclr/eq #0x7,@0xffffff12:8            ;7f127277\r
+    bclr/eq #0x7,@0x1234:16           ;6a1812347277\r
+    bclr/eq #0x7,@0x12345678:32           ;6a38123456787277\r
+\r
+    bclr/eq r3h,@er1             ;7d106237\r
+    bclr/eq r3h,@0xffffff12:8            ;7f126237\r
+    bclr/eq r3h,@0x1234:16           ;6a1812346237\r
+    bclr/eq r3h,@0x12345678:32           ;6a38123456786237\r
+\r
+    bclr/ne #0x7,@er1             ;7d107276\r
+    bclr/ne #0x7,@0xffffff12:8            ;7f127276\r
+    bclr/ne #0x7,@0x1234:16           ;6a1812347276\r
+    bclr/ne #0x7,@0x12345678:32           ;6a38123456787276\r
+\r
+    bclr/ne r3h,@er1             ;7d106236\r
+    bclr/ne r3h,@0xffffff12:8            ;7f126236\r
+    bclr/ne r3h,@0x1234:16           ;6a1812346236\r
+    bclr/ne r3h,@0x12345678:32           ;6a38123456786236\r
+\r
+    btst #0x7,r1h               ;7371\r
+    btst #0x7,@er1             ;7c107370\r
+    btst #0x7,@0xffffff12:8            ;7e127370\r
+    btst #0x7,@0x1234:16           ;6a1012347370\r
+    btst #0x7,@0x12345678:32           ;6a30123456787370\r
+\r
+    btst r3h,r1h               ;6331\r
+    btst r3h,@er1             ;7c106330\r
+    btst r3h,@0xffffff12:8            ;7e126330\r
+    btst r3h,@0x1234:16           ;6a1012346330\r
+    btst r3h,@0x12345678:32           ;6a30123456786330\r
+\r
+    bor #0x7,r1h                ;7471\r
+    bor #0x7,@er1              ;7c107470\r
+    bor #0x7,@0xffffff12:8             ;7e127470\r
+    bor #0x7,@0x1234:16            ;6a1012347470\r
+    bor #0x7,@0x12345678:32            ;6a30123456787470\r
+\r
+    bior #0x7,r1h               ;74f1\r
+    bior #0x7,@er1             ;7c1074f0\r
+    bior #0x7,@0xffffff12:8            ;7e1274f0\r
+    bior #0x7,@0x1234:16           ;6a10123474f0\r
+    bior #0x7,@0x12345678:32           ;6a301234567874f0\r
+\r
+    bxor #0x7,r1h               ;7571\r
+    bxor #0x7,@er1             ;7c107570\r
+    bxor #0x7,@0xffffff12:8            ;7e127570\r
+    bxor #0x7,@0x1234:16           ;6a1012347570\r
+    bxor #0x7,@0x12345678:32           ;6a30123456787570\r
+\r
+    bixor #0x7,r1h              ;75f1\r
+    bixor #0x7,@er1            ;7c1075f0\r
+    bixor #0x7,@0xffffff12:8           ;7e1275f0\r
+    bixor #0x7,@0x1234:16          ;6a10123475f0\r
+    bixor #0x7,@0x12345678:32          ;6a301234567875f0\r
+\r
+    band #0x7,r1h               ;7671\r
+    band #0x7,@er1             ;7c107670\r
+    band #0x7,@0xffffff12:8            ;7e127670\r
+    band #0x7,@0x1234:16           ;6a1012347670\r
+    band #0x7,@0x12345678:32           ;6a30123456787670\r
+\r
+    biand #0x7,r1h              ;76f1\r
+    biand #0x7,@er1            ;7c1076f0\r
+    biand #0x7,@0xffffff12:8           ;7e1276f0\r
+    biand #0x7,@0x1234:16          ;6a10123476f0\r
+    biand #0x7,@0x12345678:32          ;6a301234567876f0\r
+\r
+    bld #0x7,r1h                ;7771\r
+    bld #0x7,@er1              ;7c107770\r
+    bld #0x7,@0xffffff12:8             ;7e127770\r
+    bld #0x7,@0x1234:16            ;6a1012347770\r
+    bld #0x7,@0x12345678:32            ;6a30123456787770\r
+\r
+    bild #0x7,r1h               ;77f1\r
+    bild #0x7,@er1             ;7c1077f0\r
+    bild #0x7,@0xffffff12:8            ;7e1277f0\r
+    bild #0x7,@0x1234:16           ;6a10123477f0\r
+    bild #0x7,@0x12345678:32           ;6a301234567877f0\r
+\r
+    bst #0x7,r1h                ;6771\r
+    bst #0x7,@er1              ;7d106770\r
+    bst #0x7,@0xffffff12:8             ;7f126770\r
+    bst #0x7,@0x1234:16            ;6a1812346770\r
+    bst #0x7,@0x12345678:32            ;6a38123456786770\r
+\r
+    bstz #0x7,@er1              ;7d106777\r
+    bstz #0x7,@0xffffff12:8             ;7f126777\r
+    bstz #0x7,@0x1234:16            ;6a1812346777\r
+    bstz #0x7,@0x12345678:32            ;6a38123456786777\r
+\r
+    bist #0x7,r1h               ;67f1\r
+    bist #0x7,@er1             ;7d1067f0\r
+    bist #0x7,@0xffffff12:8            ;7f1267f0\r
+    bist #0x7,@0x1234:16           ;6a18123467f0\r
+    bist #0x7,@0x12345678:32           ;6a381234567867f0\r
+\r
+    bistz #0x7,@er1             ;7d1067f7\r
+    bistz #0x7,@0xffffff12:8            ;7f1267f7\r
+    bistz #0x7,@0x1234:16           ;6a18123467f7\r
+    bistz #0x7,@0x12345678:32           ;6a381234567867f7\r
+\r
+    bfld #0x34:8,@er1,r3h             ;7c10f334\r
+    bfld #0x34:8,@0xffffff12:8,r3h            ;7e12f334\r
+    bfld #0x34:8,@0x1234:16,r3h           ;6a101234f334\r
+    bfld #0x34:8,@0x12345678:32,r3h           ;6a3012345678f334\r
+\r
+    bfst r3h,#0x34:8,@er1             ;7d10f334\r
+    bfst r3h,#0x34:8,@0xffffff12:8            ;7f12f334\r
+    bfst r3h,#0x34:8,@0x1234:16           ;6a181234f334\r
+    bfst r3h,#0x34:8,@0x12345678:32           ;6a3812345678f334\r
+\r
+       .end\r
diff --git a/gas/testsuite/gas/h8300/t13_otr.exp b/gas/testsuite/gas/h8300/t13_otr.exp
new file mode 100644 (file)
index 0000000..bb5c1b3
--- /dev/null
@@ -0,0 +1,471 @@
+#
+# Some h8300sx tests -- t13_otr
+#
+
+proc do_t13_otr_test {} {
+    set testname "t13_otr.s -- h8sx misc tests"
+
+    gas_start "t13_otr.s" "-al"
+
+    # Check each instruction bit pattern to verify it got assembled correctly.
+
+    set x 0
+    expect {
+       -re ".*  11 1234 4000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  12 1236 4100" { set x [expr $x+1]; exp_continue; }
+       -re ".*  13 1238 4200" { set x [expr $x+1]; exp_continue; }
+       -re ".*  14 123a 4300" { set x [expr $x+1]; exp_continue; }
+       -re ".*  15 123c 4400" { set x [expr $x+1]; exp_continue; }
+       -re ".*  16 123e 4500" { set x [expr $x+1]; exp_continue; }
+       -re ".*  17 1240 4600" { set x [expr $x+1]; exp_continue; }
+       -re ".*  18 1242 4700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  19 1244 4800" { set x [expr $x+1]; exp_continue; }
+       -re ".*  20 1246 4900" { set x [expr $x+1]; exp_continue; }
+       -re ".*  21 1248 4A00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  22 124a 4B00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  23 124c 4C00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  24 124e 4D00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  25 1250 4E00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  26 1252 4F00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  27              " {
+           if [expr $x == 16] then {
+               pass "$testname: b\[cc\] 0x12+.+2"
+           } else {
+               fail "$testname: b\[cc\] 0x12+.+2 ($x)"
+           }
+       }
+        default        { fail "$testname: b\[cc\] 0x12+.+2 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  28 1254 58000000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  29 1258 58100000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  30 125c 58200000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  31 1260 58300000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  32 1264 58400000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  33 1268 58500000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  34 126c 58600000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  35 1270 58700000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  36 1274 58800000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  37 1278 58900000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  38 127c 58A00000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  39 1280 58B00000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  40 1284 58C00000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  41 1288 58D00000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  42 128c 58E00000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  43 1290 58F00000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  44              " {
+           if [expr $x == 16] then {
+               pass "$testname: b\[cc\] 0x1234+.+4"
+           } else {
+               fail "$testname: b\[cc\] 0x1234+.+4 ($x)"
+           }
+       }
+        default        { fail "$testname: b\[cc\] 0x1234+.+4 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  45 1294 4001" { set x [expr $x+1]; exp_continue; }
+       -re ".*  46 1296 0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  47              " {
+           if [expr $x == 2] then {
+               pass "$testname: bra/s"
+           } else {
+               fail "$testname: bra/s ($x)"
+           }
+       }
+        default        { fail "$testname: bra/s ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  48 1298 7C204700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  49 129c 7E9A4700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50 12a0 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  50      4700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51 12a6 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  51      56784700" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52 12ae 7C205870" { set x [expr $x+1]; exp_continue; }
+       -re ".*  52      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53 12b4 7E125870" { set x [expr $x+1]; exp_continue; }
+       -re ".*  53      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54 12ba 6A109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  54      58700000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55 12c2 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      56785870" { set x [expr $x+1]; exp_continue; }
+       -re ".*  55      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  56              " {
+           if [expr $x == 15] then {
+               pass "$testname: bra/bc #0x7, ..."
+           } else {
+               fail "$testname: bra/bc #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bra/bc #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  57 12cc 7C204F00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  58 12d0 7E9A4F00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59 12d4 6A101234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  59      4F00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60 12da 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  60      56784F00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61 12e2 7C2058F0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  61      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62 12e8 7E1258F0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  62      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63 12ee 6A109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  63      58F00000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64 12f6 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64      567858F0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  64      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  65              " {
+           if [expr $x == 15] then {
+               pass "$testname: bra/bs #0x7, ..."
+           } else {
+               fail "$testname: bra/bs #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bra/bs #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  66 1300 7C205C70" { set x [expr $x+1]; exp_continue; }
+       -re ".*  66      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67 1306 7E125C70" { set x [expr $x+1]; exp_continue; }
+       -re ".*  67      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68 130c 6A109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  68      5C700000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69 1314 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69      56785C70" { set x [expr $x+1]; exp_continue; }
+       -re ".*  69      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  70              " {
+           if [expr $x == 9] then {
+               pass "$testname: bsr/bc #0x7, ..."
+           } else {
+               fail "$testname: bsr/bc #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bsr/bc #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  71 131e 7C205CF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  71      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72 1324 7E125CF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  72      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73 132a 6A109ABC" { set x [expr $x+1]; exp_continue; }
+       -re ".*  73      5CF00000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74 1332 6A301234" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      56785CF0" { set x [expr $x+1]; exp_continue; }
+       -re ".*  74      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  75              " {
+           if [expr $x == 9] then {
+               pass "$testname: bsr/bs #0x7, ..."
+           } else {
+               fail "$testname: bsr/bs #0x7, ... ($x)"
+           }
+       }
+        default        { fail "$testname: bsr/bs #0x7, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  76 133c 5925" { set x [expr $x+1]; exp_continue; }
+       -re ".*  77 133e 5926" { set x [expr $x+1]; exp_continue; }
+       -re ".*  78 1340 5927" { set x [expr $x+1]; exp_continue; }
+       -re ".*  79              " {
+           if [expr $x == 3] then {
+               pass "$testname: bra ..."
+           } else {
+               fail "$testname: bra ... ($x)"
+           }
+       }
+        default        { fail "$testname: bra ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  80 1342 5500" { set x [expr $x+1]; exp_continue; }
+       -re ".*  81 1344 5C000000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  82 1348 5D25" { set x [expr $x+1]; exp_continue; }
+       -re ".*  83 134a 5D26" { set x [expr $x+1]; exp_continue; }
+       -re ".*  84 134c 5D27" { set x [expr $x+1]; exp_continue; }
+       -re ".*  85              " {
+           if [expr $x == 5] then {
+               pass "$testname: bsr ..."
+           } else {
+               fail "$testname: bsr ... ($x)"
+           }
+       }
+        default        { fail "$testname: bsr ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  86 134e 5920" { set x [expr $x+1]; exp_continue; }
+       -re ".*  87 1350 5A000000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88 1354 59080000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  88      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  89 135a 5B00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  90 135c 5980" { set x [expr $x+1]; exp_continue; }
+       -re ".*  91              " {
+           if [expr $x == 6] then {
+               pass "$testname: jmp ..."
+           } else {
+               fail "$testname: jmp ... ($x)"
+           }
+       }
+        default        { fail "$testname: jmp ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  92 135e 5D20" { set x [expr $x+1]; exp_continue; }
+       -re ".*  93 1360 5E000000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94 1364 5D080000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  94      0000" { set x [expr $x+1]; exp_continue; }
+       -re ".*  95 136a 5F00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  96 136c 5D00" { set x [expr $x+1]; exp_continue; }
+       -re ".*  97              " {
+           if [expr $x == 6] then {
+               pass "$testname: jsr ..."
+           } else {
+               fail "$testname: jsr ... ($x)"
+           }
+       }
+        default        { fail "$testname: jsr ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".*  98 136e 5470" { set x [expr $x+1]; exp_continue; }
+       -re ".*  99 1370 5403" { set x [expr $x+1]; exp_continue; }
+       -re ".* 100 1372 5412" { set x [expr $x+1]; exp_continue; }
+       -re ".* 101 1374 5424" { set x [expr $x+1]; exp_continue; }
+       -re ".* 102 1376 5436" { set x [expr $x+1]; exp_continue; }
+       -re ".* 103              " {
+           if [expr $x == 5] then {
+               pass "$testname: rts\[/l\]"
+           } else {
+               fail "$testname: rts\[/l\] ($x)"
+           }
+       }
+        default        { fail "$testname: rts\[/l\] ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 104 1378 5730" { set x [expr $x+1]; exp_continue; }
+       -re ".* 105              " {
+           if [expr $x == 1] then {
+               pass "$testname: trapa #0x3"
+           } else {
+               fail "$testname: trapa #0x3 ($x)"
+           }
+       }
+        default        { fail "$testname: trapa #0x3 ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 106 137a 5670" { set x [expr $x+1]; exp_continue; }
+       -re ".* 107 137c 5603" { set x [expr $x+1]; exp_continue; }
+       -re ".* 108 137e 5612" { set x [expr $x+1]; exp_continue; }
+       -re ".* 109 1380 5624" { set x [expr $x+1]; exp_continue; }
+       -re ".* 110 1382 5636" { set x [expr $x+1]; exp_continue; }
+       -re ".* 111              " {
+           if [expr $x == 5] then {
+               pass "$testname: rte\[/l\]"
+           } else {
+               fail "$testname: rte\[/l\] ($x)"
+           }
+       }
+        default        { fail "$testname: rte\[/l\] ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 112 1384 0712" { set x [expr $x+1]; exp_continue; }
+       -re ".* 113 1386 0303" { set x [expr $x+1]; exp_continue; }
+       -re ".* 114 1388 01406930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 115 138c 01406D30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116 1390 01406F30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 116      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117 1396 01407830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117      6B201234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 117      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118 13a0 01406B00" { set x [expr $x+1]; exp_continue; }
+       -re ".* 118      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119 13a6 01406B20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 119      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 120              " {
+           if [expr $x == 13] then {
+               pass "$testname: ldc.w ..., ccr"
+           } else {
+               fail "$testname: ldc.w ..., ccr ($x)"
+           }
+       }
+        default        { fail "$testname: ldc.w ..., ccr ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 121 13ae 01410712" { set x [expr $x+1]; exp_continue; }
+       -re ".* 122 13b2 0313" { set x [expr $x+1]; exp_continue; }
+       -re ".* 123 13b4 01416930" { set x [expr $x+1]; exp_continue; }
+       -re ".* 124 13b8 01416D30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125 13bc 01416F30" { set x [expr $x+1]; exp_continue; }
+       -re ".* 125      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126 13c2 01417830" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      6B201234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 126      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127 13cc 01416B00" { set x [expr $x+1]; exp_continue; }
+       -re ".* 127      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128 13d2 01416B20" { set x [expr $x+1]; exp_continue; }
+       -re ".* 128      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 129              " {
+           if [expr $x == 13] then {
+               pass "$testname: ldc.w ..., exr"
+           } else {
+               fail "$testname: ldc.w ..., exr ($x)"
+           }
+       }
+        default        { fail "$testname: ldc.w ..., exr ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 130 13da 0201" { set x [expr $x+1]; exp_continue; }
+       -re ".* 131 13dc 01406990" { set x [expr $x+1]; exp_continue; }
+       -re ".* 132 13e0 01406D90" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133 13e4 01406F90" { set x [expr $x+1]; exp_continue; }
+       -re ".* 133      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134 13ea 01407810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134      6BA01234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 134      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135 13f4 01406B80" { set x [expr $x+1]; exp_continue; }
+       -re ".* 135      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136 13fa 01406BA0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 136      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 137              " {
+           if [expr $x == 12] then {
+               pass "$testname: stc.w ccr, ..."
+           } else {
+               fail "$testname: stc.w ccr, ... ($x)"
+           }
+       }
+        default        { fail "$testname: stc.w ccr, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 138 1402 0211" { set x [expr $x+1]; exp_continue; }
+       -re ".* 139 1404 01416990" { set x [expr $x+1]; exp_continue; }
+       -re ".* 140 1408 01416D90" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141 140c 01416F90" { set x [expr $x+1]; exp_continue; }
+       -re ".* 141      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142 1412 01417810" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      6BA01234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 142      5678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143 141c 01416B80" { set x [expr $x+1]; exp_continue; }
+       -re ".* 143      1234" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144 1422 01416BA0" { set x [expr $x+1]; exp_continue; }
+       -re ".* 144      12345678" { set x [expr $x+1]; exp_continue; }
+       -re ".* 145              " {
+           if [expr $x == 12] then {
+               pass "$testname: stc.w exr, ..."
+           } else {
+               fail "$testname: stc.w exr, ... ($x)"
+           }
+       }
+        default        { fail "$testname: stc.w exr, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 146 142a 0412" { set x [expr $x+1]; exp_continue; }
+       -re ".* 147 142c 01410412" { set x [expr $x+1]; exp_continue; }
+       -re ".* 148              " {
+           if [expr $x == 2] then {
+               pass "$testname: orc.b #0x12:8, ..."
+           } else {
+               fail "$testname: orc.b #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: orc.b #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 149 1430 0512" { set x [expr $x+1]; exp_continue; }
+       -re ".* 150 1432 01410512" { set x [expr $x+1]; exp_continue; }
+       -re ".* 151              " {
+           if [expr $x == 2] then {
+               pass "$testname: xorc.b #0x12:8, ..."
+           } else {
+               fail "$testname: xorc.b #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: xorc.b #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 152 1436 0612" { set x [expr $x+1]; exp_continue; }
+       -re ".* 153 1438 01410612" { set x [expr $x+1]; exp_continue; }
+       -re ".* 154              " {
+           if [expr $x == 2] then {
+               pass "$testname: andc.b #0x12:8, ..."
+           } else {
+               fail "$testname: andc.b #0x12:8, ... ($x)"
+           }
+       }
+        default        { fail "$testname: andc.b #0x12:8, ... ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 155 143c 0180" { set x [expr $x+1]; exp_continue; }
+       -re ".* 156              " {
+           if [expr $x == 1] then {
+               pass "$testname: sleep"
+           } else {
+               fail "$testname: sleep ($x)"
+           }
+       }
+        default        { fail "$testname: sleep ($x)" }
+    }
+
+    set x 0
+    expect {
+       -re ".* 157 143e 0000" { set x [expr $x+1]; exp_continue; }
+       -re ".* 158              " {
+           if [expr $x == 1] then {
+               pass "$testname: nop"
+           } else {
+               fail "$testname: nop ($x)"
+           }
+       }
+        default        { fail "$testname: nop ($x)" }
+    }
+
+    # This was intended to do any cleanup necessary.
+    # It kinda looks like it isn't needed, but just
+    # in case, please keep it in for now.
+
+    gas_finish
+
+}
+
+if [istarget h8300*-*-elf] then {
+    # Test advanced h8300sx instructions.
+    do_t13_otr_test
+}
+
diff --git a/gas/testsuite/gas/h8300/t13_otr.s b/gas/testsuite/gas/h8300/t13_otr.s
new file mode 100644 (file)
index 0000000..5d97044
--- /dev/null
@@ -0,0 +1,159 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+;others\r
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
+       .h8300sx\r
+       .text\r
+       .org 0x12\r
+lab_12:\r
+       .org 0x1234\r
+       .global _start\r
+_start:\r
+    bra 0x12+.+2                  ;4012 \r
+    brn 0x12+.+2                  ;4112 \r
+    bhi 0x12+.+2                  ;4212 \r
+    bls 0x12+.+2                  ;4312 \r
+    bcc 0x12+.+2                  ;4412 \r
+    bcs 0x12+.+2                  ;4512 \r
+    bne 0x12+.+2                  ;4612 \r
+    beq 0x12+.+2                  ;4712 \r
+    bvc 0x12+.+2                  ;4812 \r
+    bvs 0x12+.+2                  ;4912 \r
+    bpl 0x12+.+2                  ;4a12 \r
+    bmi 0x12+.+2                  ;4b12 \r
+    bge 0x12+.+2                  ;4c12 \r
+    blt 0x12+.+2                  ;4d12 \r
+    bgt 0x12+.+2                  ;4e12 \r
+    ble 0x12+.+2                  ;4f12\r
+\r
+    bra 0x1234+.+4                ;58001234\r
+    brn 0x1234+.+4                ;58101234\r
+    bhi 0x1234+.+4                ;58201234\r
+    bls 0x1234+.+4                ;58301234\r
+    bcc 0x1234+.+4                ;58401234\r
+    bcs 0x1234+.+4                ;58501234\r
+    bne 0x1234+.+4                ;58601234\r
+    beq 0x1234+.+4                ;58701234\r
+    bvc 0x1234+.+4                ;58801234\r
+    bvs 0x1234+.+4                ;58901234\r
+    bpl 0x1234+.+4                ;58a01234\r
+    bmi 0x1234+.+4                ;58b01234\r
+    bge 0x1234+.+4                ;58c01234\r
+    blt 0x1234+.+4                ;58d01234\r
+    bgt 0x1234+.+4                ;58e01234\r
+    ble 0x1234+.+4                ;58f01234\r
+\r
+    bra/s 0x12+.+2                ;4013\r
+    nop                           ;0000\r
+\r
+    bra/bc #0x7,@er2,0x12+.+4            ;7c204712\r
+    bra/bc #0x7,@0xffffff9a:8,0x12+.+4   ;7e9a4712\r
+    bra/bc #0x7,@0x1234:16,0x12+.+6      ;6a1012344712\r
+    bra/bc #0x7,@0x12345678:32,0x12+.+8  ;6a30123456784712\r
+    bra/bc #0x7,@er2,0x1234+.+6              ;7c2058701234\r
+    bra/bc #0x7,@0xffffff12:8,0x1234+.+6     ;7e1258701234\r
+    bra/bc #0x7,@0xffff9abc:16,0x1234+.+8    ;6a109abc58701234\r
+    bra/bc #0x7,@0x12345678:32,0x1234+.+0xa  ;6a301234567858701234\r
+\r
+    bra/bs #0x7,@er2,0x12+.+4            ;7c204f12\r
+    bra/bs #0x7,@0xffffff9a:8,0x12+.+4   ;7e9a4f12\r
+    bra/bs #0x7,@0x1234:16,0x12+.+6      ;6a1012344f12\r
+    bra/bs #0x7,@0x12345678:32,0x12+.+8  ;6a30123456784f12\r
+    bra/bs #0x7,@er2,0x1234+.+6              ;7c2058f01234\r
+    bra/bs #0x7,@0xffffff12:8,0x1234+.+6     ;7e1258f01234\r
+    bra/bs #0x7,@0xffff9abc:16,0x1234+.+8    ;6a109abc58f01234\r
+    bra/bs #0x7,@0x12345678:32,0x1234+.+0xa  ;6a301234567858f01234\r
+\r
+    bsr/bc #0x7,@er2,0x1234+.+6             ;7c205c701234\r
+    bsr/bc #0x7,@0xffffff12:8,0x1234+.+6    ;7e125c701234\r
+    bsr/bc #0x7,@0xffff9abc:16,0x1234+.+8   ;6a109abc5c701234\r
+    bsr/bc #0x7,@0x12345678:32,0x1234+.+0xa ;6a30123456785c701234\r
+\r
+    bsr/bs #0x7,@er2,0x1234+.+6             ;7c205cf01234\r
+    bsr/bs #0x7,@0xffffff12:8,0x1234+.+6    ;7e125cf01234\r
+    bsr/bs #0x7,@0xffff9abc:16,0x1234+.+8   ;6a109abc5cf01234\r
+    bsr/bs #0x7,@0x12345678:32,0x1234+.+0xa ;6a30123456785cf01234\r
+\r
+    bra r2l.b          ;5925 \r
+    bra r2.w           ;5926 \r
+    bra er2.l          ;5927 \r
+\r
+    bsr 0x12+.+2       ;5512\r
+    bsr 0x1234+.+4     ;5c001234\r
+    bsr r2l.b          ;5d25 \r
+    bsr r2.w           ;5d26 \r
+    bsr er2.l          ;5d27 \r
+\r
+    jmp @er2             ;5920     \r
+    jmp @0x123456:24     ;5a123456\r
+    jmp @0x12345678:32   ;590812345678\r
+    jmp @@0x12           ;5b12\r
+    jmp @@0x234          ;598d\r
+\r
+    jsr @er2             ;5d20 \r
+    jsr @0x123456:24     ;5e123456\r
+    jsr @0x12345678:32   ;5d0812345678\r
+    jsr @@0x12           ;5f12\r
+    jsr @@0x234          ;5d8d\r
+\r
+    rts                      ;5470     \r
+    rts/l  er3               ;5403\r
+    rts/l  (er1-er2)         ;5412\r
+    rts/l  (er2-er4)         ;5424\r
+    rts/l  (er3-er6)         ;5436\r
+\r
+    trapa #0x3               ;5730 \r
+\r
+    rte                      ;5670     \r
+    rte/l  er3               ;5603\r
+    rte/l  (er1-er2)         ;5612\r
+    rte/l  (er2-er4)         ;5624\r
+    rte/l  (er3-er6)         ;5636\r
+\r
+    ldc.b #0x12:8,ccr        ;0712 \r
+    ldc.b r3h,ccr            ;0303 \r
+    ldc.w @er3,ccr           ;01406930 \r
+    ldc.w @er3+,ccr          ;01406d30 \r
+    ldc.w @(0x1234:16,er3),ccr        ;01406f301234\r
+    ldc.w @(0x12345678:32,er3),ccr    ;014078306b2012345678\r
+    ldc.w @0x1234:16,ccr              ;01406b001234\r
+    ldc.w @0x12345678:32,ccr          ;01406b2012345678\r
+\r
+    ldc.b #0x12:8,exr        ;01410712 \r
+    ldc.b r3h,exr            ;0313 \r
+    ldc.w @er3,exr           ;01416930 \r
+    ldc.w @er3+,exr          ;01416d30 \r
+    ldc.w @(0x1234:16,er3),exr        ;01416f301234\r
+    ldc.w @(0x12345678:32,er3),exr    ;014178306b2012345678    \r
+    ldc.w @0x1234:16,exr              ;01416b001234\r
+    ldc.w @0x12345678:32,exr          ;01416b2012345678\r
+\r
+    stc.b ccr,r1h            ;0201 \r
+    stc.w ccr,@er1           ;01406990 \r
+    stc.w ccr,@-er1          ;01406d90 \r
+    stc.w ccr,@(0x1234:16,er1)       ;01406f901234\r
+    stc.w ccr,@(0x12345678:32,er1)   ;014078106ba012345678\r
+    stc.w ccr,@0x1234:16             ;01406b801234\r
+    stc.w ccr,@0x12345678:32         ;01406ba012345678\r
+\r
+    stc.b exr,r1h            ;0211 \r
+    stc.w exr,@er1           ;01416990 \r
+    stc.w exr,@-er1          ;01416d90 \r
+    stc.w exr,@(0x1234:16,er1)       ;01416f901234\r
+    stc.w exr,@(0x12345678:32,er1)   ;014178106ba012345678\r
+    stc.w exr,@0x1234:16             ;01416b801234\r
+    stc.w exr,@0x12345678:32         ;01416ba012345678\r
+\r
+    orc.b #0x12:8,ccr          ;0412 \r
+    orc.b #0x12:8,exr          ;01410412 \r
+\r
+    xorc.b #0x12:8,ccr         ;0512 \r
+    xorc.b #0x12:8,exr         ;01410512 \r
+\r
+    andc.b #0x12:8,ccr         ;0612 \r
+    andc.b #0x12:8,exr         ;01410612 \r
+\r
+    sleep                      ;0180 \r
+\r
+    nop                        ;0000\r
+\r
+       .end\r