aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorArnold Metselaar <arnold.metselaar@planet.nl>2008-09-14 14:04:00 +0000
committerArnold Metselaar <arnold.metselaar@planet.nl>2008-09-14 14:04:00 +0000
commitc3229d3803e1f5802fc26f6e5a08101bcb6620d7 (patch)
tree6a04b4a7e77801dd13ad06995a47b859a12a95ee /gas
parentd04117369bdf589dd7ad899960b89a77fe0597ae (diff)
downloadgdb-c3229d3803e1f5802fc26f6e5a08101bcb6620d7.zip
gdb-c3229d3803e1f5802fc26f6e5a08101bcb6620d7.tar.gz
gdb-c3229d3803e1f5802fc26f6e5a08101bcb6620d7.tar.bz2
Add new tests for z80
Diffstat (limited to 'gas')
-rw-r--r--gas/testsuite/ChangeLog12
-rw-r--r--gas/testsuite/gas/z80/arith.d149
-rw-r--r--gas/testsuite/gas/z80/arith.s162
-rw-r--r--gas/testsuite/gas/z80/bit.d249
-rw-r--r--gas/testsuite/gas/z80/bit.s245
-rw-r--r--gas/testsuite/gas/z80/block.d25
-rw-r--r--gas/testsuite/gas/z80/block.s23
-rw-r--r--gas/testsuite/gas/z80/branch.d54
-rw-r--r--gas/testsuite/gas/z80/branch.s57
-rw-r--r--gas/testsuite/gas/z80/inout.d24
-rw-r--r--gas/testsuite/gas/z80/inout.s23
-rw-r--r--gas/testsuite/gas/z80/ld-group.d154
-rw-r--r--gas/testsuite/gas/z80/ld-group.s169
-rw-r--r--gas/testsuite/gas/z80/misc.d26
-rw-r--r--gas/testsuite/gas/z80/misc.s26
-rw-r--r--gas/testsuite/gas/z80/rotate.d86
-rw-r--r--gas/testsuite/gas/z80/rotate.s81
-rw-r--r--gas/testsuite/gas/z80/z80.exp16
18 files changed, 1581 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 4a205ed..bc25499 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,15 @@
+2008-09-14 Arnold Metselaar <arnold.metselaar@planet.nl>
+
+ * gas/z80/ld-group.s, gas/z80/ld-group.d: New test.
+ * gas/z80/block.s, gas/z80/block.d: New test
+ * gas/z80/arith.s, gas/z80/arith.d: New test
+ * gas/z80/rotate.s, gas/z80/rotate.d: New test
+ * gas/z80/bit.s, gas/z80/bit.d: New test
+ * gas/z80/branch.s, gas/z80/branch.d: New test
+ * gas/z80/inout.s, gas/z80/inout.d: New test
+ * gas/z80/misc.s, gas/z80/misc.d: New test
+ * gas/z80/z80.exp: Run them.
+
2008-09-11 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/sse2avx.s: Remove pclmulXXX tests. Add tests for
diff --git a/gas/testsuite/gas/z80/arith.d b/gas/testsuite/gas/z80/arith.d
new file mode 100644
index 0000000..3a6781c
--- /dev/null
+++ b/gas/testsuite/gas/z80/arith.d
@@ -0,0 +1,149 @@
+#objdump: -d
+#name: arithmetic and logic
+
+.*: .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+[ ]+[0-9a-f]+:[ ]+87[ ]+add a,a
+[ ]+[0-9a-f]+:[ ]+80[ ]+add a,b
+[ ]+[0-9a-f]+:[ ]+81[ ]+add a,c
+[ ]+[0-9a-f]+:[ ]+82[ ]+add a,d
+[ ]+[0-9a-f]+:[ ]+83[ ]+add a,e
+[ ]+[0-9a-f]+:[ ]+84[ ]+add a,h
+[ ]+[0-9a-f]+:[ ]+85[ ]+add a,l
+[ ]+[0-9a-f]+:[ ]+86[ ]+add a,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd 86 05[ ]+add a,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd 86 05[ ]+add a,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+c6 11[ ]+add a,0x11
+[ ]+[0-9a-f]+:[ ]+8f[ ]+adc a,a
+[ ]+[0-9a-f]+:[ ]+88[ ]+adc a,b
+[ ]+[0-9a-f]+:[ ]+89[ ]+adc a,c
+[ ]+[0-9a-f]+:[ ]+8a[ ]+adc a,d
+[ ]+[0-9a-f]+:[ ]+8b[ ]+adc a,e
+[ ]+[0-9a-f]+:[ ]+8c[ ]+adc a,h
+[ ]+[0-9a-f]+:[ ]+8d[ ]+adc a,l
+[ ]+[0-9a-f]+:[ ]+8e[ ]+adc a,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd 8e 05[ ]+adc a,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd 8e 05[ ]+adc a,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+ce 11[ ]+adc a,0x11
+[ ]+[0-9a-f]+:[ ]+97[ ]+sub a
+[ ]+[0-9a-f]+:[ ]+90[ ]+sub b
+[ ]+[0-9a-f]+:[ ]+91[ ]+sub c
+[ ]+[0-9a-f]+:[ ]+92[ ]+sub d
+[ ]+[0-9a-f]+:[ ]+93[ ]+sub e
+[ ]+[0-9a-f]+:[ ]+94[ ]+sub h
+[ ]+[0-9a-f]+:[ ]+95[ ]+sub l
+[ ]+[0-9a-f]+:[ ]+96[ ]+sub \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd 96 05[ ]+sub \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd 96 05[ ]+sub \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+d6 11[ ]+sub 0x11
+[ ]+[0-9a-f]+:[ ]+9f[ ]+sbc a,a
+[ ]+[0-9a-f]+:[ ]+98[ ]+sbc a,b
+[ ]+[0-9a-f]+:[ ]+99[ ]+sbc a,c
+[ ]+[0-9a-f]+:[ ]+9a[ ]+sbc a,d
+[ ]+[0-9a-f]+:[ ]+9b[ ]+sbc a,e
+[ ]+[0-9a-f]+:[ ]+9c[ ]+sbc a,h
+[ ]+[0-9a-f]+:[ ]+9d[ ]+sbc a,l
+[ ]+[0-9a-f]+:[ ]+9e[ ]+sbc a,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd 9e 05[ ]+sbc a,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd 9e 05[ ]+sbc a,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+de 11[ ]+sbc a,0x11
+[ ]+[0-9a-f]+:[ ]+a7[ ]+and a
+[ ]+[0-9a-f]+:[ ]+a0[ ]+and b
+[ ]+[0-9a-f]+:[ ]+a1[ ]+and c
+[ ]+[0-9a-f]+:[ ]+a2[ ]+and d
+[ ]+[0-9a-f]+:[ ]+a3[ ]+and e
+[ ]+[0-9a-f]+:[ ]+a4[ ]+and h
+[ ]+[0-9a-f]+:[ ]+a5[ ]+and l
+[ ]+[0-9a-f]+:[ ]+a6[ ]+and \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd a6 05[ ]+and \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd a6 05[ ]+and \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+e6 11[ ]+and 0x11
+[ ]+[0-9a-f]+:[ ]+af[ ]+xor a
+[ ]+[0-9a-f]+:[ ]+a8[ ]+xor b
+[ ]+[0-9a-f]+:[ ]+a9[ ]+xor c
+[ ]+[0-9a-f]+:[ ]+aa[ ]+xor d
+[ ]+[0-9a-f]+:[ ]+ab[ ]+xor e
+[ ]+[0-9a-f]+:[ ]+ac[ ]+xor h
+[ ]+[0-9a-f]+:[ ]+ad[ ]+xor l
+[ ]+[0-9a-f]+:[ ]+ae[ ]+xor \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd ae 05[ ]+xor \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd ae 05[ ]+xor \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+ee 11[ ]+xor 0x11
+[ ]+[0-9a-f]+:[ ]+b7[ ]+or a
+[ ]+[0-9a-f]+:[ ]+b0[ ]+or b
+[ ]+[0-9a-f]+:[ ]+b1[ ]+or c
+[ ]+[0-9a-f]+:[ ]+b2[ ]+or d
+[ ]+[0-9a-f]+:[ ]+b3[ ]+or e
+[ ]+[0-9a-f]+:[ ]+b4[ ]+or h
+[ ]+[0-9a-f]+:[ ]+b5[ ]+or l
+[ ]+[0-9a-f]+:[ ]+b6[ ]+or \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd b6 05[ ]+or \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd b6 05[ ]+or \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+f6 11[ ]+or 0x11
+[ ]+[0-9a-f]+:[ ]+bf[ ]+cp a
+[ ]+[0-9a-f]+:[ ]+b8[ ]+cp b
+[ ]+[0-9a-f]+:[ ]+b9[ ]+cp c
+[ ]+[0-9a-f]+:[ ]+ba[ ]+cp d
+[ ]+[0-9a-f]+:[ ]+bb[ ]+cp e
+[ ]+[0-9a-f]+:[ ]+bc[ ]+cp h
+[ ]+[0-9a-f]+:[ ]+bd[ ]+cp l
+[ ]+[0-9a-f]+:[ ]+be[ ]+cp \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd be 05[ ]+cp \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd be 05[ ]+cp \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+fe 11[ ]+cp 0x11
+[ ]+[0-9a-f]+:[ ]+3c[ ]+inc a
+[ ]+[0-9a-f]+:[ ]+04[ ]+inc b
+[ ]+[0-9a-f]+:[ ]+0c[ ]+inc c
+[ ]+[0-9a-f]+:[ ]+14[ ]+inc d
+[ ]+[0-9a-f]+:[ ]+1c[ ]+inc e
+[ ]+[0-9a-f]+:[ ]+24[ ]+inc h
+[ ]+[0-9a-f]+:[ ]+2c[ ]+inc l
+[ ]+[0-9a-f]+:[ ]+34[ ]+inc \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd 34 05[ ]+inc \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd 34 05[ ]+inc \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+3d[ ]+dec a
+[ ]+[0-9a-f]+:[ ]+05[ ]+dec b
+[ ]+[0-9a-f]+:[ ]+0d[ ]+dec c
+[ ]+[0-9a-f]+:[ ]+15[ ]+dec d
+[ ]+[0-9a-f]+:[ ]+1d[ ]+dec e
+[ ]+[0-9a-f]+:[ ]+25[ ]+dec h
+[ ]+[0-9a-f]+:[ ]+2d[ ]+dec l
+[ ]+[0-9a-f]+:[ ]+35[ ]+dec \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd 35 05[ ]+dec \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd 35 05[ ]+dec \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+09[ ]+add hl,bc
+[ ]+[0-9a-f]+:[ ]+19[ ]+add hl,de
+[ ]+[0-9a-f]+:[ ]+29[ ]+add hl,hl
+[ ]+[0-9a-f]+:[ ]+39[ ]+add hl,sp
+[ ]+[0-9a-f]+:[ ]+dd 09[ ]+add ix,bc
+[ ]+[0-9a-f]+:[ ]+dd 19[ ]+add ix,de
+[ ]+[0-9a-f]+:[ ]+dd 29[ ]+add ix,ix
+[ ]+[0-9a-f]+:[ ]+dd 39[ ]+add ix,sp
+[ ]+[0-9a-f]+:[ ]+fd 09[ ]+add iy,bc
+[ ]+[0-9a-f]+:[ ]+fd 19[ ]+add iy,de
+[ ]+[0-9a-f]+:[ ]+fd 29[ ]+add iy,iy
+[ ]+[0-9a-f]+:[ ]+fd 39[ ]+add iy,sp
+[ ]+[0-9a-f]+:[ ]+ed 4a[ ]+adc hl,bc
+[ ]+[0-9a-f]+:[ ]+ed 5a[ ]+adc hl,de
+[ ]+[0-9a-f]+:[ ]+ed 6a[ ]+adc hl,hl
+[ ]+[0-9a-f]+:[ ]+ed 7a[ ]+adc hl,sp
+[ ]+[0-9a-f]+:[ ]+ed 42[ ]+sbc hl,bc
+[ ]+[0-9a-f]+:[ ]+ed 52[ ]+sbc hl,de
+[ ]+[0-9a-f]+:[ ]+ed 62[ ]+sbc hl,hl
+[ ]+[0-9a-f]+:[ ]+ed 72[ ]+sbc hl,sp
+[ ]+[0-9a-f]+:[ ]+03[ ]+inc bc
+[ ]+[0-9a-f]+:[ ]+13[ ]+inc de
+[ ]+[0-9a-f]+:[ ]+23[ ]+inc hl
+[ ]+[0-9a-f]+:[ ]+33[ ]+inc sp
+[ ]+[0-9a-f]+:[ ]+dd 23[ ]+inc ix
+[ ]+[0-9a-f]+:[ ]+fd 23[ ]+inc iy
+[ ]+[0-9a-f]+:[ ]+0b[ ]+dec bc
+[ ]+[0-9a-f]+:[ ]+1b[ ]+dec de
+[ ]+[0-9a-f]+:[ ]+2b[ ]+dec hl
+[ ]+[0-9a-f]+:[ ]+3b[ ]+dec sp
+[ ]+[0-9a-f]+:[ ]+dd 2b[ ]+dec ix
+[ ]+[0-9a-f]+:[ ]+fd 2b[ ]+dec iy
+#pass
diff --git a/gas/testsuite/gas/z80/arith.s b/gas/testsuite/gas/z80/arith.s
new file mode 100644
index 0000000..1aa66b7
--- /dev/null
+++ b/gas/testsuite/gas/z80/arith.s
@@ -0,0 +1,162 @@
+ .text
+ .org 0
+;;; 8-bit arithmetic and logic
+ add a,a
+ add a,b
+ add a,c
+ add a,d
+ add a,e
+ add a,h
+ add a,l
+ add a,(hl)
+ add a,(ix+5)
+ add a,(iy+5)
+ add a,17
+
+ adc a,a
+ adc a,b
+ adc a,c
+ adc a,d
+ adc a,e
+ adc a,h
+ adc a,l
+ adc a,(hl)
+ adc a,(ix+5)
+ adc a,(iy+5)
+ adc a,17
+
+ sub a
+ sub b
+ sub c
+ sub d
+ sub e
+ sub h
+ sub l
+ sub (hl)
+ sub (ix+5)
+ sub (iy+5)
+ sub 17
+
+ sbc a,a
+ sbc a,b
+ sbc a,c
+ sbc a,d
+ sbc a,e
+ sbc a,h
+ sbc a,l
+ sbc a,(hl)
+ sbc a,(ix+5)
+ sbc a,(iy+5)
+ sbc a,17
+
+ and a
+ and b
+ and c
+ and d
+ and e
+ and h
+ and l
+ and (hl)
+ and (ix+5)
+ and (iy+5)
+ and 17
+
+ xor a
+ xor b
+ xor c
+ xor d
+ xor e
+ xor h
+ xor l
+ xor (hl)
+ xor (ix+5)
+ xor (iy+5)
+ xor 17
+
+ or a
+ or b
+ or c
+ or d
+ or e
+ or h
+ or l
+ or (hl)
+ or (ix+5)
+ or (iy+5)
+ or 17
+
+ cp a
+ cp b
+ cp c
+ cp d
+ cp e
+ cp h
+ cp l
+ cp (hl)
+ cp (ix+5)
+ cp (iy+5)
+ cp 17
+
+ inc a
+ inc b
+ inc c
+ inc d
+ inc e
+ inc h
+ inc l
+ inc (hl)
+ inc (ix+5)
+ inc (iy+5)
+
+ dec a
+ dec b
+ dec c
+ dec d
+ dec e
+ dec h
+ dec l
+ dec (hl)
+ dec (ix+5)
+ dec (iy+5)
+
+;;; 16-bit arithmetic anmd logic
+ add hl,bc
+ add hl,de
+ add hl,hl
+ add hl,sp
+
+ add ix,bc
+ add ix,de
+ add ix,ix
+ add ix,sp
+
+ add iy,bc
+ add iy,de
+ add iy,iy
+ add iy,sp
+
+ adc hl,bc
+ adc hl,de
+ adc hl,hl
+ adc hl,sp
+
+ sbc hl,bc
+ sbc hl,de
+ sbc hl,hl
+ sbc hl,sp
+
+ inc bc
+ inc de
+ inc hl
+ inc sp
+ inc ix
+ inc iy
+
+ dec bc
+ dec de
+ dec hl
+ dec sp
+ dec ix
+ dec iy
+
+ \ No newline at end of file
diff --git a/gas/testsuite/gas/z80/bit.d b/gas/testsuite/gas/z80/bit.d
new file mode 100644
index 0000000..ccd30fc
--- /dev/null
+++ b/gas/testsuite/gas/z80/bit.d
@@ -0,0 +1,249 @@
+#objdump: -d
+#name: bit manipulations
+
+.*: .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+
+[ ]+[0-9a-f]+:[ ]+cb 47[ ]+bit 0,a
+[ ]+[0-9a-f]+:[ ]+cb 40[ ]+bit 0,b
+[ ]+[0-9a-f]+:[ ]+cb 41[ ]+bit 0,c
+[ ]+[0-9a-f]+:[ ]+cb 42[ ]+bit 0,d
+[ ]+[0-9a-f]+:[ ]+cb 43[ ]+bit 0,e
+[ ]+[0-9a-f]+:[ ]+cb 44[ ]+bit 0,h
+[ ]+[0-9a-f]+:[ ]+cb 45[ ]+bit 0,l
+[ ]+[0-9a-f]+:[ ]+cb 46[ ]+bit 0,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 46[ ]+bit 0,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 46[ ]+bit 0,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 4f[ ]+bit 1,a
+[ ]+[0-9a-f]+:[ ]+cb 48[ ]+bit 1,b
+[ ]+[0-9a-f]+:[ ]+cb 49[ ]+bit 1,c
+[ ]+[0-9a-f]+:[ ]+cb 4a[ ]+bit 1,d
+[ ]+[0-9a-f]+:[ ]+cb 4b[ ]+bit 1,e
+[ ]+[0-9a-f]+:[ ]+cb 4c[ ]+bit 1,h
+[ ]+[0-9a-f]+:[ ]+cb 4d[ ]+bit 1,l
+[ ]+[0-9a-f]+:[ ]+cb 4e[ ]+bit 1,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 4e[ ]+bit 1,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 4e[ ]+bit 1,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 57[ ]+bit 2,a
+[ ]+[0-9a-f]+:[ ]+cb 50[ ]+bit 2,b
+[ ]+[0-9a-f]+:[ ]+cb 51[ ]+bit 2,c
+[ ]+[0-9a-f]+:[ ]+cb 52[ ]+bit 2,d
+[ ]+[0-9a-f]+:[ ]+cb 53[ ]+bit 2,e
+[ ]+[0-9a-f]+:[ ]+cb 54[ ]+bit 2,h
+[ ]+[0-9a-f]+:[ ]+cb 55[ ]+bit 2,l
+[ ]+[0-9a-f]+:[ ]+cb 56[ ]+bit 2,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 56[ ]+bit 2,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 56[ ]+bit 2,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 5f[ ]+bit 3,a
+[ ]+[0-9a-f]+:[ ]+cb 58[ ]+bit 3,b
+[ ]+[0-9a-f]+:[ ]+cb 59[ ]+bit 3,c
+[ ]+[0-9a-f]+:[ ]+cb 5a[ ]+bit 3,d
+[ ]+[0-9a-f]+:[ ]+cb 5b[ ]+bit 3,e
+[ ]+[0-9a-f]+:[ ]+cb 5c[ ]+bit 3,h
+[ ]+[0-9a-f]+:[ ]+cb 5d[ ]+bit 3,l
+[ ]+[0-9a-f]+:[ ]+cb 5e[ ]+bit 3,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 5e[ ]+bit 3,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 5e[ ]+bit 3,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 67[ ]+bit 4,a
+[ ]+[0-9a-f]+:[ ]+cb 60[ ]+bit 4,b
+[ ]+[0-9a-f]+:[ ]+cb 61[ ]+bit 4,c
+[ ]+[0-9a-f]+:[ ]+cb 62[ ]+bit 4,d
+[ ]+[0-9a-f]+:[ ]+cb 63[ ]+bit 4,e
+[ ]+[0-9a-f]+:[ ]+cb 64[ ]+bit 4,h
+[ ]+[0-9a-f]+:[ ]+cb 65[ ]+bit 4,l
+[ ]+[0-9a-f]+:[ ]+cb 66[ ]+bit 4,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 66[ ]+bit 4,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 66[ ]+bit 4,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 6f[ ]+bit 5,a
+[ ]+[0-9a-f]+:[ ]+cb 68[ ]+bit 5,b
+[ ]+[0-9a-f]+:[ ]+cb 69[ ]+bit 5,c
+[ ]+[0-9a-f]+:[ ]+cb 6a[ ]+bit 5,d
+[ ]+[0-9a-f]+:[ ]+cb 6b[ ]+bit 5,e
+[ ]+[0-9a-f]+:[ ]+cb 6c[ ]+bit 5,h
+[ ]+[0-9a-f]+:[ ]+cb 6d[ ]+bit 5,l
+[ ]+[0-9a-f]+:[ ]+cb 6e[ ]+bit 5,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 6e[ ]+bit 5,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 6e[ ]+bit 5,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 77[ ]+bit 6,a
+[ ]+[0-9a-f]+:[ ]+cb 70[ ]+bit 6,b
+[ ]+[0-9a-f]+:[ ]+cb 71[ ]+bit 6,c
+[ ]+[0-9a-f]+:[ ]+cb 72[ ]+bit 6,d
+[ ]+[0-9a-f]+:[ ]+cb 73[ ]+bit 6,e
+[ ]+[0-9a-f]+:[ ]+cb 74[ ]+bit 6,h
+[ ]+[0-9a-f]+:[ ]+cb 75[ ]+bit 6,l
+[ ]+[0-9a-f]+:[ ]+cb 76[ ]+bit 6,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 76[ ]+bit 6,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 76[ ]+bit 6,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 7f[ ]+bit 7,a
+[ ]+[0-9a-f]+:[ ]+cb 78[ ]+bit 7,b
+[ ]+[0-9a-f]+:[ ]+cb 79[ ]+bit 7,c
+[ ]+[0-9a-f]+:[ ]+cb 7a[ ]+bit 7,d
+[ ]+[0-9a-f]+:[ ]+cb 7b[ ]+bit 7,e
+[ ]+[0-9a-f]+:[ ]+cb 7c[ ]+bit 7,h
+[ ]+[0-9a-f]+:[ ]+cb 7d[ ]+bit 7,l
+[ ]+[0-9a-f]+:[ ]+cb 7e[ ]+bit 7,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 7e[ ]+bit 7,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 7e[ ]+bit 7,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 87[ ]+res 0,a
+[ ]+[0-9a-f]+:[ ]+cb 80[ ]+res 0,b
+[ ]+[0-9a-f]+:[ ]+cb 81[ ]+res 0,c
+[ ]+[0-9a-f]+:[ ]+cb 82[ ]+res 0,d
+[ ]+[0-9a-f]+:[ ]+cb 83[ ]+res 0,e
+[ ]+[0-9a-f]+:[ ]+cb 84[ ]+res 0,h
+[ ]+[0-9a-f]+:[ ]+cb 85[ ]+res 0,l
+[ ]+[0-9a-f]+:[ ]+cb 86[ ]+res 0,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 86[ ]+res 0,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 86[ ]+res 0,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 8f[ ]+res 1,a
+[ ]+[0-9a-f]+:[ ]+cb 88[ ]+res 1,b
+[ ]+[0-9a-f]+:[ ]+cb 89[ ]+res 1,c
+[ ]+[0-9a-f]+:[ ]+cb 8a[ ]+res 1,d
+[ ]+[0-9a-f]+:[ ]+cb 8b[ ]+res 1,e
+[ ]+[0-9a-f]+:[ ]+cb 8c[ ]+res 1,h
+[ ]+[0-9a-f]+:[ ]+cb 8d[ ]+res 1,l
+[ ]+[0-9a-f]+:[ ]+cb 8e[ ]+res 1,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 8e[ ]+res 1,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 8e[ ]+res 1,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 97[ ]+res 2,a
+[ ]+[0-9a-f]+:[ ]+cb 90[ ]+res 2,b
+[ ]+[0-9a-f]+:[ ]+cb 91[ ]+res 2,c
+[ ]+[0-9a-f]+:[ ]+cb 92[ ]+res 2,d
+[ ]+[0-9a-f]+:[ ]+cb 93[ ]+res 2,e
+[ ]+[0-9a-f]+:[ ]+cb 94[ ]+res 2,h
+[ ]+[0-9a-f]+:[ ]+cb 95[ ]+res 2,l
+[ ]+[0-9a-f]+:[ ]+cb 96[ ]+res 2,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 96[ ]+res 2,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 96[ ]+res 2,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 9f[ ]+res 3,a
+[ ]+[0-9a-f]+:[ ]+cb 98[ ]+res 3,b
+[ ]+[0-9a-f]+:[ ]+cb 99[ ]+res 3,c
+[ ]+[0-9a-f]+:[ ]+cb 9a[ ]+res 3,d
+[ ]+[0-9a-f]+:[ ]+cb 9b[ ]+res 3,e
+[ ]+[0-9a-f]+:[ ]+cb 9c[ ]+res 3,h
+[ ]+[0-9a-f]+:[ ]+cb 9d[ ]+res 3,l
+[ ]+[0-9a-f]+:[ ]+cb 9e[ ]+res 3,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 9e[ ]+res 3,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 9e[ ]+res 3,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb a7[ ]+res 4,a
+[ ]+[0-9a-f]+:[ ]+cb a0[ ]+res 4,b
+[ ]+[0-9a-f]+:[ ]+cb a1[ ]+res 4,c
+[ ]+[0-9a-f]+:[ ]+cb a2[ ]+res 4,d
+[ ]+[0-9a-f]+:[ ]+cb a3[ ]+res 4,e
+[ ]+[0-9a-f]+:[ ]+cb a4[ ]+res 4,h
+[ ]+[0-9a-f]+:[ ]+cb a5[ ]+res 4,l
+[ ]+[0-9a-f]+:[ ]+cb a6[ ]+res 4,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 a6[ ]+res 4,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 a6[ ]+res 4,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb af[ ]+res 5,a
+[ ]+[0-9a-f]+:[ ]+cb a8[ ]+res 5,b
+[ ]+[0-9a-f]+:[ ]+cb a9[ ]+res 5,c
+[ ]+[0-9a-f]+:[ ]+cb aa[ ]+res 5,d
+[ ]+[0-9a-f]+:[ ]+cb ab[ ]+res 5,e
+[ ]+[0-9a-f]+:[ ]+cb ac[ ]+res 5,h
+[ ]+[0-9a-f]+:[ ]+cb ad[ ]+res 5,l
+[ ]+[0-9a-f]+:[ ]+cb ae[ ]+res 5,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 ae[ ]+res 5,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 ae[ ]+res 5,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb b7[ ]+res 6,a
+[ ]+[0-9a-f]+:[ ]+cb b0[ ]+res 6,b
+[ ]+[0-9a-f]+:[ ]+cb b1[ ]+res 6,c
+[ ]+[0-9a-f]+:[ ]+cb b2[ ]+res 6,d
+[ ]+[0-9a-f]+:[ ]+cb b3[ ]+res 6,e
+[ ]+[0-9a-f]+:[ ]+cb b4[ ]+res 6,h
+[ ]+[0-9a-f]+:[ ]+cb b5[ ]+res 6,l
+[ ]+[0-9a-f]+:[ ]+cb b6[ ]+res 6,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 b6[ ]+res 6,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 b6[ ]+res 6,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb bf[ ]+res 7,a
+[ ]+[0-9a-f]+:[ ]+cb b8[ ]+res 7,b
+[ ]+[0-9a-f]+:[ ]+cb b9[ ]+res 7,c
+[ ]+[0-9a-f]+:[ ]+cb ba[ ]+res 7,d
+[ ]+[0-9a-f]+:[ ]+cb bb[ ]+res 7,e
+[ ]+[0-9a-f]+:[ ]+cb bc[ ]+res 7,h
+[ ]+[0-9a-f]+:[ ]+cb bd[ ]+res 7,l
+[ ]+[0-9a-f]+:[ ]+cb be[ ]+res 7,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 be[ ]+res 7,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 be[ ]+res 7,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb c7[ ]+set 0,a
+[ ]+[0-9a-f]+:[ ]+cb c0[ ]+set 0,b
+[ ]+[0-9a-f]+:[ ]+cb c1[ ]+set 0,c
+[ ]+[0-9a-f]+:[ ]+cb c2[ ]+set 0,d
+[ ]+[0-9a-f]+:[ ]+cb c3[ ]+set 0,e
+[ ]+[0-9a-f]+:[ ]+cb c4[ ]+set 0,h
+[ ]+[0-9a-f]+:[ ]+cb c5[ ]+set 0,l
+[ ]+[0-9a-f]+:[ ]+cb c6[ ]+set 0,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 c6[ ]+set 0,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 c6[ ]+set 0,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb cf[ ]+set 1,a
+[ ]+[0-9a-f]+:[ ]+cb c8[ ]+set 1,b
+[ ]+[0-9a-f]+:[ ]+cb c9[ ]+set 1,c
+[ ]+[0-9a-f]+:[ ]+cb ca[ ]+set 1,d
+[ ]+[0-9a-f]+:[ ]+cb cb[ ]+set 1,e
+[ ]+[0-9a-f]+:[ ]+cb cc[ ]+set 1,h
+[ ]+[0-9a-f]+:[ ]+cb cd[ ]+set 1,l
+[ ]+[0-9a-f]+:[ ]+cb ce[ ]+set 1,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 ce[ ]+set 1,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 ce[ ]+set 1,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb d7[ ]+set 2,a
+[ ]+[0-9a-f]+:[ ]+cb d0[ ]+set 2,b
+[ ]+[0-9a-f]+:[ ]+cb d1[ ]+set 2,c
+[ ]+[0-9a-f]+:[ ]+cb d2[ ]+set 2,d
+[ ]+[0-9a-f]+:[ ]+cb d3[ ]+set 2,e
+[ ]+[0-9a-f]+:[ ]+cb d4[ ]+set 2,h
+[ ]+[0-9a-f]+:[ ]+cb d5[ ]+set 2,l
+[ ]+[0-9a-f]+:[ ]+cb d6[ ]+set 2,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 d6[ ]+set 2,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 d6[ ]+set 2,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb df[ ]+set 3,a
+[ ]+[0-9a-f]+:[ ]+cb d8[ ]+set 3,b
+[ ]+[0-9a-f]+:[ ]+cb d9[ ]+set 3,c
+[ ]+[0-9a-f]+:[ ]+cb da[ ]+set 3,d
+[ ]+[0-9a-f]+:[ ]+cb db[ ]+set 3,e
+[ ]+[0-9a-f]+:[ ]+cb dc[ ]+set 3,h
+[ ]+[0-9a-f]+:[ ]+cb dd[ ]+set 3,l
+[ ]+[0-9a-f]+:[ ]+cb de[ ]+set 3,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 de[ ]+set 3,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 de[ ]+set 3,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb e7[ ]+set 4,a
+[ ]+[0-9a-f]+:[ ]+cb e0[ ]+set 4,b
+[ ]+[0-9a-f]+:[ ]+cb e1[ ]+set 4,c
+[ ]+[0-9a-f]+:[ ]+cb e2[ ]+set 4,d
+[ ]+[0-9a-f]+:[ ]+cb e3[ ]+set 4,e
+[ ]+[0-9a-f]+:[ ]+cb e4[ ]+set 4,h
+[ ]+[0-9a-f]+:[ ]+cb e5[ ]+set 4,l
+[ ]+[0-9a-f]+:[ ]+cb e6[ ]+set 4,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 e6[ ]+set 4,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 e6[ ]+set 4,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb ef[ ]+set 5,a
+[ ]+[0-9a-f]+:[ ]+cb e8[ ]+set 5,b
+[ ]+[0-9a-f]+:[ ]+cb e9[ ]+set 5,c
+[ ]+[0-9a-f]+:[ ]+cb ea[ ]+set 5,d
+[ ]+[0-9a-f]+:[ ]+cb eb[ ]+set 5,e
+[ ]+[0-9a-f]+:[ ]+cb ec[ ]+set 5,h
+[ ]+[0-9a-f]+:[ ]+cb ed[ ]+set 5,l
+[ ]+[0-9a-f]+:[ ]+cb ee[ ]+set 5,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 ee[ ]+set 5,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 ee[ ]+set 5,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb f7[ ]+set 6,a
+[ ]+[0-9a-f]+:[ ]+cb f0[ ]+set 6,b
+[ ]+[0-9a-f]+:[ ]+cb f1[ ]+set 6,c
+[ ]+[0-9a-f]+:[ ]+cb f2[ ]+set 6,d
+[ ]+[0-9a-f]+:[ ]+cb f3[ ]+set 6,e
+[ ]+[0-9a-f]+:[ ]+cb f4[ ]+set 6,h
+[ ]+[0-9a-f]+:[ ]+cb f5[ ]+set 6,l
+[ ]+[0-9a-f]+:[ ]+cb f6[ ]+set 6,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 f6[ ]+set 6,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 f6[ ]+set 6,\(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb ff[ ]+set 7,a
+[ ]+[0-9a-f]+:[ ]+cb f8[ ]+set 7,b
+[ ]+[0-9a-f]+:[ ]+cb f9[ ]+set 7,c
+[ ]+[0-9a-f]+:[ ]+cb fa[ ]+set 7,d
+[ ]+[0-9a-f]+:[ ]+cb fb[ ]+set 7,e
+[ ]+[0-9a-f]+:[ ]+cb fc[ ]+set 7,h
+[ ]+[0-9a-f]+:[ ]+cb fd[ ]+set 7,l
+[ ]+[0-9a-f]+:[ ]+cb fe[ ]+set 7,\(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 fe[ ]+set 7,\(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 fe[ ]+set 7,\(iy\+5\)
diff --git a/gas/testsuite/gas/z80/bit.s b/gas/testsuite/gas/z80/bit.s
new file mode 100644
index 0000000..40a5f9e
--- /dev/null
+++ b/gas/testsuite/gas/z80/bit.s
@@ -0,0 +1,245 @@
+ .text
+ .org 0
+;;; bit manipulation
+ bit 0,a
+ bit 0,b
+ bit 0,c
+ bit 0,d
+ bit 0,e
+ bit 0,h
+ bit 0,l
+ bit 0,(hl)
+ bit 0,(ix+5)
+ bit 0,(iy+5)
+ bit 1,a
+ bit 1,b
+ bit 1,c
+ bit 1,d
+ bit 1,e
+ bit 1,h
+ bit 1,l
+ bit 1,(hl)
+ bit 1,(ix+5)
+ bit 1,(iy+5)
+ bit 2,a
+ bit 2,b
+ bit 2,c
+ bit 2,d
+ bit 2,e
+ bit 2,h
+ bit 2,l
+ bit 2,(hl)
+ bit 2,(ix+5)
+ bit 2,(iy+5)
+ bit 3,a
+ bit 3,b
+ bit 3,c
+ bit 3,d
+ bit 3,e
+ bit 3,h
+ bit 3,l
+ bit 3,(hl)
+ bit 3,(ix+5)
+ bit 3,(iy+5)
+ bit 4,a
+ bit 4,b
+ bit 4,c
+ bit 4,d
+ bit 4,e
+ bit 4,h
+ bit 4,l
+ bit 4,(hl)
+ bit 4,(ix+5)
+ bit 4,(iy+5)
+ bit 5,a
+ bit 5,b
+ bit 5,c
+ bit 5,d
+ bit 5,e
+ bit 5,h
+ bit 5,l
+ bit 5,(hl)
+ bit 5,(ix+5)
+ bit 5,(iy+5)
+ bit 6,a
+ bit 6,b
+ bit 6,c
+ bit 6,d
+ bit 6,e
+ bit 6,h
+ bit 6,l
+ bit 6,(hl)
+ bit 6,(ix+5)
+ bit 6,(iy+5)
+ bit 7,a
+ bit 7,b
+ bit 7,c
+ bit 7,d
+ bit 7,e
+ bit 7,h
+ bit 7,l
+ bit 7,(hl)
+ bit 7,(ix+5)
+ bit 7,(iy+5)
+
+ res 0,a
+ res 0,b
+ res 0,c
+ res 0,d
+ res 0,e
+ res 0,h
+ res 0,l
+ res 0,(hl)
+ res 0,(ix+5)
+ res 0,(iy+5)
+ res 1,a
+ res 1,b
+ res 1,c
+ res 1,d
+ res 1,e
+ res 1,h
+ res 1,l
+ res 1,(hl)
+ res 1,(ix+5)
+ res 1,(iy+5)
+ res 2,a
+ res 2,b
+ res 2,c
+ res 2,d
+ res 2,e
+ res 2,h
+ res 2,l
+ res 2,(hl)
+ res 2,(ix+5)
+ res 2,(iy+5)
+ res 3,a
+ res 3,b
+ res 3,c
+ res 3,d
+ res 3,e
+ res 3,h
+ res 3,l
+ res 3,(hl)
+ res 3,(ix+5)
+ res 3,(iy+5)
+ res 4,a
+ res 4,b
+ res 4,c
+ res 4,d
+ res 4,e
+ res 4,h
+ res 4,l
+ res 4,(hl)
+ res 4,(ix+5)
+ res 4,(iy+5)
+ res 5,a
+ res 5,b
+ res 5,c
+ res 5,d
+ res 5,e
+ res 5,h
+ res 5,l
+ res 5,(hl)
+ res 5,(ix+5)
+ res 5,(iy+5)
+ res 6,a
+ res 6,b
+ res 6,c
+ res 6,d
+ res 6,e
+ res 6,h
+ res 6,l
+ res 6,(hl)
+ res 6,(ix+5)
+ res 6,(iy+5)
+ res 7,a
+ res 7,b
+ res 7,c
+ res 7,d
+ res 7,e
+ res 7,h
+ res 7,l
+ res 7,(hl)
+ res 7,(ix+5)
+ res 7,(iy+5)
+
+ set 0,a
+ set 0,b
+ set 0,c
+ set 0,d
+ set 0,e
+ set 0,h
+ set 0,l
+ set 0,(hl)
+ set 0,(ix+5)
+ set 0,(iy+5)
+ set 1,a
+ set 1,b
+ set 1,c
+ set 1,d
+ set 1,e
+ set 1,h
+ set 1,l
+ set 1,(hl)
+ set 1,(ix+5)
+ set 1,(iy+5)
+ set 2,a
+ set 2,b
+ set 2,c
+ set 2,d
+ set 2,e
+ set 2,h
+ set 2,l
+ set 2,(hl)
+ set 2,(ix+5)
+ set 2,(iy+5)
+ set 3,a
+ set 3,b
+ set 3,c
+ set 3,d
+ set 3,e
+ set 3,h
+ set 3,l
+ set 3,(hl)
+ set 3,(ix+5)
+ set 3,(iy+5)
+ set 4,a
+ set 4,b
+ set 4,c
+ set 4,d
+ set 4,e
+ set 4,h
+ set 4,l
+ set 4,(hl)
+ set 4,(ix+5)
+ set 4,(iy+5)
+ set 5,a
+ set 5,b
+ set 5,c
+ set 5,d
+ set 5,e
+ set 5,h
+ set 5,l
+ set 5,(hl)
+ set 5,(ix+5)
+ set 5,(iy+5)
+ set 6,a
+ set 6,b
+ set 6,c
+ set 6,d
+ set 6,e
+ set 6,h
+ set 6,l
+ set 6,(hl)
+ set 6,(ix+5)
+ set 6,(iy+5)
+ set 7,a
+ set 7,b
+ set 7,c
+ set 7,d
+ set 7,e
+ set 7,h
+ set 7,l
+ set 7,(hl)
+ set 7,(ix+5)
+ set 7,(iy+5)
diff --git a/gas/testsuite/gas/z80/block.d b/gas/testsuite/gas/z80/block.d
new file mode 100644
index 0000000..c334656
--- /dev/null
+++ b/gas/testsuite/gas/z80/block.d
@@ -0,0 +1,25 @@
+#objdump: -d
+#name: block instructions
+
+.*: .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+[ ]+0:[ ]+ed a0[ ]+ldi
+[ ]+2:[ ]+ed b0[ ]+ldir
+[ ]+4:[ ]+ed a8[ ]+ldd
+[ ]+6:[ ]+ed b8[ ]+lddr
+[ ]+8:[ ]+ed a1[ ]+cpi
+[ ]+a:[ ]+ed b1[ ]+cpir
+[ ]+c:[ ]+ed a9[ ]+cpd
+[ ]+e:[ ]+ed b9[ ]+cpdr
+[ ]+10:[ ]+ed a3[ ]+outi
+[ ]+12:[ ]+ed b3[ ]+otir
+[ ]+14:[ ]+ed ab[ ]+outd
+[ ]+16:[ ]+ed bb[ ]+otdr
+[ ]+18:[ ]+ed a2[ ]+ini
+[ ]+1a:[ ]+ed b2[ ]+inir
+[ ]+1c:[ ]+ed aa[ ]+ind
+[ ]+1e:[ ]+ed ba[ ]+indr
+#pass
diff --git a/gas/testsuite/gas/z80/block.s b/gas/testsuite/gas/z80/block.s
new file mode 100644
index 0000000..259b204
--- /dev/null
+++ b/gas/testsuite/gas/z80/block.s
@@ -0,0 +1,23 @@
+ .text
+ .org 0
+;;; block instructions
+ ldi
+ ldir
+ ldd
+ lddr
+
+ cpi
+ cpir
+ cpd
+ cpdr
+
+ outi
+ otir
+ outd
+ otdr
+
+ ini
+ inir
+ ind
+ indr
+ \ No newline at end of file
diff --git a/gas/testsuite/gas/z80/branch.d b/gas/testsuite/gas/z80/branch.d
new file mode 100644
index 0000000..c3a47a1
--- /dev/null
+++ b/gas/testsuite/gas/z80/branch.d
@@ -0,0 +1,54 @@
+#objdump: -d
+#name: branch instructions
+
+.*: .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+[ ]+0:[ ]+c3 05 84[ ]+jp 0x8405
+[ ]+3:[ ]+da 05 84[ ]+jp c,0x8405
+[ ]+6:[ ]+d2 05 84[ ]+jp nc,0x8405
+[ ]+9:[ ]+ca 05 84[ ]+jp z,0x8405
+[ ]+c:[ ]+c2 05 84[ ]+jp nz,0x8405
+[ ]+f:[ ]+ea 05 84[ ]+jp pe,0x8405
+[ ]+12:[ ]+e2 05 84[ ]+jp po,0x8405
+[ ]+15:[ ]+fa 05 84[ ]+jp m,0x8405
+[ ]+18:[ ]+f2 05 84[ ]+jp p,0x8405
+[ ]+1b:[ ]+18 e3[ ]+jr (0x)?0+
+[ ]+1d:[ ]+38 e1[ ]+jr c,(0x)?0+
+[ ]+1f:[ ]+30 df[ ]+jr nc,(0x)?0+
+[ ]+21:[ ]+28 dd[ ]+jr z,(0x)?0+
+[ ]+23:[ ]+20 db[ ]+jr nz,(0x)?0+
+[ ]+25:[ ]+e9[ ]+jp \(hl\)
+[ ]+26:[ ]+dd e9[ ]+jp \(ix\)
+[ ]+28:[ ]+fd e9[ ]+jp \(iy\)
+[ ]+2a:[ ]+cd 05 84[ ]+call 0x8405
+[ ]+2d:[ ]+dc 05 84[ ]+call c,0x8405
+[ ]+30:[ ]+d4 05 84[ ]+call nc,0x8405
+[ ]+33:[ ]+cc 05 84[ ]+call z,0x8405
+[ ]+36:[ ]+c4 05 84[ ]+call nz,0x8405
+[ ]+39:[ ]+ec 05 84[ ]+call pe,0x8405
+[ ]+3c:[ ]+e4 05 84[ ]+call po,0x8405
+[ ]+3f:[ ]+fc 05 84[ ]+call m,0x8405
+[ ]+42:[ ]+f4 05 84[ ]+call p,0x8405
+[ ]+45:[ ]+10 b9[ ]+djnz (0x)?0+
+[ ]+47:[ ]+c9[ ]+ret
+[ ]+48:[ ]+d8[ ]+ret c
+[ ]+49:[ ]+d0[ ]+ret nc
+[ ]+4a:[ ]+c8[ ]+ret z
+[ ]+4b:[ ]+c0[ ]+ret nz
+[ ]+4c:[ ]+e8[ ]+ret pe
+[ ]+4d:[ ]+e0[ ]+ret po
+[ ]+4e:[ ]+f8[ ]+ret m
+[ ]+4f:[ ]+f0[ ]+ret p
+[ ]+50:[ ]+ed 4d[ ]+reti
+[ ]+52:[ ]+ed 45[ ]+retn
+[ ]+54:[ ]+c7[ ]+rst (0x)?0+
+[ ]+55:[ ]+cf[ ]+rst (0x0?)?8
+[ ]+56:[ ]+d7[ ]+rst 0x10
+[ ]+57:[ ]+df[ ]+rst 0x18
+[ ]+58:[ ]+e7[ ]+rst 0x20
+[ ]+59:[ ]+ef[ ]+rst 0x28
+[ ]+5a:[ ]+f7[ ]+rst 0x30
+[ ]+5b:[ ]+ff[ ]+rst 0x38 \ No newline at end of file
diff --git a/gas/testsuite/gas/z80/branch.s b/gas/testsuite/gas/z80/branch.s
new file mode 100644
index 0000000..e240934
--- /dev/null
+++ b/gas/testsuite/gas/z80/branch.s
@@ -0,0 +1,57 @@
+ .text
+ .org 0
+;;; branch instructions
+2:
+ jp 0x8405
+ jp c,0x8405
+ jp nc,0x8405
+ jp z,0x8405
+ jp nz,0x8405
+ jp pe,0x8405
+ jp po,0x8405
+ jp m,0x8405
+ jp p,0x8405
+
+ jr 2b
+ jr c,2b
+ jr nc,2b
+ jr z,2b
+ jr nz,2b
+
+ jp (hl)
+ jp (ix)
+ jp (iy)
+
+ call 0x8405
+ call c,0x8405
+ call nc,0x8405
+ call z,0x8405
+ call nz,0x8405
+ call pe,0x8405
+ call po,0x8405
+ call m,0x8405
+ call p,0x8405
+
+ djnz 2b
+
+ ret
+ ret c
+ ret nc
+ ret z
+ ret nz
+ ret pe
+ ret po
+ ret m
+ ret p
+
+ reti
+ retn
+
+ rst 0h
+ rst 8h
+ rst 10h
+ rst 18h
+ rst 20h
+ rst 28h
+ rst 30h
+ rst 38h
diff --git a/gas/testsuite/gas/z80/inout.d b/gas/testsuite/gas/z80/inout.d
new file mode 100644
index 0000000..639a418
--- /dev/null
+++ b/gas/testsuite/gas/z80/inout.d
@@ -0,0 +1,24 @@
+#objdump: -d
+#name: input and output
+
+.*: .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+[ ]+0:[ ]+db 76[ ]+in a,\(0x76\)
+[ ]+2:[ ]+ed 78[ ]+in a,\(c\)
+[ ]+4:[ ]+ed 40[ ]+in b,\(c\)
+[ ]+6:[ ]+ed 48[ ]+in c,\(c\)
+[ ]+8:[ ]+ed 50[ ]+in d,\(c\)
+[ ]+a:[ ]+ed 58[ ]+in e,\(c\)
+[ ]+c:[ ]+ed 60[ ]+in h,\(c\)
+[ ]+e:[ ]+ed 68[ ]+in l,\(c\)
+[ ]+10:[ ]+d3 76[ ]+out \(0x76\),a
+[ ]+12:[ ]+ed 79[ ]+out \(c\),a
+[ ]+14:[ ]+ed 41[ ]+out \(c\),b
+[ ]+16:[ ]+ed 49[ ]+out \(c\),c
+[ ]+18:[ ]+ed 51[ ]+out \(c\),d
+[ ]+1a:[ ]+ed 59[ ]+out \(c\),e
+[ ]+1c:[ ]+ed 61[ ]+out \(c\),h
+[ ]+1e:[ ]+ed 69[ ]+out \(c\),l
diff --git a/gas/testsuite/gas/z80/inout.s b/gas/testsuite/gas/z80/inout.s
new file mode 100644
index 0000000..bbe458a
--- /dev/null
+++ b/gas/testsuite/gas/z80/inout.s
@@ -0,0 +1,23 @@
+ .text
+ .org 0
+;;; input
+ in a,(0x76)
+ in a,(c)
+ in b,(c)
+ in c,(c)
+ in d,(c)
+ in e,(c)
+ in h,(c)
+ in l,(c)
+
+;;; output
+ out (0x76),a
+ out (c),a
+ out (c),b
+ out (c),c
+ out (c),d
+ out (c),e
+ out (c),h
+ out (c),l
+
+ \ No newline at end of file
diff --git a/gas/testsuite/gas/z80/ld-group.d b/gas/testsuite/gas/z80/ld-group.d
new file mode 100644
index 0000000..6da44b07
--- /dev/null
+++ b/gas/testsuite/gas/z80/ld-group.d
@@ -0,0 +1,154 @@
+#objdump: -d
+#name: data transfer instructions
+
+.*: .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+
+[ ]+0:[ ]+ed 57[ ]+ld a,i
+[ ]+2:[ ]+ed 5f[ ]+ld a,r
+[ ]+4:[ ]+7f[ ]+ld a,a
+[ ]+5:[ ]+78[ ]+ld a,b
+[ ]+6:[ ]+79[ ]+ld a,c
+[ ]+7:[ ]+7a[ ]+ld a,d
+[ ]+8:[ ]+7b[ ]+ld a,e
+[ ]+9:[ ]+7c[ ]+ld a,h
+[ ]+a:[ ]+7d[ ]+ld a,l
+[ ]+b:[ ]+7e[ ]+ld a,\(hl\)
+[ ]+c:[ ]+0a[ ]+ld a,\(bc\)
+[ ]+d:[ ]+1a[ ]+ld a,\(de\)
+[ ]+e:[ ]+dd 7e 05[ ]+ld a,\(ix\+5\)
+[ ]+11:[ ]+fd 7e 05[ ]+ld a,\(iy\+5\)
+[ ]+14:[ ]+3a 05 84[ ]+ld a,\(0x8405\)
+[ ]+17:[ ]+3e 11[ ]+ld a,0x11
+[ ]+19:[ ]+47[ ]+ld b,a
+[ ]+1a:[ ]+40[ ]+ld b,b
+[ ]+1b:[ ]+41[ ]+ld b,c
+[ ]+1c:[ ]+42[ ]+ld b,d
+[ ]+1d:[ ]+43[ ]+ld b,e
+[ ]+1e:[ ]+44[ ]+ld b,h
+[ ]+1f:[ ]+45[ ]+ld b,l
+[ ]+20:[ ]+46[ ]+ld b,\(hl\)
+[ ]+21:[ ]+dd 46 05[ ]+ld b,\(ix\+5\)
+[ ]+24:[ ]+fd 46 05[ ]+ld b,\(iy\+5\)
+[ ]+27:[ ]+06 11[ ]+ld b,0x11
+[ ]+29:[ ]+4f[ ]+ld c,a
+[ ]+2a:[ ]+48[ ]+ld c,b
+[ ]+2b:[ ]+49[ ]+ld c,c
+[ ]+2c:[ ]+4a[ ]+ld c,d
+[ ]+2d:[ ]+4b[ ]+ld c,e
+[ ]+2e:[ ]+4c[ ]+ld c,h
+[ ]+2f:[ ]+4d[ ]+ld c,l
+[ ]+30:[ ]+4e[ ]+ld c,\(hl\)
+[ ]+31:[ ]+dd 4e 05[ ]+ld c,\(ix\+5\)
+[ ]+34:[ ]+fd 4e 05[ ]+ld c,\(iy\+5\)
+[ ]+37:[ ]+0e 11[ ]+ld c,0x11
+[ ]+39:[ ]+57[ ]+ld d,a
+[ ]+3a:[ ]+50[ ]+ld d,b
+[ ]+3b:[ ]+51[ ]+ld d,c
+[ ]+3c:[ ]+52[ ]+ld d,d
+[ ]+3d:[ ]+53[ ]+ld d,e
+[ ]+3e:[ ]+54[ ]+ld d,h
+[ ]+3f:[ ]+55[ ]+ld d,l
+[ ]+40:[ ]+56[ ]+ld d,\(hl\)
+[ ]+41:[ ]+dd 56 05[ ]+ld d,\(ix\+5\)
+[ ]+44:[ ]+fd 56 05[ ]+ld d,\(iy\+5\)
+[ ]+47:[ ]+16 11[ ]+ld d,0x11
+[ ]+49:[ ]+5f[ ]+ld e,a
+[ ]+4a:[ ]+58[ ]+ld e,b
+[ ]+4b:[ ]+59[ ]+ld e,c
+[ ]+4c:[ ]+5a[ ]+ld e,d
+[ ]+4d:[ ]+5b[ ]+ld e,e
+[ ]+4e:[ ]+5c[ ]+ld e,h
+[ ]+4f:[ ]+5d[ ]+ld e,l
+[ ]+50:[ ]+5e[ ]+ld e,\(hl\)
+[ ]+51:[ ]+dd 5e 05[ ]+ld e,\(ix\+5\)
+[ ]+54:[ ]+fd 5e 05[ ]+ld e,\(iy\+5\)
+[ ]+57:[ ]+1e 11[ ]+ld e,0x11
+[ ]+59:[ ]+67[ ]+ld h,a
+[ ]+5a:[ ]+60[ ]+ld h,b
+[ ]+5b:[ ]+61[ ]+ld h,c
+[ ]+5c:[ ]+62[ ]+ld h,d
+[ ]+5d:[ ]+63[ ]+ld h,e
+[ ]+5e:[ ]+64[ ]+ld h,h
+[ ]+5f:[ ]+65[ ]+ld h,l
+[ ]+60:[ ]+66[ ]+ld h,\(hl\)
+[ ]+61:[ ]+dd 66 05[ ]+ld h,\(ix\+5\)
+[ ]+64:[ ]+fd 66 05[ ]+ld h,\(iy\+5\)
+[ ]+67:[ ]+26 11[ ]+ld h,0x11
+[ ]+69:[ ]+6f[ ]+ld l,a
+[ ]+6a:[ ]+68[ ]+ld l,b
+[ ]+6b:[ ]+69[ ]+ld l,c
+[ ]+6c:[ ]+6a[ ]+ld l,d
+[ ]+6d:[ ]+6b[ ]+ld l,e
+[ ]+6e:[ ]+6c[ ]+ld l,h
+[ ]+6f:[ ]+6d[ ]+ld l,l
+[ ]+70:[ ]+6e[ ]+ld l,\(hl\)
+[ ]+71:[ ]+dd 6e 05[ ]+ld l,\(ix\+5\)
+[ ]+74:[ ]+fd 6e 05[ ]+ld l,\(iy\+5\)
+[ ]+77:[ ]+2e 11[ ]+ld l,0x11
+[ ]+79:[ ]+77[ ]+ld \(hl\),a
+[ ]+7a:[ ]+70[ ]+ld \(hl\),b
+[ ]+7b:[ ]+71[ ]+ld \(hl\),c
+[ ]+7c:[ ]+72[ ]+ld \(hl\),d
+[ ]+7d:[ ]+73[ ]+ld \(hl\),e
+[ ]+7e:[ ]+74[ ]+ld \(hl\),h
+[ ]+7f:[ ]+75[ ]+ld \(hl\),l
+[ ]+80:[ ]+36 11[ ]+ld \(hl\),0x11
+[ ]+82:[ ]+02[ ]+ld \(bc\),a
+[ ]+83:[ ]+12[ ]+ld \(de\),a
+[ ]+84:[ ]+dd 77 05[ ]+ld \(ix\+5\),a
+[ ]+87:[ ]+dd 70 05[ ]+ld \(ix\+5\),b
+[ ]+8a:[ ]+dd 71 05[ ]+ld \(ix\+5\),c
+[ ]+8d:[ ]+dd 72 05[ ]+ld \(ix\+5\),d
+[ ]+90:[ ]+dd 73 05[ ]+ld \(ix\+5\),e
+[ ]+93:[ ]+dd 74 05[ ]+ld \(ix\+5\),h
+[ ]+96:[ ]+dd 75 05[ ]+ld \(ix\+5\),l
+[ ]+99:[ ]+dd 36 05 11[ ]+ld \(ix\+5\),0x11
+[ ]+9d:[ ]+fd 77 05[ ]+ld \(iy\+5\),a
+[ ]+a0:[ ]+fd 70 05[ ]+ld \(iy\+5\),b
+[ ]+a3:[ ]+fd 71 05[ ]+ld \(iy\+5\),c
+[ ]+a6:[ ]+fd 72 05[ ]+ld \(iy\+5\),d
+[ ]+a9:[ ]+fd 73 05[ ]+ld \(iy\+5\),e
+[ ]+ac:[ ]+fd 74 05[ ]+ld \(iy\+5\),h
+[ ]+af:[ ]+fd 75 05[ ]+ld \(iy\+5\),l
+[ ]+b2:[ ]+fd 36 05 11[ ]+ld \(iy\+5\),0x11
+[ ]+b6:[ ]+32 07 84[ ]+ld \(0x8407\),a
+[ ]+b9:[ ]+ed 47[ ]+ld i,a
+[ ]+bb:[ ]+ed 4f[ ]+ld r,a
+[ ]+bd:[ ]+f1[ ]+pop af
+[ ]+be:[ ]+01 05 84[ ]+ld bc,0x8405
+[ ]+c1:[ ]+ed 4b 05 84[ ]+ld bc,\(0x8405\)
+[ ]+c5:[ ]+c1[ ]+pop bc
+[ ]+c6:[ ]+11 05 84[ ]+ld de,0x8405
+[ ]+c9:[ ]+ed 5b 05 84[ ]+ld de,\(0x8405\)
+[ ]+cd:[ ]+d1[ ]+pop de
+[ ]+ce:[ ]+21 05 84[ ]+ld hl,0x8405
+[ ]+d1:[ ]+2a 05 84[ ]+ld hl,\(0x8405\)
+[ ]+d4:[ ]+e1[ ]+pop hl
+[ ]+d5:[ ]+f9[ ]+ld sp,hl
+[ ]+d6:[ ]+dd f9[ ]+ld sp,ix
+[ ]+d8:[ ]+fd f9[ ]+ld sp,iy
+[ ]+da:[ ]+31 02 84[ ]+ld sp,0x8402
+[ ]+dd:[ ]+ed 7b 02 83[ ]+ld sp,\(0x8302\)
+[ ]+e1:[ ]+dd 21 05 84[ ]+ld ix,0x8405
+[ ]+e5:[ ]+dd 2a 05 84[ ]+ld ix,\(0x8405\)
+[ ]+e9:[ ]+dd e1[ ]+pop ix
+[ ]+eb:[ ]+fd 21 05 84[ ]+ld iy,0x8405
+[ ]+ef:[ ]+fd 2a 05 84[ ]+ld iy,\(0x8405\)
+[ ]+f3:[ ]+fd e1[ ]+pop iy
+[ ]+f5:[ ]+ed 43 32 84[ ]+ld \(0x8432\),bc
+[ ]+f9:[ ]+ed 53 32 84[ ]+ld \(0x8432\),de
+[ ]+fd:[ ]+22 32 84[ ]+ld \(0x8432\),hl
+[ ]+100:[ ]+ed 73 32 84[ ]+ld \(0x8432\),sp
+[ ]+104:[ ]+dd 22 32 84[ ]+ld \(0x8432\),ix
+[ ]+108:[ ]+fd 22 32 84[ ]+ld \(0x8432\),iy
+[ ]+10c:[ ]+f5[ ]+push af
+[ ]+10d:[ ]+c5[ ]+push bc
+[ ]+10e:[ ]+d5[ ]+push de
+[ ]+10f:[ ]+e5[ ]+push hl
+[ ]+110:[ ]+dd e5[ ]+push ix
+[ ]+112:[ ]+fd e5[ ]+push iy
+#pass \ No newline at end of file
diff --git a/gas/testsuite/gas/z80/ld-group.s b/gas/testsuite/gas/z80/ld-group.s
new file mode 100644
index 0000000..88ddf33
--- /dev/null
+++ b/gas/testsuite/gas/z80/ld-group.s
@@ -0,0 +1,169 @@
+ .section .text
+ .org 0
+ ;; 8-bit load group
+ ld a,i
+ ld a,r
+ ld a,a
+ ld a,b
+ ld a,c
+ ld a,d
+ ld a,e
+ ld a,h
+ ld a,l
+ ld a,(hl)
+ ld a,(bc)
+ ld a,(de)
+ ld a,(ix+5)
+ ld a,(iy+5)
+ ld a,(0x8405)
+ ld a,0x11
+
+ ld b,a
+ ld b,b
+ ld b,c
+ ld b,d
+ ld b,e
+ ld b,h
+ ld b,l
+ ld b,(hl)
+ ld b,(ix+5)
+ ld b,(iy+5)
+ ld b,0x11
+
+ ld c,a
+ ld c,b
+ ld c,c
+ ld c,d
+ ld c,e
+ ld c,h
+ ld c,l
+ ld c,(hl)
+ ld c,(ix+5)
+ ld c,(iy+5)
+ ld c,0x11
+
+ ld d,a
+ ld d,b
+ ld d,c
+ ld d,d
+ ld d,e
+ ld d,h
+ ld d,l
+ ld d,(hl)
+ ld d,(ix+5)
+ ld d,(iy+5)
+ ld d,0x11
+
+ ld e,a
+ ld e,b
+ ld e,c
+ ld e,d
+ ld e,e
+ ld e,h
+ ld e,l
+ ld e,(hl)
+ ld e,(ix+5)
+ ld e,(iy+5)
+ ld e,0x11
+
+ ld h,a
+ ld h,b
+ ld h,c
+ ld h,d
+ ld h,e
+ ld h,h
+ ld h,l
+ ld h,(hl)
+ ld h,(ix+5)
+ ld h,(iy+5)
+ ld h,0x11
+
+ ld l,a
+ ld l,b
+ ld l,c
+ ld l,d
+ ld l,e
+ ld l,h
+ ld l,l
+ ld l,(hl)
+ ld l,(ix+5)
+ ld l,(iy+5)
+ ld l,0x11
+
+ ld (hl),a
+ ld (hl),b
+ ld (hl),c
+ ld (hl),d
+ ld (hl),e
+ ld (hl),h
+ ld (hl),l
+ ld (hl),0x11
+
+ ld (bc),a
+ ld (de),a
+
+ ld (ix+5),a
+ ld (ix+5),b
+ ld (ix+5),c
+ ld (ix+5),d
+ ld (ix+5),e
+ ld (ix+5),h
+ ld (ix+5),l
+ ld (ix+5),0x11
+
+ ld (iy+5),a
+ ld (iy+5),b
+ ld (iy+5),c
+ ld (iy+5),d
+ ld (iy+5),e
+ ld (iy+5),h
+ ld (iy+5),l
+ ld (iy+5),0x11
+
+ ld (0x8407),a
+ ld i,a
+ ld r,a
+
+ ;; 16-bit load group --- ld, pop and push
+ pop af
+
+ ld bc,0x8405
+ ld bc,(0x8405)
+ pop bc
+
+ ld de,0x8405
+ ld de,(0x8405)
+ pop de
+
+ ld hl,0x8405
+ ld hl,(0x8405)
+ pop hl
+
+ ld sp,hl
+ ld sp,ix
+ ld sp,iy
+ ld sp,0x8402
+ ld sp,(0x8302)
+
+ ld ix,0x8405
+ ld ix,(0x8405)
+ pop ix
+
+ ld iy,0x8405
+ ld iy,(0x8405)
+ pop iy
+
+ ld (0x8432),bc
+ ld (0x8432),de
+ ld (0x8432),hl
+ ld (0x8432),sp
+ ld (0x8432),ix
+ ld (0x8432),iy
+
+ push af
+ push bc
+ push de
+ push hl
+ push ix
+ push iy
+
diff --git a/gas/testsuite/gas/z80/misc.d b/gas/testsuite/gas/z80/misc.d
new file mode 100644
index 0000000..a22012d
--- /dev/null
+++ b/gas/testsuite/gas/z80/misc.d
@@ -0,0 +1,26 @@
+#objdump: -d
+#name: miscellaneous instructions
+
+.*: .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+[ ]+[0-9a-f]+:[ ]+08[ ]+ex af,af'
+[ ]+[0-9a-f]+:[ ]+d9[ ]+exx
+[ ]+[0-9a-f]+:[ ]+eb[ ]+ex de,hl
+[ ]+[0-9a-f]+:[ ]+e3[ ]+ex \(sp\),hl
+[ ]+[0-9a-f]+:[ ]+dd e3[ ]+ex \(sp\),ix
+[ ]+[0-9a-f]+:[ ]+fd e3[ ]+ex \(sp\),iy
+[ ]+[0-9a-f]+:[ ]+27[ ]+daa
+[ ]+[0-9a-f]+:[ ]+2f[ ]+cpl
+[ ]+[0-9a-f]+:[ ]+ed 44[ ]+neg
+[ ]+[0-9a-f]+:[ ]+3f[ ]+ccf
+[ ]+[0-9a-f]+:[ ]+37[ ]+scf
+[ ]+[0-9a-f]+:[ ]+00[ ]+nop
+[ ]+[0-9a-f]+:[ ]+76[ ]+halt
+[ ]+[0-9a-f]+:[ ]+f3[ ]+di
+[ ]+[0-9a-f]+:[ ]+fb[ ]+ei
+[ ]+[0-9a-f]+:[ ]+ed 46[ ]+im 0
+[ ]+[0-9a-f]+:[ ]+ed 56[ ]+im 1
+[ ]+[0-9a-f]+:[ ]+ed 5e[ ]+im 2
diff --git a/gas/testsuite/gas/z80/misc.s b/gas/testsuite/gas/z80/misc.s
new file mode 100644
index 0000000..0776474
--- /dev/null
+++ b/gas/testsuite/gas/z80/misc.s
@@ -0,0 +1,26 @@
+ .text
+ .org 0
+;;; exchange instructions
+ ex af,af'
+ exx
+ ex de,hl
+ ex (sp),hl
+ ex (sp),ix
+ ex (sp),iy
+
+;;; AF operations
+ daa
+ cpl
+ neg
+ ccf
+ scf
+
+;;; CPU control
+ nop
+ halt
+ di
+ ei
+ im 0
+ im 1
+ im 2
+ \ No newline at end of file
diff --git a/gas/testsuite/gas/z80/rotate.d b/gas/testsuite/gas/z80/rotate.d
new file mode 100644
index 0000000..f374322
--- /dev/null
+++ b/gas/testsuite/gas/z80/rotate.d
@@ -0,0 +1,86 @@
+#objdump: -d
+#name: rotate and shift
+
+.*: .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+
+[ ]+[0-9a-f]+:[ ]+cb 07[ ]+rlc a
+[ ]+[0-9a-f]+:[ ]+cb 00[ ]+rlc b
+[ ]+[0-9a-f]+:[ ]+cb 01[ ]+rlc c
+[ ]+[0-9a-f]+:[ ]+cb 02[ ]+rlc d
+[ ]+[0-9a-f]+:[ ]+cb 03[ ]+rlc e
+[ ]+[0-9a-f]+:[ ]+cb 04[ ]+rlc h
+[ ]+[0-9a-f]+:[ ]+cb 05[ ]+rlc l
+[ ]+[0-9a-f]+:[ ]+cb 06[ ]+rlc \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 06[ ]+rlc \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 06[ ]+rlc \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 0f[ ]+rrc a
+[ ]+[0-9a-f]+:[ ]+cb 08[ ]+rrc b
+[ ]+[0-9a-f]+:[ ]+cb 09[ ]+rrc c
+[ ]+[0-9a-f]+:[ ]+cb 0a[ ]+rrc d
+[ ]+[0-9a-f]+:[ ]+cb 0b[ ]+rrc e
+[ ]+[0-9a-f]+:[ ]+cb 0c[ ]+rrc h
+[ ]+[0-9a-f]+:[ ]+cb 0d[ ]+rrc l
+[ ]+[0-9a-f]+:[ ]+cb 0e[ ]+rrc \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 0e[ ]+rrc \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 0e[ ]+rrc \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 17[ ]+rl a
+[ ]+[0-9a-f]+:[ ]+cb 10[ ]+rl b
+[ ]+[0-9a-f]+:[ ]+cb 11[ ]+rl c
+[ ]+[0-9a-f]+:[ ]+cb 12[ ]+rl d
+[ ]+[0-9a-f]+:[ ]+cb 13[ ]+rl e
+[ ]+[0-9a-f]+:[ ]+cb 14[ ]+rl h
+[ ]+[0-9a-f]+:[ ]+cb 15[ ]+rl l
+[ ]+[0-9a-f]+:[ ]+cb 16[ ]+rl \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 16[ ]+rl \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 16[ ]+rl \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 1f[ ]+rr a
+[ ]+[0-9a-f]+:[ ]+cb 18[ ]+rr b
+[ ]+[0-9a-f]+:[ ]+cb 19[ ]+rr c
+[ ]+[0-9a-f]+:[ ]+cb 1a[ ]+rr d
+[ ]+[0-9a-f]+:[ ]+cb 1b[ ]+rr e
+[ ]+[0-9a-f]+:[ ]+cb 1c[ ]+rr h
+[ ]+[0-9a-f]+:[ ]+cb 1d[ ]+rr l
+[ ]+[0-9a-f]+:[ ]+cb 1e[ ]+rr \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 1e[ ]+rr \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 1e[ ]+rr \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 27[ ]+sla a
+[ ]+[0-9a-f]+:[ ]+cb 20[ ]+sla b
+[ ]+[0-9a-f]+:[ ]+cb 21[ ]+sla c
+[ ]+[0-9a-f]+:[ ]+cb 22[ ]+sla d
+[ ]+[0-9a-f]+:[ ]+cb 23[ ]+sla e
+[ ]+[0-9a-f]+:[ ]+cb 24[ ]+sla h
+[ ]+[0-9a-f]+:[ ]+cb 25[ ]+sla l
+[ ]+[0-9a-f]+:[ ]+cb 26[ ]+sla \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 26[ ]+sla \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 26[ ]+sla \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 2f[ ]+sra a
+[ ]+[0-9a-f]+:[ ]+cb 28[ ]+sra b
+[ ]+[0-9a-f]+:[ ]+cb 29[ ]+sra c
+[ ]+[0-9a-f]+:[ ]+cb 2a[ ]+sra d
+[ ]+[0-9a-f]+:[ ]+cb 2b[ ]+sra e
+[ ]+[0-9a-f]+:[ ]+cb 2c[ ]+sra h
+[ ]+[0-9a-f]+:[ ]+cb 2d[ ]+sra l
+[ ]+[0-9a-f]+:[ ]+cb 2e[ ]+sra \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 2e[ ]+sra \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 2e[ ]+sra \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+cb 3f[ ]+srl a
+[ ]+[0-9a-f]+:[ ]+cb 38[ ]+srl b
+[ ]+[0-9a-f]+:[ ]+cb 39[ ]+srl c
+[ ]+[0-9a-f]+:[ ]+cb 3a[ ]+srl d
+[ ]+[0-9a-f]+:[ ]+cb 3b[ ]+srl e
+[ ]+[0-9a-f]+:[ ]+cb 3c[ ]+srl h
+[ ]+[0-9a-f]+:[ ]+cb 3d[ ]+srl l
+[ ]+[0-9a-f]+:[ ]+cb 3e[ ]+srl \(hl\)
+[ ]+[0-9a-f]+:[ ]+dd cb 05 3e[ ]+srl \(ix\+5\)
+[ ]+[0-9a-f]+:[ ]+fd cb 05 3e[ ]+srl \(iy\+5\)
+[ ]+[0-9a-f]+:[ ]+07[ ]+rlca
+[ ]+[0-9a-f]+:[ ]+0f[ ]+rrca
+[ ]+[0-9a-f]+:[ ]+17[ ]+rla
+[ ]+[0-9a-f]+:[ ]+1f[ ]+rra
+[ ]+[0-9a-f]+:[ ]+ed 6f[ ]+rld
+[ ]+[0-9a-f]+:[ ]+ed 67[ ]+rrd
+#pass \ No newline at end of file
diff --git a/gas/testsuite/gas/z80/rotate.s b/gas/testsuite/gas/z80/rotate.s
new file mode 100644
index 0000000..9e963bb
--- /dev/null
+++ b/gas/testsuite/gas/z80/rotate.s
@@ -0,0 +1,81 @@
+ .text
+ .org 0
+;;; Rotates and shifts
+
+ rlc a
+ rlc b
+ rlc c
+ rlc d
+ rlc e
+ rlc h
+ rlc l
+ rlc (hl)
+ rlc (ix+5)
+ rlc (iy+5)
+ rrc a
+ rrc b
+ rrc c
+ rrc d
+ rrc e
+ rrc h
+ rrc l
+ rrc (hl)
+ rrc (ix+5)
+ rrc (iy+5)
+ rl a
+ rl b
+ rl c
+ rl d
+ rl e
+ rl h
+ rl l
+ rl (hl)
+ rl (ix+5)
+ rl (iy+5)
+ rr a
+ rr b
+ rr c
+ rr d
+ rr e
+ rr h
+ rr l
+ rr (hl)
+ rr (ix+5)
+ rr (iy+5)
+ sla a
+ sla b
+ sla c
+ sla d
+ sla e
+ sla h
+ sla l
+ sla (hl)
+ sla (ix+5)
+ sla (iy+5)
+ sra a
+ sra b
+ sra c
+ sra d
+ sra e
+ sra h
+ sra l
+ sra (hl)
+ sra (ix+5)
+ sra (iy+5)
+ srl a
+ srl b
+ srl c
+ srl d
+ srl e
+ srl h
+ srl l
+ srl (hl)
+ srl (ix+5)
+ srl (iy+5)
+
+ rlca
+ rrca
+ rla
+ rra
+ rld
+ rrd
diff --git a/gas/testsuite/gas/z80/z80.exp b/gas/testsuite/gas/z80/z80.exp
index cae83f1..d595f6a 100644
--- a/gas/testsuite/gas/z80/z80.exp
+++ b/gas/testsuite/gas/z80/z80.exp
@@ -9,4 +9,20 @@ if [istarget z80-*-*] then {
run_dump_test "suffix"
# test assembling and disassembling instructions involving offsets
run_dump_test "offset"
+# test for data transfer instructions
+ run_dump_test "ld-group"
+# test for block instructions
+ run_dump_test "block"
+# test for arithmetic and logic
+ run_dump_test "arith"
+# test for rotate and shift
+ run_dump_test "rotate"
+# test for bit manipulations
+ run_dump_test "bit"
+# test for branch instructions
+ run_dump_test "branch"
+# test for input and output instructions
+ run_dump_test "inout"
+#test for other instructions
+ run_dump_test "misc"
}