Add new tests for z80
authorArnold Metselaar <arnold.metselaar@planet.nl>
Sun, 14 Sep 2008 14:04:00 +0000 (14:04 +0000)
committerArnold Metselaar <arnold.metselaar@planet.nl>
Sun, 14 Sep 2008 14:04:00 +0000 (14:04 +0000)
18 files changed:
gas/testsuite/ChangeLog
gas/testsuite/gas/z80/arith.d [new file with mode: 0644]
gas/testsuite/gas/z80/arith.s [new file with mode: 0644]
gas/testsuite/gas/z80/bit.d [new file with mode: 0644]
gas/testsuite/gas/z80/bit.s [new file with mode: 0644]
gas/testsuite/gas/z80/block.d [new file with mode: 0644]
gas/testsuite/gas/z80/block.s [new file with mode: 0644]
gas/testsuite/gas/z80/branch.d [new file with mode: 0644]
gas/testsuite/gas/z80/branch.s [new file with mode: 0644]
gas/testsuite/gas/z80/inout.d [new file with mode: 0644]
gas/testsuite/gas/z80/inout.s [new file with mode: 0644]
gas/testsuite/gas/z80/ld-group.d [new file with mode: 0644]
gas/testsuite/gas/z80/ld-group.s [new file with mode: 0644]
gas/testsuite/gas/z80/misc.d [new file with mode: 0644]
gas/testsuite/gas/z80/misc.s [new file with mode: 0644]
gas/testsuite/gas/z80/rotate.d [new file with mode: 0644]
gas/testsuite/gas/z80/rotate.s [new file with mode: 0644]
gas/testsuite/gas/z80/z80.exp

index 4a205ed..bc25499 100644 (file)
@@ -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 (file)
index 0000000..3a6781c
--- /dev/null
@@ -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 (file)
index 0000000..1aa66b7
--- /dev/null
@@ -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 (file)
index 0000000..ccd30fc
--- /dev/null
@@ -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 (file)
index 0000000..40a5f9e
--- /dev/null
@@ -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 (file)
index 0000000..c334656
--- /dev/null
@@ -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 (file)
index 0000000..259b204
--- /dev/null
@@ -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 (file)
index 0000000..c3a47a1
--- /dev/null
@@ -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 (file)
index 0000000..e240934
--- /dev/null
@@ -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 (file)
index 0000000..639a418
--- /dev/null
@@ -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 (file)
index 0000000..bbe458a
--- /dev/null
@@ -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 (file)
index 0000000..6da44b0
--- /dev/null
@@ -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 (file)
index 0000000..88ddf33
--- /dev/null
@@ -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 (file)
index 0000000..a22012d
--- /dev/null
@@ -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 (file)
index 0000000..0776474
--- /dev/null
@@ -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 (file)
index 0000000..f374322
--- /dev/null
@@ -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 (file)
index 0000000..9e963bb
--- /dev/null
@@ -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
index cae83f1..d595f6a 100644 (file)
@@ -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"
 }