diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 6d895a050bb..d72b21abe17 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-10  Richard Sandiford  <rsandifo@redhat.com>
+
+	* gas/h8300/h8sx_disp2.[sd]: New test.
+	* gas/h8300/h8300.exp: Run it.
+
 2003-06-07  Richard Henderson  <rth@redhat.com>
 
 	* gas/cfi/cfi-common-1.d, gas/cfi/cfi-common-1.s: New.
diff --git a/gas/testsuite/gas/h8300/h8300.exp b/gas/testsuite/gas/h8300/h8300.exp
index a34876e019c..8162f4847b2 100644
--- a/gas/testsuite/gas/h8300/h8300.exp
+++ b/gas/testsuite/gas/h8300/h8300.exp
@@ -2167,6 +2167,8 @@ if [istarget h8300*-*-*] then {
 
     do_h8300h_mov32bug
 
+    run_dump_test h8sx_disp2
+
     # Now some random tests
     set svr4pic [expr [istarget *-*-elf*] || [istarget *-*-irix5*] ]
     set empic [expr [istarget *-*-ecoff*] || [istarget *-*-ultrix*] || [istarget *-*-irix\[1-4\]*] ]
diff --git a/gas/testsuite/gas/h8300/h8sx_disp2.d b/gas/testsuite/gas/h8300/h8sx_disp2.d
new file mode 100644
index 00000000000..b1def766fc5
--- /dev/null
+++ b/gas/testsuite/gas/h8300/h8sx_disp2.d
@@ -0,0 +1,37 @@
+# objdump: -d
+
+.*: *file format elf32-h8300
+
+Disassembly of section \.text:
+
+0+00 <\.text>:
+ * 0:	01 75 68 08 *	01 75 68 08 80 02 add.b	#0x2,@\(0x1:2,r0\)
+ * 4:	80 02 *
+ * 6:	01 76 68 08 *	01 76 68 08 80 02 add.b	#0x2,@\(0x2:2,r0\)
+ * a:	80 02 *
+ * c:	01 77 68 08 *	01 77 68 08 80 02 add.b	#0x2,@\(0x3:2,r0\)
+ *10:	80 02 *
+ *12:	01 74 6e 08 *	01 74 6e 08 00 04 80 02 add.b	#0x2,@\(0x4:16,r0\)
+ *16:	00 04 80 02 *
+ *1a:	01 5e c0 10 *	01 5e c0 10 00 01 00 02 add.w	#0x2,@\(0x1:16,r0\)
+ *1e:	00 01 00 02 *
+ *22:	01 5e 10 10 *	01 5e 10 10 00 02 add.w	#0x2,@\(0x2:2,r0\)
+ *26:	00 02 *
+ *28:	01 5e 20 10 *	01 5e 20 10 00 02 add.w	#0x2,@\(0x4:2,r0\)
+ *2c:	00 02 *
+ *2e:	01 5e 30 10 *	01 5e 30 10 00 02 add.w	#0x2,@\(0x6:2,r0\)
+ *32:	00 02 *
+ *34:	01 5e c0 10 *	01 5e c0 10 00 08 00 02 add.w	#0x2,@\(0x8:16,r0\)
+ *38:	00 08 00 02 *
+ *3c:	01 0e c0 10 *	01 0e c0 10 00 01 00 02 add.l	#0x2,@\(0x1:16,r0\)
+ *40:	00 01 00 02 *
+ *44:	01 0e c0 10 *	01 0e c0 10 00 02 00 02 add.l	#0x2,@\(0x2:16,r0\)
+ *48:	00 02 00 02 *
+ *4c:	01 0e 10 10 *	01 0e 10 10 00 02 add.l	#0x2,@\(0x4:2,r0\)
+ *50:	00 02 *
+ *52:	01 0e 20 10 *	01 0e 20 10 00 02 add.l	#0x2,@\(0x8:2,r0\)
+ *56:	00 02 *
+ *58:	01 0e 30 10 *	01 0e 30 10 00 02 add.l	#0x2,@\(0xc:2,r0\)
+ *5c:	00 02 *
+ *5e:	01 0e c0 10 *	01 0e c0 10 00 10 00 02 add.l	#0x2,@\(0x10:16,r0\)
+ *62:	00 10 00 02 *
diff --git a/gas/testsuite/gas/h8300/h8sx_disp2.s b/gas/testsuite/gas/h8300/h8sx_disp2.s
new file mode 100644
index 00000000000..f3d83932c23
--- /dev/null
+++ b/gas/testsuite/gas/h8300/h8sx_disp2.s
@@ -0,0 +1,18 @@
+	.h8300sx
+	add.b	#2,@(1,er0)	; L_2
+	add.b	#2,@(2,er0)	; L_2
+	add.b	#2,@(3,er0)	; L_2
+	add.b	#2,@(4,er0)	; L_16
+
+	add.w	#2,@(1,er0)	; L_16
+	add.w	#2,@(2,er0)	; L_2
+	add.w	#2,@(4,er0)	; L_2
+	add.w	#2,@(6,er0)	; L_2
+	add.w	#2,@(8,er0)	; L_16
+
+	add.l	#2,@(1,er0)	; L_16
+	add.l	#2,@(2,er0)	; L_16
+	add.l	#2,@(4,er0)	; L_2
+	add.l	#2,@(8,er0)	; L_2
+	add.l	#2,@(12,er0)	; L_2
+	add.l	#2,@(16,er0)	; L_16