include/opcode/
authorRichard Sandiford <rdsandiford@googlemail.com>
Tue, 10 Jun 2003 07:33:46 +0000 (07:33 +0000)
committerRichard Sandiford <rdsandiford@googlemail.com>
Tue, 10 Jun 2003 07:33:46 +0000 (07:33 +0000)
* h8300.h (IMM4_NS, IMM8_NS): New.
(h8_opcodes): Replace IMM4 with IMM4_NS in mov.b and mov.w entries.
Likewise IMM8 for mov.w and mov.l.  Likewise IMM16U for mov.l.

gas/testsuite
* gas/h8300/h8sx_mov_imm.[sd]: New test.
* gas/h8300/h8300.exp: Run it.

gas/testsuite/ChangeLog
gas/testsuite/gas/h8300/h8300.exp
gas/testsuite/gas/h8300/h8sx_mov_imm.d [new file with mode: 0644]
gas/testsuite/gas/h8300/h8sx_mov_imm.s [new file with mode: 0644]
include/opcode/ChangeLog
include/opcode/h8300.h

index 4ea3d4b..7b14f61 100644 (file)
@@ -1,5 +1,10 @@
 2003-06-10  Richard Sandiford  <rsandifo@redhat.com>
 
+       * gas/h8300/h8sx_mov_imm.[sd]: New test.
+       * gas/h8300/h8300.exp: Run it.
+
+2003-06-10  Richard Sandiford  <rsandifo@redhat.com>
+
        * gas/h8300/h8sx_rtsl.[sd]: New test.
        * gas/h8300/h8300.exp: Run it.
 
index e167a3f..2aa2b06 100644 (file)
@@ -2169,6 +2169,7 @@ if [istarget h8300*-*-*] then {
 
     run_dump_test h8sx_disp2
     run_dump_test h8sx_rtsl
+    run_dump_test h8sx_mov_imm
 
     # Now some random tests
     set svr4pic [expr [istarget *-*-elf*] || [istarget *-*-irix5*] ]
diff --git a/gas/testsuite/gas/h8300/h8sx_mov_imm.d b/gas/testsuite/gas/h8300/h8sx_mov_imm.d
new file mode 100644 (file)
index 0000000..84fc12a
--- /dev/null
@@ -0,0 +1,293 @@
+# objdump: -dr
+
+.*: *file format elf32-h8300
+
+Disassembly of section \.text:
+
+.* <.*>:
+.*:    fa 00 * fa 00 * mov.b   #0x0,r2l
+                       .*: R_H8_DIR8   foo
+.*:    fa 00 * fa 00 * mov.b   #0x0,r2l
+                       .*: R_H8_DIR8   .L1
+.*:    fa 00 * fa 00 * mov.b   #0x0,r2l
+                       .*: R_H8_DIR8   bar
+.*:    01 7d 02 00 *   01 7d 02 00 * mov.b     #0x0,@r2
+                       .*: R_H8_DIR8   foo
+.*:    01 7d 02 00 *   01 7d 02 00 * mov.b     #0x0,@r2
+                       .*: R_H8_DIR8   .L1
+.*:    01 7d 02 00 *   01 7d 02 00 * mov.b     #0x0,@r2
+                       .*: R_H8_DIR8   bar
+.*:    01 7d b2 00 *   01 7d b2 00 * mov.b     #0x0,@-r2
+                       .*: R_H8_DIR8   foo
+.*:    01 7d 82 00 *   01 7d 82 00 * mov.b     #0x0,@r2\+
+                       .*: R_H8_DIR8   .L1
+.*:    01 7d a2 00 *   01 7d a2 00 * mov.b     #0x0,@r2-
+                       .*: R_H8_DIR8   bar
+.*:    01 7d 22 00 *   01 7d 22 00 * mov.b     #0x0,@\(0x2:2,r2\)
+                       .*: R_H8_DIR8   foo
+.*:    01 7d 22 00 *   01 7d 22 00 * mov.b     #0x0,@\(0x2:2,r2\)
+                       .*: R_H8_DIR8   .L1
+.*:    01 7d 22 00 *   01 7d 22 00 * mov.b     #0x0,@\(0x2:2,r2\)
+                       .*: R_H8_DIR8   bar
+.*:    01 7d c2 00 *   01 7d c2 00 00 10 * mov.b       #0x0,@\(0x10:16,r2\)
+.*:    00 10 *
+                       .*: R_H8_DIR8   foo
+.*:    01 7d c2 00 *   01 7d c2 00 00 10 * mov.b       #0x0,@\(0x10:16,r2\)
+.*:    00 10 *
+                       .*: R_H8_DIR8   .L1
+.*:    01 7d c2 00 *   01 7d c2 00 00 10 * mov.b       #0x0,@\(0x10:16,r2\)
+.*:    00 10 *
+                       .*: R_H8_DIR8   bar
+.*:    01 7d d2 00 *   01 7d d2 00 00 10 * mov.b       #0x0,@\(0x10:16,r2l.b\)
+.*:    00 10 *
+                       .*: R_H8_DIR8   foo
+.*:    01 7d e2 00 *   01 7d e2 00 00 10 * mov.b       #0x0,@\(0x10:16,r2.w\)
+.*:    00 10 *
+                       .*: R_H8_DIR8   .L1
+.*:    01 7d f2 00 *   01 7d f2 00 00 10 * mov.b       #0x0,@\(0x10:16,er2.l\)
+.*:    00 10 *
+                       .*: R_H8_DIR8   bar
+.*:    01 7d ca 00 *   01 7d ca 00 00 01 23 45 * mov.b #0x0,@\(0x12345:32,r2\)
+.*:    00 01 23 45 *
+                       .*: R_H8_DIR8   foo
+.*:    01 7d ca 00 *   01 7d ca 00 00 01 23 45 * mov.b #0x0,@\(0x12345:32,r2\)
+.*:    00 01 23 45 *
+                       .*: R_H8_DIR8   .L1
+.*:    01 7d ca 00 *   01 7d ca 00 00 01 23 45 * mov.b #0x0,@\(0x12345:32,r2\)
+.*:    00 01 23 45 *
+                       .*: R_H8_DIR8   bar
+.*:    01 7d da 00 *   01 7d da 00 00 01 23 45 * mov.b #0x0,@\(0x12345:32,r2l.b\)
+.*:    00 01 23 45 *
+                       .*: R_H8_DIR8   foo
+.*:    01 7d ea 00 *   01 7d ea 00 00 01 23 45 * mov.b #0x0,@\(0x12345:32,r2.w\)
+.*:    00 01 23 45 *
+                       .*: R_H8_DIR8   .L1
+.*:    01 7d fa 00 *   01 7d fa 00 00 01 23 45 * mov.b #0x0,@\(0x12345:32,er2.l\)
+.*:    00 01 23 45 *
+                       .*: R_H8_DIR8   bar
+.*:    01 7d 40 00 *   01 7d 40 00 80 00 * mov.b       #0x0,@0x8000:16
+.*:    80 00 *
+                       .*: R_H8_DIR8   foo
+.*:    01 7d 40 00 *   01 7d 40 00 80 00 * mov.b       #0x0,@0x8000:16
+.*:    80 00 *
+                       .*: R_H8_DIR8   .L1
+.*:    01 7d 40 00 *   01 7d 40 00 80 00 * mov.b       #0x0,@0x8000:16
+.*:    80 00 *
+                       .*: R_H8_DIR8   bar
+.*:    01 7d 48 00 *   01 7d 48 00 00 01 80 00 * mov.b #0x0,@0x18000:32
+.*:    00 01 80 00 *
+                       .*: R_H8_DIR8   foo
+.*:    01 7d 48 00 *   01 7d 48 00 00 01 80 00 * mov.b #0x0,@0x18000:32
+.*:    00 01 80 00 *
+                       .*: R_H8_DIR8   .L1
+.*:    01 7d 48 00 *   01 7d 48 00 00 01 80 00 * mov.b #0x0,@0x18000:32
+.*:    00 01 80 00 *
+                       .*: R_H8_DIR8   bar
+.*:    79 02 00 00 *   79 02 00 00 * mov.w     #0x0,r2
+                       .*: R_H8_DIR16  foo
+.*:    79 02 00 00 *   79 02 00 00 * mov.w     #0x0,r2
+                       .*: R_H8_DIR16  .L1
+.*:    79 02 00 00 *   79 02 00 00 * mov.w     #0x0,r2
+                       .*: R_H8_DIR16  bar
+.*:    79 74 00 00 *   79 74 00 00 02 00 * mov.w       #0x0,@r2
+.*:    02 00 *
+                       .*: R_H8_DIR16  foo
+.*:    79 74 00 00 *   79 74 00 00 02 00 * mov.w       #0x0,@r2
+.*:    02 00 *
+                       .*: R_H8_DIR16  .L1
+.*:    79 74 00 00 *   79 74 00 00 02 00 * mov.w       #0x0,@r2
+.*:    02 00 *
+                       .*: R_H8_DIR16  bar
+.*:    79 74 00 00 *   79 74 00 00 b2 00 * mov.w       #0x0,@-r2
+.*:    b2 00 *
+                       .*: R_H8_DIR16  foo
+.*:    79 74 00 00 *   79 74 00 00 82 00 * mov.w       #0x0,@r2\+
+.*:    82 00 *
+                       .*: R_H8_DIR16  .L1
+.*:    79 74 00 00 *   79 74 00 00 a2 00 * mov.w       #0x0,@r2-
+.*:    a2 00 *
+                       .*: R_H8_DIR16  bar
+.*:    79 74 00 00 *   79 74 00 00 22 00 * mov.w       #0x0,@\(0x4:2,r2\)
+.*:    22 00 *
+                       .*: R_H8_DIR16  foo
+.*:    79 74 00 00 *   79 74 00 00 22 00 * mov.w       #0x0,@\(0x4:2,r2\)
+.*:    22 00 *
+                       .*: R_H8_DIR16  .L1
+.*:    79 74 00 00 *   79 74 00 00 22 00 * mov.w       #0x0,@\(0x4:2,r2\)
+.*:    22 00 *
+                       .*: R_H8_DIR16  bar
+.*:    79 74 00 00 *   79 74 00 00 c2 00 00 10 * mov.w #0x0,@\(0x10:16,r2\)
+.*:    c2 00 00 10 *
+                       .*: R_H8_DIR16  foo
+.*:    79 74 00 00 *   79 74 00 00 c2 00 00 10 * mov.w #0x0,@\(0x10:16,r2\)
+.*:    c2 00 00 10 *
+                       .*: R_H8_DIR16  .L1
+.*:    79 74 00 00 *   79 74 00 00 c2 00 00 10 * mov.w #0x0,@\(0x10:16,r2\)
+.*:    c2 00 00 10 *
+                       .*: R_H8_DIR16  bar
+.*:    79 74 00 00 *   79 74 00 00 d2 00 00 10 * mov.w #0x0,@\(0x10:16,r2l.b\)
+.*:    d2 00 00 10 *
+                       .*: R_H8_DIR16  foo
+.*:    79 74 00 00 *   79 74 00 00 e2 00 00 10 * mov.w #0x0,@\(0x10:16,r2.w\)
+.*:    e2 00 00 10 *
+                       .*: R_H8_DIR16  .L1
+.*:    79 74 00 00 *   79 74 00 00 f2 00 00 10 * mov.w #0x0,@\(0x10:16,er2.l\)
+.*:    f2 00 00 10 *
+                       .*: R_H8_DIR16  bar
+.*:    79 74 00 00 *   79 74 00 00 ca 00 00 01 23 45 * mov.w   #0x0,@\(0x12345:32,r2\)
+.*:    ca 00 00 01 *
+.*:    23 45 *
+                       .*: R_H8_DIR16  foo
+.*:    79 74 00 00 *   79 74 00 00 ca 00 00 01 23 45 * mov.w   #0x0,@\(0x12345:32,r2\)
+.*:    ca 00 00 01 *
+.*:    23 45 *
+                       .*: R_H8_DIR16  .L1
+.*:    79 74 00 00 *   79 74 00 00 ca 00 00 01 23 45 * mov.w   #0x0,@\(0x12345:32,r2\)
+.*:    ca 00 00 01 *
+.*:    23 45 *
+                       .*: R_H8_DIR16  bar
+.*:    79 74 00 00 *   79 74 00 00 da 00 00 01 23 45 * mov.w   #0x0,@\(0x12345:32,r2l.b\)
+.*:    da 00 00 01 *
+.*:    23 45 *
+                       .*: R_H8_DIR16  foo
+.*:    79 74 00 00 *   79 74 00 00 ea 00 00 01 23 45 * mov.w   #0x0,@\(0x12345:32,r2.w\)
+.*:    ea 00 00 01 *
+.*:    23 45 *
+                       .*: R_H8_DIR16  .L1
+.*:    79 74 00 00 *   79 74 00 00 fa 00 00 01 23 45 * mov.w   #0x0,@\(0x12345:32,er2.l\)
+.*:    fa 00 00 01 *
+.*:    23 45 *
+                       .*: R_H8_DIR16  bar
+.*:    79 74 00 00 *   79 74 00 00 40 00 80 00 * mov.w #0x0,@0x8000:16
+.*:    40 00 80 00 *
+                       .*: R_H8_DIR16  foo
+.*:    79 74 00 00 *   79 74 00 00 40 00 80 00 * mov.w #0x0,@0x8000:16
+.*:    40 00 80 00 *
+                       .*: R_H8_DIR16  .L1
+.*:    79 74 00 00 *   79 74 00 00 40 00 80 00 * mov.w #0x0,@0x8000:16
+.*:    40 00 80 00 *
+                       .*: R_H8_DIR16  bar
+.*:    79 74 00 00 *   79 74 00 00 48 00 00 01 80 00 * mov.w   #0x0,@0x18000:32
+.*:    48 00 00 01 *
+.*:    80 00 *
+                       .*: R_H8_DIR16  foo
+.*:    79 74 00 00 *   79 74 00 00 48 00 00 01 80 00 * mov.w   #0x0,@0x18000:32
+.*:    48 00 00 01 *
+.*:    80 00 *
+                       .*: R_H8_DIR16  .L1
+.*:    79 74 00 00 *   79 74 00 00 48 00 00 01 80 00 * mov.w   #0x0,@0x18000:32
+.*:    48 00 00 01 *
+.*:    80 00 *
+                       .*: R_H8_DIR16  bar
+
+.* <.*>:
+.*:    7a 02 00 00 *   7a 02 00 00 00 00 * mov.l       #0x0,er2
+.*:    00 00 *
+                       .*: R_H8_DIR32  foo
+.*:    7a 02 00 00 *   7a 02 00 00 00 00 * mov.l       #0x0,er2
+.*:    00 00 *
+                       .*: R_H8_DIR32  .L1
+.*:    7a 02 00 00 *   7a 02 00 00 00 00 * mov.l       #0x0,er2
+.*:    00 00 *
+                       .*: R_H8_DIR32  bar
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 02 00 * mov.l #0x0,@r2
+.*:    00 00 02 00 *
+                       .*: R_H8_DIR32  foo
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 02 00 * mov.l #0x0,@r2
+.*:    00 00 02 00 *
+                       .*: R_H8_DIR32  .L1
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 02 00 * mov.l #0x0,@r2
+.*:    00 00 02 00 *
+                       .*: R_H8_DIR32  bar
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 b2 00 * mov.l #0x0,@-r2
+.*:    00 00 b2 00 *
+                       .*: R_H8_DIR32  foo
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 82 00 * mov.l #0x0,@r2\+
+.*:    00 00 82 00 *
+                       .*: R_H8_DIR32  .L1
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 a2 00 * mov.l #0x0,@r2-
+.*:    00 00 a2 00 *
+                       .*: R_H8_DIR32  bar
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 22 00 * mov.l #0x0,@\(0x8:2,r2\)
+.*:    00 00 22 00 *
+                       .*: R_H8_DIR32  foo
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 22 00 * mov.l #0x0,@\(0x8:2,r2\)
+.*:    00 00 22 00 *
+                       .*: R_H8_DIR32  .L1
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 22 00 * mov.l #0x0,@\(0x8:2,r2\)
+.*:    00 00 22 00 *
+                       .*: R_H8_DIR32  bar
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 c2 00 00 10 * mov.l   #0x0,@\(0x10:16,r2\)
+.*:    00 00 c2 00 *
+.*:    00 10 *
+                       .*: R_H8_DIR32  foo
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 c2 00 00 10 * mov.l   #0x0,@\(0x10:16,r2\)
+.*:    00 00 c2 00 *
+.*:    00 10 *
+                       .*: R_H8_DIR32  .L1
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 c2 00 00 10 * mov.l   #0x0,@\(0x10:16,r2\)
+.*:    00 00 c2 00 *
+.*:    00 10 *
+                       .*: R_H8_DIR32  bar
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 d2 00 00 10 * mov.l   #0x0,@\(0x10:16,r2l.b\)
+.*:    00 00 d2 00 *
+.*:    00 10 *
+                       .*: R_H8_DIR32  foo
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 e2 00 00 10 * mov.l   #0x0,@\(0x10:16,r2.w\)
+.*:    00 00 e2 00 *
+.*:    00 10 *
+                       .*: R_H8_DIR32  .L1
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 f2 00 00 10 * mov.l   #0x0,@\(0x10:16,er2.l\)
+.*:    00 00 f2 00 *
+.*:    00 10 *
+                       .*: R_H8_DIR32  bar
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 ca 00 00 01 23 45 * mov.l     #0x0,@\(0x12345:32,r2\)
+.*:    00 00 ca 00 *
+.*:    00 01 23 45 *
+                       .*: R_H8_DIR32  foo
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 ca 00 00 01 23 45 * mov.l     #0x0,@\(0x12345:32,r2\)
+.*:    00 00 ca 00 *
+.*:    00 01 23 45 *
+                       .*: R_H8_DIR32  .L1
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 ca 00 00 01 23 45 * mov.l     #0x0,@\(0x12345:32,r2\)
+.*:    00 00 ca 00 *
+.*:    00 01 23 45 *
+                       .*: R_H8_DIR32  bar
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 da 00 00 01 23 45 * mov.l     #0x0,@\(0x12345:32,r2l.b\)
+.*:    00 00 da 00 *
+.*:    00 01 23 45 *
+                       .*: R_H8_DIR32  foo
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 ea 00 00 01 23 45 * mov.l     #0x0,@\(0x12345:32,r2.w\)
+.*:    00 00 ea 00 *
+.*:    00 01 23 45 *
+                       .*: R_H8_DIR32  .L1
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 fa 00 00 01 23 45 * mov.l     #0x0,@\(0x12345:32,er2.l\)
+.*:    00 00 fa 00 *
+.*:    00 01 23 45 *
+                       .*: R_H8_DIR32  bar
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 40 00 80 00 * mov.l   #0x0,@0x8000:16
+.*:    00 00 40 00 *
+.*:    80 00 *
+                       .*: R_H8_DIR32  foo
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 40 00 80 00 * mov.l   #0x0,@0x8000:16
+.*:    00 00 40 00 *
+.*:    80 00 *
+                       .*: R_H8_DIR32  .L1
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 40 00 80 00 * mov.l   #0x0,@0x8000:16
+.*:    00 00 40 00 *
+.*:    80 00 *
+                       .*: R_H8_DIR32  bar
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 48 00 00 01 80 00 * mov.l     #0x0,@0x18000:32
+.*:    00 00 48 00 *
+.*:    00 01 80 00 *
+                       .*: R_H8_DIR32  foo
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 48 00 00 01 80 00 * mov.l     #0x0,@0x18000:32
+.*:    00 00 48 00 *
+.*:    00 01 80 00 *
+                       .*: R_H8_DIR32  .L1
+.*:    7a 74 00 00 *   7a 74 00 00 00 00 48 00 00 01 80 00 * mov.l     #0x0,@0x18000:32
+.*:    00 00 48 00 *
+.*:    00 01 80 00 *
+                       .*: R_H8_DIR32  bar
+.* <.*>:
+       \.\.\.
diff --git a/gas/testsuite/gas/h8300/h8sx_mov_imm.s b/gas/testsuite/gas/h8300/h8sx_mov_imm.s
new file mode 100644 (file)
index 0000000..b2e29b8
--- /dev/null
@@ -0,0 +1,98 @@
+       .h8300sx
+       mov.b   #foo,r2l
+       mov.b   #.L1,r2l
+       mov.b   #bar,r2l
+       mov.b   #foo,@er2
+       mov.b   #.L1,@er2
+       mov.b   #bar,@er2
+       mov.b   #foo,@-er2
+       mov.b   #.L1,@er2+
+       mov.b   #bar,@er2-
+       mov.b   #foo,@(2,er2)
+       mov.b   #.L1,@(2,er2)
+       mov.b   #bar,@(2,er2)
+       mov.b   #foo,@(16,er2)
+       mov.b   #.L1,@(16,er2)
+       mov.b   #bar,@(16,er2)
+       mov.b   #foo,@(16,r2l.b)
+       mov.b   #.L1,@(16,r2.w)
+       mov.b   #bar,@(16,er2.l)
+       mov.b   #foo,@(0x12345,er2)
+       mov.b   #.L1,@(0x12345,er2)
+       mov.b   #bar,@(0x12345,er2)
+       mov.b   #foo,@(0x12345,r2l.b)
+       mov.b   #.L1,@(0x12345,r2.w)
+       mov.b   #bar,@(0x12345,er2.l)
+       mov.b   #foo,@0xffff8000
+       mov.b   #.L1,@0xffff8000
+       mov.b   #bar,@0xffff8000
+       mov.b   #foo,@0x18000
+       mov.b   #.L1,@0x18000
+       mov.b   #bar,@0x18000
+
+       mov.w   #foo,r2
+       mov.w   #.L1,r2
+       mov.w   #bar,r2
+       mov.w   #foo,@er2
+       mov.w   #.L1,@er2
+       mov.w   #bar,@er2
+       mov.w   #foo,@-er2
+       mov.w   #.L1,@er2+
+       mov.w   #bar,@er2-
+       mov.w   #foo,@(4,er2)
+       mov.w   #.L1,@(4,er2)
+       mov.w   #bar,@(4,er2)
+       mov.w   #foo,@(16,er2)
+       mov.w   #.L1,@(16,er2)
+       mov.w   #bar,@(16,er2)
+       mov.w   #foo,@(16,r2l.b)
+       mov.w   #.L1,@(16,r2.w)
+       mov.w   #bar,@(16,er2.l)
+       mov.w   #foo,@(0x12345,er2)
+       mov.w   #.L1,@(0x12345,er2)
+       mov.w   #bar,@(0x12345,er2)
+       mov.w   #foo,@(0x12345,r2l.b)
+       mov.w   #.L1,@(0x12345,r2.w)
+       mov.w   #bar,@(0x12345,er2.l)
+       mov.w   #foo,@0xffff8000
+       mov.w   #.L1,@0xffff8000
+       mov.w   #bar,@0xffff8000
+       mov.w   #foo,@0x18000
+       mov.w   #.L1,@0x18000
+       mov.w   #bar,@0x18000
+
+.L1:
+       mov.l   #foo,er2
+       mov.l   #.L1,er2
+       mov.l   #bar,er2
+       mov.l   #foo,@er2
+       mov.l   #.L1,@er2
+       mov.l   #bar,@er2
+       mov.l   #foo,@-er2
+       mov.l   #.L1,@er2+
+       mov.l   #bar,@er2-
+       mov.l   #foo,@(8,er2)
+       mov.l   #.L1,@(8,er2)
+       mov.l   #bar,@(8,er2)
+       mov.l   #foo,@(16,er2)
+       mov.l   #.L1,@(16,er2)
+       mov.l   #bar,@(16,er2)
+       mov.l   #foo,@(16,r2l.b)
+       mov.l   #.L1,@(16,r2.w)
+       mov.l   #bar,@(16,er2.l)
+       mov.l   #foo,@(0x12345,er2)
+       mov.l   #.L1,@(0x12345,er2)
+       mov.l   #bar,@(0x12345,er2)
+       mov.l   #foo,@(0x12345,r2l.b)
+       mov.l   #.L1,@(0x12345,r2.w)
+       mov.l   #bar,@(0x12345,er2.l)
+       mov.l   #foo,@0xffff8000
+       mov.l   #.L1,@0xffff8000
+       mov.l   #bar,@0xffff8000
+       mov.l   #foo,@0x18000
+       mov.l   #.L1,@0x18000
+       mov.l   #bar,@0x18000
+
+       .globl  bar
+bar:
+       .space  16
index 25a6ffe..a31d9ce 100644 (file)
@@ -1,3 +1,9 @@
+2003-06-10  Richard Sandiford  <rsandifo@redhat.com>
+
+       * h8300.h (IMM4_NS, IMM8_NS): New.
+       (h8_opcodes): Replace IMM4 with IMM4_NS in mov.b and mov.w entries.
+       Likewise IMM8 for mov.w and mov.l.  Likewise IMM16U for mov.l.
+
 2003-06-03  Michael Snyder  <msnyder@redhat.com>
 
        * h8sx.h (enum h8_model): Add AV_H8S to distinguish from H8H.
index 45357ef..4318dcc 100644 (file)
@@ -130,6 +130,8 @@ enum h8_flags {
 
   IMM3NZ_NS =   IMM3NZ | NO_SYMBOLS,
   IMM2_NS =     IMM2 | NO_SYMBOLS,
+  IMM4_NS =    IMM4 | NO_SYMBOLS,
+  IMM8_NS =    IMM8 | NO_SYMBOLS,
   IMM16_NS =    IMM16 | NO_SYMBOLS,
   IMM16U_NS =   IMM16U | NO_SYMBOLS,
 
@@ -1441,8 +1443,8 @@ struct h8_opcode h8_opcodes[] =
 
 
   {O (O_MOV, SB), AV_H8,   2, "mov.b", {{IMM8, RD8,      E}}, {{0xF, RD8,            IMM8LIST,     E}}},
-  {O (O_MOV, SB), AV_H8SX, 0, "mov.b", {{IMM4, ABS16DST, E}}, {{0x6, 0xa, 0xd, IMM4, DSTABS16LIST, E}}},
-  {O (O_MOV, SB), AV_H8SX, 0, "mov.b", {{IMM4, ABS32DST, E}}, {{0x6, 0xa, 0xf, IMM4, DSTABS32LIST, E}}},
+  {O (O_MOV, SB), AV_H8SX, 0, "mov.b", {{IMM4_NS, ABS16DST, E}}, {{0x6, 0xa, 0xd, IMM4, DSTABS16LIST, E}}},
+  {O (O_MOV, SB), AV_H8SX, 0, "mov.b", {{IMM4_NS, ABS32DST, E}}, {{0x6, 0xa, 0xf, IMM4, DSTABS32LIST, E}}},
   MOVFROM_IMM8 (O (O_MOV, SB), PREFIX_017D, "mov.b", IMM8),
 
   {O (O_MOV, SB), AV_H8,   2,    "mov.b", {{RS8, RD8,     E}}, {{0x0, 0xC, RS8, RD8,    E}}},
@@ -1470,10 +1472,10 @@ struct h8_opcode h8_opcodes[] =
 
   {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM3NZ_NS, RD16, E}}, {{0x0, 0xf, B30 | IMM3NZ, RD16,   E}}},
   {O (O_MOV, SW), AV_H8,   4, "mov.w", {{IMM16,     RD16, E}}, {{0x7, 0x9, 0x0, RD16, IMM16LIST, E}}},
-  {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4,  ABS16DST, E}}, {{0x6, 0xb, 0xd, IMM4, DSTABS16LIST, E}}},
-  {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4,  ABS32DST, E}}, {{0x6, 0xb, 0xf, IMM4, DSTABS32LIST, E}}},
+  {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4_NS,  ABS16DST, E}}, {{0x6, 0xb, 0xd, IMM4, DSTABS16LIST, E}}},
+  {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4_NS,  ABS32DST, E}}, {{0x6, 0xb, 0xf, IMM4, DSTABS32LIST, E}}},
 
-  MOVFROM_IMM8 (O (O_MOV, SW), PREFIX_015D,   "mov.w", IMM8),
+  MOVFROM_IMM8 (O (O_MOV, SW), PREFIX_015D,   "mov.w", IMM8_NS),
   MOVFROM_IMM  (O (O_MOV, SW), PREFIX_7974,   "mov.w", IMM16, IMM16LIST),
 
   {O (O_MOV, SW), AV_H8,   2, "mov.w", {{RS16, RD16,      E}}, {{0x0, 0xD, RS16, RD16, E}}},
@@ -1499,8 +1501,8 @@ struct h8_opcode h8_opcodes[] =
 
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{IMM3NZ_NS, RD32, E}}, {{0x0, 0xf, B31 | IMM3NZ, B31 | RD32, E}}},
 
-  MOVFROM_IMM8 (O (O_MOV, SL), PREFIX_010D, "mov.l", IMM8),
-  MOVFROM_IMM  (O (O_MOV, SL), PREFIX_7A7C, "mov.l", IMM16U, IMM16ULIST),
+  MOVFROM_IMM8 (O (O_MOV, SL), PREFIX_010D, "mov.l", IMM8_NS),
+  MOVFROM_IMM  (O (O_MOV, SL), PREFIX_7A7C, "mov.l", IMM16U_NS, IMM16ULIST),
 
   {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{IMM16U_NS, RD32, E}}, {{0x7, 0xa, 0x0, B31 | RD32, IMM16ULIST, E}}},
   {O (O_MOV, SL), AV_H8H,  4, "mov.l", {{IMM32,     RD32, E}}, {{0x7, 0xa, 0x0, B30 | RD32, IMM32LIST,  E}}},