aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rix <trix@redhat.com>2002-05-24 03:05:50 +0000
committerTom Rix <trix@redhat.com>2002-05-24 03:05:50 +0000
commit7f7432881e1b8199850d77b69dffa4f2ac1fad91 (patch)
treee825d82dce36f04a3d0cd72f37fb21dbabf7ea8a
parent0db712473f7746f65d119d2be2def54c8841c654 (diff)
downloadgdb-7f7432881e1b8199850d77b69dffa4f2ac1fad91.zip
gdb-7f7432881e1b8199850d77b69dffa4f2ac1fad91.tar.gz
gdb-7f7432881e1b8199850d77b69dffa4f2ac1fad91.tar.bz2
New d10v tests.
-rw-r--r--gas/testsuite/ChangeLog10
-rw-r--r--gas/testsuite/gas/d10v/address-001.d33
-rw-r--r--gas/testsuite/gas/d10v/address-001.s78
-rw-r--r--gas/testsuite/gas/d10v/address-002.l3
-rw-r--r--gas/testsuite/gas/d10v/address-002.s8
-rw-r--r--gas/testsuite/gas/d10v/address-003.l3
-rw-r--r--gas/testsuite/gas/d10v/address-003.s8
-rw-r--r--gas/testsuite/gas/d10v/address-004.l3
-rw-r--r--gas/testsuite/gas/d10v/address-004.s8
-rw-r--r--gas/testsuite/gas/d10v/address-005.l3
-rw-r--r--gas/testsuite/gas/d10v/address-005.s8
-rw-r--r--gas/testsuite/gas/d10v/address-006.l3
-rw-r--r--gas/testsuite/gas/d10v/address-006.s8
-rw-r--r--gas/testsuite/gas/d10v/address-007.l3
-rw-r--r--gas/testsuite/gas/d10v/address-007.s8
-rw-r--r--gas/testsuite/gas/d10v/address-008.l3
-rw-r--r--gas/testsuite/gas/d10v/address-008.s8
-rw-r--r--gas/testsuite/gas/d10v/address-009.l3
-rw-r--r--gas/testsuite/gas/d10v/address-009.s8
-rw-r--r--gas/testsuite/gas/d10v/address-010.l3
-rw-r--r--gas/testsuite/gas/d10v/address-010.s8
-rw-r--r--gas/testsuite/gas/d10v/address-011.l3
-rw-r--r--gas/testsuite/gas/d10v/address-011.s8
-rw-r--r--gas/testsuite/gas/d10v/address-012.l3
-rw-r--r--gas/testsuite/gas/d10v/address-012.s8
-rw-r--r--gas/testsuite/gas/d10v/address-013.l3
-rw-r--r--gas/testsuite/gas/d10v/address-013.s8
-rw-r--r--gas/testsuite/gas/d10v/address-014.l3
-rw-r--r--gas/testsuite/gas/d10v/address-014.s8
-rw-r--r--gas/testsuite/gas/d10v/address-015.l3
-rw-r--r--gas/testsuite/gas/d10v/address-015.s8
-rw-r--r--gas/testsuite/gas/d10v/address-016.l3
-rw-r--r--gas/testsuite/gas/d10v/address-016.s8
-rw-r--r--gas/testsuite/gas/d10v/address-017.l3
-rw-r--r--gas/testsuite/gas/d10v/address-017.s8
-rw-r--r--gas/testsuite/gas/d10v/address-018.l3
-rw-r--r--gas/testsuite/gas/d10v/address-018.s8
-rw-r--r--gas/testsuite/gas/d10v/address-019.l3
-rw-r--r--gas/testsuite/gas/d10v/address-019.s8
-rw-r--r--gas/testsuite/gas/d10v/address-020.l3
-rw-r--r--gas/testsuite/gas/d10v/address-020.s8
-rw-r--r--gas/testsuite/gas/d10v/address-021.l3
-rw-r--r--gas/testsuite/gas/d10v/address-021.s8
-rw-r--r--gas/testsuite/gas/d10v/address-022.l3
-rw-r--r--gas/testsuite/gas/d10v/address-022.s8
-rw-r--r--gas/testsuite/gas/d10v/address-023.l3
-rw-r--r--gas/testsuite/gas/d10v/address-023.s8
-rw-r--r--gas/testsuite/gas/d10v/address-024.l3
-rw-r--r--gas/testsuite/gas/d10v/address-024.s8
-rw-r--r--gas/testsuite/gas/d10v/address-025.l3
-rw-r--r--gas/testsuite/gas/d10v/address-025.s8
-rw-r--r--gas/testsuite/gas/d10v/address-026.l3
-rw-r--r--gas/testsuite/gas/d10v/address-026.s8
-rw-r--r--gas/testsuite/gas/d10v/address-027.l3
-rw-r--r--gas/testsuite/gas/d10v/address-027.s8
-rw-r--r--gas/testsuite/gas/d10v/address-028.l3
-rw-r--r--gas/testsuite/gas/d10v/address-028.s8
-rw-r--r--gas/testsuite/gas/d10v/address-029.l3
-rw-r--r--gas/testsuite/gas/d10v/address-029.s8
-rw-r--r--gas/testsuite/gas/d10v/address-030.l3
-rw-r--r--gas/testsuite/gas/d10v/address-030.s8
-rw-r--r--gas/testsuite/gas/d10v/address-031.l3
-rw-r--r--gas/testsuite/gas/d10v/address-031.s8
-rw-r--r--gas/testsuite/gas/d10v/address-032.l3
-rw-r--r--gas/testsuite/gas/d10v/address-032.s8
-rw-r--r--gas/testsuite/gas/d10v/address-033.l3
-rw-r--r--gas/testsuite/gas/d10v/address-033.s8
-rw-r--r--gas/testsuite/gas/d10v/address-034.l3
-rw-r--r--gas/testsuite/gas/d10v/address-034.s8
-rw-r--r--gas/testsuite/gas/d10v/address-035.l3
-rw-r--r--gas/testsuite/gas/d10v/address-035.s8
-rw-r--r--gas/testsuite/gas/d10v/address-036.l3
-rw-r--r--gas/testsuite/gas/d10v/address-036.s8
-rw-r--r--gas/testsuite/gas/d10v/address-037.l3
-rw-r--r--gas/testsuite/gas/d10v/address-037.s8
-rw-r--r--gas/testsuite/gas/d10v/address-038.l3
-rw-r--r--gas/testsuite/gas/d10v/address-038.s8
-rw-r--r--gas/testsuite/gas/d10v/address-039.l3
-rw-r--r--gas/testsuite/gas/d10v/address-039.s8
-rw-r--r--gas/testsuite/gas/d10v/address-040.l3
-rw-r--r--gas/testsuite/gas/d10v/address-040.s8
-rw-r--r--gas/testsuite/gas/d10v/address-041.l3
-rw-r--r--gas/testsuite/gas/d10v/address-041.s8
-rw-r--r--gas/testsuite/gas/d10v/d10.exp19
-rw-r--r--gas/testsuite/gas/d10v/d10v.exp61
-rw-r--r--gas/testsuite/gas/d10v/instruction_packing.d86
-rw-r--r--gas/testsuite/gas/d10v/instruction_packing.s83
87 files changed, 791 insertions, 19 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 2f1c6c1..f443499 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2002-05-23 Tom Rix <trix@redhat.com>
+
+ * gas/d10v/d10v.exp: Add instruction packing test.
+ * gas/d10v/instruction_packing.s : New test.
+
+2002-05-22 Tom Rix <trix@redhat.com>
+
+ * gas/d10v/d10v.exp: Renamed from d10.exp. Add address-* tests.
+ * gas/d10v/address-001.s - address-041.s : New tests.
+
2002-05-23 H.J. Lu <hjl@gnu.org>
* gas/mips/elf-rel.d: Skip the padding.
diff --git a/gas/testsuite/gas/d10v/address-001.d b/gas/testsuite/gas/d10v/address-001.d
new file mode 100644
index 0000000..f5ff26e
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-001.d
@@ -0,0 +1,33 @@
+#objdump: -D
+#name: D10V supported indirect addressing
+#as:
+
+.*: +file format elf32-d10v
+
+Disassembly of section .text:
+
+00000000 <main>:
+ 0: 78 02 72 04 ldb r0, @r2 -> ldub r0, @r2
+ 4: 70 02 62 04 ld r0, @r2 -> ld2w r0, @r2
+ 8: 7c 02 68 04 stb r0, @r2 -> st r0, @r2
+ c: 75 02 60 05 st2w r0, @r2 -> ld r0, @r2\+
+ 10: 71 02 e8 05 ld2w r0, @r2\+ -> st r0, @r2\+
+ 14: 75 02 e4 05 st2w r0, @r2\+ -> ld r0, @r2-
+ 18: 73 02 ec 05 ld2w r0, @r2- -> st r0, @r2-
+ 1c: 77 02 f0 1e st2w r0, @r2- -> ldb r0, @sp
+ 20: 79 0f 60 1e ldub r0, @sp -> ld r0, @sp
+ 24: 71 0f 78 1e ld2w r0, @sp -> stb r0, @sp
+ 28: 74 0f 6a 1e st r0, @sp -> st2w r0, @sp
+ 2c: 70 0f e2 1f ld r0, @sp\+ -> ld2w r0, @sp\+
+ 30: 74 0f ea 1f st r0, @sp\+ -> st2w r0, @sp\+
+ 34: 72 0f e6 1f ld r0, @sp- -> ld2w r0, @sp-
+ 38: 76 0f ee 1f st r0, @-sp -> st2w r0, @-sp
+ 3c: f8 02 80 00 ldb r0, @\(-0x8000, r2\)
+ 40: f9 02 80 00 ldub r0, @\(-0x8000, r2\)
+ 44: f0 02 80 00 ld r0, @\(-0x8000, r2\)
+ 48: f1 02 80 00 ld2w r0, @\(-0x8000, r2\)
+ 4c: fc 02 80 00 stb r0, @\(-0x8000, r2\)
+ 50: f4 02 80 00 st r0, @\(-0x8000, r2\)
+ 54: f5 02 80 00 st2w r0, @\(-0x8000, r2\)
+ 58: 26 0d 5e 00 jmp r13 || nop
+Disassembly of section .data:
diff --git a/gas/testsuite/gas/d10v/address-001.s b/gas/testsuite/gas/d10v/address-001.s
new file mode 100644
index 0000000..df1d4d2
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-001.s
@@ -0,0 +1,78 @@
+ ;;
+ ;; address-001.s
+ ;; Test supported indirect addressing
+ ;;
+
+ .text
+ .global main
+main:
+ ;;
+ ;; Indirect
+ ;;
+ ldb r0,@r2
+ ldub r0,@r2
+ ld r0,@r2
+ ld2w r0,@r2
+ stb r0,@r2
+ st r0,@r2
+ st2w r0,@r2
+
+ ;;
+ ;; Indirect with post increment
+ ;;
+ ld r0,@r2+
+ ld2w r0,@r2+
+ st r0,@r2+
+ st2w r0,@r2+
+
+ ;;
+ ;; Indirect with postdecrement
+ ;;
+ ld r0,@r2-
+ ld2w r0,@r2-
+ st r0,@r2-
+ st2w r0,@r2-
+
+ ;;
+ ;; Indirect through stackpointer
+ ;;
+ ldb r0,@sp
+ ldub r0,@sp
+ ld r0,@sp
+ ld2w r0,@sp
+ stb r0,@sp
+ st r0,@sp
+ st2w r0,@sp
+
+ ;;
+ ;; Indirect through stackpointer with postincrement
+ ;;
+ ld r0,@sp+
+ ld2w r0,@sp+
+ st r0,@sp+
+ st2w r0,@sp+
+
+ ;;
+ ;; Indirect through stackpointer with postdecrement
+ ;;
+ ld r0,@sp-
+ ld2w r0,@sp-
+
+ ;;
+ ;; Indirect through stackpointer with predecrement
+ ;;
+ st r0,@-sp
+ st2w r0,@-sp
+
+ ;;
+ ;; Indirect with displacement
+ ;;
+ ldb r0,@(0x8000,r2)
+ ldub r0,@(0x8000,r2)
+ ld r0,@(0x8000,r2)
+ ld2w r0,@(0x8000,r2)
+ stb r0,@(0x8000,r2)
+ st r0,@(0x8000,r2)
+ st2w r0,@(0x8000,r2)
+
+ jmp r13
diff --git a/gas/testsuite/gas/d10v/address-002.l b/gas/testsuite/gas/d10v/address-002.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-002.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-002.s b/gas/testsuite/gas/d10v/address-002.s
new file mode 100644
index 0000000..3d1225f
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-002.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldb r0,@r2+
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-003.l b/gas/testsuite/gas/d10v/address-003.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-003.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-003.s b/gas/testsuite/gas/d10v/address-003.s
new file mode 100644
index 0000000..92b649b
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-003.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldub r0,@r2+
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-004.l b/gas/testsuite/gas/d10v/address-004.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-004.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-004.s b/gas/testsuite/gas/d10v/address-004.s
new file mode 100644
index 0000000..76108d2
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-004.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ stb r0,@r2+
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-005.l b/gas/testsuite/gas/d10v/address-005.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-005.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-005.s b/gas/testsuite/gas/d10v/address-005.s
new file mode 100644
index 0000000..2d867f3
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-005.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldb r0,@r2-
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-006.l b/gas/testsuite/gas/d10v/address-006.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-006.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-006.s b/gas/testsuite/gas/d10v/address-006.s
new file mode 100644
index 0000000..497bc05
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-006.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldub r0,@r2-
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-007.l b/gas/testsuite/gas/d10v/address-007.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-007.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-007.s b/gas/testsuite/gas/d10v/address-007.s
new file mode 100644
index 0000000..cce987f
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-007.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ stb r0,@r2-
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-008.l b/gas/testsuite/gas/d10v/address-008.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-008.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-008.s b/gas/testsuite/gas/d10v/address-008.s
new file mode 100644
index 0000000..e2b3719
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-008.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldb r0,@+r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-009.l b/gas/testsuite/gas/d10v/address-009.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-009.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-009.s b/gas/testsuite/gas/d10v/address-009.s
new file mode 100644
index 0000000..ce2140e
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-009.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldub r0,@+r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-010.l b/gas/testsuite/gas/d10v/address-010.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-010.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-010.s b/gas/testsuite/gas/d10v/address-010.s
new file mode 100644
index 0000000..e3b70e7
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-010.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ld r0,@+r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-011.l b/gas/testsuite/gas/d10v/address-011.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-011.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-011.s b/gas/testsuite/gas/d10v/address-011.s
new file mode 100644
index 0000000..3e31f2f
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-011.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ld2w r0,@+r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-012.l b/gas/testsuite/gas/d10v/address-012.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-012.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-012.s b/gas/testsuite/gas/d10v/address-012.s
new file mode 100644
index 0000000..135461e
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-012.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ stb r0,@+r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-013.l b/gas/testsuite/gas/d10v/address-013.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-013.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-013.s b/gas/testsuite/gas/d10v/address-013.s
new file mode 100644
index 0000000..31f0386
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-013.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ st r0,@+r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-014.l b/gas/testsuite/gas/d10v/address-014.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-014.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-014.s b/gas/testsuite/gas/d10v/address-014.s
new file mode 100644
index 0000000..82b957f
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-014.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ st2w r0,@+r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-015.l b/gas/testsuite/gas/d10v/address-015.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-015.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-015.s b/gas/testsuite/gas/d10v/address-015.s
new file mode 100644
index 0000000..d309e41
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-015.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldb r0,@-r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-016.l b/gas/testsuite/gas/d10v/address-016.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-016.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-016.s b/gas/testsuite/gas/d10v/address-016.s
new file mode 100644
index 0000000..886faa2
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-016.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldub r0,@-r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-017.l b/gas/testsuite/gas/d10v/address-017.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-017.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-017.s b/gas/testsuite/gas/d10v/address-017.s
new file mode 100644
index 0000000..39a70ea
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-017.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ld r0,@-r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-018.l b/gas/testsuite/gas/d10v/address-018.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-018.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-018.s b/gas/testsuite/gas/d10v/address-018.s
new file mode 100644
index 0000000..ce65423
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-018.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ld2w r0,@-r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-019.l b/gas/testsuite/gas/d10v/address-019.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-019.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-019.s b/gas/testsuite/gas/d10v/address-019.s
new file mode 100644
index 0000000..41b86be
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-019.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ stb r0,@-r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-020.l b/gas/testsuite/gas/d10v/address-020.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-020.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-020.s b/gas/testsuite/gas/d10v/address-020.s
new file mode 100644
index 0000000..097cf86
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-020.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ st r0,@-r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-021.l b/gas/testsuite/gas/d10v/address-021.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-021.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-021.s b/gas/testsuite/gas/d10v/address-021.s
new file mode 100644
index 0000000..d556696
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-021.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ st2w r0,@-r2
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-022.l b/gas/testsuite/gas/d10v/address-022.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-022.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-022.s b/gas/testsuite/gas/d10v/address-022.s
new file mode 100644
index 0000000..e88cd92
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-022.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldb r0,@sp+
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-023.l b/gas/testsuite/gas/d10v/address-023.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-023.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-023.s b/gas/testsuite/gas/d10v/address-023.s
new file mode 100644
index 0000000..f9312ab
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-023.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldub r0,@sp+
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-024.l b/gas/testsuite/gas/d10v/address-024.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-024.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-024.s b/gas/testsuite/gas/d10v/address-024.s
new file mode 100644
index 0000000..99e7325
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-024.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ stb r0,@sp+
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-025.l b/gas/testsuite/gas/d10v/address-025.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-025.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-025.s b/gas/testsuite/gas/d10v/address-025.s
new file mode 100644
index 0000000..1397abd
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-025.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldb r0,@sp-
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-026.l b/gas/testsuite/gas/d10v/address-026.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-026.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-026.s b/gas/testsuite/gas/d10v/address-026.s
new file mode 100644
index 0000000..a5b3b13
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-026.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldub r0,@sp-
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-027.l b/gas/testsuite/gas/d10v/address-027.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-027.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-027.s b/gas/testsuite/gas/d10v/address-027.s
new file mode 100644
index 0000000..fb7c220
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-027.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ stb r0,@sp-
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-028.l b/gas/testsuite/gas/d10v/address-028.l
new file mode 100644
index 0000000..2087324
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-028.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: Unsupported use of sp
+
diff --git a/gas/testsuite/gas/d10v/address-028.s b/gas/testsuite/gas/d10v/address-028.s
new file mode 100644
index 0000000..33e25d0
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-028.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ st r0,@sp-
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-029.l b/gas/testsuite/gas/d10v/address-029.l
new file mode 100644
index 0000000..2087324
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-029.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: Unsupported use of sp
+
diff --git a/gas/testsuite/gas/d10v/address-029.s b/gas/testsuite/gas/d10v/address-029.s
new file mode 100644
index 0000000..71632cd
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-029.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ st2w r0,@sp-
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-030.l b/gas/testsuite/gas/d10v/address-030.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-030.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-030.s b/gas/testsuite/gas/d10v/address-030.s
new file mode 100644
index 0000000..e6cc8bd
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-030.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldb r0,@+sp
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-031.l b/gas/testsuite/gas/d10v/address-031.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-031.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-031.s b/gas/testsuite/gas/d10v/address-031.s
new file mode 100644
index 0000000..d14d36e
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-031.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldub r0,@+sp
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-032.l b/gas/testsuite/gas/d10v/address-032.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-032.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-032.s b/gas/testsuite/gas/d10v/address-032.s
new file mode 100644
index 0000000..4cf7b57
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-032.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ld r0,@+sp
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-033.l b/gas/testsuite/gas/d10v/address-033.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-033.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-033.s b/gas/testsuite/gas/d10v/address-033.s
new file mode 100644
index 0000000..c9f0570
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-033.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ld2w r0,@+sp
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-034.l b/gas/testsuite/gas/d10v/address-034.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-034.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-034.s b/gas/testsuite/gas/d10v/address-034.s
new file mode 100644
index 0000000..d10c808
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-034.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ stb r0,@+sp
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-035.l b/gas/testsuite/gas/d10v/address-035.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-035.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-035.s b/gas/testsuite/gas/d10v/address-035.s
new file mode 100644
index 0000000..be0917c
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-035.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ st r0,@+sp
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-036.l b/gas/testsuite/gas/d10v/address-036.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-036.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-036.s b/gas/testsuite/gas/d10v/address-036.s
new file mode 100644
index 0000000..c680d6e
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-036.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ st2w r0,@+sp
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-037.l b/gas/testsuite/gas/d10v/address-037.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-037.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-037.s b/gas/testsuite/gas/d10v/address-037.s
new file mode 100644
index 0000000..fee57d1
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-037.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldb r0,@-sp
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-038.l b/gas/testsuite/gas/d10v/address-038.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-038.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-038.s b/gas/testsuite/gas/d10v/address-038.s
new file mode 100644
index 0000000..0c9b0ab
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-038.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ldub r0,@-sp
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-039.l b/gas/testsuite/gas/d10v/address-039.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-039.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-039.s b/gas/testsuite/gas/d10v/address-039.s
new file mode 100644
index 0000000..554338d
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-039.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ld r0,@-sp
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-040.l b/gas/testsuite/gas/d10v/address-040.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-040.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-040.s b/gas/testsuite/gas/d10v/address-040.s
new file mode 100644
index 0000000..9d820d3
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-040.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ ld2w r0,@-sp
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/address-041.l b/gas/testsuite/gas/d10v/address-041.l
new file mode 100644
index 0000000..2f8c4f5
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-041.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: bad opcode or operands
+.*:6: Fatal error: can't find opcode
diff --git a/gas/testsuite/gas/d10v/address-041.s b/gas/testsuite/gas/d10v/address-041.s
new file mode 100644
index 0000000..9354d9b
--- /dev/null
+++ b/gas/testsuite/gas/d10v/address-041.s
@@ -0,0 +1,8 @@
+ ;; Test unsupported indirect addressing
+
+ .text
+ .global main
+main:
+ stb r0,@-sp
+ jmp r13
+
diff --git a/gas/testsuite/gas/d10v/d10.exp b/gas/testsuite/gas/d10v/d10.exp
deleted file mode 100644
index 9d43728..0000000
--- a/gas/testsuite/gas/d10v/d10.exp
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Driver for D10V assembler testsuite
-#
-proc run_list_test { name opts } {
- global srcdir subdir
- set testname "D10V $name"
- set file $srcdir/$subdir/$name
- gas_run ${name}.s $opts ">&dump.out"
- if {[regexp_diff "dump.out" "${file}.l"] } {
- fail $testname
- verbose "output is [file_contents "dump.out"]" 2
- return
- }
- pass $testname
-}
-
-if {[istarget d10v-*-*]} {
- run_dump_test "inst"
-}
diff --git a/gas/testsuite/gas/d10v/d10v.exp b/gas/testsuite/gas/d10v/d10v.exp
new file mode 100644
index 0000000..43f2785
--- /dev/null
+++ b/gas/testsuite/gas/d10v/d10v.exp
@@ -0,0 +1,61 @@
+#
+# Driver for D10V assembler testsuite
+#
+proc run_list_test { name opts } {
+ global srcdir subdir
+ set testname "D10V $name"
+ set file $srcdir/$subdir/$name
+ gas_run ${name}.s $opts ">&dump.out"
+ if {[regexp_diff "dump.out" "${file}.l"] } {
+ fail $testname
+ verbose "output is [file_contents "dump.out"]" 2
+ return
+ }
+ pass $testname
+}
+
+if {[istarget d10v-*-*]} {
+ run_dump_test "inst"
+ run_dump_test "address-001"
+ run_list_test "address-002" ""
+ run_list_test "address-003" ""
+ run_list_test "address-004" ""
+ run_list_test "address-005" ""
+ run_list_test "address-006" ""
+ run_list_test "address-007" ""
+ run_list_test "address-008" ""
+ run_list_test "address-009" ""
+ run_list_test "address-010" ""
+ run_list_test "address-011" ""
+ run_list_test "address-012" ""
+ run_list_test "address-013" ""
+ run_list_test "address-014" ""
+ run_list_test "address-015" ""
+ run_list_test "address-016" ""
+ run_list_test "address-017" ""
+ run_list_test "address-018" ""
+ run_list_test "address-019" ""
+ run_list_test "address-020" ""
+ run_list_test "address-021" ""
+ run_list_test "address-022" ""
+ run_list_test "address-023" ""
+ run_list_test "address-024" ""
+ run_list_test "address-025" ""
+ run_list_test "address-026" ""
+ run_list_test "address-027" ""
+ run_list_test "address-028" ""
+ run_list_test "address-029" ""
+ run_list_test "address-030" ""
+ run_list_test "address-031" ""
+ run_list_test "address-032" ""
+ run_list_test "address-033" ""
+ run_list_test "address-034" ""
+ run_list_test "address-035" ""
+ run_list_test "address-036" ""
+ run_list_test "address-037" ""
+ run_list_test "address-038" ""
+ run_list_test "address-039" ""
+ run_list_test "address-040" ""
+ run_list_test "address-041" ""
+ run_dump_test "instruction_packing"
+}
diff --git a/gas/testsuite/gas/d10v/instruction_packing.d b/gas/testsuite/gas/d10v/instruction_packing.d
new file mode 100644
index 0000000..a66d0b9
--- /dev/null
+++ b/gas/testsuite/gas/d10v/instruction_packing.d
@@ -0,0 +1,86 @@
+#objdump: -Dr
+#name: D10V intruction packing
+#as: -W
+
+.*: +file format elf32-d10v
+
+Disassembly of section .text:
+
+00000000 <main>:
+ 0: 2f 00 5e 00 nop || nop
+
+00000004 <FM00_IU_MU>:
+ 4: 30 23 24 02 ld r2, @r3 || sra r0, r1
+ 8: 24 11 a4 02 bra.s 94 <test_end> || sra r0, r1
+
+0000000c <FM00_MU_IU>:
+ c: 30 23 24 02 ld r2, @r3 || sra r0, r1
+ 10: 24 10 a4 02 bra.s 94 <test_end> || sra r0, r1
+
+00000014 <FM00_IM_MU>:
+ 14: 30 23 02 8a ld r2, @r3 || add r4, r5
+ 18: 24 0f 82 8a bra.s 94 <test_end> || add r4, r5
+
+0000001c <FM00_IM_IU>:
+ 1c: 01 45 24 02 add r4, r5 || sra r0, r1
+ 20: 01 45 2c ce add r4, r5 || mulx a0, r6, r7
+
+00000024 <FM00_MU_IM>:
+ 24: 30 23 02 8a ld r2, @r3 || add r4, r5
+ 28: 24 0d 82 8a bra.s 94 <test_end> || add r4, r5
+
+0000002c <FM00_IU_IM>:
+ 2c: 01 45 24 02 add r4, r5 || sra r0, r1
+ 30: 01 45 2c ce add r4, r5 || mulx a0, r6, r7
+
+00000034 <FM01_IU_MU>:
+ 34: b0 23 24 02 ld r2, @r3 <- sra r0, r1
+ 38: a4 0b a4 02 bra.s 94 <test_end> <- sra r0, r1
+
+0000003c <FM01_MU_IU>:
+ 3c: 70 23 24 02 ld r2, @r3 -> sra r0, r1
+ 40: 64 0a a4 02 bra.s 94 <test_end> -> sra r0, r1
+
+00000044 <FM01_IM_MU>:
+ 44: 41 45 60 46 add r4, r5 -> ld r2, @r3
+ 48: 41 45 48 13 add r4, r5 -> bra.s 94 <test_end>
+
+0000004c <FM01_IM_IU>:
+ 4c: 41 45 24 02 add r4, r5 -> sra r0, r1
+ 50: 41 45 2c ce add r4, r5 -> mulx a0, r6, r7
+
+00000054 <FM01_MU_IM>:
+ 54: 70 23 02 8a ld r2, @r3 -> add r4, r5
+ 58: 64 07 82 8a bra.s 94 <test_end> -> add r4, r5
+
+0000005c <FM01_IU_IM>:
+ 5c: 81 45 24 02 add r4, r5 <- sra r0, r1
+ 60: 81 45 2c ce add r4, r5 <- mulx a0, r6, r7
+
+00000064 <FM10_IU_MU>:
+ 64: 70 23 24 02 ld r2, @r3 -> sra r0, r1
+ 68: 64 05 a4 02 bra.s 94 <test_end> -> sra r0, r1
+
+0000006c <FM10_MU_IU>:
+ 6c: b0 23 24 02 ld r2, @r3 <- sra r0, r1
+ 70: a4 04 a4 02 bra.s 94 <test_end> <- sra r0, r1
+
+00000074 <FM10_IM_MU>:
+ 74: 70 23 02 8a ld r2, @r3 -> add r4, r5
+ 78: 64 03 82 8a bra.s 94 <test_end> -> add r4, r5
+
+0000007c <FM10_IM_IU>:
+ 7c: 81 45 24 02 add r4, r5 <- sra r0, r1
+ 80: 81 45 2c ce add r4, r5 <- mulx a0, r6, r7
+
+00000084 <FM10_MU_IM>:
+ 84: b0 23 02 8a ld r2, @r3 <- add r4, r5
+ 88: a4 01 82 8a bra.s 94 <test_end> <- add r4, r5
+
+0000008c <FM10_IU_IM>:
+ 8c: 92 01 02 8a sra r0, r1 <- add r4, r5
+ 90: 96 67 02 8a mulx a0, r6, r7 <- add r4, r5
+
+00000094 <test_end>:
+ 94: 26 0d 5e 00 jmp r13 || nop
+Disassembly of section .data:
diff --git a/gas/testsuite/gas/d10v/instruction_packing.s b/gas/testsuite/gas/d10v/instruction_packing.s
new file mode 100644
index 0000000..aea09a6
--- /dev/null
+++ b/gas/testsuite/gas/d10v/instruction_packing.s
@@ -0,0 +1,83 @@
+ ;; Test instruction packing
+
+ .text
+ .global main
+main:
+
+MU_IU:
+ nop || nop
+
+FM00_IU_MU:
+ sra r0,r1 || ld r2,@r3
+ sra r0,r1 || bra.s test_end
+
+FM00_MU_IU:
+ ld r2,@r3 || sra r0,r1
+ bra.s test_end || sra r0,r1
+
+FM00_IM_MU:
+ add r4,r5 || ld r2,@r3
+ add r4,r5 || bra.s test_end
+
+FM00_IM_IU:
+ add r4,r5 || sra r0,r1
+ add r4,r5 || mulx a0, r6, r7
+
+FM00_MU_IM:
+ ld r2,@r3 || add r4,r5
+ bra.s test_end || add r4,r5
+
+FM00_IU_IM:
+ sra r0,r1 || add r4,r5
+ mulx a0, r6, r7 || add r4,r5
+
+FM01_IU_MU:
+ sra r0,r1 -> ld r2,@r3
+ sra r0,r1 -> bra.s test_end
+
+FM01_MU_IU:
+ ld r2,@r3 -> sra r0,r1
+ bra.s test_end -> sra r0,r1
+
+FM01_IM_MU:
+ add r4,r5 -> ld r2,@r3
+ add r4,r5 -> bra.s test_end
+
+FM01_IM_IU:
+ add r4,r5 -> sra r0,r1
+ add r4,r5 -> mulx a0, r6, r7
+
+FM01_MU_IM:
+ ld r2,@r3 -> add r4,r5
+ bra.s test_end -> add r4,r5
+
+FM01_IU_IM:
+ sra r0,r1 -> add r4,r5
+ mulx a0, r6, r7 -> add r4,r5
+
+FM10_IU_MU:
+ sra r0,r1 <- ld r2,@r3
+ sra r0,r1 <- bra.s test_end
+
+FM10_MU_IU:
+ ld r2,@r3 <- sra r0,r1
+ bra.s test_end <- sra r0,r1
+
+FM10_IM_MU:
+ add r4,r5 <- ld r2,@r3
+ add r4,r5 <- bra.s test_end
+
+FM10_IM_IU:
+ add r4,r5 <- sra r0,r1
+ add r4,r5 <- mulx a0, r6, r7
+
+FM10_MU_IM:
+ ld r2,@r3 <- add r4,r5
+ bra.s test_end <- add r4,r5
+
+FM10_IU_IM:
+ sra r0,r1 <- add r4,r5
+ mulx a0, r6, r7 <- add r4,r5
+test_end:
+
+ jmp r13