summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@nildram.co.uk>2003-06-10 07:33:46 +0000
committerRichard Sandiford <rsandifo@nildram.co.uk>2003-06-10 07:33:46 +0000
commit66f2d450d000e4c121924288c580cd5c88e5ff8a (patch)
treed20f5f956c7c93a5d7eaf3fa92249ceff0dfa457
parent4b465e9b38e50efb150a64f12b2be04bd52c7f87 (diff)
downloadbinutils-redhat-66f2d450d000e4c121924288c580cd5c88e5ff8a.tar.gz
include/opcode/
* 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.
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/h8300/h8300.exp1
-rw-r--r--gas/testsuite/gas/h8300/h8sx_mov_imm.d293
-rw-r--r--gas/testsuite/gas/h8300/h8sx_mov_imm.s98
-rw-r--r--include/opcode/ChangeLog6
-rw-r--r--include/opcode/h8300.h16
6 files changed, 412 insertions, 7 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 4ea3d4b327..7b14f61bbc 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -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.
diff --git a/gas/testsuite/gas/h8300/h8300.exp b/gas/testsuite/gas/h8300/h8300.exp
index e167a3f2c9..2aa2b06136 100644
--- a/gas/testsuite/gas/h8300/h8300.exp
+++ b/gas/testsuite/gas/h8300/h8300.exp
@@ -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
index 0000000000..84fc12a30b
--- /dev/null
+++ b/gas/testsuite/gas/h8300/h8sx_mov_imm.d
@@ -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
index 0000000000..b2e29b847b
--- /dev/null
+++ b/gas/testsuite/gas/h8300/h8sx_mov_imm.s
@@ -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
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index 25a6ffe84f..a31d9ce5f8 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -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.
diff --git a/include/opcode/h8300.h b/include/opcode/h8300.h
index 45357efbc2..4318dccbc0 100644
--- a/include/opcode/h8300.h
+++ b/include/opcode/h8300.h
@@ -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}}},