aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Eckhardt <jle@rice.edu>2003-05-21 01:42:40 +0000
committerJason Eckhardt <jle@rice.edu>2003-05-21 01:42:40 +0000
commit371409b0e031956b6f75b35bbe4a35123078f381 (patch)
tree79c7f9774a345a54b8c7ef939d80e917188a4e79
parent6ccb204bf4d45ec5cae9044a83eb192b450006aa (diff)
downloadgdb-371409b0e031956b6f75b35bbe4a35123078f381.zip
gdb-371409b0e031956b6f75b35bbe4a35123078f381.tar.gz
gdb-371409b0e031956b6f75b35bbe4a35123078f381.tar.bz2
2003-05-20 Jason Eckhardt <jle@rice.edu>
* gas/i860/bitwise.{s,d}: New files. * gas/i860/bte.{s,d}: New files. * gas/i860/fldst01.{s,d}: New files. * gas/i860/fldst02.{s,d}: New files. * gas/i860/fldst03.{s,d}: New files. * gas/i860/fldst04.{s,d}: New files. * gas/i860/fldst05.{s,d}: New files. * gas/i860/fldst06.{s,d}: New files. * gas/i860/fldst07.{s,d}: New files. * gas/i860/fldst08.{s,d}: New files. * gas/i860/float01.{s,d}: New files. * gas/i860/float02.{s,d}: New files. * gas/i860/float03.{s,d}: New files. * gas/i860/float04.{s,d}: New files. * gas/i860/form.{s,d}: New files. * gas/i860/iarith.{s,d}: New files. * gas/i860/ldst01.{s,d}: New files. * gas/i860/ldst02.{s,d}: New files. * gas/i860/ldst03.{s,d}: New files. * gas/i860/ldst04.{s,d}: New files. * gas/i860/ldst05.{s,d}: New files. * gas/i860/ldst06.{s,d}: New files. * gas/i860/pfam.{s,d}: New files. * gas/i860/pfmam.{s,d}: New files. * gas/i860/pfmsm.{s,d}: New files. * gas/i860/pfsm.{s,d}: New files. * gas/i860/regress01.{s,d}: New files. * gas/i860/shift.{s,d}: New files. * gas/i860/simd.{s,d}: New files.
-rw-r--r--gas/testsuite/ChangeLog32
-rw-r--r--gas/testsuite/gas/i860/bitwise.d141
-rw-r--r--gas/testsuite/gas/i860/bitwise.s150
-rw-r--r--gas/testsuite/gas/i860/bte.d62
-rw-r--r--gas/testsuite/gas/i860/bte.s55
-rw-r--r--gas/testsuite/gas/i860/fldst01.d73
-rw-r--r--gas/testsuite/gas/i860/fldst01.s75
-rw-r--r--gas/testsuite/gas/i860/fldst02.d73
-rw-r--r--gas/testsuite/gas/i860/fldst02.s75
-rw-r--r--gas/testsuite/gas/i860/fldst03.d73
-rw-r--r--gas/testsuite/gas/i860/fldst03.s75
-rw-r--r--gas/testsuite/gas/i860/fldst04.d73
-rw-r--r--gas/testsuite/gas/i860/fldst04.s75
-rw-r--r--gas/testsuite/gas/i860/fldst05.d73
-rw-r--r--gas/testsuite/gas/i860/fldst05.s75
-rw-r--r--gas/testsuite/gas/i860/fldst06.d73
-rw-r--r--gas/testsuite/gas/i860/fldst06.s75
-rw-r--r--gas/testsuite/gas/i860/fldst07.d73
-rw-r--r--gas/testsuite/gas/i860/fldst07.s75
-rw-r--r--gas/testsuite/gas/i860/fldst08.d73
-rw-r--r--gas/testsuite/gas/i860/fldst08.s75
-rw-r--r--gas/testsuite/gas/i860/float01.d69
-rw-r--r--gas/testsuite/gas/i860/float01.s84
-rw-r--r--gas/testsuite/gas/i860/float02.d39
-rw-r--r--gas/testsuite/gas/i860/float02.s42
-rw-r--r--gas/testsuite/gas/i860/float03.d51
-rw-r--r--gas/testsuite/gas/i860/float03.s64
-rw-r--r--gas/testsuite/gas/i860/float04.d39
-rw-r--r--gas/testsuite/gas/i860/float04.s49
-rw-r--r--gas/testsuite/gas/i860/form.d63
-rw-r--r--gas/testsuite/gas/i860/form.s66
-rw-r--r--gas/testsuite/gas/i860/iarith.d97
-rw-r--r--gas/testsuite/gas/i860/iarith.s102
-rw-r--r--gas/testsuite/gas/i860/ldst01.d39
-rw-r--r--gas/testsuite/gas/i860/ldst01.s35
-rw-r--r--gas/testsuite/gas/i860/ldst02.d39
-rw-r--r--gas/testsuite/gas/i860/ldst02.s35
-rw-r--r--gas/testsuite/gas/i860/ldst03.d43
-rw-r--r--gas/testsuite/gas/i860/ldst03.s39
-rw-r--r--gas/testsuite/gas/i860/ldst04.d24
-rw-r--r--gas/testsuite/gas/i860/ldst04.s19
-rw-r--r--gas/testsuite/gas/i860/ldst05.d24
-rw-r--r--gas/testsuite/gas/i860/ldst05.s19
-rw-r--r--gas/testsuite/gas/i860/ldst06.d28
-rw-r--r--gas/testsuite/gas/i860/ldst06.s22
-rw-r--r--gas/testsuite/gas/i860/pfam.d153
-rw-r--r--gas/testsuite/gas/i860/pfam.s182
-rw-r--r--gas/testsuite/gas/i860/pfmam.d153
-rw-r--r--gas/testsuite/gas/i860/pfmam.s182
-rw-r--r--gas/testsuite/gas/i860/pfmsm.d153
-rw-r--r--gas/testsuite/gas/i860/pfmsm.s182
-rw-r--r--gas/testsuite/gas/i860/pfsm.d153
-rw-r--r--gas/testsuite/gas/i860/pfsm.s182
-rw-r--r--gas/testsuite/gas/i860/regress01.d21
-rw-r--r--gas/testsuite/gas/i860/regress01.s19
-rw-r--r--gas/testsuite/gas/i860/shift.d86
-rw-r--r--gas/testsuite/gas/i860/shift.s90
-rw-r--r--gas/testsuite/gas/i860/simd.d105
-rw-r--r--gas/testsuite/gas/i860/simd.s119
59 files changed, 4535 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 7f425db..4417b80 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,37 @@
2003-05-20 Jason Eckhardt <jle@rice.edu>
+ * gas/i860/bitwise.{s,d}: New files.
+ * gas/i860/bte.{s,d}: New files.
+ * gas/i860/fldst01.{s,d}: New files.
+ * gas/i860/fldst02.{s,d}: New files.
+ * gas/i860/fldst03.{s,d}: New files.
+ * gas/i860/fldst04.{s,d}: New files.
+ * gas/i860/fldst05.{s,d}: New files.
+ * gas/i860/fldst06.{s,d}: New files.
+ * gas/i860/fldst07.{s,d}: New files.
+ * gas/i860/fldst08.{s,d}: New files.
+ * gas/i860/float01.{s,d}: New files.
+ * gas/i860/float02.{s,d}: New files.
+ * gas/i860/float03.{s,d}: New files.
+ * gas/i860/float04.{s,d}: New files.
+ * gas/i860/form.{s,d}: New files.
+ * gas/i860/iarith.{s,d}: New files.
+ * gas/i860/ldst01.{s,d}: New files.
+ * gas/i860/ldst02.{s,d}: New files.
+ * gas/i860/ldst03.{s,d}: New files.
+ * gas/i860/ldst04.{s,d}: New files.
+ * gas/i860/ldst05.{s,d}: New files.
+ * gas/i860/ldst06.{s,d}: New files.
+ * gas/i860/pfam.{s,d}: New files.
+ * gas/i860/pfmam.{s,d}: New files.
+ * gas/i860/pfmsm.{s,d}: New files.
+ * gas/i860/pfsm.{s,d}: New files.
+ * gas/i860/regress01.{s,d}: New files.
+ * gas/i860/shift.{s,d}: New files.
+ * gas/i860/simd.{s,d}: New files.
+
+2003-05-20 Jason Eckhardt <jle@rice.edu>
+
* gas/i860: New directory.
* gas/i860/i860.exp: New file.
diff --git a/gas/testsuite/gas/i860/bitwise.d b/gas/testsuite/gas/i860/bitwise.d
new file mode 100644
index 0000000..12daf1f
--- /dev/null
+++ b/gas/testsuite/gas/i860/bitwise.d
@@ -0,0 +1,141 @@
+#as:
+#objdump: -dr
+#name: bitwise
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 00 00 22 c0 and %r0,%r1,%sp
+ 4: 00 18 85 c0 and %fp,%r4,%r5
+ 8: 00 30 e8 c0 and %r6,%r7,%r8
+ c: 00 48 4b c1 and %r9,%r10,%r11
+ 10: 00 60 ae c1 and %r12,%r13,%r14
+ 14: 00 78 11 c2 and %r15,%r16,%r17
+ 18: 00 90 74 c2 and %r18,%r19,%r20
+ 1c: 00 a8 d7 c2 and %r21,%r22,%r23
+ 20: 00 c0 3a c3 and %r24,%r25,%r26
+ 24: 00 d8 9d c3 and %r27,%r28,%r29
+ 28: 00 f0 e0 c3 and %r30,%r31,%r0
+ 2c: 00 00 22 d0 andnot %r0,%r1,%sp
+ 30: 00 18 85 d0 andnot %fp,%r4,%r5
+ 34: 00 30 e8 d0 andnot %r6,%r7,%r8
+ 38: 00 48 4b d1 andnot %r9,%r10,%r11
+ 3c: 00 60 ae d1 andnot %r12,%r13,%r14
+ 40: 00 78 11 d2 andnot %r15,%r16,%r17
+ 44: 00 90 74 d2 andnot %r18,%r19,%r20
+ 48: 00 a8 d7 d2 andnot %r21,%r22,%r23
+ 4c: 00 c0 3a d3 andnot %r24,%r25,%r26
+ 50: 00 d8 9d d3 andnot %r27,%r28,%r29
+ 54: 00 f0 e0 d3 andnot %r30,%r31,%r0
+ 58: 00 00 22 e0 or %r0,%r1,%sp
+ 5c: 00 18 85 e0 or %fp,%r4,%r5
+ 60: 00 30 e8 e0 or %r6,%r7,%r8
+ 64: 00 48 4b e1 or %r9,%r10,%r11
+ 68: 00 60 ae e1 or %r12,%r13,%r14
+ 6c: 00 78 11 e2 or %r15,%r16,%r17
+ 70: 00 90 74 e2 or %r18,%r19,%r20
+ 74: 00 a8 d7 e2 or %r21,%r22,%r23
+ 78: 00 c0 3a e3 or %r24,%r25,%r26
+ 7c: 00 d8 9d e3 or %r27,%r28,%r29
+ 80: 00 f0 e0 e3 or %r30,%r31,%r0
+ 84: 00 00 22 f0 xor %r0,%r1,%sp
+ 88: 00 18 85 f0 xor %fp,%r4,%r5
+ 8c: 00 30 e8 f0 xor %r6,%r7,%r8
+ 90: 00 48 4b f1 xor %r9,%r10,%r11
+ 94: 00 60 ae f1 xor %r12,%r13,%r14
+ 98: 00 78 11 f2 xor %r15,%r16,%r17
+ 9c: 00 90 74 f2 xor %r18,%r19,%r20
+ a0: 00 a8 d7 f2 xor %r21,%r22,%r23
+ a4: 00 c0 3a f3 xor %r24,%r25,%r26
+ a8: 00 d8 9d f3 xor %r27,%r28,%r29
+ ac: 00 f0 e0 f3 xor %r30,%r31,%r0
+ b0: 00 00 22 c4 and 0x0000,%r1,%sp
+ b4: 00 20 85 c4 and 0x2000,%r4,%r5
+ b8: f5 13 e8 c4 and 0x13f5,%r7,%r8
+ bc: 00 80 4b c5 and 0x8000,%r10,%r11
+ c0: e8 fd ae c5 and 0xfde8,%r13,%r14
+ c4: ff ff 11 c6 and 0xffff,%r16,%r17
+ c8: ff ff 74 c6 and 0xffff,%r19,%r20
+ cc: cd ab d7 c6 and 0xabcd,%r22,%r23
+ d0: 34 12 3a c7 and 0x1234,%r25,%r26
+ d4: 00 00 9d c7 and 0x0000,%r28,%r29
+ d8: 03 00 e0 c7 and 0x0003,%r31,%r0
+ dc: 01 00 22 cc andh 0x0001,%r1,%sp
+ e0: 01 20 85 cc andh 0x2001,%r4,%r5
+ e4: f6 13 e8 cc andh 0x13f6,%r7,%r8
+ e8: 01 80 4b cd andh 0x8001,%r10,%r11
+ ec: e9 fd ae cd andh 0xfde9,%r13,%r14
+ f0: ff ff 11 ce andh 0xffff,%r16,%r17
+ f4: ff ff 74 ce andh 0xffff,%r19,%r20
+ f8: cd ab d7 ce andh 0xabcd,%r22,%r23
+ fc: 34 12 3a cf andh 0x1234,%r25,%r26
+ 100: 00 00 9d cf andh 0x0000,%r28,%r29
+ 104: 03 00 e0 cf andh 0x0003,%r31,%r0
+ 108: 00 00 22 d4 andnot 0x0000,%r1,%sp
+ 10c: 00 20 85 d4 andnot 0x2000,%r4,%r5
+ 110: f5 13 e8 d4 andnot 0x13f5,%r7,%r8
+ 114: 00 80 4b d5 andnot 0x8000,%r10,%r11
+ 118: e8 fd ae d5 andnot 0xfde8,%r13,%r14
+ 11c: ff ff 11 d6 andnot 0xffff,%r16,%r17
+ 120: ff ff 74 d6 andnot 0xffff,%r19,%r20
+ 124: cd ab d7 d6 andnot 0xabcd,%r22,%r23
+ 128: 34 12 3a d7 andnot 0x1234,%r25,%r26
+ 12c: 00 00 9d d7 andnot 0x0000,%r28,%r29
+ 130: 03 00 e0 d7 andnot 0x0003,%r31,%r0
+ 134: 01 00 22 dc andnoth 0x0001,%r1,%sp
+ 138: 01 20 85 dc andnoth 0x2001,%r4,%r5
+ 13c: f6 13 e8 dc andnoth 0x13f6,%r7,%r8
+ 140: 01 80 4b dd andnoth 0x8001,%r10,%r11
+ 144: e9 fd ae dd andnoth 0xfde9,%r13,%r14
+ 148: ff ff 11 de andnoth 0xffff,%r16,%r17
+ 14c: ff ff 74 de andnoth 0xffff,%r19,%r20
+ 150: cd ab d7 de andnoth 0xabcd,%r22,%r23
+ 154: 34 12 3a df andnoth 0x1234,%r25,%r26
+ 158: 00 00 9d df andnoth 0x0000,%r28,%r29
+ 15c: 03 00 e0 df andnoth 0x0003,%r31,%r0
+ 160: 00 00 22 e4 or 0x0000,%r1,%sp
+ 164: 01 00 85 e4 or 0x0001,%r4,%r5
+ 168: 02 00 e8 e4 or 0x0002,%r7,%r8
+ 16c: 03 00 4b e5 or 0x0003,%r10,%r11
+ 170: e8 fd ae e5 or 0xfde8,%r13,%r14
+ 174: ff ff 11 e6 or 0xffff,%r16,%r17
+ 178: ff ff 74 e6 or 0xffff,%r19,%r20
+ 17c: cd ab d7 e6 or 0xabcd,%r22,%r23
+ 180: 34 12 3a e7 or 0x1234,%r25,%r26
+ 184: 00 00 9d e7 or 0x0000,%r28,%r29
+ 188: 03 00 e0 e7 or 0x0003,%r31,%r0
+ 18c: 00 00 22 ec orh 0x0000,%r1,%sp
+ 190: 01 00 85 ec orh 0x0001,%r4,%r5
+ 194: 02 00 e8 ec orh 0x0002,%r7,%r8
+ 198: 03 00 4b ed orh 0x0003,%r10,%r11
+ 19c: e8 fd ae ed orh 0xfde8,%r13,%r14
+ 1a0: ff ff 11 ee orh 0xffff,%r16,%r17
+ 1a4: ff ff 74 ee orh 0xffff,%r19,%r20
+ 1a8: cd ab d7 ee orh 0xabcd,%r22,%r23
+ 1ac: 34 12 3a ef orh 0x1234,%r25,%r26
+ 1b0: 00 00 9d ef orh 0x0000,%r28,%r29
+ 1b4: 03 00 e0 ef orh 0x0003,%r31,%r0
+ 1b8: 00 00 22 f4 xor 0x0000,%r1,%sp
+ 1bc: 01 00 85 f4 xor 0x0001,%r4,%r5
+ 1c0: 02 00 e8 f4 xor 0x0002,%r7,%r8
+ 1c4: 03 00 4b f5 xor 0x0003,%r10,%r11
+ 1c8: e8 fd ae f5 xor 0xfde8,%r13,%r14
+ 1cc: ff ff 11 f6 xor 0xffff,%r16,%r17
+ 1d0: ff ff 74 f6 xor 0xffff,%r19,%r20
+ 1d4: cd ab d7 f6 xor 0xabcd,%r22,%r23
+ 1d8: 34 12 3a f7 xor 0x1234,%r25,%r26
+ 1dc: 00 00 9d f7 xor 0x0000,%r28,%r29
+ 1e0: 03 00 e0 f7 xor 0x0003,%r31,%r0
+ 1e4: 00 00 22 fc xorh 0x0000,%r1,%sp
+ 1e8: 01 00 85 fc xorh 0x0001,%r4,%r5
+ 1ec: 02 00 e8 fc xorh 0x0002,%r7,%r8
+ 1f0: 03 00 4b fd xorh 0x0003,%r10,%r11
+ 1f4: e8 fd ae fd xorh 0xfde8,%r13,%r14
+ 1f8: ff ff 11 fe xorh 0xffff,%r16,%r17
+ 1fc: ff ff 74 fe xorh 0xffff,%r19,%r20
+ 200: cd ab d7 fe xorh 0xabcd,%r22,%r23
+ 204: 34 12 3a ff xorh 0x1234,%r25,%r26
+ 208: 00 00 9d ff xorh 0x0000,%r28,%r29
+ 20c: 03 00 e0 ff xorh 0x0003,%r31,%r0
diff --git a/gas/testsuite/gas/i860/bitwise.s b/gas/testsuite/gas/i860/bitwise.s
new file mode 100644
index 0000000..531c787
--- /dev/null
+++ b/gas/testsuite/gas/i860/bitwise.s
@@ -0,0 +1,150 @@
+# and, andh, andnot, andnoth, or, orh, xor, xorh
+
+ .text
+
+ # Register forms (high variants do not have register forms).
+ and %r0,%r1,%r2
+ and %r3,%r4,%r5
+ and %r6,%r7,%r8
+ and %r9,%r10,%r11
+ and %r12,%r13,%r14
+ and %r15,%r16,%r17
+ and %r18,%r19,%r20
+ and %r21,%r22,%r23
+ and %r24,%r25,%r26
+ and %r27,%r28,%r29
+ and %r30,%r31,%r0
+
+ andnot %r0,%r1,%r2
+ andnot %r3,%r4,%r5
+ andnot %r6,%r7,%r8
+ andnot %r9,%r10,%r11
+ andnot %r12,%r13,%r14
+ andnot %r15,%r16,%r17
+ andnot %r18,%r19,%r20
+ andnot %r21,%r22,%r23
+ andnot %r24,%r25,%r26
+ andnot %r27,%r28,%r29
+ andnot %r30,%r31,%r0
+
+ or %r0,%r1,%r2
+ or %r3,%r4,%r5
+ or %r6,%r7,%r8
+ or %r9,%r10,%r11
+ or %r12,%r13,%r14
+ or %r15,%r16,%r17
+ or %r18,%r19,%r20
+ or %r21,%r22,%r23
+ or %r24,%r25,%r26
+ or %r27,%r28,%r29
+ or %r30,%r31,%r0
+
+ xor %r0,%r1,%r2
+ xor %r3,%r4,%r5
+ xor %r6,%r7,%r8
+ xor %r9,%r10,%r11
+ xor %r12,%r13,%r14
+ xor %r15,%r16,%r17
+ xor %r18,%r19,%r20
+ xor %r21,%r22,%r23
+ xor %r24,%r25,%r26
+ xor %r27,%r28,%r29
+ xor %r30,%r31,%r0
+
+ # Immediate forms (all)
+ and 0,%r1,%r2
+ and 8192,%r4,%r5
+ and 5109,%r7,%r8
+ and 32768,%r10,%r11
+ and 65000,%r13,%r14
+ and 65535,%r16,%r17
+ and 0xffff,%r19,%r20
+ and 0xabcd,%r22,%r23
+ and 0x1234,%r25,%r26
+ and 0x0,%r28,%r29
+ and 0x3,%r31,%r0
+
+ andh 1,%r1,%r2
+ andh 8193,%r4,%r5
+ andh 5110,%r7,%r8
+ andh 32769,%r10,%r11
+ andh 65001,%r13,%r14
+ andh 65535,%r16,%r17
+ andh 0xffff,%r19,%r20
+ andh 0xabcd,%r22,%r23
+ andh 0x1234,%r25,%r26
+ andh 0x0,%r28,%r29
+ andh 0x3,%r31,%r0
+
+ andnot 0,%r1,%r2
+ andnot 8192,%r4,%r5
+ andnot 5109,%r7,%r8
+ andnot 32768,%r10,%r11
+ andnot 65000,%r13,%r14
+ andnot 65535,%r16,%r17
+ andnot 0xffff,%r19,%r20
+ andnot 0xabcd,%r22,%r23
+ andnot 0x1234,%r25,%r26
+ andnot 0x0,%r28,%r29
+ andnot 0x3,%r31,%r0
+
+ andnoth 1,%r1,%r2
+ andnoth 8193,%r4,%r5
+ andnoth 5110,%r7,%r8
+ andnoth 32769,%r10,%r11
+ andnoth 65001,%r13,%r14
+ andnoth 65535,%r16,%r17
+ andnoth 0xffff,%r19,%r20
+ andnoth 0xabcd,%r22,%r23
+ andnoth 0x1234,%r25,%r26
+ andnoth 0x0,%r28,%r29
+ andnoth 0x3,%r31,%r0
+
+ or 0,%r1,%r2
+ or 1,%r4,%r5
+ or 2,%r7,%r8
+ or 3,%r10,%r11
+ or 65000,%r13,%r14
+ or 65535,%r16,%r17
+ or 0xffff,%r19,%r20
+ or 0xabcd,%r22,%r23
+ or 0x1234,%r25,%r26
+ or 0x0,%r28,%r29
+ or 0x3,%r31,%r0
+
+ orh 0,%r1,%r2
+ orh 1,%r4,%r5
+ orh 2,%r7,%r8
+ orh 3,%r10,%r11
+ orh 65000,%r13,%r14
+ orh 65535,%r16,%r17
+ orh 0xffff,%r19,%r20
+ orh 0xabcd,%r22,%r23
+ orh 0x1234,%r25,%r26
+ orh 0x0,%r28,%r29
+ orh 0x3,%r31,%r0
+
+ xor 0,%r1,%r2
+ xor 1,%r4,%r5
+ xor 2,%r7,%r8
+ xor 3,%r10,%r11
+ xor 65000,%r13,%r14
+ xor 65535,%r16,%r17
+ xor 0xffff,%r19,%r20
+ xor 0xabcd,%r22,%r23
+ xor 0x1234,%r25,%r26
+ xor 0x0,%r28,%r29
+ xor 0x3,%r31,%r0
+
+ xorh 0,%r1,%r2
+ xorh 1,%r4,%r5
+ xorh 2,%r7,%r8
+ xorh 3,%r10,%r11
+ xorh 65000,%r13,%r14
+ xorh 65535,%r16,%r17
+ xorh 0xffff,%r19,%r20
+ xorh 0xabcd,%r22,%r23
+ xorh 0x1234,%r25,%r26
+ xorh 0x0,%r28,%r29
+ xorh 0x3,%r31,%r0
+
diff --git a/gas/testsuite/gas/i860/bte.d b/gas/testsuite/gas/i860/bte.d
new file mode 100644
index 0000000..5c5cd26
--- /dev/null
+++ b/gas/testsuite/gas/i860/bte.d
@@ -0,0 +1,62 @@
+#as:
+#objdump: -dr
+#name: bte/btne
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <some_label-0xb8>:
+ 0: 2d 00 e0 57 btne 0,%r31,0x000000b8 // b8 <some_label>
+ 4: 2c 08 a0 57 btne 1,%r29,0x000000b8 // b8 <some_label>
+ 8: 2b 10 60 57 btne 2,%r27,0x000000b8 // b8 <some_label>
+ c: 2a 18 20 57 btne 3,%r25,0x000000b8 // b8 <some_label>
+ 10: 29 50 e0 56 btne 10,%r23,0x000000b8 // b8 <some_label>
+ 14: 28 58 a0 56 btne 11,%r21,0x000000b8 // b8 <some_label>
+ 18: 27 60 60 56 btne 12,%r19,0x000000b8 // b8 <some_label>
+ 1c: 26 e8 20 56 btne 29,%r17,0x000000b8 // b8 <some_label>
+ 20: 25 f0 00 56 btne 30,%r16,0x000000b8 // b8 <some_label>
+ 24: 24 f8 00 55 btne 31,%r8,0x000000b8 // b8 <some_label>
+ 28: 00 78 00 54 btne 15,%r0,0x0000002c // 2c <some_label-0x8c>
+ 28: R_860_PC16 some_fake_extern
+ 2c: 22 00 e0 5f bte 0,%r31,0x000000b8 // b8 <some_label>
+ 30: 21 08 a0 5f bte 1,%r29,0x000000b8 // b8 <some_label>
+ 34: 20 10 60 5f bte 2,%r27,0x000000b8 // b8 <some_label>
+ 38: 1f 18 20 5f bte 3,%r25,0x000000b8 // b8 <some_label>
+ 3c: 1e 50 e0 5e bte 10,%r23,0x000000b8 // b8 <some_label>
+ 40: 1d 58 a0 5e bte 11,%r21,0x000000b8 // b8 <some_label>
+ 44: 1c 60 60 5e bte 12,%r19,0x000000b8 // b8 <some_label>
+ 48: 1b e8 20 5e bte 29,%r17,0x000000b8 // b8 <some_label>
+ 4c: 1a f0 00 5e bte 30,%r16,0x000000b8 // b8 <some_label>
+ 50: 19 f8 00 5d bte 31,%r8,0x000000b8 // b8 <some_label>
+ 54: 00 78 00 5c bte 15,%r0,0x00000058 // 58 <some_label-0x60>
+ 54: R_860_PC16 some_fake_extern
+ 58: 17 00 e0 53 btne %r0,%r31,0x000000b8 // b8 <some_label>
+ 5c: 16 08 a0 53 btne %r1,%r29,0x000000b8 // b8 <some_label>
+ 60: 15 10 60 53 btne %sp,%r27,0x000000b8 // b8 <some_label>
+ 64: 14 18 20 53 btne %fp,%r25,0x000000b8 // b8 <some_label>
+ 68: 13 50 e0 52 btne %r10,%r23,0x000000b8 // b8 <some_label>
+ 6c: 12 58 a0 52 btne %r11,%r21,0x000000b8 // b8 <some_label>
+ 70: 11 60 60 52 btne %r12,%r19,0x000000b8 // b8 <some_label>
+ 74: 10 e8 20 52 btne %r29,%r17,0x000000b8 // b8 <some_label>
+ 78: 0f f0 00 52 btne %r30,%r16,0x000000b8 // b8 <some_label>
+ 7c: 0e f8 00 51 btne %r31,%r8,0x000000b8 // b8 <some_label>
+ 80: 00 78 00 50 btne %r15,%r0,0x00000084 // 84 <some_label-0x34>
+ 80: R_860_PC16 some_fake_extern
+ 84: 0c 00 e0 5b bte %r0,%r31,0x000000b8 // b8 <some_label>
+ 88: 0b 08 a0 5b bte %r1,%r29,0x000000b8 // b8 <some_label>
+ 8c: 0a 10 60 5b bte %sp,%r27,0x000000b8 // b8 <some_label>
+ 90: 09 18 20 5b bte %fp,%r25,0x000000b8 // b8 <some_label>
+ 94: 08 50 e0 5a bte %r10,%r23,0x000000b8 // b8 <some_label>
+ 98: 07 58 a0 5a bte %r11,%r21,0x000000b8 // b8 <some_label>
+ 9c: 06 60 60 5a bte %r12,%r19,0x000000b8 // b8 <some_label>
+ a0: 05 e8 20 5a bte %r29,%r17,0x000000b8 // b8 <some_label>
+ a4: 04 f0 00 5a bte %r30,%r16,0x000000b8 // b8 <some_label>
+ a8: 03 f8 00 59 bte %r31,%r8,0x000000b8 // b8 <some_label>
+ ac: 00 78 00 58 bte %r15,%r0,0x000000b0 // b0 <some_label-0x8>
+ ac: R_860_PC16 some_fake_extern
+ b0: 00 00 00 a0 shl %r0,%r0,%r0
+ b4: 00 00 00 a0 shl %r0,%r0,%r0
+
+000000b8 <some_label>:
+ b8: 00 00 00 a0 shl %r0,%r0,%r0
diff --git a/gas/testsuite/gas/i860/bte.s b/gas/testsuite/gas/i860/bte.s
new file mode 100644
index 0000000..cc6e576
--- /dev/null
+++ b/gas/testsuite/gas/i860/bte.s
@@ -0,0 +1,55 @@
+# bte, btne
+ .text
+
+ btne 0,%r31,some_label
+ btne 1,%r29,some_label
+ btne 2,%r27,some_label
+ btne 3,%r25,some_label
+ btne 10,%r23,some_label
+ btne 11,%r21,some_label
+ btne 12,%r19,some_label
+ btne 29,%r17,some_label
+ btne 30,%r16,some_label
+ btne 31,%r8,some_label
+ btne 15,%r0,some_fake_extern
+
+ bte 0,%r31,some_label
+ bte 1,%r29,some_label
+ bte 2,%r27,some_label
+ bte 3,%r25,some_label
+ bte 10,%r23,some_label
+ bte 11,%r21,some_label
+ bte 12,%r19,some_label
+ bte 29,%r17,some_label
+ bte 30,%r16,some_label
+ bte 31,%r8,some_label
+ bte 15,%r0,some_fake_extern
+
+ btne %r0,%r31,some_label
+ btne %r1,%r29,some_label
+ btne %r2,%r27,some_label
+ btne %r3,%r25,some_label
+ btne %r10,%r23,some_label
+ btne %r11,%r21,some_label
+ btne %r12,%r19,some_label
+ btne %r29,%r17,some_label
+ btne %r30,%r16,some_label
+ btne %r31,%r8,some_label
+ btne %r15,%r0,some_fake_extern
+
+ bte %r0,%r31,some_label
+ bte %r1,%r29,some_label
+ bte %r2,%r27,some_label
+ bte %r3,%r25,some_label
+ bte %r10,%r23,some_label
+ bte %r11,%r21,some_label
+ bte %r12,%r19,some_label
+ bte %r29,%r17,some_label
+ bte %r30,%r16,some_label
+ bte %r31,%r8,some_label
+ bte %r15,%r0,some_fake_extern
+
+ nop
+ nop
+some_label:
+ nop
diff --git a/gas/testsuite/gas/i860/fldst01.d b/gas/testsuite/gas/i860/fldst01.d
new file mode 100644
index 0000000..00bbd53
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst01.d
@@ -0,0 +1,73 @@
+#as:
+#objdump: -dr
+#name: fldst01 (fld.l)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 02 00 00 24 fld.l 0\(%r0\),%f0
+ 4: 7e 00 3f 24 fld.l 124\(%r1\),%f31
+ 8: 02 01 5e 24 fld.l 256\(%sp\),%f30
+ c: 02 02 7d 24 fld.l 512\(%fp\),%f29
+ 10: 02 04 9c 24 fld.l 1024\(%r4\),%f28
+ 14: 02 10 bb 24 fld.l 4096\(%r5\),%f27
+ 18: 02 20 da 24 fld.l 8192\(%r6\),%f26
+ 1c: 02 40 f9 24 fld.l 16384\(%r7\),%f25
+ 20: fe 7f f9 24 fld.l 32764\(%r7\),%f25
+ 24: 02 80 f7 24 fld.l -32768\(%r7\),%f23
+ 28: 02 c0 02 25 fld.l -16384\(%r8\),%f2
+ 2c: 02 e0 23 25 fld.l -8192\(%r9\),%f3
+ 30: 02 f0 48 25 fld.l -4096\(%r10\),%f8
+ 34: 02 fc 69 25 fld.l -1024\(%r11\),%f9
+ 38: 06 fe 8c 25 fld.l -508\(%r12\),%f12
+ 3c: 0a ff b3 25 fld.l -248\(%r13\),%f19
+ 40: fe ff d5 25 fld.l -4\(%r14\),%f21
+ 44: 03 00 00 24 fld.l 0\(%r0\)\+\+,%f0
+ 48: 7f 00 21 24 fld.l 124\(%r1\)\+\+,%f1
+ 4c: 03 01 42 24 fld.l 256\(%sp\)\+\+,%f2
+ 50: 03 02 63 24 fld.l 512\(%fp\)\+\+,%f3
+ 54: 03 04 84 24 fld.l 1024\(%r4\)\+\+,%f4
+ 58: 03 10 a5 24 fld.l 4096\(%r5\)\+\+,%f5
+ 5c: 03 20 c6 24 fld.l 8192\(%r6\)\+\+,%f6
+ 60: 03 40 e7 24 fld.l 16384\(%r7\)\+\+,%f7
+ 64: ff 7f e8 24 fld.l 32764\(%r7\)\+\+,%f8
+ 68: 03 80 e9 24 fld.l -32768\(%r7\)\+\+,%f9
+ 6c: 03 c0 0a 25 fld.l -16384\(%r8\)\+\+,%f10
+ 70: 03 e0 2b 25 fld.l -8192\(%r9\)\+\+,%f11
+ 74: 03 f0 4c 25 fld.l -4096\(%r10\)\+\+,%f12
+ 78: 03 fc 6d 25 fld.l -1024\(%r11\)\+\+,%f13
+ 7c: 07 fe 8e 25 fld.l -508\(%r12\)\+\+,%f14
+ 80: 0b ff af 25 fld.l -248\(%r13\)\+\+,%f15
+ 84: ff ff d0 25 fld.l -4\(%r14\)\+\+,%f16
+ 88: 02 28 00 20 fld.l %r5\(%r0\),%f0
+ 8c: 02 30 3f 20 fld.l %r6\(%r1\),%f31
+ 90: 02 38 5e 20 fld.l %r7\(%sp\),%f30
+ 94: 02 40 7d 20 fld.l %r8\(%fp\),%f29
+ 98: 02 48 9c 20 fld.l %r9\(%r4\),%f28
+ 9c: 02 00 bb 20 fld.l %r0\(%r5\),%f27
+ a0: 02 08 da 20 fld.l %r1\(%r6\),%f26
+ a4: 02 60 f9 20 fld.l %r12\(%r7\),%f25
+ a8: 02 68 18 21 fld.l %r13\(%r8\),%f24
+ ac: 02 70 37 21 fld.l %r14\(%r9\),%f23
+ b0: 02 78 56 21 fld.l %r15\(%r10\),%f22
+ b4: 02 80 75 21 fld.l %r16\(%r11\),%f21
+ b8: 02 88 94 21 fld.l %r17\(%r12\),%f20
+ bc: 02 e0 b3 21 fld.l %r28\(%r13\),%f19
+ c0: 02 f8 d2 21 fld.l %r31\(%r14\),%f18
+ c4: 03 28 00 20 fld.l %r5\(%r0\)\+\+,%f0
+ c8: 03 30 21 20 fld.l %r6\(%r1\)\+\+,%f1
+ cc: 03 38 42 20 fld.l %r7\(%sp\)\+\+,%f2
+ d0: 03 40 63 20 fld.l %r8\(%fp\)\+\+,%f3
+ d4: 03 48 84 20 fld.l %r9\(%r4\)\+\+,%f4
+ d8: 03 00 a5 20 fld.l %r0\(%r5\)\+\+,%f5
+ dc: 03 08 c6 20 fld.l %r1\(%r6\)\+\+,%f6
+ e0: 03 60 e7 20 fld.l %r12\(%r7\)\+\+,%f7
+ e4: 03 68 08 21 fld.l %r13\(%r8\)\+\+,%f8
+ e8: 03 70 29 21 fld.l %r14\(%r9\)\+\+,%f9
+ ec: 03 78 4a 21 fld.l %r15\(%r10\)\+\+,%f10
+ f0: 03 80 6b 21 fld.l %r16\(%r11\)\+\+,%f11
+ f4: 03 88 8c 21 fld.l %r17\(%r12\)\+\+,%f12
+ f8: 03 e0 ad 21 fld.l %r28\(%r13\)\+\+,%f13
+ fc: 03 f8 ce 21 fld.l %r31\(%r14\)\+\+,%f14
diff --git a/gas/testsuite/gas/i860/fldst01.s b/gas/testsuite/gas/i860/fldst01.s
new file mode 100644
index 0000000..109cba8
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst01.s
@@ -0,0 +1,75 @@
+# fld.l (no relocations here)
+ .text
+
+ # Immediate form, no auto-increment.
+ fld.l 0(%r0),%f0
+ fld.l 124(%r1),%f31
+ fld.l 256(%r2),%f30
+ fld.l 512(%r3),%f29
+ fld.l 1024(%r4),%f28
+ fld.l 4096(%r5),%f27
+ fld.l 8192(%r6),%f26
+ fld.l 16384(%r7),%f25
+ fld.l 32764(%r7),%f25
+ fld.l -32768(%r7),%f23
+ fld.l -16384(%r8),%f2
+ fld.l -8192(%r9),%f3
+ fld.l -4096(%r10),%f8
+ fld.l -1024(%r11),%f9
+ fld.l -508(%r12),%f12
+ fld.l -248(%r13),%f19
+ fld.l -4(%r14),%f21
+
+ # Immediate form, with auto-increment.
+ fld.l 0(%r0)++,%f0
+ fld.l 124(%r1)++,%f1
+ fld.l 256(%r2)++,%f2
+ fld.l 512(%r3)++,%f3
+ fld.l 1024(%r4)++,%f4
+ fld.l 4096(%r5)++,%f5
+ fld.l 8192(%r6)++,%f6
+ fld.l 16384(%r7)++,%f7
+ fld.l 32764(%r7)++,%f8
+ fld.l -32768(%r7)++,%f9
+ fld.l -16384(%r8)++,%f10
+ fld.l -8192(%r9)++,%f11
+ fld.l -4096(%r10)++,%f12
+ fld.l -1024(%r11)++,%f13
+ fld.l -508(%r12)++,%f14
+ fld.l -248(%r13)++,%f15
+ fld.l -4(%r14)++,%f16
+
+ # Index form, no auto-increment.
+ fld.l %r5(%r0),%f0
+ fld.l %r6(%r1),%f31
+ fld.l %r7(%r2),%f30
+ fld.l %r8(%r3),%f29
+ fld.l %r9(%r4),%f28
+ fld.l %r0(%r5),%f27
+ fld.l %r1(%r6),%f26
+ fld.l %r12(%r7),%f25
+ fld.l %r13(%r8),%f24
+ fld.l %r14(%r9),%f23
+ fld.l %r15(%r10),%f22
+ fld.l %r16(%r11),%f21
+ fld.l %r17(%r12),%f20
+ fld.l %r28(%r13),%f19
+ fld.l %r31(%r14),%f18
+
+ # Index form, with auto-increment.
+ fld.l %r5(%r0)++,%f0
+ fld.l %r6(%r1)++,%f1
+ fld.l %r7(%r2)++,%f2
+ fld.l %r8(%r3)++,%f3
+ fld.l %r9(%r4)++,%f4
+ fld.l %r0(%r5)++,%f5
+ fld.l %r1(%r6)++,%f6
+ fld.l %r12(%r7)++,%f7
+ fld.l %r13(%r8)++,%f8
+ fld.l %r14(%r9)++,%f9
+ fld.l %r15(%r10)++,%f10
+ fld.l %r16(%r11)++,%f11
+ fld.l %r17(%r12)++,%f12
+ fld.l %r28(%r13)++,%f13
+ fld.l %r31(%r14)++,%f14
+
diff --git a/gas/testsuite/gas/i860/fldst02.d b/gas/testsuite/gas/i860/fldst02.d
new file mode 100644
index 0000000..9a208c5
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst02.d
@@ -0,0 +1,73 @@
+#as:
+#objdump: -dr
+#name: fldst02 (fld.d)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 00 00 00 24 fld.d 0\(%r0\),%f0
+ 4: 80 00 3e 24 fld.d 128\(%r1\),%f30
+ 8: 00 01 5c 24 fld.d 256\(%sp\),%f28
+ c: 00 02 7a 24 fld.d 512\(%fp\),%f26
+ 10: 00 04 98 24 fld.d 1024\(%r4\),%f24
+ 14: 00 10 b6 24 fld.d 4096\(%r5\),%f22
+ 18: 00 20 d4 24 fld.d 8192\(%r6\),%f20
+ 1c: 00 40 f2 24 fld.d 16384\(%r7\),%f18
+ 20: f8 7f f0 24 fld.d 32760\(%r7\),%f16
+ 24: 00 80 ee 24 fld.d -32768\(%r7\),%f14
+ 28: 00 c0 0c 25 fld.d -16384\(%r8\),%f12
+ 2c: 00 e0 2a 25 fld.d -8192\(%r9\),%f10
+ 30: 00 f0 48 25 fld.d -4096\(%r10\),%f8
+ 34: 00 fc 66 25 fld.d -1024\(%r11\),%f6
+ 38: 00 fe 84 25 fld.d -512\(%r12\),%f4
+ 3c: 08 ff a2 25 fld.d -248\(%r13\),%f2
+ 40: f8 ff c0 25 fld.d -8\(%r14\),%f0
+ 44: 01 00 00 24 fld.d 0\(%r0\)\+\+,%f0
+ 48: 81 00 22 24 fld.d 128\(%r1\)\+\+,%f2
+ 4c: 01 01 44 24 fld.d 256\(%sp\)\+\+,%f4
+ 50: 01 02 66 24 fld.d 512\(%fp\)\+\+,%f6
+ 54: 01 04 88 24 fld.d 1024\(%r4\)\+\+,%f8
+ 58: 01 10 aa 24 fld.d 4096\(%r5\)\+\+,%f10
+ 5c: 01 20 cc 24 fld.d 8192\(%r6\)\+\+,%f12
+ 60: 01 40 ee 24 fld.d 16384\(%r7\)\+\+,%f14
+ 64: f9 7f f0 24 fld.d 32760\(%r7\)\+\+,%f16
+ 68: 01 80 f2 24 fld.d -32768\(%r7\)\+\+,%f18
+ 6c: 01 c0 14 25 fld.d -16384\(%r8\)\+\+,%f20
+ 70: 01 e0 36 25 fld.d -8192\(%r9\)\+\+,%f22
+ 74: 01 f0 58 25 fld.d -4096\(%r10\)\+\+,%f24
+ 78: 01 fc 7a 25 fld.d -1024\(%r11\)\+\+,%f26
+ 7c: 01 fe 9c 25 fld.d -512\(%r12\)\+\+,%f28
+ 80: 09 ff be 25 fld.d -248\(%r13\)\+\+,%f30
+ 84: f9 ff d0 25 fld.d -8\(%r14\)\+\+,%f16
+ 88: 00 28 00 20 fld.d %r5\(%r0\),%f0
+ 8c: 00 30 3e 20 fld.d %r6\(%r1\),%f30
+ 90: 00 38 5c 20 fld.d %r7\(%sp\),%f28
+ 94: 00 40 7a 20 fld.d %r8\(%fp\),%f26
+ 98: 00 48 98 20 fld.d %r9\(%r4\),%f24
+ 9c: 00 00 b6 20 fld.d %r0\(%r5\),%f22
+ a0: 00 08 d4 20 fld.d %r1\(%r6\),%f20
+ a4: 00 60 f2 20 fld.d %r12\(%r7\),%f18
+ a8: 00 68 10 21 fld.d %r13\(%r8\),%f16
+ ac: 00 70 2e 21 fld.d %r14\(%r9\),%f14
+ b0: 00 78 4c 21 fld.d %r15\(%r10\),%f12
+ b4: 00 80 6a 21 fld.d %r16\(%r11\),%f10
+ b8: 00 88 88 21 fld.d %r17\(%r12\),%f8
+ bc: 00 e0 a6 21 fld.d %r28\(%r13\),%f6
+ c0: 00 f8 c4 21 fld.d %r31\(%r14\),%f4
+ c4: 01 28 00 20 fld.d %r5\(%r0\)\+\+,%f0
+ c8: 01 30 22 20 fld.d %r6\(%r1\)\+\+,%f2
+ cc: 01 38 44 20 fld.d %r7\(%sp\)\+\+,%f4
+ d0: 01 40 66 20 fld.d %r8\(%fp\)\+\+,%f6
+ d4: 01 48 88 20 fld.d %r9\(%r4\)\+\+,%f8
+ d8: 01 00 aa 20 fld.d %r0\(%r5\)\+\+,%f10
+ dc: 01 08 cc 20 fld.d %r1\(%r6\)\+\+,%f12
+ e0: 01 60 ee 20 fld.d %r12\(%r7\)\+\+,%f14
+ e4: 01 68 10 21 fld.d %r13\(%r8\)\+\+,%f16
+ e8: 01 70 32 21 fld.d %r14\(%r9\)\+\+,%f18
+ ec: 01 78 54 21 fld.d %r15\(%r10\)\+\+,%f20
+ f0: 01 80 76 21 fld.d %r16\(%r11\)\+\+,%f22
+ f4: 01 88 98 21 fld.d %r17\(%r12\)\+\+,%f24
+ f8: 01 e0 ba 21 fld.d %r28\(%r13\)\+\+,%f26
+ fc: 01 f8 de 21 fld.d %r31\(%r14\)\+\+,%f30
diff --git a/gas/testsuite/gas/i860/fldst02.s b/gas/testsuite/gas/i860/fldst02.s
new file mode 100644
index 0000000..50b612b
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst02.s
@@ -0,0 +1,75 @@
+# fld.d (no relocations here)
+ .text
+
+ # Immediate form, no auto-increment.
+ fld.d 0(%r0),%f0
+ fld.d 128(%r1),%f30
+ fld.d 256(%r2),%f28
+ fld.d 512(%r3),%f26
+ fld.d 1024(%r4),%f24
+ fld.d 4096(%r5),%f22
+ fld.d 8192(%r6),%f20
+ fld.d 16384(%r7),%f18
+ fld.d 32760(%r7),%f16
+ fld.d -32768(%r7),%f14
+ fld.d -16384(%r8),%f12
+ fld.d -8192(%r9),%f10
+ fld.d -4096(%r10),%f8
+ fld.d -1024(%r11),%f6
+ fld.d -512(%r12),%f4
+ fld.d -248(%r13),%f2
+ fld.d -8(%r14),%f0
+
+ # Immediate form, with auto-increment.
+ fld.d 0(%r0)++,%f0
+ fld.d 128(%r1)++,%f2
+ fld.d 256(%r2)++,%f4
+ fld.d 512(%r3)++,%f6
+ fld.d 1024(%r4)++,%f8
+ fld.d 4096(%r5)++,%f10
+ fld.d 8192(%r6)++,%f12
+ fld.d 16384(%r7)++,%f14
+ fld.d 32760(%r7)++,%f16
+ fld.d -32768(%r7)++,%f18
+ fld.d -16384(%r8)++,%f20
+ fld.d -8192(%r9)++,%f22
+ fld.d -4096(%r10)++,%f24
+ fld.d -1024(%r11)++,%f26
+ fld.d -512(%r12)++,%f28
+ fld.d -248(%r13)++,%f30
+ fld.d -8(%r14)++,%f16
+
+ # Index form, no auto-increment.
+ fld.d %r5(%r0),%f0
+ fld.d %r6(%r1),%f30
+ fld.d %r7(%r2),%f28
+ fld.d %r8(%r3),%f26
+ fld.d %r9(%r4),%f24
+ fld.d %r0(%r5),%f22
+ fld.d %r1(%r6),%f20
+ fld.d %r12(%r7),%f18
+ fld.d %r13(%r8),%f16
+ fld.d %r14(%r9),%f14
+ fld.d %r15(%r10),%f12
+ fld.d %r16(%r11),%f10
+ fld.d %r17(%r12),%f8
+ fld.d %r28(%r13),%f6
+ fld.d %r31(%r14),%f4
+
+ # Index form, with auto-increment.
+ fld.d %r5(%r0)++,%f0
+ fld.d %r6(%r1)++,%f2
+ fld.d %r7(%r2)++,%f4
+ fld.d %r8(%r3)++,%f6
+ fld.d %r9(%r4)++,%f8
+ fld.d %r0(%r5)++,%f10
+ fld.d %r1(%r6)++,%f12
+ fld.d %r12(%r7)++,%f14
+ fld.d %r13(%r8)++,%f16
+ fld.d %r14(%r9)++,%f18
+ fld.d %r15(%r10)++,%f20
+ fld.d %r16(%r11)++,%f22
+ fld.d %r17(%r12)++,%f24
+ fld.d %r28(%r13)++,%f26
+ fld.d %r31(%r14)++,%f30
+
diff --git a/gas/testsuite/gas/i860/fldst03.d b/gas/testsuite/gas/i860/fldst03.d
new file mode 100644
index 0000000..5b2483d
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst03.d
@@ -0,0 +1,73 @@
+#as:
+#objdump: -dr
+#name: fldst03 (fld.q)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 04 00 00 24 fld.q 0\(%r0\),%f0
+ 4: 84 00 3c 24 fld.q 128\(%r1\),%f28
+ 8: 04 01 58 24 fld.q 256\(%sp\),%f24
+ c: 04 02 74 24 fld.q 512\(%fp\),%f20
+ 10: 04 04 90 24 fld.q 1024\(%r4\),%f16
+ 14: 04 10 ac 24 fld.q 4096\(%r5\),%f12
+ 18: 04 20 c8 24 fld.q 8192\(%r6\),%f8
+ 1c: 04 40 e4 24 fld.q 16384\(%r7\),%f4
+ 20: f4 7f e0 24 fld.q 32752\(%r7\),%f0
+ 24: 04 80 fc 24 fld.q -32768\(%r7\),%f28
+ 28: 04 c0 18 25 fld.q -16384\(%r8\),%f24
+ 2c: 04 e0 34 25 fld.q -8192\(%r9\),%f20
+ 30: 04 f0 50 25 fld.q -4096\(%r10\),%f16
+ 34: 04 fc 6c 25 fld.q -1024\(%r11\),%f12
+ 38: 04 fe 88 25 fld.q -512\(%r12\),%f8
+ 3c: 04 ff a4 25 fld.q -256\(%r13\),%f4
+ 40: f4 ff c0 25 fld.q -16\(%r14\),%f0
+ 44: 05 00 00 24 fld.q 0\(%r0\)\+\+,%f0
+ 48: 85 00 24 24 fld.q 128\(%r1\)\+\+,%f4
+ 4c: 05 01 48 24 fld.q 256\(%sp\)\+\+,%f8
+ 50: 05 02 6c 24 fld.q 512\(%fp\)\+\+,%f12
+ 54: 05 04 90 24 fld.q 1024\(%r4\)\+\+,%f16
+ 58: 05 10 b4 24 fld.q 4096\(%r5\)\+\+,%f20
+ 5c: 05 20 d8 24 fld.q 8192\(%r6\)\+\+,%f24
+ 60: 05 40 fc 24 fld.q 16384\(%r7\)\+\+,%f28
+ 64: f5 7f e0 24 fld.q 32752\(%r7\)\+\+,%f0
+ 68: 05 80 e4 24 fld.q -32768\(%r7\)\+\+,%f4
+ 6c: 05 c0 08 25 fld.q -16384\(%r8\)\+\+,%f8
+ 70: 05 e0 2c 25 fld.q -8192\(%r9\)\+\+,%f12
+ 74: 05 f0 50 25 fld.q -4096\(%r10\)\+\+,%f16
+ 78: 05 fc 74 25 fld.q -1024\(%r11\)\+\+,%f20
+ 7c: 05 fe 98 25 fld.q -512\(%r12\)\+\+,%f24
+ 80: 05 ff bc 25 fld.q -256\(%r13\)\+\+,%f28
+ 84: f5 ff d0 25 fld.q -16\(%r14\)\+\+,%f16
+ 88: 04 28 00 20 fld.q %r5\(%r0\),%f0
+ 8c: 04 30 34 20 fld.q %r6\(%r1\),%f20
+ 90: 04 38 50 20 fld.q %r7\(%sp\),%f16
+ 94: 04 40 6c 20 fld.q %r8\(%fp\),%f12
+ 98: 04 48 88 20 fld.q %r9\(%r4\),%f8
+ 9c: 04 00 a4 20 fld.q %r0\(%r5\),%f4
+ a0: 04 08 c0 20 fld.q %r1\(%r6\),%f0
+ a4: 04 60 fc 20 fld.q %r12\(%r7\),%f28
+ a8: 04 68 18 21 fld.q %r13\(%r8\),%f24
+ ac: 04 70 34 21 fld.q %r14\(%r9\),%f20
+ b0: 04 78 50 21 fld.q %r15\(%r10\),%f16
+ b4: 04 80 6c 21 fld.q %r16\(%r11\),%f12
+ b8: 04 88 88 21 fld.q %r17\(%r12\),%f8
+ bc: 04 e0 a4 21 fld.q %r28\(%r13\),%f4
+ c0: 04 f8 c0 21 fld.q %r31\(%r14\),%f0
+ c4: 05 28 00 20 fld.q %r5\(%r0\)\+\+,%f0
+ c8: 05 30 24 20 fld.q %r6\(%r1\)\+\+,%f4
+ cc: 05 38 48 20 fld.q %r7\(%sp\)\+\+,%f8
+ d0: 05 40 6c 20 fld.q %r8\(%fp\)\+\+,%f12
+ d4: 05 48 90 20 fld.q %r9\(%r4\)\+\+,%f16
+ d8: 05 00 b4 20 fld.q %r0\(%r5\)\+\+,%f20
+ dc: 05 08 d8 20 fld.q %r1\(%r6\)\+\+,%f24
+ e0: 05 60 fc 20 fld.q %r12\(%r7\)\+\+,%f28
+ e4: 05 68 00 21 fld.q %r13\(%r8\)\+\+,%f0
+ e8: 05 70 24 21 fld.q %r14\(%r9\)\+\+,%f4
+ ec: 05 78 48 21 fld.q %r15\(%r10\)\+\+,%f8
+ f0: 05 80 6c 21 fld.q %r16\(%r11\)\+\+,%f12
+ f4: 05 88 90 21 fld.q %r17\(%r12\)\+\+,%f16
+ f8: 05 e0 b4 21 fld.q %r28\(%r13\)\+\+,%f20
+ fc: 05 f8 d8 21 fld.q %r31\(%r14\)\+\+,%f24
diff --git a/gas/testsuite/gas/i860/fldst03.s b/gas/testsuite/gas/i860/fldst03.s
new file mode 100644
index 0000000..7259925
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst03.s
@@ -0,0 +1,75 @@
+# fld.q (no relocations here)
+ .text
+
+ # Immediate form, no auto-increment.
+ fld.q 0(%r0),%f0
+ fld.q 128(%r1),%f28
+ fld.q 256(%r2),%f24
+ fld.q 512(%r3),%f20
+ fld.q 1024(%r4),%f16
+ fld.q 4096(%r5),%f12
+ fld.q 8192(%r6),%f8
+ fld.q 16384(%r7),%f4
+ fld.q 32752(%r7),%f0
+ fld.q -32768(%r7),%f28
+ fld.q -16384(%r8),%f24
+ fld.q -8192(%r9),%f20
+ fld.q -4096(%r10),%f16
+ fld.q -1024(%r11),%f12
+ fld.q -512(%r12),%f8
+ fld.q -256(%r13),%f4
+ fld.q -16(%r14),%f0
+
+ # Immediate form, with auto-increment.
+ fld.q 0(%r0)++,%f0
+ fld.q 128(%r1)++,%f4
+ fld.q 256(%r2)++,%f8
+ fld.q 512(%r3)++,%f12
+ fld.q 1024(%r4)++,%f16
+ fld.q 4096(%r5)++,%f20
+ fld.q 8192(%r6)++,%f24
+ fld.q 16384(%r7)++,%f28
+ fld.q 32752(%r7)++,%f0
+ fld.q -32768(%r7)++,%f4
+ fld.q -16384(%r8)++,%f8
+ fld.q -8192(%r9)++,%f12
+ fld.q -4096(%r10)++,%f16
+ fld.q -1024(%r11)++,%f20
+ fld.q -512(%r12)++,%f24
+ fld.q -256(%r13)++,%f28
+ fld.q -16(%r14)++,%f16
+
+ # Index form, no auto-increment.
+ fld.q %r5(%r0),%f0
+ fld.q %r6(%r1),%f20
+ fld.q %r7(%r2),%f16
+ fld.q %r8(%r3),%f12
+ fld.q %r9(%r4),%f8
+ fld.q %r0(%r5),%f4
+ fld.q %r1(%r6),%f0
+ fld.q %r12(%r7),%f28
+ fld.q %r13(%r8),%f24
+ fld.q %r14(%r9),%f20
+ fld.q %r15(%r10),%f16
+ fld.q %r16(%r11),%f12
+ fld.q %r17(%r12),%f8
+ fld.q %r28(%r13),%f4
+ fld.q %r31(%r14),%f0
+
+ # Index form, with auto-increment.
+ fld.q %r5(%r0)++,%f0
+ fld.q %r6(%r1)++,%f4
+ fld.q %r7(%r2)++,%f8
+ fld.q %r8(%r3)++,%f12
+ fld.q %r9(%r4)++,%f16
+ fld.q %r0(%r5)++,%f20
+ fld.q %r1(%r6)++,%f24
+ fld.q %r12(%r7)++,%f28
+ fld.q %r13(%r8)++,%f0
+ fld.q %r14(%r9)++,%f4
+ fld.q %r15(%r10)++,%f8
+ fld.q %r16(%r11)++,%f12
+ fld.q %r17(%r12)++,%f16
+ fld.q %r28(%r13)++,%f20
+ fld.q %r31(%r14)++,%f24
+
diff --git a/gas/testsuite/gas/i860/fldst04.d b/gas/testsuite/gas/i860/fldst04.d
new file mode 100644
index 0000000..7042bb0
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst04.d
@@ -0,0 +1,73 @@
+#as:
+#objdump: -dr
+#name: fldst04 (fst.l)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 02 00 00 2c fst.l %f0,0\(%r0\)
+ 4: 7e 00 3f 2c fst.l %f31,124\(%r1\)
+ 8: 02 01 5e 2c fst.l %f30,256\(%sp\)
+ c: 02 02 7d 2c fst.l %f29,512\(%fp\)
+ 10: 02 04 9c 2c fst.l %f28,1024\(%r4\)
+ 14: 02 10 bb 2c fst.l %f27,4096\(%r5\)
+ 18: 02 20 da 2c fst.l %f26,8192\(%r6\)
+ 1c: 02 40 f9 2c fst.l %f25,16384\(%r7\)
+ 20: fe 7f f9 2c fst.l %f25,32764\(%r7\)
+ 24: 02 80 f7 2c fst.l %f23,-32768\(%r7\)
+ 28: 02 c0 02 2d fst.l %f2,-16384\(%r8\)
+ 2c: 02 e0 23 2d fst.l %f3,-8192\(%r9\)
+ 30: 02 f0 48 2d fst.l %f8,-4096\(%r10\)
+ 34: 02 fc 69 2d fst.l %f9,-1024\(%r11\)
+ 38: 06 fe 8c 2d fst.l %f12,-508\(%r12\)
+ 3c: 0a ff b3 2d fst.l %f19,-248\(%r13\)
+ 40: fe ff d5 2d fst.l %f21,-4\(%r14\)
+ 44: 03 00 00 2c fst.l %f0,0\(%r0\)\+\+
+ 48: 7f 00 21 2c fst.l %f1,124\(%r1\)\+\+
+ 4c: 03 01 42 2c fst.l %f2,256\(%sp\)\+\+
+ 50: 03 02 63 2c fst.l %f3,512\(%fp\)\+\+
+ 54: 03 04 84 2c fst.l %f4,1024\(%r4\)\+\+
+ 58: 03 10 a5 2c fst.l %f5,4096\(%r5\)\+\+
+ 5c: 03 20 c6 2c fst.l %f6,8192\(%r6\)\+\+
+ 60: 03 40 e7 2c fst.l %f7,16384\(%r7\)\+\+
+ 64: ff 7f e8 2c fst.l %f8,32764\(%r7\)\+\+
+ 68: 03 80 e9 2c fst.l %f9,-32768\(%r7\)\+\+
+ 6c: 03 c0 0a 2d fst.l %f10,-16384\(%r8\)\+\+
+ 70: 03 e0 2b 2d fst.l %f11,-8192\(%r9\)\+\+
+ 74: 03 f0 4c 2d fst.l %f12,-4096\(%r10\)\+\+
+ 78: 03 fc 6d 2d fst.l %f13,-1024\(%r11\)\+\+
+ 7c: 07 fe 8e 2d fst.l %f14,-508\(%r12\)\+\+
+ 80: 0b ff af 2d fst.l %f15,-248\(%r13\)\+\+
+ 84: ff ff d0 2d fst.l %f16,-4\(%r14\)\+\+
+ 88: 02 28 00 28 fst.l %f0,%r5\(%r0\)
+ 8c: 02 30 3f 28 fst.l %f31,%r6\(%r1\)
+ 90: 02 38 5e 28 fst.l %f30,%r7\(%sp\)
+ 94: 02 40 7d 28 fst.l %f29,%r8\(%fp\)
+ 98: 02 48 9c 28 fst.l %f28,%r9\(%r4\)
+ 9c: 02 00 bb 28 fst.l %f27,%r0\(%r5\)
+ a0: 02 08 da 28 fst.l %f26,%r1\(%r6\)
+ a4: 02 60 f9 28 fst.l %f25,%r12\(%r7\)
+ a8: 02 68 18 29 fst.l %f24,%r13\(%r8\)
+ ac: 02 70 37 29 fst.l %f23,%r14\(%r9\)
+ b0: 02 78 56 29 fst.l %f22,%r15\(%r10\)
+ b4: 02 80 75 29 fst.l %f21,%r16\(%r11\)
+ b8: 02 88 94 29 fst.l %f20,%r17\(%r12\)
+ bc: 02 e0 b3 29 fst.l %f19,%r28\(%r13\)
+ c0: 02 f8 d2 29 fst.l %f18,%r31\(%r14\)
+ c4: 03 28 00 28 fst.l %f0,%r5\(%r0\)\+\+
+ c8: 03 30 21 28 fst.l %f1,%r6\(%r1\)\+\+
+ cc: 03 38 42 28 fst.l %f2,%r7\(%sp\)\+\+
+ d0: 03 40 63 28 fst.l %f3,%r8\(%fp\)\+\+
+ d4: 03 48 84 28 fst.l %f4,%r9\(%r4\)\+\+
+ d8: 03 00 a5 28 fst.l %f5,%r0\(%r5\)\+\+
+ dc: 03 08 c6 28 fst.l %f6,%r1\(%r6\)\+\+
+ e0: 03 60 e7 28 fst.l %f7,%r12\(%r7\)\+\+
+ e4: 03 68 08 29 fst.l %f8,%r13\(%r8\)\+\+
+ e8: 03 70 29 29 fst.l %f9,%r14\(%r9\)\+\+
+ ec: 03 78 4a 29 fst.l %f10,%r15\(%r10\)\+\+
+ f0: 03 80 6b 29 fst.l %f11,%r16\(%r11\)\+\+
+ f4: 03 88 8c 29 fst.l %f12,%r17\(%r12\)\+\+
+ f8: 03 e0 ad 29 fst.l %f13,%r28\(%r13\)\+\+
+ fc: 03 f8 ce 29 fst.l %f14,%r31\(%r14\)\+\+
diff --git a/gas/testsuite/gas/i860/fldst04.s b/gas/testsuite/gas/i860/fldst04.s
new file mode 100644
index 0000000..7136614
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst04.s
@@ -0,0 +1,75 @@
+# fst.l (no relocations here)
+ .text
+
+ # Immediate form, no auto-increment.
+ fst.l %f0,0(%r0)
+ fst.l %f31,124(%r1)
+ fst.l %f30,256(%r2)
+ fst.l %f29,512(%r3)
+ fst.l %f28,1024(%r4)
+ fst.l %f27,4096(%r5)
+ fst.l %f26,8192(%r6)
+ fst.l %f25,16384(%r7)
+ fst.l %f25,32764(%r7)
+ fst.l %f23,-32768(%r7)
+ fst.l %f2,-16384(%r8)
+ fst.l %f3,-8192(%r9)
+ fst.l %f8,-4096(%r10)
+ fst.l %f9,-1024(%r11)
+ fst.l %f12,-508(%r12)
+ fst.l %f19,-248(%r13)
+ fst.l %f21,-4(%r14)
+
+ # Immediate form, with auto-increment.
+ fst.l %f0,0(%r0)++
+ fst.l %f1,124(%r1)++
+ fst.l %f2,256(%r2)++
+ fst.l %f3,512(%r3)++
+ fst.l %f4,1024(%r4)++
+ fst.l %f5,4096(%r5)++
+ fst.l %f6,8192(%r6)++
+ fst.l %f7,16384(%r7)++
+ fst.l %f8,32764(%r7)++
+ fst.l %f9,-32768(%r7)++
+ fst.l %f10,-16384(%r8)++
+ fst.l %f11,-8192(%r9)++
+ fst.l %f12,-4096(%r10)++
+ fst.l %f13,-1024(%r11)++
+ fst.l %f14,-508(%r12)++
+ fst.l %f15,-248(%r13)++
+ fst.l %f16,-4(%r14)++
+
+ # Index form, no auto-increment.
+ fst.l %f0,%r5(%r0)
+ fst.l %f31,%r6(%r1)
+ fst.l %f30,%r7(%r2)
+ fst.l %f29,%r8(%r3)
+ fst.l %f28,%r9(%r4)
+ fst.l %f27,%r0(%r5)
+ fst.l %f26,%r1(%r6)
+ fst.l %f25,%r12(%r7)
+ fst.l %f24,%r13(%r8)
+ fst.l %f23,%r14(%r9)
+ fst.l %f22,%r15(%r10)
+ fst.l %f21,%r16(%r11)
+ fst.l %f20,%r17(%r12)
+ fst.l %f19,%r28(%r13)
+ fst.l %f18,%r31(%r14)
+
+ # Index form, with auto-increment.
+ fst.l %f0,%r5(%r0)++
+ fst.l %f1,%r6(%r1)++
+ fst.l %f2,%r7(%r2)++
+ fst.l %f3,%r8(%r3)++
+ fst.l %f4,%r9(%r4)++
+ fst.l %f5,%r0(%r5)++
+ fst.l %f6,%r1(%r6)++
+ fst.l %f7,%r12(%r7)++
+ fst.l %f8,%r13(%r8)++
+ fst.l %f9,%r14(%r9)++
+ fst.l %f10,%r15(%r10)++
+ fst.l %f11,%r16(%r11)++
+ fst.l %f12,%r17(%r12)++
+ fst.l %f13,%r28(%r13)++
+ fst.l %f14,%r31(%r14)++
+
diff --git a/gas/testsuite/gas/i860/fldst05.d b/gas/testsuite/gas/i860/fldst05.d
new file mode 100644
index 0000000..df2f03a
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst05.d
@@ -0,0 +1,73 @@
+#as:
+#objdump: -dr
+#name: fldst05 (fst.d)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 00 00 00 2c fst.d %f0,0\(%r0\)
+ 4: 80 00 3e 2c fst.d %f30,128\(%r1\)
+ 8: 00 01 5c 2c fst.d %f28,256\(%sp\)
+ c: 00 02 7a 2c fst.d %f26,512\(%fp\)
+ 10: 00 04 98 2c fst.d %f24,1024\(%r4\)
+ 14: 00 10 b6 2c fst.d %f22,4096\(%r5\)
+ 18: 00 20 d4 2c fst.d %f20,8192\(%r6\)
+ 1c: 00 40 f2 2c fst.d %f18,16384\(%r7\)
+ 20: f8 7f f0 2c fst.d %f16,32760\(%r7\)
+ 24: 00 80 ee 2c fst.d %f14,-32768\(%r7\)
+ 28: 00 c0 0c 2d fst.d %f12,-16384\(%r8\)
+ 2c: 00 e0 2a 2d fst.d %f10,-8192\(%r9\)
+ 30: 00 f0 48 2d fst.d %f8,-4096\(%r10\)
+ 34: 00 fc 66 2d fst.d %f6,-1024\(%r11\)
+ 38: 00 fe 84 2d fst.d %f4,-512\(%r12\)
+ 3c: 08 ff a2 2d fst.d %f2,-248\(%r13\)
+ 40: f8 ff c0 2d fst.d %f0,-8\(%r14\)
+ 44: 01 00 00 2c fst.d %f0,0\(%r0\)\+\+
+ 48: 81 00 22 2c fst.d %f2,128\(%r1\)\+\+
+ 4c: 01 01 44 2c fst.d %f4,256\(%sp\)\+\+
+ 50: 01 02 66 2c fst.d %f6,512\(%fp\)\+\+
+ 54: 01 04 88 2c fst.d %f8,1024\(%r4\)\+\+
+ 58: 01 10 aa 2c fst.d %f10,4096\(%r5\)\+\+
+ 5c: 01 20 cc 2c fst.d %f12,8192\(%r6\)\+\+
+ 60: 01 40 ee 2c fst.d %f14,16384\(%r7\)\+\+
+ 64: f9 7f f0 2c fst.d %f16,32760\(%r7\)\+\+
+ 68: 01 80 f2 2c fst.d %f18,-32768\(%r7\)\+\+
+ 6c: 01 c0 14 2d fst.d %f20,-16384\(%r8\)\+\+
+ 70: 01 e0 36 2d fst.d %f22,-8192\(%r9\)\+\+
+ 74: 01 f0 58 2d fst.d %f24,-4096\(%r10\)\+\+
+ 78: 01 fc 7a 2d fst.d %f26,-1024\(%r11\)\+\+
+ 7c: 01 fe 9c 2d fst.d %f28,-512\(%r12\)\+\+
+ 80: 09 ff be 2d fst.d %f30,-248\(%r13\)\+\+
+ 84: f9 ff d0 2d fst.d %f16,-8\(%r14\)\+\+
+ 88: 00 28 00 28 fst.d %f0,%r5\(%r0\)
+ 8c: 00 30 3e 28 fst.d %f30,%r6\(%r1\)
+ 90: 00 38 5c 28 fst.d %f28,%r7\(%sp\)
+ 94: 00 40 7a 28 fst.d %f26,%r8\(%fp\)
+ 98: 00 48 98 28 fst.d %f24,%r9\(%r4\)
+ 9c: 00 00 b6 28 fst.d %f22,%r0\(%r5\)
+ a0: 00 08 d4 28 fst.d %f20,%r1\(%r6\)
+ a4: 00 60 f2 28 fst.d %f18,%r12\(%r7\)
+ a8: 00 68 10 29 fst.d %f16,%r13\(%r8\)
+ ac: 00 70 2e 29 fst.d %f14,%r14\(%r9\)
+ b0: 00 78 4c 29 fst.d %f12,%r15\(%r10\)
+ b4: 00 80 6a 29 fst.d %f10,%r16\(%r11\)
+ b8: 00 88 88 29 fst.d %f8,%r17\(%r12\)
+ bc: 00 e0 a6 29 fst.d %f6,%r28\(%r13\)
+ c0: 00 f8 c4 29 fst.d %f4,%r31\(%r14\)
+ c4: 01 28 00 28 fst.d %f0,%r5\(%r0\)\+\+
+ c8: 01 30 22 28 fst.d %f2,%r6\(%r1\)\+\+
+ cc: 01 38 44 28 fst.d %f4,%r7\(%sp\)\+\+
+ d0: 01 40 66 28 fst.d %f6,%r8\(%fp\)\+\+
+ d4: 01 48 88 28 fst.d %f8,%r9\(%r4\)\+\+
+ d8: 01 00 aa 28 fst.d %f10,%r0\(%r5\)\+\+
+ dc: 01 08 cc 28 fst.d %f12,%r1\(%r6\)\+\+
+ e0: 01 60 ee 28 fst.d %f14,%r12\(%r7\)\+\+
+ e4: 01 68 10 29 fst.d %f16,%r13\(%r8\)\+\+
+ e8: 01 70 32 29 fst.d %f18,%r14\(%r9\)\+\+
+ ec: 01 78 54 29 fst.d %f20,%r15\(%r10\)\+\+
+ f0: 01 80 76 29 fst.d %f22,%r16\(%r11\)\+\+
+ f4: 01 88 98 29 fst.d %f24,%r17\(%r12\)\+\+
+ f8: 01 e0 ba 29 fst.d %f26,%r28\(%r13\)\+\+
+ fc: 01 f8 de 29 fst.d %f30,%r31\(%r14\)\+\+
diff --git a/gas/testsuite/gas/i860/fldst05.s b/gas/testsuite/gas/i860/fldst05.s
new file mode 100644
index 0000000..97032aa
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst05.s
@@ -0,0 +1,75 @@
+# fst.d (no relocations here)
+ .text
+
+ # Immediate form, no auto-increment.
+ fst.d %f0,0(%r0)
+ fst.d %f30,128(%r1)
+ fst.d %f28,256(%r2)
+ fst.d %f26,512(%r3)
+ fst.d %f24,1024(%r4)
+ fst.d %f22,4096(%r5)
+ fst.d %f20,8192(%r6)
+ fst.d %f18,16384(%r7)
+ fst.d %f16,32760(%r7)
+ fst.d %f14,-32768(%r7)
+ fst.d %f12,-16384(%r8)
+ fst.d %f10,-8192(%r9)
+ fst.d %f8,-4096(%r10)
+ fst.d %f6,-1024(%r11)
+ fst.d %f4,-512(%r12)
+ fst.d %f2,-248(%r13)
+ fst.d %f0,-8(%r14)
+
+ # Immediate form, with auto-increment.
+ fst.d %f0,0(%r0)++
+ fst.d %f2,128(%r1)++
+ fst.d %f4,256(%r2)++
+ fst.d %f6,512(%r3)++
+ fst.d %f8,1024(%r4)++
+ fst.d %f10,4096(%r5)++
+ fst.d %f12,8192(%r6)++
+ fst.d %f14,16384(%r7)++
+ fst.d %f16,32760(%r7)++
+ fst.d %f18,-32768(%r7)++
+ fst.d %f20,-16384(%r8)++
+ fst.d %f22,-8192(%r9)++
+ fst.d %f24,-4096(%r10)++
+ fst.d %f26,-1024(%r11)++
+ fst.d %f28,-512(%r12)++
+ fst.d %f30,-248(%r13)++
+ fst.d %f16,-8(%r14)++
+
+ # Index form, no auto-increment.
+ fst.d %f0,%r5(%r0)
+ fst.d %f30,%r6(%r1)
+ fst.d %f28,%r7(%r2)
+ fst.d %f26,%r8(%r3)
+ fst.d %f24,%r9(%r4)
+ fst.d %f22,%r0(%r5)
+ fst.d %f20,%r1(%r6)
+ fst.d %f18,%r12(%r7)
+ fst.d %f16,%r13(%r8)
+ fst.d %f14,%r14(%r9)
+ fst.d %f12,%r15(%r10)
+ fst.d %f10,%r16(%r11)
+ fst.d %f8,%r17(%r12)
+ fst.d %f6,%r28(%r13)
+ fst.d %f4,%r31(%r14)
+
+ # Index form, with auto-increment.
+ fst.d %f0,%r5(%r0)++
+ fst.d %f2,%r6(%r1)++
+ fst.d %f4,%r7(%r2)++
+ fst.d %f6,%r8(%r3)++
+ fst.d %f8,%r9(%r4)++
+ fst.d %f10,%r0(%r5)++
+ fst.d %f12,%r1(%r6)++
+ fst.d %f14,%r12(%r7)++
+ fst.d %f16,%r13(%r8)++
+ fst.d %f18,%r14(%r9)++
+ fst.d %f20,%r15(%r10)++
+ fst.d %f22,%r16(%r11)++
+ fst.d %f24,%r17(%r12)++
+ fst.d %f26,%r28(%r13)++
+ fst.d %f30,%r31(%r14)++
+
diff --git a/gas/testsuite/gas/i860/fldst06.d b/gas/testsuite/gas/i860/fldst06.d
new file mode 100644
index 0000000..2fc7ffd
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst06.d
@@ -0,0 +1,73 @@
+#as:
+#objdump: -dr
+#name: fldst06 (fst.q)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 04 00 00 2c fst.q %f0,0\(%r0\)
+ 4: 84 00 3c 2c fst.q %f28,128\(%r1\)
+ 8: 04 01 58 2c fst.q %f24,256\(%sp\)
+ c: 04 02 74 2c fst.q %f20,512\(%fp\)
+ 10: 04 04 90 2c fst.q %f16,1024\(%r4\)
+ 14: 04 10 ac 2c fst.q %f12,4096\(%r5\)
+ 18: 04 20 c8 2c fst.q %f8,8192\(%r6\)
+ 1c: 04 40 e4 2c fst.q %f4,16384\(%r7\)
+ 20: f4 7f e0 2c fst.q %f0,32752\(%r7\)
+ 24: 04 80 fc 2c fst.q %f28,-32768\(%r7\)
+ 28: 04 c0 18 2d fst.q %f24,-16384\(%r8\)
+ 2c: 04 e0 34 2d fst.q %f20,-8192\(%r9\)
+ 30: 04 f0 50 2d fst.q %f16,-4096\(%r10\)
+ 34: 04 fc 6c 2d fst.q %f12,-1024\(%r11\)
+ 38: 04 fe 88 2d fst.q %f8,-512\(%r12\)
+ 3c: 04 ff a4 2d fst.q %f4,-256\(%r13\)
+ 40: f4 ff c0 2d fst.q %f0,-16\(%r14\)
+ 44: 05 00 00 2c fst.q %f0,0\(%r0\)\+\+
+ 48: 85 00 24 2c fst.q %f4,128\(%r1\)\+\+
+ 4c: 05 01 48 2c fst.q %f8,256\(%sp\)\+\+
+ 50: 05 02 6c 2c fst.q %f12,512\(%fp\)\+\+
+ 54: 05 04 90 2c fst.q %f16,1024\(%r4\)\+\+
+ 58: 05 10 b4 2c fst.q %f20,4096\(%r5\)\+\+
+ 5c: 05 20 d8 2c fst.q %f24,8192\(%r6\)\+\+
+ 60: 05 40 fc 2c fst.q %f28,16384\(%r7\)\+\+
+ 64: f5 7f e0 2c fst.q %f0,32752\(%r7\)\+\+
+ 68: 05 80 e4 2c fst.q %f4,-32768\(%r7\)\+\+
+ 6c: 05 c0 08 2d fst.q %f8,-16384\(%r8\)\+\+
+ 70: 05 e0 2c 2d fst.q %f12,-8192\(%r9\)\+\+
+ 74: 05 f0 50 2d fst.q %f16,-4096\(%r10\)\+\+
+ 78: 05 fc 74 2d fst.q %f20,-1024\(%r11\)\+\+
+ 7c: 05 fe 98 2d fst.q %f24,-512\(%r12\)\+\+
+ 80: 05 ff bc 2d fst.q %f28,-256\(%r13\)\+\+
+ 84: f5 ff d0 2d fst.q %f16,-16\(%r14\)\+\+
+ 88: 04 28 00 28 fst.q %f0,%r5\(%r0\)
+ 8c: 04 30 34 28 fst.q %f20,%r6\(%r1\)
+ 90: 04 38 50 28 fst.q %f16,%r7\(%sp\)
+ 94: 04 40 6c 28 fst.q %f12,%r8\(%fp\)
+ 98: 04 48 88 28 fst.q %f8,%r9\(%r4\)
+ 9c: 04 00 a4 28 fst.q %f4,%r0\(%r5\)
+ a0: 04 08 c0 28 fst.q %f0,%r1\(%r6\)
+ a4: 04 60 fc 28 fst.q %f28,%r12\(%r7\)
+ a8: 04 68 18 29 fst.q %f24,%r13\(%r8\)
+ ac: 04 70 34 29 fst.q %f20,%r14\(%r9\)
+ b0: 04 78 50 29 fst.q %f16,%r15\(%r10\)
+ b4: 04 80 6c 29 fst.q %f12,%r16\(%r11\)
+ b8: 04 88 88 29 fst.q %f8,%r17\(%r12\)
+ bc: 04 e0 a4 29 fst.q %f4,%r28\(%r13\)
+ c0: 04 f8 c0 29 fst.q %f0,%r31\(%r14\)
+ c4: 05 28 00 28 fst.q %f0,%r5\(%r0\)\+\+
+ c8: 05 30 24 28 fst.q %f4,%r6\(%r1\)\+\+
+ cc: 05 38 48 28 fst.q %f8,%r7\(%sp\)\+\+
+ d0: 05 40 6c 28 fst.q %f12,%r8\(%fp\)\+\+
+ d4: 05 48 90 28 fst.q %f16,%r9\(%r4\)\+\+
+ d8: 05 00 b4 28 fst.q %f20,%r0\(%r5\)\+\+
+ dc: 05 08 d8 28 fst.q %f24,%r1\(%r6\)\+\+
+ e0: 05 60 fc 28 fst.q %f28,%r12\(%r7\)\+\+
+ e4: 05 68 00 29 fst.q %f0,%r13\(%r8\)\+\+
+ e8: 05 70 24 29 fst.q %f4,%r14\(%r9\)\+\+
+ ec: 05 78 48 29 fst.q %f8,%r15\(%r10\)\+\+
+ f0: 05 80 6c 29 fst.q %f12,%r16\(%r11\)\+\+
+ f4: 05 88 90 29 fst.q %f16,%r17\(%r12\)\+\+
+ f8: 05 e0 b4 29 fst.q %f20,%r28\(%r13\)\+\+
+ fc: 05 f8 d8 29 fst.q %f24,%r31\(%r14\)\+\+
diff --git a/gas/testsuite/gas/i860/fldst06.s b/gas/testsuite/gas/i860/fldst06.s
new file mode 100644
index 0000000..0bb1476
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst06.s
@@ -0,0 +1,75 @@
+# fst.q (no relocations here)
+ .text
+
+ # Immediate form, no auto-increment.
+ fst.q %f0,0(%r0)
+ fst.q %f28,128(%r1)
+ fst.q %f24,256(%r2)
+ fst.q %f20,512(%r3)
+ fst.q %f16,1024(%r4)
+ fst.q %f12,4096(%r5)
+ fst.q %f8,8192(%r6)
+ fst.q %f4,16384(%r7)
+ fst.q %f0,32752(%r7)
+ fst.q %f28,-32768(%r7)
+ fst.q %f24,-16384(%r8)
+ fst.q %f20,-8192(%r9)
+ fst.q %f16,-4096(%r10)
+ fst.q %f12,-1024(%r11)
+ fst.q %f8,-512(%r12)
+ fst.q %f4,-256(%r13)
+ fst.q %f0,-16(%r14)
+
+ # Immediate form, with auto-increment.
+ fst.q %f0,0(%r0)++
+ fst.q %f4,128(%r1)++
+ fst.q %f8,256(%r2)++
+ fst.q %f12,512(%r3)++
+ fst.q %f16,1024(%r4)++
+ fst.q %f20,4096(%r5)++
+ fst.q %f24,8192(%r6)++
+ fst.q %f28,16384(%r7)++
+ fst.q %f0,32752(%r7)++
+ fst.q %f4,-32768(%r7)++
+ fst.q %f8,-16384(%r8)++
+ fst.q %f12,-8192(%r9)++
+ fst.q %f16,-4096(%r10)++
+ fst.q %f20,-1024(%r11)++
+ fst.q %f24,-512(%r12)++
+ fst.q %f28,-256(%r13)++
+ fst.q %f16,-16(%r14)++
+
+ # Index form, no auto-increment.
+ fst.q %f0,%r5(%r0)
+ fst.q %f20,%r6(%r1)
+ fst.q %f16,%r7(%r2)
+ fst.q %f12,%r8(%r3)
+ fst.q %f8,%r9(%r4)
+ fst.q %f4,%r0(%r5)
+ fst.q %f0,%r1(%r6)
+ fst.q %f28,%r12(%r7)
+ fst.q %f24,%r13(%r8)
+ fst.q %f20,%r14(%r9)
+ fst.q %f16,%r15(%r10)
+ fst.q %f12,%r16(%r11)
+ fst.q %f8,%r17(%r12)
+ fst.q %f4,%r28(%r13)
+ fst.q %f0,%r31(%r14)
+
+ # Index form, with auto-increment.
+ fst.q %f0,%r5(%r0)++
+ fst.q %f4,%r6(%r1)++
+ fst.q %f8,%r7(%r2)++
+ fst.q %f12,%r8(%r3)++
+ fst.q %f16,%r9(%r4)++
+ fst.q %f20,%r0(%r5)++
+ fst.q %f24,%r1(%r6)++
+ fst.q %f28,%r12(%r7)++
+ fst.q %f0,%r13(%r8)++
+ fst.q %f4,%r14(%r9)++
+ fst.q %f8,%r15(%r10)++
+ fst.q %f12,%r16(%r11)++
+ fst.q %f16,%r17(%r12)++
+ fst.q %f20,%r28(%r13)++
+ fst.q %f24,%r31(%r14)++
+
diff --git a/gas/testsuite/gas/i860/fldst07.d b/gas/testsuite/gas/i860/fldst07.d
new file mode 100644
index 0000000..86e803e
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst07.d
@@ -0,0 +1,73 @@
+#as:
+#objdump: -dr
+#name: fldst07 (pfld.l)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 02 00 00 64 pfld.l 0\(%r0\),%f0
+ 4: 7e 00 3f 64 pfld.l 124\(%r1\),%f31
+ 8: 02 01 5e 64 pfld.l 256\(%sp\),%f30
+ c: 02 02 7d 64 pfld.l 512\(%fp\),%f29
+ 10: 02 04 9c 64 pfld.l 1024\(%r4\),%f28
+ 14: 02 10 bb 64 pfld.l 4096\(%r5\),%f27
+ 18: 02 20 da 64 pfld.l 8192\(%r6\),%f26
+ 1c: 02 40 f9 64 pfld.l 16384\(%r7\),%f25
+ 20: fe 7f f9 64 pfld.l 32764\(%r7\),%f25
+ 24: 02 80 f7 64 pfld.l -32768\(%r7\),%f23
+ 28: 02 c0 02 65 pfld.l -16384\(%r8\),%f2
+ 2c: 02 e0 23 65 pfld.l -8192\(%r9\),%f3
+ 30: 02 f0 48 65 pfld.l -4096\(%r10\),%f8
+ 34: 02 fc 69 65 pfld.l -1024\(%r11\),%f9
+ 38: 06 fe 8c 65 pfld.l -508\(%r12\),%f12
+ 3c: 0a ff b3 65 pfld.l -248\(%r13\),%f19
+ 40: fe ff d5 65 pfld.l -4\(%r14\),%f21
+ 44: 03 00 00 64 pfld.l 0\(%r0\)\+\+,%f0
+ 48: 7f 00 21 64 pfld.l 124\(%r1\)\+\+,%f1
+ 4c: 03 01 42 64 pfld.l 256\(%sp\)\+\+,%f2
+ 50: 03 02 63 64 pfld.l 512\(%fp\)\+\+,%f3
+ 54: 03 04 84 64 pfld.l 1024\(%r4\)\+\+,%f4
+ 58: 03 10 a5 64 pfld.l 4096\(%r5\)\+\+,%f5
+ 5c: 03 20 c6 64 pfld.l 8192\(%r6\)\+\+,%f6
+ 60: 03 40 e7 64 pfld.l 16384\(%r7\)\+\+,%f7
+ 64: ff 7f e8 64 pfld.l 32764\(%r7\)\+\+,%f8
+ 68: 03 80 e9 64 pfld.l -32768\(%r7\)\+\+,%f9
+ 6c: 03 c0 0a 65 pfld.l -16384\(%r8\)\+\+,%f10
+ 70: 03 e0 2b 65 pfld.l -8192\(%r9\)\+\+,%f11
+ 74: 03 f0 4c 65 pfld.l -4096\(%r10\)\+\+,%f12
+ 78: 03 fc 6d 65 pfld.l -1024\(%r11\)\+\+,%f13
+ 7c: 07 fe 8e 65 pfld.l -508\(%r12\)\+\+,%f14
+ 80: 0b ff af 65 pfld.l -248\(%r13\)\+\+,%f15
+ 84: ff ff d0 65 pfld.l -4\(%r14\)\+\+,%f16
+ 88: 02 28 00 60 pfld.l %r5\(%r0\),%f0
+ 8c: 02 30 3f 60 pfld.l %r6\(%r1\),%f31
+ 90: 02 38 5e 60 pfld.l %r7\(%sp\),%f30
+ 94: 02 40 7d 60 pfld.l %r8\(%fp\),%f29
+ 98: 02 48 9c 60 pfld.l %r9\(%r4\),%f28
+ 9c: 02 00 bb 60 pfld.l %r0\(%r5\),%f27
+ a0: 02 08 da 60 pfld.l %r1\(%r6\),%f26
+ a4: 02 60 f9 60 pfld.l %r12\(%r7\),%f25
+ a8: 02 68 18 61 pfld.l %r13\(%r8\),%f24
+ ac: 02 70 37 61 pfld.l %r14\(%r9\),%f23
+ b0: 02 78 56 61 pfld.l %r15\(%r10\),%f22
+ b4: 02 80 75 61 pfld.l %r16\(%r11\),%f21
+ b8: 02 88 94 61 pfld.l %r17\(%r12\),%f20
+ bc: 02 e0 b3 61 pfld.l %r28\(%r13\),%f19
+ c0: 02 f8 d2 61 pfld.l %r31\(%r14\),%f18
+ c4: 03 28 00 60 pfld.l %r5\(%r0\)\+\+,%f0
+ c8: 03 30 21 60 pfld.l %r6\(%r1\)\+\+,%f1
+ cc: 03 38 42 60 pfld.l %r7\(%sp\)\+\+,%f2
+ d0: 03 40 63 60 pfld.l %r8\(%fp\)\+\+,%f3
+ d4: 03 48 84 60 pfld.l %r9\(%r4\)\+\+,%f4
+ d8: 03 00 a5 60 pfld.l %r0\(%r5\)\+\+,%f5
+ dc: 03 08 c6 60 pfld.l %r1\(%r6\)\+\+,%f6
+ e0: 03 60 e7 60 pfld.l %r12\(%r7\)\+\+,%f7
+ e4: 03 68 08 61 pfld.l %r13\(%r8\)\+\+,%f8
+ e8: 03 70 29 61 pfld.l %r14\(%r9\)\+\+,%f9
+ ec: 03 78 4a 61 pfld.l %r15\(%r10\)\+\+,%f10
+ f0: 03 80 6b 61 pfld.l %r16\(%r11\)\+\+,%f11
+ f4: 03 88 8c 61 pfld.l %r17\(%r12\)\+\+,%f12
+ f8: 03 e0 ad 61 pfld.l %r28\(%r13\)\+\+,%f13
+ fc: 03 f8 ce 61 pfld.l %r31\(%r14\)\+\+,%f14
diff --git a/gas/testsuite/gas/i860/fldst07.s b/gas/testsuite/gas/i860/fldst07.s
new file mode 100644
index 0000000..410b256
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst07.s
@@ -0,0 +1,75 @@
+# pfld.l (no relocations here)
+ .text
+
+ # Immediate form, no auto-increment.
+ pfld.l 0(%r0),%f0
+ pfld.l 124(%r1),%f31
+ pfld.l 256(%r2),%f30
+ pfld.l 512(%r3),%f29
+ pfld.l 1024(%r4),%f28
+ pfld.l 4096(%r5),%f27
+ pfld.l 8192(%r6),%f26
+ pfld.l 16384(%r7),%f25
+ pfld.l 32764(%r7),%f25
+ pfld.l -32768(%r7),%f23
+ pfld.l -16384(%r8),%f2
+ pfld.l -8192(%r9),%f3
+ pfld.l -4096(%r10),%f8
+ pfld.l -1024(%r11),%f9
+ pfld.l -508(%r12),%f12
+ pfld.l -248(%r13),%f19
+ pfld.l -4(%r14),%f21
+
+ # Immediate form, with auto-increment.
+ pfld.l 0(%r0)++,%f0
+ pfld.l 124(%r1)++,%f1
+ pfld.l 256(%r2)++,%f2
+ pfld.l 512(%r3)++,%f3
+ pfld.l 1024(%r4)++,%f4
+ pfld.l 4096(%r5)++,%f5
+ pfld.l 8192(%r6)++,%f6
+ pfld.l 16384(%r7)++,%f7
+ pfld.l 32764(%r7)++,%f8
+ pfld.l -32768(%r7)++,%f9
+ pfld.l -16384(%r8)++,%f10
+ pfld.l -8192(%r9)++,%f11
+ pfld.l -4096(%r10)++,%f12
+ pfld.l -1024(%r11)++,%f13
+ pfld.l -508(%r12)++,%f14
+ pfld.l -248(%r13)++,%f15
+ pfld.l -4(%r14)++,%f16
+
+ # Index form, no auto-increment.
+ pfld.l %r5(%r0),%f0
+ pfld.l %r6(%r1),%f31
+ pfld.l %r7(%r2),%f30
+ pfld.l %r8(%r3),%f29
+ pfld.l %r9(%r4),%f28
+ pfld.l %r0(%r5),%f27
+ pfld.l %r1(%r6),%f26
+ pfld.l %r12(%r7),%f25
+ pfld.l %r13(%r8),%f24
+ pfld.l %r14(%r9),%f23
+ pfld.l %r15(%r10),%f22
+ pfld.l %r16(%r11),%f21
+ pfld.l %r17(%r12),%f20
+ pfld.l %r28(%r13),%f19
+ pfld.l %r31(%r14),%f18
+
+ # Index form, with auto-increment.
+ pfld.l %r5(%r0)++,%f0
+ pfld.l %r6(%r1)++,%f1
+ pfld.l %r7(%r2)++,%f2
+ pfld.l %r8(%r3)++,%f3
+ pfld.l %r9(%r4)++,%f4
+ pfld.l %r0(%r5)++,%f5
+ pfld.l %r1(%r6)++,%f6
+ pfld.l %r12(%r7)++,%f7
+ pfld.l %r13(%r8)++,%f8
+ pfld.l %r14(%r9)++,%f9
+ pfld.l %r15(%r10)++,%f10
+ pfld.l %r16(%r11)++,%f11
+ pfld.l %r17(%r12)++,%f12
+ pfld.l %r28(%r13)++,%f13
+ pfld.l %r31(%r14)++,%f14
+
diff --git a/gas/testsuite/gas/i860/fldst08.d b/gas/testsuite/gas/i860/fldst08.d
new file mode 100644
index 0000000..34b4247
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst08.d
@@ -0,0 +1,73 @@
+#as:
+#objdump: -dr
+#name: fldst08 (pfld.d)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 00 00 00 64 pfld.d 0\(%r0\),%f0
+ 4: 80 00 3e 64 pfld.d 128\(%r1\),%f30
+ 8: 00 01 5c 64 pfld.d 256\(%sp\),%f28
+ c: 00 02 7a 64 pfld.d 512\(%fp\),%f26
+ 10: 00 04 98 64 pfld.d 1024\(%r4\),%f24
+ 14: 00 10 b6 64 pfld.d 4096\(%r5\),%f22
+ 18: 00 20 d4 64 pfld.d 8192\(%r6\),%f20
+ 1c: 00 40 f2 64 pfld.d 16384\(%r7\),%f18
+ 20: f8 7f f0 64 pfld.d 32760\(%r7\),%f16
+ 24: 00 80 ee 64 pfld.d -32768\(%r7\),%f14
+ 28: 00 c0 0c 65 pfld.d -16384\(%r8\),%f12
+ 2c: 00 e0 2a 65 pfld.d -8192\(%r9\),%f10
+ 30: 00 f0 48 65 pfld.d -4096\(%r10\),%f8
+ 34: 00 fc 66 65 pfld.d -1024\(%r11\),%f6
+ 38: 00 fe 84 65 pfld.d -512\(%r12\),%f4
+ 3c: 08 ff a2 65 pfld.d -248\(%r13\),%f2
+ 40: f8 ff c0 65 pfld.d -8\(%r14\),%f0
+ 44: 01 00 00 64 pfld.d 0\(%r0\)\+\+,%f0
+ 48: 81 00 22 64 pfld.d 128\(%r1\)\+\+,%f2
+ 4c: 01 01 44 64 pfld.d 256\(%sp\)\+\+,%f4
+ 50: 01 02 66 64 pfld.d 512\(%fp\)\+\+,%f6
+ 54: 01 04 88 64 pfld.d 1024\(%r4\)\+\+,%f8
+ 58: 01 10 aa 64 pfld.d 4096\(%r5\)\+\+,%f10
+ 5c: 01 20 cc 64 pfld.d 8192\(%r6\)\+\+,%f12
+ 60: 01 40 ee 64 pfld.d 16384\(%r7\)\+\+,%f14
+ 64: f9 7f f0 64 pfld.d 32760\(%r7\)\+\+,%f16
+ 68: 01 80 f2 64 pfld.d -32768\(%r7\)\+\+,%f18
+ 6c: 01 c0 14 65 pfld.d -16384\(%r8\)\+\+,%f20
+ 70: 01 e0 36 65 pfld.d -8192\(%r9\)\+\+,%f22
+ 74: 01 f0 58 65 pfld.d -4096\(%r10\)\+\+,%f24
+ 78: 01 fc 7a 65 pfld.d -1024\(%r11\)\+\+,%f26
+ 7c: 01 fe 9c 65 pfld.d -512\(%r12\)\+\+,%f28
+ 80: 09 ff be 65 pfld.d -248\(%r13\)\+\+,%f30
+ 84: f9 ff d0 65 pfld.d -8\(%r14\)\+\+,%f16
+ 88: 00 28 00 60 pfld.d %r5\(%r0\),%f0
+ 8c: 00 30 3e 60 pfld.d %r6\(%r1\),%f30
+ 90: 00 38 5c 60 pfld.d %r7\(%sp\),%f28
+ 94: 00 40 7a 60 pfld.d %r8\(%fp\),%f26
+ 98: 00 48 98 60 pfld.d %r9\(%r4\),%f24
+ 9c: 00 00 b6 60 pfld.d %r0\(%r5\),%f22
+ a0: 00 08 d4 60 pfld.d %r1\(%r6\),%f20
+ a4: 00 60 f2 60 pfld.d %r12\(%r7\),%f18
+ a8: 00 68 10 61 pfld.d %r13\(%r8\),%f16
+ ac: 00 70 2e 61 pfld.d %r14\(%r9\),%f14
+ b0: 00 78 4c 61 pfld.d %r15\(%r10\),%f12
+ b4: 00 80 6a 61 pfld.d %r16\(%r11\),%f10
+ b8: 00 88 88 61 pfld.d %r17\(%r12\),%f8
+ bc: 00 e0 a6 61 pfld.d %r28\(%r13\),%f6
+ c0: 00 f8 c4 61 pfld.d %r31\(%r14\),%f4
+ c4: 01 28 00 60 pfld.d %r5\(%r0\)\+\+,%f0
+ c8: 01 30 22 60 pfld.d %r6\(%r1\)\+\+,%f2
+ cc: 01 38 44 60 pfld.d %r7\(%sp\)\+\+,%f4
+ d0: 01 40 66 60 pfld.d %r8\(%fp\)\+\+,%f6
+ d4: 01 48 88 60 pfld.d %r9\(%r4\)\+\+,%f8
+ d8: 01 00 aa 60 pfld.d %r0\(%r5\)\+\+,%f10
+ dc: 01 08 cc 60 pfld.d %r1\(%r6\)\+\+,%f12
+ e0: 01 60 ee 60 pfld.d %r12\(%r7\)\+\+,%f14
+ e4: 01 68 10 61 pfld.d %r13\(%r8\)\+\+,%f16
+ e8: 01 70 32 61 pfld.d %r14\(%r9\)\+\+,%f18
+ ec: 01 78 54 61 pfld.d %r15\(%r10\)\+\+,%f20
+ f0: 01 80 76 61 pfld.d %r16\(%r11\)\+\+,%f22
+ f4: 01 88 98 61 pfld.d %r17\(%r12\)\+\+,%f24
+ f8: 01 e0 ba 61 pfld.d %r28\(%r13\)\+\+,%f26
+ fc: 01 f8 de 61 pfld.d %r31\(%r14\)\+\+,%f30
diff --git a/gas/testsuite/gas/i860/fldst08.s b/gas/testsuite/gas/i860/fldst08.s
new file mode 100644
index 0000000..7ae6cf5
--- /dev/null
+++ b/gas/testsuite/gas/i860/fldst08.s
@@ -0,0 +1,75 @@
+# pfld.d (no relocations here)
+ .text
+
+ # Immediate form, no auto-increment.
+ pfld.d 0(%r0),%f0
+ pfld.d 128(%r1),%f30
+ pfld.d 256(%r2),%f28
+ pfld.d 512(%r3),%f26
+ pfld.d 1024(%r4),%f24
+ pfld.d 4096(%r5),%f22
+ pfld.d 8192(%r6),%f20
+ pfld.d 16384(%r7),%f18
+ pfld.d 32760(%r7),%f16
+ pfld.d -32768(%r7),%f14
+ pfld.d -16384(%r8),%f12
+ pfld.d -8192(%r9),%f10
+ pfld.d -4096(%r10),%f8
+ pfld.d -1024(%r11),%f6
+ pfld.d -512(%r12),%f4
+ pfld.d -248(%r13),%f2
+ pfld.d -8(%r14),%f0
+
+ # Immediate form, with auto-increment.
+ pfld.d 0(%r0)++,%f0
+ pfld.d 128(%r1)++,%f2
+ pfld.d 256(%r2)++,%f4
+ pfld.d 512(%r3)++,%f6
+ pfld.d 1024(%r4)++,%f8
+ pfld.d 4096(%r5)++,%f10
+ pfld.d 8192(%r6)++,%f12
+ pfld.d 16384(%r7)++,%f14
+ pfld.d 32760(%r7)++,%f16
+ pfld.d -32768(%r7)++,%f18
+ pfld.d -16384(%r8)++,%f20
+ pfld.d -8192(%r9)++,%f22
+ pfld.d -4096(%r10)++,%f24
+ pfld.d -1024(%r11)++,%f26
+ pfld.d -512(%r12)++,%f28
+ pfld.d -248(%r13)++,%f30
+ pfld.d -8(%r14)++,%f16
+
+ # Index form, no auto-increment.
+ pfld.d %r5(%r0),%f0
+ pfld.d %r6(%r1),%f30
+ pfld.d %r7(%r2),%f28
+ pfld.d %r8(%r3),%f26
+ pfld.d %r9(%r4),%f24
+ pfld.d %r0(%r5),%f22
+ pfld.d %r1(%r6),%f20
+ pfld.d %r12(%r7),%f18
+ pfld.d %r13(%r8),%f16
+ pfld.d %r14(%r9),%f14
+ pfld.d %r15(%r10),%f12
+ pfld.d %r16(%r11),%f10
+ pfld.d %r17(%r12),%f8
+ pfld.d %r28(%r13),%f6
+ pfld.d %r31(%r14),%f4
+
+ # Index form, with auto-increment.
+ pfld.d %r5(%r0)++,%f0
+ pfld.d %r6(%r1)++,%f2
+ pfld.d %r7(%r2)++,%f4
+ pfld.d %r8(%r3)++,%f6
+ pfld.d %r9(%r4)++,%f8
+ pfld.d %r0(%r5)++,%f10
+ pfld.d %r1(%r6)++,%f12
+ pfld.d %r12(%r7)++,%f14
+ pfld.d %r13(%r8)++,%f16
+ pfld.d %r14(%r9)++,%f18
+ pfld.d %r15(%r10)++,%f20
+ pfld.d %r16(%r11)++,%f22
+ pfld.d %r17(%r12)++,%f24
+ pfld.d %r28(%r13)++,%f26
+ pfld.d %r31(%r14)++,%f30
+
diff --git a/gas/testsuite/gas/i860/float01.d b/gas/testsuite/gas/i860/float01.d
new file mode 100644
index 0000000..03dad16
--- /dev/null
+++ b/gas/testsuite/gas/i860/float01.d
@@ -0,0 +1,69 @@
+#as:
+#objdump: -dr
+#name: float01
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 30 00 22 48 fadd.ss %f0,%f1,%f2
+ 4: b0 10 64 48 fadd.sd %f2,%f3,%f4
+ 8: b0 31 0a 49 fadd.dd %f6,%f8,%f10
+ c: 31 28 c7 48 fsub.ss %f5,%f6,%f7
+ 10: b1 40 2a 49 fsub.sd %f8,%f9,%f10
+ 14: b1 61 d0 49 fsub.dd %f12,%f14,%f16
+ 18: 20 58 8d 49 fmul.ss %f11,%f12,%f13
+ 1c: a0 70 f0 49 fmul.sd %f14,%f15,%f16
+ 20: a0 91 96 4a fmul.dd %f18,%f20,%f22
+ 24: a1 b1 1a 4b fmlow.dd %f22,%f24,%f26
+ 28: 30 74 f0 49 pfadd.ss %f14,%f15,%f16
+ 2c: b0 8c 54 4a pfadd.sd %f17,%f18,%f20
+ 30: b0 b5 1a 4b pfadd.dd %f22,%f24,%f26
+ 34: 31 a4 b6 4a pfsub.ss %f20,%f21,%f22
+ 38: b1 bc 1a 4b pfsub.sd %f23,%f24,%f26
+ 3c: b1 e5 c2 4b pfsub.dd %f28,%f30,%f2
+ 40: 20 dc 9d 4b pfmul.ss %f27,%f28,%f29
+ 44: a0 f4 e4 4b pfmul.sd %f30,%f31,%f4
+ 48: a0 35 08 48 pfmul.dd %f6,%f0,%f8
+ 4c: a4 15 9e 48 pfmul3.dd %f2,%f4,%f30
+ 50: 30 02 22 48 d.fadd.ss %f0,%f1,%f2
+ 54: 00 00 00 a0 shl %r0,%r0,%r0
+ 58: b0 12 64 48 d.fadd.sd %f2,%f3,%f4
+ 5c: 00 00 00 a0 shl %r0,%r0,%r0
+ 60: b0 33 0a 49 d.fadd.dd %f6,%f8,%f10
+ 64: 00 00 00 a0 shl %r0,%r0,%r0
+ 68: 31 2a c7 48 d.fsub.ss %f5,%f6,%f7
+ 6c: 00 00 00 a0 shl %r0,%r0,%r0
+ 70: b1 42 2a 49 d.fsub.sd %f8,%f9,%f10
+ 74: 00 00 00 a0 shl %r0,%r0,%r0
+ 78: b1 63 d0 49 d.fsub.dd %f12,%f14,%f16
+ 7c: 00 00 00 a0 shl %r0,%r0,%r0
+ 80: 20 5a 8d 49 d.fmul.ss %f11,%f12,%f13
+ 84: 00 00 00 a0 shl %r0,%r0,%r0
+ 88: a0 72 f0 49 d.fmul.sd %f14,%f15,%f16
+ 8c: 00 00 00 a0 shl %r0,%r0,%r0
+ 90: a0 93 96 4a d.fmul.dd %f18,%f20,%f22
+ 94: 00 00 00 a0 shl %r0,%r0,%r0
+ 98: a1 43 4c 49 d.fmlow.dd %f8,%f10,%f12
+ 9c: 00 00 00 a0 shl %r0,%r0,%r0
+ a0: 30 76 f0 49 d.pfadd.ss %f14,%f15,%f16
+ a4: 00 00 00 a0 shl %r0,%r0,%r0
+ a8: b0 8e 54 4a d.pfadd.sd %f17,%f18,%f20
+ ac: 00 00 00 a0 shl %r0,%r0,%r0
+ b0: b0 b7 1a 4b d.pfadd.dd %f22,%f24,%f26
+ b4: 00 00 00 a0 shl %r0,%r0,%r0
+ b8: 31 a6 b6 4a d.pfsub.ss %f20,%f21,%f22
+ bc: 00 00 00 a0 shl %r0,%r0,%r0
+ c0: b1 be 1a 4b d.pfsub.sd %f23,%f24,%f26
+ c4: 00 00 00 a0 shl %r0,%r0,%r0
+ c8: b1 e7 c2 4b d.pfsub.dd %f28,%f30,%f2
+ cc: 00 00 00 a0 shl %r0,%r0,%r0
+ d0: 20 de 9d 4b d.pfmul.ss %f27,%f28,%f29
+ d4: 00 00 00 a0 shl %r0,%r0,%r0
+ d8: a0 f6 e4 4b d.pfmul.sd %f30,%f31,%f4
+ dc: 00 00 00 a0 shl %r0,%r0,%r0
+ e0: a0 37 08 48 d.pfmul.dd %f6,%f0,%f8
+ e4: 00 00 00 a0 shl %r0,%r0,%r0
+ e8: a4 17 9e 48 d.pfmul3.dd %f2,%f4,%f30
+ ec: 00 00 00 a0 shl %r0,%r0,%r0
diff --git a/gas/testsuite/gas/i860/float01.s b/gas/testsuite/gas/i860/float01.s
new file mode 100644
index 0000000..88e3769
--- /dev/null
+++ b/gas/testsuite/gas/i860/float01.s
@@ -0,0 +1,84 @@
+# fadd, fsub, fmul, pfmul3, fmlow
+
+ .text
+
+ # Non-pipelined, without dual bit
+ fadd.ss %f0,%f1,%f2
+ fadd.sd %f2,%f3,%f4
+ fadd.dd %f6,%f8,%f10
+
+ fsub.ss %f5,%f6,%f7
+ fsub.sd %f8,%f9,%f10
+ fsub.dd %f12,%f14,%f16
+
+ fmul.ss %f11,%f12,%f13
+ fmul.sd %f14,%f15,%f16
+ fmul.dd %f18,%f20,%f22
+
+ fmlow.dd %f22,%f24,%f26
+
+ # Pipelined, without dual bit
+ pfadd.ss %f14,%f15,%f16
+ pfadd.sd %f17,%f18,%f20
+ pfadd.dd %f22,%f24,%f26
+
+ pfsub.ss %f20,%f21,%f22
+ pfsub.sd %f23,%f24,%f26
+ pfsub.dd %f28,%f30,%f2
+
+ pfmul.ss %f27,%f28,%f29
+ pfmul.sd %f30,%f31,%f4
+ pfmul.dd %f6,%f0,%f8
+
+ pfmul3.dd %f2,%f4,%f30
+
+ # Non-pipelined, with dual bit
+ d.fadd.ss %f0,%f1,%f2
+ nop
+ d.fadd.sd %f2,%f3,%f4
+ nop
+ d.fadd.dd %f6,%f8,%f10
+ nop
+
+ d.fsub.ss %f5,%f6,%f7
+ nop
+ d.fsub.sd %f8,%f9,%f10
+ nop
+ d.fsub.dd %f12,%f14,%f16
+ nop
+
+ d.fmul.ss %f11,%f12,%f13
+ nop
+ d.fmul.sd %f14,%f15,%f16
+ nop
+ d.fmul.dd %f18,%f20,%f22
+ nop
+
+ d.fmlow.dd %f8,%f10,%f12
+ nop
+
+ # Pipelined, with dual bit
+ d.pfadd.ss %f14,%f15,%f16
+ nop
+ d.pfadd.sd %f17,%f18,%f20
+ nop
+ d.pfadd.dd %f22,%f24,%f26
+ nop
+
+ d.pfsub.ss %f20,%f21,%f22
+ nop
+ d.pfsub.sd %f23,%f24,%f26
+ nop
+ d.pfsub.dd %f28,%f30,%f2
+ nop
+
+ d.pfmul.ss %f27,%f28,%f29
+ nop
+ d.pfmul.sd %f30,%f31,%f4
+ nop
+ d.pfmul.dd %f6,%f0,%f8
+ nop
+
+ d.pfmul3.dd %f2,%f4,%f30
+ nop
+
diff --git a/gas/testsuite/gas/i860/float02.d b/gas/testsuite/gas/i860/float02.d
new file mode 100644
index 0000000..0166b14
--- /dev/null
+++ b/gas/testsuite/gas/i860/float02.d
@@ -0,0 +1,39 @@
+#as:
+#objdump: -dr
+#name: float02
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 22 00 01 48 frcp.ss %f0,%f1
+ 4: a2 00 44 48 frcp.sd %f2,%f4
+ 8: a2 01 c8 48 frcp.dd %f6,%f8
+ c: 23 00 a6 48 frsqr.ss %f5,%f6
+ 10: a3 00 0a 49 frsqr.sd %f8,%f10
+ 14: a3 01 8e 49 frsqr.dd %f12,%f14
+ 18: 33 08 1f 48 famov.ss %f1,%f31
+ 1c: 33 11 1e 48 famov.ds %f2,%f30
+ 20: b3 38 10 48 famov.sd %f7,%f16
+ 24: b3 c1 0c 48 famov.dd %f24,%f12
+ 28: 22 02 01 48 d.frcp.ss %f0,%f1
+ 2c: 00 00 00 a0 shl %r0,%r0,%r0
+ 30: a2 02 5e 48 d.frcp.sd %f2,%f30
+ 34: 00 00 00 a0 shl %r0,%r0,%r0
+ 38: a2 03 c8 48 d.frcp.dd %f6,%f8
+ 3c: 00 00 00 a0 shl %r0,%r0,%r0
+ 40: 23 02 a6 48 d.frsqr.ss %f5,%f6
+ 44: 00 00 00 a0 shl %r0,%r0,%r0
+ 48: a3 02 18 49 d.frsqr.sd %f8,%f24
+ 4c: 00 00 00 a0 shl %r0,%r0,%r0
+ 50: a3 03 8e 49 d.frsqr.dd %f12,%f14
+ 54: 00 00 00 a0 shl %r0,%r0,%r0
+ 58: 33 2a 0d 48 d.famov.ss %f5,%f13
+ 5c: 00 00 00 a0 shl %r0,%r0,%r0
+ 60: 33 f3 15 48 d.famov.ds %f30,%f21
+ 64: 00 00 00 a0 shl %r0,%r0,%r0
+ 68: b3 ba 16 48 d.famov.sd %f23,%f22
+ 6c: 00 00 00 a0 shl %r0,%r0,%r0
+ 70: b3 03 0c 48 d.famov.dd %f0,%f12
+ 74: 00 00 00 a0 shl %r0,%r0,%r0
diff --git a/gas/testsuite/gas/i860/float02.s b/gas/testsuite/gas/i860/float02.s
new file mode 100644
index 0000000..d4a475d
--- /dev/null
+++ b/gas/testsuite/gas/i860/float02.s
@@ -0,0 +1,42 @@
+# frcp, frsqr, famov
+
+ .text
+
+ # Without dual bit
+ frcp.ss %f0,%f1
+ frcp.sd %f2,%f4
+ frcp.dd %f6,%f8
+
+ frsqr.ss %f5,%f6
+ frsqr.sd %f8,%f10
+ frsqr.dd %f12,%f14
+
+ famov.ss %f1,%f31
+ famov.ds %f2,%f30
+ famov.sd %f7,%f16
+ famov.dd %f24,%f12
+
+ # With dual bit
+ d.frcp.ss %f0,%f1
+ nop
+ d.frcp.sd %f2,%f30
+ nop
+ d.frcp.dd %f6,%f8
+ nop
+
+ d.frsqr.ss %f5,%f6
+ nop
+ d.frsqr.sd %f8,%f24
+ nop
+ d.frsqr.dd %f12,%f14
+ nop
+
+ d.famov.ss %f5,%f13
+ nop
+ d.famov.ds %f30,%f21
+ nop
+ d.famov.sd %f23,%f22
+ nop
+ d.famov.dd %f0,%f12
+ nop
+
diff --git a/gas/testsuite/gas/i860/float03.d b/gas/testsuite/gas/i860/float03.d
new file mode 100644
index 0000000..6bf184f
--- /dev/null
+++ b/gas/testsuite/gas/i860/float03.d
@@ -0,0 +1,51 @@
+#as:
+#objdump: -dr
+#name: float03
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: b2 10 04 48 fix.sd %f2,%f4
+ 4: b2 31 08 48 fix.dd %f6,%f8
+ 8: ba 40 0a 48 ftrunc.sd %f8,%f10
+ c: ba 61 0e 48 ftrunc.dd %f12,%f14
+ 10: b2 f4 0e 48 pfix.sd %f30,%f14
+ 14: b2 c5 02 48 pfix.dd %f24,%f2
+ 18: ba 44 0a 48 pftrunc.sd %f8,%f10
+ 1c: ba 65 0e 48 pftrunc.dd %f12,%f14
+ 20: 34 04 22 48 pfgt.ss %f0,%f1,%f2
+ 24: 34 35 0a 49 pfgt.dd %f6,%f8,%f10
+ 28: b4 2c c7 48 pfle.ss %f5,%f6,%f7
+ 2c: b4 65 d0 49 pfle.dd %f12,%f14,%f16
+ 30: 35 5c 8d 49 pfeq.ss %f11,%f12,%f13
+ 34: 35 95 96 4a pfeq.dd %f18,%f20,%f22
+ 38: b2 12 1e 48 d.fix.sd %f2,%f30
+ 3c: 00 00 00 a0 shl %r0,%r0,%r0
+ 40: b2 33 08 48 d.fix.dd %f6,%f8
+ 44: 00 00 00 a0 shl %r0,%r0,%r0
+ 48: ba 42 18 48 d.ftrunc.sd %f8,%f24
+ 4c: 00 00 00 a0 shl %r0,%r0,%r0
+ 50: ba 63 0e 48 d.ftrunc.dd %f12,%f14
+ 54: 00 00 00 a0 shl %r0,%r0,%r0
+ 58: b2 16 1e 48 d.pfix.sd %f2,%f30
+ 5c: 00 00 00 a0 shl %r0,%r0,%r0
+ 60: b2 37 08 48 d.pfix.dd %f6,%f8
+ 64: 00 00 00 a0 shl %r0,%r0,%r0
+ 68: ba 46 18 48 d.pftrunc.sd %f8,%f24
+ 6c: 00 00 00 a0 shl %r0,%r0,%r0
+ 70: ba 67 0e 48 d.pftrunc.dd %f12,%f14
+ 74: 00 00 00 a0 shl %r0,%r0,%r0
+ 78: 34 06 22 48 d.pfgt.ss %f0,%f1,%f2
+ 7c: 00 00 00 a0 shl %r0,%r0,%r0
+ 80: 34 37 0a 49 d.pfgt.dd %f6,%f8,%f10
+ 84: 00 00 00 a0 shl %r0,%r0,%r0
+ 88: b4 2e c7 48 d.pfle.ss %f5,%f6,%f7
+ 8c: 00 00 00 a0 shl %r0,%r0,%r0
+ 90: b4 67 d0 49 d.pfle.dd %f12,%f14,%f16
+ 94: 00 00 00 a0 shl %r0,%r0,%r0
+ 98: 35 5e 8d 49 d.pfeq.ss %f11,%f12,%f13
+ 9c: 00 00 00 a0 shl %r0,%r0,%r0
+ a0: 35 97 96 4a d.pfeq.dd %f18,%f20,%f22
+ a4: 00 00 00 a0 shl %r0,%r0,%r0
diff --git a/gas/testsuite/gas/i860/float03.s b/gas/testsuite/gas/i860/float03.s
new file mode 100644
index 0000000..8fd626c
--- /dev/null
+++ b/gas/testsuite/gas/i860/float03.s
@@ -0,0 +1,64 @@
+# fix, ftrunc, pfgt, pfle, pfeq
+
+ .text
+
+ # Non-pipelined, without dual bit
+ fix.sd %f2,%f4
+ fix.dd %f6,%f8
+
+ ftrunc.sd %f8,%f10
+ ftrunc.dd %f12,%f14
+
+ # Pipelined, without dual bit
+ pfix.sd %f30,%f14
+ pfix.dd %f24,%f2
+
+ pftrunc.sd %f8,%f10
+ pftrunc.dd %f12,%f14
+
+ pfgt.ss %f0,%f1,%f2
+ pfgt.dd %f6,%f8,%f10
+
+ pfle.ss %f5,%f6,%f7
+ pfle.dd %f12,%f14,%f16
+
+ pfeq.ss %f11,%f12,%f13
+ pfeq.dd %f18,%f20,%f22
+
+ # Non-pipelined, with dual bit
+ d.fix.sd %f2,%f30
+ nop
+ d.fix.dd %f6,%f8
+ nop
+
+ d.ftrunc.sd %f8,%f24
+ nop
+ d.ftrunc.dd %f12,%f14
+ nop
+
+ # Pipelined, with dual bit
+ d.pfix.sd %f2,%f30
+ nop
+ d.pfix.dd %f6,%f8
+ nop
+
+ d.pftrunc.sd %f8,%f24
+ nop
+ d.pftrunc.dd %f12,%f14
+ nop
+
+ d.pfgt.ss %f0,%f1,%f2
+ nop
+ d.pfgt.dd %f6,%f8,%f10
+ nop
+
+ d.pfle.ss %f5,%f6,%f7
+ nop
+ d.pfle.dd %f12,%f14,%f16
+ nop
+
+ d.pfeq.ss %f11,%f12,%f13
+ nop
+ d.pfeq.dd %f18,%f20,%f22
+ nop
+
diff --git a/gas/testsuite/gas/i860/float04.d b/gas/testsuite/gas/i860/float04.d
new file mode 100644
index 0000000..e590d89
--- /dev/null
+++ b/gas/testsuite/gas/i860/float04.d
@@ -0,0 +1,39 @@
+#as:
+#objdump: -dr
+#name: float04
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 40 08 03 48 fxfr %f1,%fp
+ 4: 40 40 1e 48 fxfr %f8,%r30
+ 8: 40 f8 12 48 fxfr %f31,%r18
+ c: 00 48 1f 08 ixfr %r9,%f31
+ 10: 00 b8 10 08 ixfr %r23,%f16
+ 14: 00 00 00 08 ixfr %r0,%f0
+ 18: 49 00 22 48 fiadd.ss %f0,%f1,%f2
+ 1c: c9 31 0a 49 fiadd.dd %f6,%f8,%f10
+ 20: 4d 28 c7 48 fisub.ss %f5,%f6,%f7
+ 24: cd 61 d0 49 fisub.dd %f12,%f14,%f16
+ 28: 49 74 f0 49 pfiadd.ss %f14,%f15,%f16
+ 2c: c9 b5 1a 4b pfiadd.dd %f22,%f24,%f26
+ 30: 4d a4 b6 4a pfisub.ss %f20,%f21,%f22
+ 34: cd e5 c2 4b pfisub.dd %f28,%f30,%f2
+ 38: 49 02 22 48 d.fiadd.ss %f0,%f1,%f2
+ 3c: 00 00 00 a0 shl %r0,%r0,%r0
+ 40: c9 33 0a 49 d.fiadd.dd %f6,%f8,%f10
+ 44: 00 00 00 a0 shl %r0,%r0,%r0
+ 48: 4d 2a c7 48 d.fisub.ss %f5,%f6,%f7
+ 4c: 00 00 00 a0 shl %r0,%r0,%r0
+ 50: cd 63 d0 49 d.fisub.dd %f12,%f14,%f16
+ 54: 00 00 00 a0 shl %r0,%r0,%r0
+ 58: 49 76 f0 49 d.pfiadd.ss %f14,%f15,%f16
+ 5c: 00 00 00 a0 shl %r0,%r0,%r0
+ 60: c9 b7 1a 4b d.pfiadd.dd %f22,%f24,%f26
+ 64: 00 00 00 a0 shl %r0,%r0,%r0
+ 68: 4d a6 b6 4a d.pfisub.ss %f20,%f21,%f22
+ 6c: 00 00 00 a0 shl %r0,%r0,%r0
+ 70: cd e7 c2 4b d.pfisub.dd %f28,%f30,%f2
+ 74: 00 00 00 a0 shl %r0,%r0,%r0
diff --git a/gas/testsuite/gas/i860/float04.s b/gas/testsuite/gas/i860/float04.s
new file mode 100644
index 0000000..5a4aae5
--- /dev/null
+++ b/gas/testsuite/gas/i860/float04.s
@@ -0,0 +1,49 @@
+# fxfr, ixfr, fiadd, fisub
+
+ .text
+
+ # ixfr, fxfr
+ fxfr %f1,%r3
+ fxfr %f8,%r30
+ fxfr %f31,%r18
+
+ ixfr %r9,%f31
+ ixfr %r23,%f16
+ ixfr %r0,%f0
+
+ # Non-pipelined, without dual bit
+ fiadd.ss %f0,%f1,%f2
+ fiadd.dd %f6,%f8,%f10
+
+ fisub.ss %f5,%f6,%f7
+ fisub.dd %f12,%f14,%f16
+
+ # Pipelined, without dual bit
+ pfiadd.ss %f14,%f15,%f16
+ pfiadd.dd %f22,%f24,%f26
+
+ pfisub.ss %f20,%f21,%f22
+ pfisub.dd %f28,%f30,%f2
+
+ # Non-pipelined, with dual bit
+ d.fiadd.ss %f0,%f1,%f2
+ nop
+ d.fiadd.dd %f6,%f8,%f10
+ nop
+
+ d.fisub.ss %f5,%f6,%f7
+ nop
+ d.fisub.dd %f12,%f14,%f16
+ nop
+
+ # Pipelined, with dual bit
+ d.pfiadd.ss %f14,%f15,%f16
+ nop
+ d.pfiadd.dd %f22,%f24,%f26
+ nop
+
+ d.pfisub.ss %f20,%f21,%f22
+ nop
+ d.pfisub.dd %f28,%f30,%f2
+ nop
+
diff --git a/gas/testsuite/gas/i860/form.d b/gas/testsuite/gas/i860/form.d
new file mode 100644
index 0000000..5ca3b25
--- /dev/null
+++ b/gas/testsuite/gas/i860/form.d
@@ -0,0 +1,63 @@
+#as:
+#objdump: -dr
+#name: form/pform
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: da 05 02 48 pform %f0,%f2
+ 4: da 15 04 48 pform %f2,%f4
+ 8: da 25 06 48 pform %f4,%f6
+ c: da 45 0a 48 pform %f8,%f10
+ 10: da 65 0e 48 pform %f12,%f14
+ 14: da 85 12 48 pform %f16,%f18
+ 18: da a5 16 48 pform %f20,%f22
+ 1c: da c5 1a 48 pform %f24,%f26
+ 20: da e5 1e 48 pform %f28,%f30
+ 24: da 01 02 48 form %f0,%f2
+ 28: da 11 04 48 form %f2,%f4
+ 2c: da 21 06 48 form %f4,%f6
+ 30: da 41 0a 48 form %f8,%f10
+ 34: da 61 0e 48 form %f12,%f14
+ 38: da 81 12 48 form %f16,%f18
+ 3c: da a1 16 48 form %f20,%f22
+ 40: da c1 1a 48 form %f24,%f26
+ 44: da e1 1e 48 form %f28,%f30
+ 48: da 07 02 48 d.pform %f0,%f2
+ 4c: 00 00 00 a0 shl %r0,%r0,%r0
+ 50: da 17 04 48 d.pform %f2,%f4
+ 54: 00 00 00 a0 shl %r0,%r0,%r0
+ 58: da 27 06 48 d.pform %f4,%f6
+ 5c: 00 00 00 a0 shl %r0,%r0,%r0
+ 60: da 47 0a 48 d.pform %f8,%f10
+ 64: 00 00 00 a0 shl %r0,%r0,%r0
+ 68: da 67 0e 48 d.pform %f12,%f14
+ 6c: 00 00 00 a0 shl %r0,%r0,%r0
+ 70: da 87 12 48 d.pform %f16,%f18
+ 74: 00 00 00 a0 shl %r0,%r0,%r0
+ 78: da a7 16 48 d.pform %f20,%f22
+ 7c: 00 00 00 a0 shl %r0,%r0,%r0
+ 80: da c7 1a 48 d.pform %f24,%f26
+ 84: 00 00 00 a0 shl %r0,%r0,%r0
+ 88: da e7 1e 48 d.pform %f28,%f30
+ 8c: 00 00 00 a0 shl %r0,%r0,%r0
+ 90: da 03 02 48 d.form %f0,%f2
+ 94: 00 00 00 a0 shl %r0,%r0,%r0
+ 98: da 13 04 48 d.form %f2,%f4
+ 9c: 00 00 00 a0 shl %r0,%r0,%r0
+ a0: da 23 06 48 d.form %f4,%f6
+ a4: 00 00 00 a0 shl %r0,%r0,%r0
+ a8: da 43 0a 48 d.form %f8,%f10
+ ac: 00 00 00 a0 shl %r0,%r0,%r0
+ b0: da 63 0e 48 d.form %f12,%f14
+ b4: 00 00 00 a0 shl %r0,%r0,%r0
+ b8: da 83 12 48 d.form %f16,%f18
+ bc: 00 00 00 a0 shl %r0,%r0,%r0
+ c0: da a3 16 48 d.form %f20,%f22
+ c4: 00 00 00 a0 shl %r0,%r0,%r0
+ c8: da c3 1a 48 d.form %f24,%f26
+ cc: 00 00 00 a0 shl %r0,%r0,%r0
+ d0: da e3 1e 48 d.form %f28,%f30
+ d4: 00 00 00 a0 shl %r0,%r0,%r0
diff --git a/gas/testsuite/gas/i860/form.s b/gas/testsuite/gas/i860/form.s
new file mode 100644
index 0000000..e73dde6
--- /dev/null
+++ b/gas/testsuite/gas/i860/form.s
@@ -0,0 +1,66 @@
+# form and pform
+
+ .text
+
+ # pform, no dual bit
+ pform %f0,%f2
+ pform %f2,%f4
+ pform %f4,%f6
+ pform %f8,%f10
+ pform %f12,%f14
+ pform %f16,%f18
+ pform %f20,%f22
+ pform %f24,%f26
+ pform %f28,%f30
+
+ # form, no dual bit
+ form %f0,%f2
+ form %f2,%f4
+ form %f4,%f6
+ form %f8,%f10
+ form %f12,%f14
+ form %f16,%f18
+ form %f20,%f22
+ form %f24,%f26
+ form %f28,%f30
+
+ # pform, with dual bit
+ d.pform %f0,%f2
+ nop
+ d.pform %f2,%f4
+ nop
+ d.pform %f4,%f6
+ nop
+ d.pform %f8,%f10
+ nop
+ d.pform %f12,%f14
+ nop
+ d.pform %f16,%f18
+ nop
+ d.pform %f20,%f22
+ nop
+ d.pform %f24,%f26
+ nop
+ d.pform %f28,%f30
+ nop
+
+ # form, with dual bit
+ d.form %f0,%f2
+ nop
+ d.form %f2,%f4
+ nop
+ d.form %f4,%f6
+ nop
+ d.form %f8,%f10
+ nop
+ d.form %f12,%f14
+ nop
+ d.form %f16,%f18
+ nop
+ d.form %f20,%f22
+ nop
+ d.form %f24,%f26
+ nop
+ d.form %f28,%f30
+ nop
+
diff --git a/gas/testsuite/gas/i860/iarith.d b/gas/testsuite/gas/i860/iarith.d
new file mode 100644
index 0000000..cdcecad
--- /dev/null
+++ b/gas/testsuite/gas/i860/iarith.d
@@ -0,0 +1,97 @@
+#as:
+#objdump: -dr
+#name: iarith
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 00 00 22 80 addu %r0,%r1,%sp
+ 4: 00 18 85 80 addu %fp,%r4,%r5
+ 8: 00 30 e8 80 addu %r6,%r7,%r8
+ c: 00 48 4b 81 addu %r9,%r10,%r11
+ 10: 00 f8 ae 81 addu %r31,%r13,%r14
+ 14: 00 78 11 82 addu %r15,%r16,%r17
+ 18: 00 90 74 82 addu %r18,%r19,%r20
+ 1c: 00 a8 d7 82 addu %r21,%r22,%r23
+ 20: 00 c0 3f 83 addu %r24,%r25,%r31
+ 24: 00 d8 9d 83 addu %r27,%r28,%r29
+ 28: 00 f0 e0 83 addu %r30,%r31,%r0
+ 2c: 00 00 22 90 adds %r0,%r1,%sp
+ 30: 00 18 85 90 adds %fp,%r4,%r5
+ 34: 00 30 e8 90 adds %r6,%r7,%r8
+ 38: 00 48 4b 91 adds %r9,%r10,%r11
+ 3c: 00 f8 ae 91 adds %r31,%r13,%r14
+ 40: 00 78 11 92 adds %r15,%r16,%r17
+ 44: 00 90 74 92 adds %r18,%r19,%r20
+ 48: 00 a8 d7 92 adds %r21,%r22,%r23
+ 4c: 00 c0 3f 93 adds %r24,%r25,%r31
+ 50: 00 d8 9d 93 adds %r27,%r28,%r29
+ 54: 00 f0 e0 93 adds %r30,%r31,%r0
+ 58: 00 00 22 88 subu %r0,%r1,%sp
+ 5c: 00 18 85 88 subu %fp,%r4,%r5
+ 60: 00 30 e8 88 subu %r6,%r7,%r8
+ 64: 00 48 4b 89 subu %r9,%r10,%r11
+ 68: 00 f8 ae 89 subu %r31,%r13,%r14
+ 6c: 00 78 11 8a subu %r15,%r16,%r17
+ 70: 00 90 74 8a subu %r18,%r19,%r20
+ 74: 00 a8 d7 8a subu %r21,%r22,%r23
+ 78: 00 c0 3f 8b subu %r24,%r25,%r31
+ 7c: 00 d8 9d 8b subu %r27,%r28,%r29
+ 80: 00 f0 e0 8b subu %r30,%r31,%r0
+ 84: 00 00 22 98 subs %r0,%r1,%sp
+ 88: 00 18 85 98 subs %fp,%r4,%r5
+ 8c: 00 30 e8 98 subs %r6,%r7,%r8
+ 90: 00 48 4b 99 subs %r9,%r10,%r11
+ 94: 00 f8 ae 99 subs %r31,%r13,%r14
+ 98: 00 78 11 9a subs %r15,%r16,%r17
+ 9c: 00 90 74 9a subs %r18,%r19,%r20
+ a0: 00 a8 d7 9a subs %r21,%r22,%r23
+ a4: 00 c0 3f 9b subs %r24,%r25,%r31
+ a8: 00 d8 9d 9b subs %r27,%r28,%r29
+ ac: 00 f0 e0 9b subs %r30,%r31,%r0
+ b0: 00 00 22 84 addu 0,%r1,%sp
+ b4: 00 20 85 84 addu 8192,%r4,%r5
+ b8: f5 13 e8 84 addu 5109,%r7,%r8
+ bc: ff 7f 4b 85 addu 32767,%r10,%r11
+ c0: 00 80 ae 85 addu -32768,%r13,%r14
+ c4: 00 e0 11 86 addu -8192,%r16,%r17
+ c8: ff ff 74 86 addu -1,%r19,%r20
+ cc: cd ab d7 86 addu -21555,%r22,%r23
+ d0: 34 12 3a 87 addu 4660,%r25,%r26
+ d4: 00 00 9d 87 addu 0,%r28,%r29
+ d8: 03 00 e0 87 addu 3,%r31,%r0
+ dc: 00 00 22 94 adds 0,%r1,%sp
+ e0: 00 20 85 94 adds 8192,%r4,%r5
+ e4: f5 13 e8 94 adds 5109,%r7,%r8
+ e8: ff 7f 4b 95 adds 32767,%r10,%r11
+ ec: 00 80 ae 95 adds -32768,%r13,%r14
+ f0: 00 e0 11 96 adds -8192,%r16,%r17
+ f4: ff ff 74 96 adds -1,%r19,%r20
+ f8: cd ab d7 96 adds -21555,%r22,%r23
+ fc: 34 12 3a 97 adds 4660,%r25,%r26
+ 100: 00 00 9d 97 adds 0,%r28,%r29
+ 104: 03 00 e0 97 adds 3,%r31,%r0
+ 108: 01 00 22 8c subu 1,%r1,%sp
+ 10c: 01 20 85 8c subu 8193,%r4,%r5
+ 110: f6 13 e8 8c subu 5110,%r7,%r8
+ 114: ff 7f 4b 8d subu 32767,%r10,%r11
+ 118: 00 80 ae 8d subu -32768,%r13,%r14
+ 11c: 00 e0 11 8e subu -8192,%r16,%r17
+ 120: ff ff 74 8e subu -1,%r19,%r20
+ 124: cd ab d7 8e subu -21555,%r22,%r23
+ 128: 34 12 3a 8f subu 4660,%r25,%r26
+ 12c: 00 00 9d 8f subu 0,%r28,%r29
+ 130: 03 00 e0 8f subu 3,%r31,%r0
+ 134: 01 00 22 9c subs 1,%r1,%sp
+ 138: 01 20 85 9c subs 8193,%r4,%r5
+ 13c: f6 13 e8 9c subs 5110,%r7,%r8
+ 140: ff 7f 4b 9d subs 32767,%r10,%r11
+ 144: 00 80 ae 9d subs -32768,%r13,%r14
+ 148: 00 e0 11 9e subs -8192,%r16,%r17
+ 14c: ff ff 74 9e subs -1,%r19,%r20
+ 150: cd ab d7 9e subs -21555,%r22,%r23
+ 154: 34 12 3a 9f subs 4660,%r25,%r26
+ 158: 00 00 9d 9f subs 0,%r28,%r29
+ 15c: 03 00 e0 9f subs 3,%r31,%r0
diff --git a/gas/testsuite/gas/i860/iarith.s b/gas/testsuite/gas/i860/iarith.s
new file mode 100644
index 0000000..98a360e
--- /dev/null
+++ b/gas/testsuite/gas/i860/iarith.s
@@ -0,0 +1,102 @@
+# addu, adds, subu, subs
+
+ .text
+
+ # Register forms
+ addu %r0,%r1,%r2
+ addu %r3,%r4,%r5
+ addu %r6,%r7,%r8
+ addu %r9,%r10,%r11
+ addu %r31,%r13,%r14
+ addu %r15,%r16,%r17
+ addu %r18,%r19,%r20
+ addu %r21,%r22,%r23
+ addu %r24,%r25,%r31
+ addu %r27,%r28,%r29
+ addu %r30,%r31,%r0
+
+ adds %r0,%r1,%r2
+ adds %r3,%r4,%r5
+ adds %r6,%r7,%r8
+ adds %r9,%r10,%r11
+ adds %r31,%r13,%r14
+ adds %r15,%r16,%r17
+ adds %r18,%r19,%r20
+ adds %r21,%r22,%r23
+ adds %r24,%r25,%r31
+ adds %r27,%r28,%r29
+ adds %r30,%r31,%r0
+
+ subu %r0,%r1,%r2
+ subu %r3,%r4,%r5
+ subu %r6,%r7,%r8
+ subu %r9,%r10,%r11
+ subu %r31,%r13,%r14
+ subu %r15,%r16,%r17
+ subu %r18,%r19,%r20
+ subu %r21,%r22,%r23
+ subu %r24,%r25,%r31
+ subu %r27,%r28,%r29
+ subu %r30,%r31,%r0
+
+ subs %r0,%r1,%r2
+ subs %r3,%r4,%r5
+ subs %r6,%r7,%r8
+ subs %r9,%r10,%r11
+ subs %r31,%r13,%r14
+ subs %r15,%r16,%r17
+ subs %r18,%r19,%r20
+ subs %r21,%r22,%r23
+ subs %r24,%r25,%r31
+ subs %r27,%r28,%r29
+ subs %r30,%r31,%r0
+
+ # Immediate forms (all)
+ addu 0,%r1,%r2
+ addu 8192,%r4,%r5
+ addu 5109,%r7,%r8
+ addu 32767,%r10,%r11
+ addu -32768,%r13,%r14
+ addu -8192,%r16,%r17
+ addu -1,%r19,%r20
+ addu -21555,%r22,%r23
+ addu 0x1234,%r25,%r26
+ addu 0x0,%r28,%r29
+ addu 0x3,%r31,%r0
+
+ adds 0,%r1,%r2
+ adds 8192,%r4,%r5
+ adds 5109,%r7,%r8
+ adds 32767,%r10,%r11
+ adds -32768,%r13,%r14
+ adds -8192,%r16,%r17
+ adds -1,%r19,%r20
+ adds -21555,%r22,%r23
+ adds 0x1234,%r25,%r26
+ adds 0x0,%r28,%r29
+ adds 0x3,%r31,%r0
+
+ subu 1,%r1,%r2
+ subu 8193,%r4,%r5
+ subu 5110,%r7,%r8
+ subu 32767,%r10,%r11
+ subu -32768,%r13,%r14
+ subu -8192,%r16,%r17
+ subu -1,%r19,%r20
+ subu -21555,%r22,%r23
+ subu 0x1234,%r25,%r26
+ subu 0x0,%r28,%r29
+ subu 0x3,%r31,%r0
+
+ subs 1,%r1,%r2
+ subs 8193,%r4,%r5
+ subs 5110,%r7,%r8
+ subs 32767,%r10,%r11
+ subs -32768,%r13,%r14
+ subs -8192,%r16,%r17
+ subs -1,%r19,%r20
+ subs -21555,%r22,%r23
+ subs 0x1234,%r25,%r26
+ subs 0x0,%r28,%r29
+ subs 0x3,%r31,%r0
+
diff --git a/gas/testsuite/gas/i860/ldst01.d b/gas/testsuite/gas/i860/ldst01.d
new file mode 100644
index 0000000..b2fa0d1
--- /dev/null
+++ b/gas/testsuite/gas/i860/ldst01.d
@@ -0,0 +1,39 @@
+#as:
+#objdump: -dr
+#name: ldst01 (ld.l)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 01 00 00 14 ld.l 0\(%r0\),%r0
+ 4: 7d 00 3f 14 ld.l 124\(%r1\),%r31
+ 8: 01 01 5e 14 ld.l 256\(%sp\),%r30
+ c: 01 02 7d 14 ld.l 512\(%fp\),%r29
+ 10: 01 04 9c 14 ld.l 1024\(%r4\),%r28
+ 14: 01 10 bb 14 ld.l 4096\(%r5\),%r27
+ 18: 01 20 da 14 ld.l 8192\(%r6\),%r26
+ 1c: 01 40 f9 14 ld.l 16384\(%r7\),%r25
+ 20: 01 c0 18 15 ld.l -16384\(%r8\),%r24
+ 24: 01 e0 37 15 ld.l -8192\(%r9\),%r23
+ 28: 01 f0 56 15 ld.l -4096\(%r10\),%r22
+ 2c: 01 fc 75 15 ld.l -1024\(%r11\),%r21
+ 30: 05 fe 94 15 ld.l -508\(%r12\),%r20
+ 34: 09 ff b3 15 ld.l -248\(%r13\),%r19
+ 38: fd ff d2 15 ld.l -4\(%r14\),%r18
+ 3c: 01 28 00 10 ld.l %r5\(%r0\),%r0
+ 40: 01 30 3f 10 ld.l %r6\(%r1\),%r31
+ 44: 01 38 5e 10 ld.l %r7\(%sp\),%r30
+ 48: 01 40 7d 10 ld.l %r8\(%fp\),%r29
+ 4c: 01 48 9c 10 ld.l %r9\(%r4\),%r28
+ 50: 01 00 bb 10 ld.l %r0\(%r5\),%r27
+ 54: 01 08 da 10 ld.l %r1\(%r6\),%r26
+ 58: 01 60 f9 10 ld.l %r12\(%r7\),%r25
+ 5c: 01 68 18 11 ld.l %r13\(%r8\),%r24
+ 60: 01 70 37 11 ld.l %r14\(%r9\),%r23
+ 64: 01 78 56 11 ld.l %r15\(%r10\),%r22
+ 68: 01 80 75 11 ld.l %r16\(%r11\),%r21
+ 6c: 01 88 94 11 ld.l %r17\(%r12\),%r20
+ 70: 01 e0 b3 11 ld.l %r28\(%r13\),%r19
+ 74: 01 f8 d2 11 ld.l %r31\(%r14\),%r18
diff --git a/gas/testsuite/gas/i860/ldst01.s b/gas/testsuite/gas/i860/ldst01.s
new file mode 100644
index 0000000..498f346
--- /dev/null
+++ b/gas/testsuite/gas/i860/ldst01.s
@@ -0,0 +1,35 @@
+# ld.l (no relocations here)
+ .text
+
+ ld.l 0(%r0),%r0
+ ld.l 124(%r1),%r31
+ ld.l 256(%r2),%r30
+ ld.l 512(%r3),%r29
+ ld.l 1024(%r4),%r28
+ ld.l 4096(%r5),%r27
+ ld.l 8192(%r6),%r26
+ ld.l 16384(%r7),%r25
+ ld.l -16384(%r8),%r24
+ ld.l -8192(%r9),%r23
+ ld.l -4096(%r10),%r22
+ ld.l -1024(%r11),%r21
+ ld.l -508(%r12),%r20
+ ld.l -248(%r13),%r19
+ ld.l -4(%r14),%r18
+
+ ld.l %r5(%r0),%r0
+ ld.l %r6(%r1),%r31
+ ld.l %r7(%r2),%r30
+ ld.l %r8(%r3),%r29
+ ld.l %r9(%r4),%r28
+ ld.l %r0(%r5),%r27
+ ld.l %r1(%r6),%r26
+ ld.l %r12(%r7),%r25
+ ld.l %r13(%r8),%r24
+ ld.l %r14(%r9),%r23
+ ld.l %r15(%r10),%r22
+ ld.l %r16(%r11),%r21
+ ld.l %r17(%r12),%r20
+ ld.l %r28(%r13),%r19
+ ld.l %r31(%r14),%r18
+
diff --git a/gas/testsuite/gas/i860/ldst02.d b/gas/testsuite/gas/i860/ldst02.d
new file mode 100644
index 0000000..9ad9b09
--- /dev/null
+++ b/gas/testsuite/gas/i860/ldst02.d
@@ -0,0 +1,39 @@
+#as:
+#objdump: -dr
+#name: ldst02 (ld.s)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 00 00 00 14 ld.s 0\(%r0\),%r0
+ 4: 7a 00 3f 14 ld.s 122\(%r1\),%r31
+ 8: 02 01 5e 14 ld.s 258\(%sp\),%r30
+ c: 00 02 7d 14 ld.s 512\(%fp\),%r29
+ 10: 04 04 9c 14 ld.s 1028\(%r4\),%r28
+ 14: fa 0f bb 14 ld.s 4090\(%r5\),%r27
+ 18: fe 1f da 14 ld.s 8190\(%r6\),%r26
+ 1c: 00 40 f9 14 ld.s 16384\(%r7\),%r25
+ 20: 00 c0 18 15 ld.s -16384\(%r8\),%r24
+ 24: 00 e0 37 15 ld.s -8192\(%r9\),%r23
+ 28: 00 f0 56 15 ld.s -4096\(%r10\),%r22
+ 2c: 00 fc 75 15 ld.s -1024\(%r11\),%r21
+ 30: 04 fe 94 15 ld.s -508\(%r12\),%r20
+ 34: 0e ff b3 15 ld.s -242\(%r13\),%r19
+ 38: fe ff d2 15 ld.s -2\(%r14\),%r18
+ 3c: 00 28 00 10 ld.s %r5\(%r0\),%r0
+ 40: 00 30 3f 10 ld.s %r6\(%r1\),%r31
+ 44: 00 38 5e 10 ld.s %r7\(%sp\),%r30
+ 48: 00 40 7d 10 ld.s %r8\(%fp\),%r29
+ 4c: 00 48 9c 10 ld.s %r9\(%r4\),%r28
+ 50: 00 00 bb 10 ld.s %r0\(%r5\),%r27
+ 54: 00 08 da 10 ld.s %r1\(%r6\),%r26
+ 58: 00 60 f9 10 ld.s %r12\(%r7\),%r25
+ 5c: 00 68 18 11 ld.s %r13\(%r8\),%r24
+ 60: 00 70 37 11 ld.s %r14\(%r9\),%r23
+ 64: 00 78 56 11 ld.s %r15\(%r10\),%r22
+ 68: 00 80 75 11 ld.s %r16\(%r11\),%r21
+ 6c: 00 88 94 11 ld.s %r17\(%r12\),%r20
+ 70: 00 e0 b3 11 ld.s %r28\(%r13\),%r19
+ 74: 00 f8 d2 11 ld.s %r31\(%r14\),%r18
diff --git a/gas/testsuite/gas/i860/ldst02.s b/gas/testsuite/gas/i860/ldst02.s
new file mode 100644
index 0000000..52c0e1a
--- /dev/null
+++ b/gas/testsuite/gas/i860/ldst02.s
@@ -0,0 +1,35 @@
+# ld.s (no relocations here)
+ .text
+
+ ld.s 0(%r0),%r0
+ ld.s 122(%r1),%r31
+ ld.s 258(%r2),%r30
+ ld.s 512(%r3),%r29
+ ld.s 1028(%r4),%r28
+ ld.s 4090(%r5),%r27
+ ld.s 8190(%r6),%r26
+ ld.s 16384(%r7),%r25
+ ld.s -16384(%r8),%r24
+ ld.s -8192(%r9),%r23
+ ld.s -4096(%r10),%r22
+ ld.s -1024(%r11),%r21
+ ld.s -508(%r12),%r20
+ ld.s -242(%r13),%r19
+ ld.s -2(%r14),%r18
+
+ ld.s %r5(%r0),%r0
+ ld.s %r6(%r1),%r31
+ ld.s %r7(%r2),%r30
+ ld.s %r8(%r3),%r29
+ ld.s %r9(%r4),%r28
+ ld.s %r0(%r5),%r27
+ ld.s %r1(%r6),%r26
+ ld.s %r12(%r7),%r25
+ ld.s %r13(%r8),%r24
+ ld.s %r14(%r9),%r23
+ ld.s %r15(%r10),%r22
+ ld.s %r16(%r11),%r21
+ ld.s %r17(%r12),%r20
+ ld.s %r28(%r13),%r19
+ ld.s %r31(%r14),%r18
+
diff --git a/gas/testsuite/gas/i860/ldst03.d b/gas/testsuite/gas/i860/ldst03.d
new file mode 100644
index 0000000..f6e0e67
--- /dev/null
+++ b/gas/testsuite/gas/i860/ldst03.d
@@ -0,0 +1,43 @@
+#as:
+#objdump: -dr
+#name: ldst03 (ld.b)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 00 00 00 04 ld.b 0\(%r0\),%r0
+ 4: 01 00 3f 04 ld.b 1\(%r1\),%r31
+ 8: 02 00 5e 04 ld.b 2\(%sp\),%r30
+ c: 01 02 7d 04 ld.b 513\(%fp\),%r29
+ 10: 04 04 9c 04 ld.b 1028\(%r4\),%r28
+ 14: fa 0f bb 04 ld.b 4090\(%r5\),%r27
+ 18: fe 1f da 04 ld.b 8190\(%r6\),%r26
+ 1c: 01 40 f9 04 ld.b 16385\(%r7\),%r25
+ 20: 07 7d f9 04 ld.b 32007\(%r7\),%r25
+ 24: ff 7f f9 04 ld.b 32767\(%r7\),%r25
+ 28: 00 80 f9 04 ld.b -32768\(%r7\),%r25
+ 2c: 01 80 f9 04 ld.b -32767\(%r7\),%r25
+ 30: 01 c0 18 05 ld.b -16383\(%r8\),%r24
+ 34: 5b e0 37 05 ld.b -8101\(%r9\),%r23
+ 38: 05 f0 56 05 ld.b -4091\(%r10\),%r22
+ 3c: 01 fc 75 05 ld.b -1023\(%r11\),%r21
+ 40: 03 fe 94 05 ld.b -509\(%r12\),%r20
+ 44: e9 ff b3 05 ld.b -23\(%r13\),%r19
+ 48: ff ff d2 05 ld.b -1\(%r14\),%r18
+ 4c: 00 28 00 00 ld.b %r5\(%r0\),%r0
+ 50: 00 30 3f 00 ld.b %r6\(%r1\),%r31
+ 54: 00 38 5e 00 ld.b %r7\(%sp\),%r30
+ 58: 00 40 7d 00 ld.b %r8\(%fp\),%r29
+ 5c: 00 48 9c 00 ld.b %r9\(%r4\),%r28
+ 60: 00 00 bb 00 ld.b %r0\(%r5\),%r27
+ 64: 00 08 da 00 ld.b %r1\(%r6\),%r26
+ 68: 00 60 f9 00 ld.b %r12\(%r7\),%r25
+ 6c: 00 68 18 01 ld.b %r13\(%r8\),%r24
+ 70: 00 70 37 01 ld.b %r14\(%r9\),%r23
+ 74: 00 78 56 01 ld.b %r15\(%r10\),%r22
+ 78: 00 80 75 01 ld.b %r16\(%r11\),%r21
+ 7c: 00 88 94 01 ld.b %r17\(%r12\),%r20
+ 80: 00 e0 b3 01 ld.b %r28\(%r13\),%r19
+ 84: 00 f8 d2 01 ld.b %r31\(%r14\),%r18
diff --git a/gas/testsuite/gas/i860/ldst03.s b/gas/testsuite/gas/i860/ldst03.s
new file mode 100644
index 0000000..055a3b8
--- /dev/null
+++ b/gas/testsuite/gas/i860/ldst03.s
@@ -0,0 +1,39 @@
+# ld.b (no relocations here)
+ .text
+
+ ld.b 0(%r0),%r0
+ ld.b 1(%r1),%r31
+ ld.b 2(%r2),%r30
+ ld.b 513(%r3),%r29
+ ld.b 1028(%r4),%r28
+ ld.b 4090(%r5),%r27
+ ld.b 8190(%r6),%r26
+ ld.b 16385(%r7),%r25
+ ld.b 32007(%r7),%r25
+ ld.b 32767(%r7),%r25
+ ld.b -32768(%r7),%r25
+ ld.b -32767(%r7),%r25
+ ld.b -16383(%r8),%r24
+ ld.b -8101(%r9),%r23
+ ld.b -4091(%r10),%r22
+ ld.b -1023(%r11),%r21
+ ld.b -509(%r12),%r20
+ ld.b -23(%r13),%r19
+ ld.b -1(%r14),%r18
+
+ ld.b %r5(%r0),%r0
+ ld.b %r6(%r1),%r31
+ ld.b %r7(%r2),%r30
+ ld.b %r8(%r3),%r29
+ ld.b %r9(%r4),%r28
+ ld.b %r0(%r5),%r27
+ ld.b %r1(%r6),%r26
+ ld.b %r12(%r7),%r25
+ ld.b %r13(%r8),%r24
+ ld.b %r14(%r9),%r23
+ ld.b %r15(%r10),%r22
+ ld.b %r16(%r11),%r21
+ ld.b %r17(%r12),%r20
+ ld.b %r28(%r13),%r19
+ ld.b %r31(%r14),%r18
+
diff --git a/gas/testsuite/gas/i860/ldst04.d b/gas/testsuite/gas/i860/ldst04.d
new file mode 100644
index 0000000..3b9bfbf
--- /dev/null
+++ b/gas/testsuite/gas/i860/ldst04.d
@@ -0,0 +1,24 @@
+#as:
+#objdump: -dr
+#name: ldst04 (st.l)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 01 00 00 1c st.l %r0,0\(%r0\)
+ 4: 7d f8 20 1c st.l %r31,124\(%r1\)
+ 8: 01 f1 40 1c st.l %r30,256\(%sp\)
+ c: 01 ea 60 1c st.l %r29,512\(%fp\)
+ 10: 01 e4 80 1c st.l %r28,1024\(%r4\)
+ 14: 01 d8 a2 1c st.l %r27,4096\(%r5\)
+ 18: 01 d0 c4 1c st.l %r26,8192\(%r6\)
+ 1c: 01 c8 e8 1c st.l %r25,16384\(%r7\)
+ 20: 01 c0 18 1d st.l %r24,-16384\(%r8\)
+ 24: 01 b8 3c 1d st.l %r23,-8192\(%r9\)
+ 28: 01 b0 5e 1d st.l %r22,-4096\(%r10\)
+ 2c: 01 ac 7f 1d st.l %r21,-1024\(%r11\)
+ 30: 05 a6 9f 1d st.l %r20,-508\(%r12\)
+ 34: 09 9f bf 1d st.l %r19,-248\(%r13\)
+ 38: fd 97 df 1d st.l %r18,-4\(%r14\)
diff --git a/gas/testsuite/gas/i860/ldst04.s b/gas/testsuite/gas/i860/ldst04.s
new file mode 100644
index 0000000..8e22b6f
--- /dev/null
+++ b/gas/testsuite/gas/i860/ldst04.s
@@ -0,0 +1,19 @@
+# st.l (no relocations here)
+ .text
+
+ st.l %r0,0(%r0)
+ st.l %r31,124(%r1)
+ st.l %r30,256(%r2)
+ st.l %r29,512(%r3)
+ st.l %r28,1024(%r4)
+ st.l %r27,4096(%r5)
+ st.l %r26,8192(%r6)
+ st.l %r25,16384(%r7)
+ st.l %r24,-16384(%r8)
+ st.l %r23,-8192(%r9)
+ st.l %r22,-4096(%r10)
+ st.l %r21,-1024(%r11)
+ st.l %r20,-508(%r12)
+ st.l %r19,-248(%r13)
+ st.l %r18,-4(%r14)
+
diff --git a/gas/testsuite/gas/i860/ldst05.d b/gas/testsuite/gas/i860/ldst05.d
new file mode 100644
index 0000000..b9295c7
--- /dev/null
+++ b/gas/testsuite/gas/i860/ldst05.d
@@ -0,0 +1,24 @@
+#as:
+#objdump: -dr
+#name: ldst05 (st.s)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 00 00 00 1c st.s %r0,0\(%r0\)
+ 4: 7a f8 20 1c st.s %r31,122\(%r1\)
+ 8: 02 f1 40 1c st.s %r30,258\(%sp\)
+ c: 00 ea 60 1c st.s %r29,512\(%fp\)
+ 10: 04 e4 80 1c st.s %r28,1028\(%r4\)
+ 14: fa df a1 1c st.s %r27,4090\(%r5\)
+ 18: fe d7 c3 1c st.s %r26,8190\(%r6\)
+ 1c: 00 c8 e8 1c st.s %r25,16384\(%r7\)
+ 20: 00 c0 18 1d st.s %r24,-16384\(%r8\)
+ 24: 00 b8 3c 1d st.s %r23,-8192\(%r9\)
+ 28: 00 b0 5e 1d st.s %r22,-4096\(%r10\)
+ 2c: 00 ac 7f 1d st.s %r21,-1024\(%r11\)
+ 30: 04 a6 9f 1d st.s %r20,-508\(%r12\)
+ 34: 0e 9f bf 1d st.s %r19,-242\(%r13\)
+ 38: fe 97 df 1d st.s %r18,-2\(%r14\)
diff --git a/gas/testsuite/gas/i860/ldst05.s b/gas/testsuite/gas/i860/ldst05.s
new file mode 100644
index 0000000..7f253f4
--- /dev/null
+++ b/gas/testsuite/gas/i860/ldst05.s
@@ -0,0 +1,19 @@
+# st.s (no relocations here)
+ .text
+
+ st.s %r0,0(%r0)
+ st.s %r31,122(%r1)
+ st.s %r30,258(%r2)
+ st.s %r29,512(%r3)
+ st.s %r28,1028(%r4)
+ st.s %r27,4090(%r5)
+ st.s %r26,8190(%r6)
+ st.s %r25,16384(%r7)
+ st.s %r24,-16384(%r8)
+ st.s %r23,-8192(%r9)
+ st.s %r22,-4096(%r10)
+ st.s %r21,-1024(%r11)
+ st.s %r20,-508(%r12)
+ st.s %r19,-242(%r13)
+ st.s %r18,-2(%r14)
+
diff --git a/gas/testsuite/gas/i860/ldst06.d b/gas/testsuite/gas/i860/ldst06.d
new file mode 100644
index 0000000..0e8d93e
--- /dev/null
+++ b/gas/testsuite/gas/i860/ldst06.d
@@ -0,0 +1,28 @@
+#as:
+#objdump: -dr
+#name: ldst06 (st.b)
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 00 00 00 0c st.b %r0,0\(%r0\)
+ 4: 01 f8 20 0c st.b %r31,1\(%r1\)
+ 8: 02 f0 40 0c st.b %r30,2\(%sp\)
+ c: 01 ea 60 0c st.b %r29,513\(%fp\)
+ 10: 04 e4 80 0c st.b %r28,1028\(%r4\)
+ 14: fa df a1 0c st.b %r27,4090\(%r5\)
+ 18: fe d7 c3 0c st.b %r26,8190\(%r6\)
+ 1c: 01 c8 e8 0c st.b %r25,16385\(%r7\)
+ 20: 07 cd ef 0c st.b %r25,32007\(%r7\)
+ 24: ff cf ef 0c st.b %r25,32767\(%r7\)
+ 28: 00 c8 f0 0c st.b %r25,-32768\(%r7\)
+ 2c: 01 c8 f0 0c st.b %r25,-32767\(%r7\)
+ 30: 01 c0 18 0d st.b %r24,-16383\(%r8\)
+ 34: 5b b8 3c 0d st.b %r23,-8101\(%r9\)
+ 38: 05 b0 5e 0d st.b %r22,-4091\(%r10\)
+ 3c: 01 ac 7f 0d st.b %r21,-1023\(%r11\)
+ 40: 03 a6 9f 0d st.b %r20,-509\(%r12\)
+ 44: e9 9f bf 0d st.b %r19,-23\(%r13\)
+ 48: ff 97 df 0d st.b %r18,-1\(%r14\)
diff --git a/gas/testsuite/gas/i860/ldst06.s b/gas/testsuite/gas/i860/ldst06.s
new file mode 100644
index 0000000..bb817ab
--- /dev/null
+++ b/gas/testsuite/gas/i860/ldst06.s
@@ -0,0 +1,22 @@
+# st.b (no relocations here)
+ .text
+
+ st.b %r0,0(%r0)
+ st.b %r31,1(%r1)
+ st.b %r30,2(%r2)
+ st.b %r29,513(%r3)
+ st.b %r28,1028(%r4)
+ st.b %r27,4090(%r5)
+ st.b %r26,8190(%r6)
+ st.b %r25,16385(%r7)
+ st.b %r25,32007(%r7)
+ st.b %r25,32767(%r7)
+ st.b %r25,-32768(%r7)
+ st.b %r25,-32767(%r7)
+ st.b %r24,-16383(%r8)
+ st.b %r23,-8101(%r9)
+ st.b %r22,-4091(%r10)
+ st.b %r21,-1023(%r11)
+ st.b %r20,-509(%r12)
+ st.b %r19,-23(%r13)
+ st.b %r18,-1(%r14)
diff --git a/gas/testsuite/gas/i860/pfam.d b/gas/testsuite/gas/i860/pfam.d
new file mode 100644
index 0000000..2d700d3
--- /dev/null
+++ b/gas/testsuite/gas/i860/pfam.d
@@ -0,0 +1,153 @@
+#as:
+#objdump: -dr
+#name: pfam
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 00 04 22 48 r2p1.ss %f0,%f1,%f2
+ 4: 80 1c 85 48 r2p1.sd %f3,%f4,%f5
+ 8: 80 05 44 48 r2p1.dd %f0,%f2,%f4
+ c: 01 0c 43 48 r2pt.ss %f1,%f2,%f3
+ 10: 81 24 a6 48 r2pt.sd %f4,%f5,%f6
+ 14: 81 15 86 48 r2pt.dd %f2,%f4,%f6
+ 18: 02 14 64 48 r2ap1.ss %f2,%f3,%f4
+ 1c: 82 34 e8 48 r2ap1.sd %f6,%f7,%f8
+ 20: 82 25 c8 48 r2ap1.dd %f4,%f6,%f8
+ 24: 03 1c 85 48 r2apt.ss %f3,%f4,%f5
+ 28: 83 3c 09 49 r2apt.sd %f7,%f8,%f9
+ 2c: 83 35 0a 49 r2apt.dd %f6,%f8,%f10
+ 30: 04 24 a6 48 i2p1.ss %f4,%f5,%f6
+ 34: 84 44 2a 49 i2p1.sd %f8,%f9,%f10
+ 38: 84 65 d0 49 i2p1.dd %f12,%f14,%f16
+ 3c: 05 3c 09 49 i2pt.ss %f7,%f8,%f9
+ 40: 85 5c 8d 49 i2pt.sd %f11,%f12,%f13
+ 44: 85 75 12 4a i2pt.dd %f14,%f16,%f18
+ 48: 06 54 6c 49 i2ap1.ss %f10,%f11,%f12
+ 4c: 86 74 f0 49 i2ap1.sd %f14,%f15,%f16
+ 50: 86 85 54 4a i2ap1.dd %f16,%f18,%f20
+ 54: 07 6c cf 49 i2apt.ss %f13,%f14,%f15
+ 58: 87 8c 53 4a i2apt.sd %f17,%f18,%f19
+ 5c: 87 95 96 4a i2apt.dd %f18,%f20,%f22
+ 60: 08 74 f0 49 rat1p2.ss %f14,%f15,%f16
+ 64: 88 a4 b6 4a rat1p2.sd %f20,%f21,%f22
+ 68: 88 a5 d8 4a rat1p2.dd %f20,%f22,%f24
+ 6c: 09 7c 11 4a m12apm.ss %f15,%f16,%f17
+ 70: 89 bc 19 4b m12apm.sd %f23,%f24,%f25
+ 74: 89 b5 1a 4b m12apm.dd %f22,%f24,%f26
+ 78: 0a 94 74 4a ra1p2.ss %f18,%f19,%f20
+ 7c: 8a d4 7c 4b ra1p2.sd %f26,%f27,%f28
+ 80: 8a a5 d8 4a ra1p2.dd %f20,%f22,%f24
+ 84: 0b 9c 95 4a m12ttpa.ss %f19,%f20,%f21
+ 88: 8b ec df 4b m12ttpa.sd %f29,%f30,%f31
+ 8c: 8b b5 1a 4b m12ttpa.dd %f22,%f24,%f26
+ 90: 0c a4 b6 4a iat1p2.ss %f20,%f21,%f22
+ 94: 8c 04 22 48 iat1p2.sd %f0,%f1,%f2
+ 98: 8c c5 5c 4b iat1p2.dd %f24,%f26,%f28
+ 9c: 0d ac d7 4a m12tpm.ss %f21,%f22,%f23
+ a0: 8d 1c 85 48 m12tpm.sd %f3,%f4,%f5
+ a4: 8d f5 02 48 m12tpm.dd %f30,%f0,%f2
+ a8: 0e b4 f8 4a ia1p2.ss %f22,%f23,%f24
+ ac: 8e 34 e8 48 ia1p2.sd %f6,%f7,%f8
+ b0: 8e 25 c8 48 ia1p2.dd %f4,%f6,%f8
+ b4: 0f bc 19 4b m12tpa.ss %f23,%f24,%f25
+ b8: 8f 4c 4b 49 m12tpa.sd %f9,%f10,%f11
+ bc: 8f 35 0a 49 m12tpa.dd %f6,%f8,%f10
+ c0: 00 06 22 48 d.r2p1.ss %f0,%f1,%f2
+ c4: 00 00 00 a0 shl %r0,%r0,%r0
+ c8: 80 1e 85 48 d.r2p1.sd %f3,%f4,%f5
+ cc: 00 00 00 a0 shl %r0,%r0,%r0
+ d0: 80 07 44 48 d.r2p1.dd %f0,%f2,%f4
+ d4: 00 00 00 a0 shl %r0,%r0,%r0
+ d8: 01 0e 43 48 d.r2pt.ss %f1,%f2,%f3
+ dc: 00 00 00 a0 shl %r0,%r0,%r0
+ e0: 81 26 a6 48 d.r2pt.sd %f4,%f5,%f6
+ e4: 00 00 00 a0 shl %r0,%r0,%r0
+ e8: 81 17 86 48 d.r2pt.dd %f2,%f4,%f6
+ ec: 00 00 00 a0 shl %r0,%r0,%r0
+ f0: 02 16 64 48 d.r2ap1.ss %f2,%f3,%f4
+ f4: 00 00 00 a0 shl %r0,%r0,%r0
+ f8: 82 36 e8 48 d.r2ap1.sd %f6,%f7,%f8
+ fc: 00 00 00 a0 shl %r0,%r0,%r0
+ 100: 82 27 c8 48 d.r2ap1.dd %f4,%f6,%f8
+ 104: 00 00 00 a0 shl %r0,%r0,%r0
+ 108: 03 1e 85 48 d.r2apt.ss %f3,%f4,%f5
+ 10c: 00 00 00 a0 shl %r0,%r0,%r0
+ 110: 83 3e 09 49 d.r2apt.sd %f7,%f8,%f9
+ 114: 00 00 00 a0 shl %r0,%r0,%r0
+ 118: 83 37 0a 49 d.r2apt.dd %f6,%f8,%f10
+ 11c: 00 00 00 a0 shl %r0,%r0,%r0
+ 120: 04 26 a6 48 d.i2p1.ss %f4,%f5,%f6
+ 124: 00 00 00 a0 shl %r0,%r0,%r0
+ 128: 84 46 2a 49 d.i2p1.sd %f8,%f9,%f10
+ 12c: 00 00 00 a0 shl %r0,%r0,%r0
+ 130: 84 67 d0 49 d.i2p1.dd %f12,%f14,%f16
+ 134: 00 00 00 a0 shl %r0,%r0,%r0
+ 138: 05 3e 09 49 d.i2pt.ss %f7,%f8,%f9
+ 13c: 00 00 00 a0 shl %r0,%r0,%r0
+ 140: 85 5e 8d 49 d.i2pt.sd %f11,%f12,%f13
+ 144: 00 00 00 a0 shl %r0,%r0,%r0
+ 148: 85 77 12 4a d.i2pt.dd %f14,%f16,%f18
+ 14c: 00 00 00 a0 shl %r0,%r0,%r0
+ 150: 06 56 6c 49 d.i2ap1.ss %f10,%f11,%f12
+ 154: 00 00 00 a0 shl %r0,%r0,%r0
+ 158: 86 76 f0 49 d.i2ap1.sd %f14,%f15,%f16
+ 15c: 00 00 00 a0 shl %r0,%r0,%r0
+ 160: 86 87 54 4a d.i2ap1.dd %f16,%f18,%f20
+ 164: 00 00 00 a0 shl %r0,%r0,%r0
+ 168: 07 6e cf 49 d.i2apt.ss %f13,%f14,%f15
+ 16c: 00 00 00 a0 shl %r0,%r0,%r0
+ 170: 87 8e 53 4a d.i2apt.sd %f17,%f18,%f19
+ 174: 00 00 00 a0 shl %r0,%r0,%r0
+ 178: 87 97 96 4a d.i2apt.dd %f18,%f20,%f22
+ 17c: 00 00 00 a0 shl %r0,%r0,%r0
+ 180: 08 76 f0 49 d.rat1p2.ss %f14,%f15,%f16
+ 184: 00 00 00 a0 shl %r0,%r0,%r0
+ 188: 88 a6 b6 4a d.rat1p2.sd %f20,%f21,%f22
+ 18c: 00 00 00 a0 shl %r0,%r0,%r0
+ 190: 88 a7 d8 4a d.rat1p2.dd %f20,%f22,%f24
+ 194: 00 00 00 a0 shl %r0,%r0,%r0
+ 198: 09 7e 11 4a d.m12apm.ss %f15,%f16,%f17
+ 19c: 00 00 00 a0 shl %r0,%r0,%r0
+ 1a0: 89 be 19 4b d.m12apm.sd %f23,%f24,%f25
+ 1a4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1a8: 89 b7 1a 4b d.m12apm.dd %f22,%f24,%f26
+ 1ac: 00 00 00 a0 shl %r0,%r0,%r0
+ 1b0: 0a 96 74 4a d.ra1p2.ss %f18,%f19,%f20
+ 1b4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1b8: 8a d6 7c 4b d.ra1p2.sd %f26,%f27,%f28
+ 1bc: 00 00 00 a0 shl %r0,%r0,%r0
+ 1c0: 8a a7 d8 4a d.ra1p2.dd %f20,%f22,%f24
+ 1c4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1c8: 0b 9e 95 4a d.m12ttpa.ss %f19,%f20,%f21
+ 1cc: 00 00 00 a0 shl %r0,%r0,%r0
+ 1d0: 8b ee df 4b d.m12ttpa.sd %f29,%f30,%f31
+ 1d4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1d8: 8b b7 1a 4b d.m12ttpa.dd %f22,%f24,%f26
+ 1dc: 00 00 00 a0 shl %r0,%r0,%r0
+ 1e0: 0c a6 b6 4a d.iat1p2.ss %f20,%f21,%f22
+ 1e4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1e8: 8c 06 22 48 d.iat1p2.sd %f0,%f1,%f2
+ 1ec: 00 00 00 a0 shl %r0,%r0,%r0
+ 1f0: 8c c7 5c 4b d.iat1p2.dd %f24,%f26,%f28
+ 1f4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1f8: 0d ae d7 4a d.m12tpm.ss %f21,%f22,%f23
+ 1fc: 00 00 00 a0 shl %r0,%r0,%r0
+ 200: 8d 1e 85 48 d.m12tpm.sd %f3,%f4,%f5
+ 204: 00 00 00 a0 shl %r0,%r0,%r0
+ 208: 8d f7 02 48 d.m12tpm.dd %f30,%f0,%f2
+ 20c: 00 00 00 a0 shl %r0,%r0,%r0
+ 210: 0e b6 f8 4a d.ia1p2.ss %f22,%f23,%f24
+ 214: 00 00 00 a0 shl %r0,%r0,%r0
+ 218: 8e 36 e8 48 d.ia1p2.sd %f6,%f7,%f8
+ 21c: 00 00 00 a0 shl %r0,%r0,%r0
+ 220: 8e 27 c8 48 d.ia1p2.dd %f4,%f6,%f8
+ 224: 00 00 00 a0 shl %r0,%r0,%r0
+ 228: 0f be 19 4b d.m12tpa.ss %f23,%f24,%f25
+ 22c: 00 00 00 a0 shl %r0,%r0,%r0
+ 230: 8f 4e 4b 49 d.m12tpa.sd %f9,%f10,%f11
+ 234: 00 00 00 a0 shl %r0,%r0,%r0
+ 238: 8f 37 0a 49 d.m12tpa.dd %f6,%f8,%f10
+ 23c: 00 00 00 a0 shl %r0,%r0,%r0
diff --git a/gas/testsuite/gas/i860/pfam.s b/gas/testsuite/gas/i860/pfam.s
new file mode 100644
index 0000000..4afc28d
--- /dev/null
+++ b/gas/testsuite/gas/i860/pfam.s
@@ -0,0 +1,182 @@
+# pfam.p family (p={ss,sd,dd})
+
+ .text
+
+ # pfam without dual bit.
+ r2p1.ss %f0,%f1,%f2
+ r2p1.sd %f3,%f4,%f5
+ r2p1.dd %f0,%f2,%f4
+
+ r2pt.ss %f1,%f2,%f3
+ r2pt.sd %f4,%f5,%f6
+ r2pt.dd %f2,%f4,%f6
+
+ r2ap1.ss %f2,%f3,%f4
+ r2ap1.sd %f6,%f7,%f8
+ r2ap1.dd %f4,%f6,%f8
+
+ r2apt.ss %f3,%f4,%f5
+ r2apt.sd %f7,%f8,%f9
+ r2apt.dd %f6,%f8,%f10
+
+ i2p1.ss %f4,%f5,%f6
+ i2p1.sd %f8,%f9,%f10
+ i2p1.dd %f12,%f14,%f16
+
+ i2pt.ss %f7,%f8,%f9
+ i2pt.sd %f11,%f12,%f13
+ i2pt.dd %f14,%f16,%f18
+
+ i2ap1.ss %f10,%f11,%f12
+ i2ap1.sd %f14,%f15,%f16
+ i2ap1.dd %f16,%f18,%f20
+
+ i2apt.ss %f13,%f14,%f15
+ i2apt.sd %f17,%f18,%f19
+ i2apt.dd %f18,%f20,%f22
+
+ rat1p2.ss %f14,%f15,%f16
+ rat1p2.sd %f20,%f21,%f22
+ rat1p2.dd %f20,%f22,%f24
+
+ m12apm.ss %f15,%f16,%f17
+ m12apm.sd %f23,%f24,%f25
+ m12apm.dd %f22,%f24,%f26
+
+ ra1p2.ss %f18,%f19,%f20
+ ra1p2.sd %f26,%f27,%f28
+ ra1p2.dd %f20,%f22,%f24
+
+ m12ttpa.ss %f19,%f20,%f21
+ m12ttpa.sd %f29,%f30,%f31
+ m12ttpa.dd %f22,%f24,%f26
+
+ iat1p2.ss %f20,%f21,%f22
+ iat1p2.sd %f0,%f1,%f2
+ iat1p2.dd %f24,%f26,%f28
+
+ m12tpm.ss %f21,%f22,%f23
+ m12tpm.sd %f3,%f4,%f5
+ m12tpm.dd %f30,%f0,%f2
+
+ ia1p2.ss %f22,%f23,%f24
+ ia1p2.sd %f6,%f7,%f8
+ ia1p2.dd %f4,%f6,%f8
+
+ m12tpa.ss %f23,%f24,%f25
+ m12tpa.sd %f9,%f10,%f11
+ m12tpa.dd %f6,%f8,%f10
+
+ # pfam with dual bit.
+ d.r2p1.ss %f0,%f1,%f2
+ nop
+ d.r2p1.sd %f3,%f4,%f5
+ nop
+ d.r2p1.dd %f0,%f2,%f4
+ nop
+
+ d.r2pt.ss %f1,%f2,%f3
+ nop
+ d.r2pt.sd %f4,%f5,%f6
+ nop
+ d.r2pt.dd %f2,%f4,%f6
+ nop
+
+ d.r2ap1.ss %f2,%f3,%f4
+ nop
+ d.r2ap1.sd %f6,%f7,%f8
+ nop
+ d.r2ap1.dd %f4,%f6,%f8
+ nop
+
+ d.r2apt.ss %f3,%f4,%f5
+ nop
+ d.r2apt.sd %f7,%f8,%f9
+ nop
+ d.r2apt.dd %f6,%f8,%f10
+ nop
+
+ d.i2p1.ss %f4,%f5,%f6
+ nop
+ d.i2p1.sd %f8,%f9,%f10
+ nop
+ d.i2p1.dd %f12,%f14,%f16
+ nop
+
+ d.i2pt.ss %f7,%f8,%f9
+ nop
+ d.i2pt.sd %f11,%f12,%f13
+ nop
+ d.i2pt.dd %f14,%f16,%f18
+ nop
+
+ d.i2ap1.ss %f10,%f11,%f12
+ nop
+ d.i2ap1.sd %f14,%f15,%f16
+ nop
+ d.i2ap1.dd %f16,%f18,%f20
+ nop
+
+ d.i2apt.ss %f13,%f14,%f15
+ nop
+ d.i2apt.sd %f17,%f18,%f19
+ nop
+ d.i2apt.dd %f18,%f20,%f22
+ nop
+
+ d.rat1p2.ss %f14,%f15,%f16
+ nop
+ d.rat1p2.sd %f20,%f21,%f22
+ nop
+ d.rat1p2.dd %f20,%f22,%f24
+ nop
+
+ d.m12apm.ss %f15,%f16,%f17
+ nop
+ d.m12apm.sd %f23,%f24,%f25
+ nop
+ d.m12apm.dd %f22,%f24,%f26
+ nop
+
+ d.ra1p2.ss %f18,%f19,%f20
+ nop
+ d.ra1p2.sd %f26,%f27,%f28
+ nop
+ d.ra1p2.dd %f20,%f22,%f24
+ nop
+
+ d.m12ttpa.ss %f19,%f20,%f21
+ nop
+ d.m12ttpa.sd %f29,%f30,%f31
+ nop
+ d.m12ttpa.dd %f22,%f24,%f26
+ nop
+
+ d.iat1p2.ss %f20,%f21,%f22
+ nop
+ d.iat1p2.sd %f0,%f1,%f2
+ nop
+ d.iat1p2.dd %f24,%f26,%f28
+ nop
+
+ d.m12tpm.ss %f21,%f22,%f23
+ nop
+ d.m12tpm.sd %f3,%f4,%f5
+ nop
+ d.m12tpm.dd %f30,%f0,%f2
+ nop
+
+ d.ia1p2.ss %f22,%f23,%f24
+ nop
+ d.ia1p2.sd %f6,%f7,%f8
+ nop
+ d.ia1p2.dd %f4,%f6,%f8
+ nop
+
+ d.m12tpa.ss %f23,%f24,%f25
+ nop
+ d.m12tpa.sd %f9,%f10,%f11
+ nop
+ d.m12tpa.dd %f6,%f8,%f10
+ nop
+
diff --git a/gas/testsuite/gas/i860/pfmam.d b/gas/testsuite/gas/i860/pfmam.d
new file mode 100644
index 0000000..2cc1485
--- /dev/null
+++ b/gas/testsuite/gas/i860/pfmam.d
@@ -0,0 +1,153 @@
+#as:
+#objdump: -dr
+#name: pfmam
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 00 00 22 48 mr2p1.ss %f0,%f1,%f2
+ 4: 80 18 85 48 mr2p1.sd %f3,%f4,%f5
+ 8: 80 01 44 48 mr2p1.dd %f0,%f2,%f4
+ c: 01 08 43 48 mr2pt.ss %f1,%f2,%f3
+ 10: 81 20 a6 48 mr2pt.sd %f4,%f5,%f6
+ 14: 81 11 86 48 mr2pt.dd %f2,%f4,%f6
+ 18: 02 10 64 48 mr2mp1.ss %f2,%f3,%f4
+ 1c: 82 30 e8 48 mr2mp1.sd %f6,%f7,%f8
+ 20: 82 21 c8 48 mr2mp1.dd %f4,%f6,%f8
+ 24: 03 18 85 48 mr2mpt.ss %f3,%f4,%f5
+ 28: 83 38 09 49 mr2mpt.sd %f7,%f8,%f9
+ 2c: 83 31 0a 49 mr2mpt.dd %f6,%f8,%f10
+ 30: 04 20 a6 48 mi2p1.ss %f4,%f5,%f6
+ 34: 84 40 2a 49 mi2p1.sd %f8,%f9,%f10
+ 38: 84 61 d0 49 mi2p1.dd %f12,%f14,%f16
+ 3c: 05 38 09 49 mi2pt.ss %f7,%f8,%f9
+ 40: 85 58 8d 49 mi2pt.sd %f11,%f12,%f13
+ 44: 85 71 12 4a mi2pt.dd %f14,%f16,%f18
+ 48: 06 50 6c 49 mi2mp1.ss %f10,%f11,%f12
+ 4c: 86 70 f0 49 mi2mp1.sd %f14,%f15,%f16
+ 50: 86 81 54 4a mi2mp1.dd %f16,%f18,%f20
+ 54: 07 68 cf 49 mi2mpt.ss %f13,%f14,%f15
+ 58: 87 88 53 4a mi2mpt.sd %f17,%f18,%f19
+ 5c: 87 91 96 4a mi2mpt.dd %f18,%f20,%f22
+ 60: 08 70 f0 49 mrmt1p2.ss %f14,%f15,%f16
+ 64: 88 a0 b6 4a mrmt1p2.sd %f20,%f21,%f22
+ 68: 88 a1 d8 4a mrmt1p2.dd %f20,%f22,%f24
+ 6c: 09 78 11 4a mm12mpm.ss %f15,%f16,%f17
+ 70: 89 b8 19 4b mm12mpm.sd %f23,%f24,%f25
+ 74: 89 b1 1a 4b mm12mpm.dd %f22,%f24,%f26
+ 78: 0a 90 74 4a mrm1p2.ss %f18,%f19,%f20
+ 7c: 8a d0 7c 4b mrm1p2.sd %f26,%f27,%f28
+ 80: 8a a1 d8 4a mrm1p2.dd %f20,%f22,%f24
+ 84: 0b 98 95 4a mm12ttpm.ss %f19,%f20,%f21
+ 88: 8b e8 df 4b mm12ttpm.sd %f29,%f30,%f31
+ 8c: 8b b1 1a 4b mm12ttpm.dd %f22,%f24,%f26
+ 90: 0c a0 b6 4a mimt1p2.ss %f20,%f21,%f22
+ 94: 8c 00 22 48 mimt1p2.sd %f0,%f1,%f2
+ 98: 8c c1 5c 4b mimt1p2.dd %f24,%f26,%f28
+ 9c: 0d a8 d7 4a mm12tpm.ss %f21,%f22,%f23
+ a0: 8d 18 85 48 mm12tpm.sd %f3,%f4,%f5
+ a4: 8d f1 02 48 mm12tpm.dd %f30,%f0,%f2
+ a8: 0e b0 f8 4a mim1p2.ss %f22,%f23,%f24
+ ac: 8e 30 e8 48 mim1p2.sd %f6,%f7,%f8
+ b0: 8e 21 c8 48 mim1p2.dd %f4,%f6,%f8
+ b4: 0f bc 19 4b m12tpa.ss %f23,%f24,%f25
+ b8: 8f 4c 4b 49 m12tpa.sd %f9,%f10,%f11
+ bc: 8f 35 0a 49 m12tpa.dd %f6,%f8,%f10
+ c0: 00 02 22 48 d.mr2p1.ss %f0,%f1,%f2
+ c4: 00 00 00 a0 shl %r0,%r0,%r0
+ c8: 80 1a 85 48 d.mr2p1.sd %f3,%f4,%f5
+ cc: 00 00 00 a0 shl %r0,%r0,%r0
+ d0: 80 03 44 48 d.mr2p1.dd %f0,%f2,%f4
+ d4: 00 00 00 a0 shl %r0,%r0,%r0
+ d8: 01 0a 43 48 d.mr2pt.ss %f1,%f2,%f3
+ dc: 00 00 00 a0 shl %r0,%r0,%r0
+ e0: 81 22 a6 48 d.mr2pt.sd %f4,%f5,%f6
+ e4: 00 00 00 a0 shl %r0,%r0,%r0
+ e8: 81 13 86 48 d.mr2pt.dd %f2,%f4,%f6
+ ec: 00 00 00 a0 shl %r0,%r0,%r0
+ f0: 02 12 64 48 d.mr2mp1.ss %f2,%f3,%f4
+ f4: 00 00 00 a0 shl %r0,%r0,%r0
+ f8: 82 32 e8 48 d.mr2mp1.sd %f6,%f7,%f8
+ fc: 00 00 00 a0 shl %r0,%r0,%r0
+ 100: 82 23 c8 48 d.mr2mp1.dd %f4,%f6,%f8
+ 104: 00 00 00 a0 shl %r0,%r0,%r0
+ 108: 03 1a 85 48 d.mr2mpt.ss %f3,%f4,%f5
+ 10c: 00 00 00 a0 shl %r0,%r0,%r0
+ 110: 83 3a 09 49 d.mr2mpt.sd %f7,%f8,%f9
+ 114: 00 00 00 a0 shl %r0,%r0,%r0
+ 118: 83 33 0a 49 d.mr2mpt.dd %f6,%f8,%f10
+ 11c: 00 00 00 a0 shl %r0,%r0,%r0
+ 120: 04 22 a6 48 d.mi2p1.ss %f4,%f5,%f6
+ 124: 00 00 00 a0 shl %r0,%r0,%r0
+ 128: 84 42 2a 49 d.mi2p1.sd %f8,%f9,%f10
+ 12c: 00 00 00 a0 shl %r0,%r0,%r0
+ 130: 84 63 d0 49 d.mi2p1.dd %f12,%f14,%f16
+ 134: 00 00 00 a0 shl %r0,%r0,%r0
+ 138: 05 3a 09 49 d.mi2pt.ss %f7,%f8,%f9
+ 13c: 00 00 00 a0 shl %r0,%r0,%r0
+ 140: 85 5a 8d 49 d.mi2pt.sd %f11,%f12,%f13
+ 144: 00 00 00 a0 shl %r0,%r0,%r0
+ 148: 85 73 12 4a d.mi2pt.dd %f14,%f16,%f18
+ 14c: 00 00 00 a0 shl %r0,%r0,%r0
+ 150: 06 52 6c 49 d.mi2mp1.ss %f10,%f11,%f12
+ 154: 00 00 00 a0 shl %r0,%r0,%r0
+ 158: 86 72 f0 49 d.mi2mp1.sd %f14,%f15,%f16
+ 15c: 00 00 00 a0 shl %r0,%r0,%r0
+ 160: 86 83 54 4a d.mi2mp1.dd %f16,%f18,%f20
+ 164: 00 00 00 a0 shl %r0,%r0,%r0
+ 168: 07 6a cf 49 d.mi2mpt.ss %f13,%f14,%f15
+ 16c: 00 00 00 a0 shl %r0,%r0,%r0
+ 170: 87 8a 53 4a d.mi2mpt.sd %f17,%f18,%f19
+ 174: 00 00 00 a0 shl %r0,%r0,%r0
+ 178: 87 93 96 4a d.mi2mpt.dd %f18,%f20,%f22
+ 17c: 00 00 00 a0 shl %r0,%r0,%r0
+ 180: 08 72 f0 49 d.mrmt1p2.ss %f14,%f15,%f16
+ 184: 00 00 00 a0 shl %r0,%r0,%r0
+ 188: 88 a2 b6 4a d.mrmt1p2.sd %f20,%f21,%f22
+ 18c: 00 00 00 a0 shl %r0,%r0,%r0
+ 190: 88 a3 d8 4a d.mrmt1p2.dd %f20,%f22,%f24
+ 194: 00 00 00 a0 shl %r0,%r0,%r0
+ 198: 09 7a 11 4a d.mm12mpm.ss %f15,%f16,%f17
+ 19c: 00 00 00 a0 shl %r0,%r0,%r0
+ 1a0: 89 ba 19 4b d.mm12mpm.sd %f23,%f24,%f25
+ 1a4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1a8: 89 b3 1a 4b d.mm12mpm.dd %f22,%f24,%f26
+ 1ac: 00 00 00 a0 shl %r0,%r0,%r0
+ 1b0: 0a 92 74 4a d.mrm1p2.ss %f18,%f19,%f20
+ 1b4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1b8: 8a d2 7c 4b d.mrm1p2.sd %f26,%f27,%f28
+ 1bc: 00 00 00 a0 shl %r0,%r0,%r0
+ 1c0: 8a a3 d8 4a d.mrm1p2.dd %f20,%f22,%f24
+ 1c4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1c8: 0b 9a 95 4a d.mm12ttpm.ss %f19,%f20,%f21
+ 1cc: 00 00 00 a0 shl %r0,%r0,%r0
+ 1d0: 8b ea df 4b d.mm12ttpm.sd %f29,%f30,%f31
+ 1d4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1d8: 8b b3 1a 4b d.mm12ttpm.dd %f22,%f24,%f26
+ 1dc: 00 00 00 a0 shl %r0,%r0,%r0
+ 1e0: 0c a2 b6 4a d.mimt1p2.ss %f20,%f21,%f22
+ 1e4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1e8: 8c 02 22 48 d.mimt1p2.sd %f0,%f1,%f2
+ 1ec: 00 00 00 a0 shl %r0,%r0,%r0
+ 1f0: 8c c3 5c 4b d.mimt1p2.dd %f24,%f26,%f28
+ 1f4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1f8: 0d aa d7 4a d.mm12tpm.ss %f21,%f22,%f23
+ 1fc: 00 00 00 a0 shl %r0,%r0,%r0
+ 200: 8d 1a 85 48 d.mm12tpm.sd %f3,%f4,%f5
+ 204: 00 00 00 a0 shl %r0,%r0,%r0
+ 208: 8d f3 02 48 d.mm12tpm.dd %f30,%f0,%f2
+ 20c: 00 00 00 a0 shl %r0,%r0,%r0
+ 210: 0e b2 f8 4a d.mim1p2.ss %f22,%f23,%f24
+ 214: 00 00 00 a0 shl %r0,%r0,%r0
+ 218: 8e 32 e8 48 d.mim1p2.sd %f6,%f7,%f8
+ 21c: 00 00 00 a0 shl %r0,%r0,%r0
+ 220: 8e 23 c8 48 d.mim1p2.dd %f4,%f6,%f8
+ 224: 00 00 00 a0 shl %r0,%r0,%r0
+ 228: 0f be 19 4b d.m12tpa.ss %f23,%f24,%f25
+ 22c: 00 00 00 a0 shl %r0,%r0,%r0
+ 230: 8f 4e 4b 49 d.m12tpa.sd %f9,%f10,%f11
+ 234: 00 00 00 a0 shl %r0,%r0,%r0
+ 238: 8f 37 0a 49 d.m12tpa.dd %f6,%f8,%f10
+ 23c: 00 00 00 a0 shl %r0,%r0,%r0
diff --git a/gas/testsuite/gas/i860/pfmam.s b/gas/testsuite/gas/i860/pfmam.s
new file mode 100644
index 0000000..ac6a1af
--- /dev/null
+++ b/gas/testsuite/gas/i860/pfmam.s
@@ -0,0 +1,182 @@
+# pfmam.p family (p={ss,sd,dd})
+
+ .text
+
+ # pfmam without dual bit.
+ mr2p1.ss %f0,%f1,%f2
+ mr2p1.sd %f3,%f4,%f5
+ mr2p1.dd %f0,%f2,%f4
+
+ mr2pt.ss %f1,%f2,%f3
+ mr2pt.sd %f4,%f5,%f6
+ mr2pt.dd %f2,%f4,%f6
+
+ mr2mp1.ss %f2,%f3,%f4
+ mr2mp1.sd %f6,%f7,%f8
+ mr2mp1.dd %f4,%f6,%f8
+
+ mr2mpt.ss %f3,%f4,%f5
+ mr2mpt.sd %f7,%f8,%f9
+ mr2mpt.dd %f6,%f8,%f10
+
+ mi2p1.ss %f4,%f5,%f6
+ mi2p1.sd %f8,%f9,%f10
+ mi2p1.dd %f12,%f14,%f16
+
+ mi2pt.ss %f7,%f8,%f9
+ mi2pt.sd %f11,%f12,%f13
+ mi2pt.dd %f14,%f16,%f18
+
+ mi2mp1.ss %f10,%f11,%f12
+ mi2mp1.sd %f14,%f15,%f16
+ mi2mp1.dd %f16,%f18,%f20
+
+ mi2mpt.ss %f13,%f14,%f15
+ mi2mpt.sd %f17,%f18,%f19
+ mi2mpt.dd %f18,%f20,%f22
+
+ mrmt1p2.ss %f14,%f15,%f16
+ mrmt1p2.sd %f20,%f21,%f22
+ mrmt1p2.dd %f20,%f22,%f24
+
+ mm12mpm.ss %f15,%f16,%f17
+ mm12mpm.sd %f23,%f24,%f25
+ mm12mpm.dd %f22,%f24,%f26
+
+ mrm1p2.ss %f18,%f19,%f20
+ mrm1p2.sd %f26,%f27,%f28
+ mrm1p2.dd %f20,%f22,%f24
+
+ mm12ttpm.ss %f19,%f20,%f21
+ mm12ttpm.sd %f29,%f30,%f31
+ mm12ttpm.dd %f22,%f24,%f26
+
+ mimt1p2.ss %f20,%f21,%f22
+ mimt1p2.sd %f0,%f1,%f2
+ mimt1p2.dd %f24,%f26,%f28
+
+ mm12tpm.ss %f21,%f22,%f23
+ mm12tpm.sd %f3,%f4,%f5
+ mm12tpm.dd %f30,%f0,%f2
+
+ mim1p2.ss %f22,%f23,%f24
+ mim1p2.sd %f6,%f7,%f8
+ mim1p2.dd %f4,%f6,%f8
+
+ m12tpa.ss %f23,%f24,%f25
+ m12tpa.sd %f9,%f10,%f11
+ m12tpa.dd %f6,%f8,%f10
+
+ # pfmam with dual bit.
+ d.mr2p1.ss %f0,%f1,%f2
+ nop
+ d.mr2p1.sd %f3,%f4,%f5
+ nop
+ d.mr2p1.dd %f0,%f2,%f4
+ nop
+
+ d.mr2pt.ss %f1,%f2,%f3
+ nop
+ d.mr2pt.sd %f4,%f5,%f6
+ nop
+ d.mr2pt.dd %f2,%f4,%f6
+ nop
+
+ d.mr2mp1.ss %f2,%f3,%f4
+ nop
+ d.mr2mp1.sd %f6,%f7,%f8
+ nop
+ d.mr2mp1.dd %f4,%f6,%f8
+ nop
+
+ d.mr2mpt.ss %f3,%f4,%f5
+ nop
+ d.mr2mpt.sd %f7,%f8,%f9
+ nop
+ d.mr2mpt.dd %f6,%f8,%f10
+ nop
+
+ d.mi2p1.ss %f4,%f5,%f6
+ nop
+ d.mi2p1.sd %f8,%f9,%f10
+ nop
+ d.mi2p1.dd %f12,%f14,%f16
+ nop
+
+ d.mi2pt.ss %f7,%f8,%f9
+ nop
+ d.mi2pt.sd %f11,%f12,%f13
+ nop
+ d.mi2pt.dd %f14,%f16,%f18
+ nop
+
+ d.mi2mp1.ss %f10,%f11,%f12
+ nop
+ d.mi2mp1.sd %f14,%f15,%f16
+ nop
+ d.mi2mp1.dd %f16,%f18,%f20
+ nop
+
+ d.mi2mpt.ss %f13,%f14,%f15
+ nop
+ d.mi2mpt.sd %f17,%f18,%f19
+ nop
+ d.mi2mpt.dd %f18,%f20,%f22
+ nop
+
+ d.mrmt1p2.ss %f14,%f15,%f16
+ nop
+ d.mrmt1p2.sd %f20,%f21,%f22
+ nop
+ d.mrmt1p2.dd %f20,%f22,%f24
+ nop
+
+ d.mm12mpm.ss %f15,%f16,%f17
+ nop
+ d.mm12mpm.sd %f23,%f24,%f25
+ nop
+ d.mm12mpm.dd %f22,%f24,%f26
+ nop
+
+ d.mrm1p2.ss %f18,%f19,%f20
+ nop
+ d.mrm1p2.sd %f26,%f27,%f28
+ nop
+ d.mrm1p2.dd %f20,%f22,%f24
+ nop
+
+ d.mm12ttpm.ss %f19,%f20,%f21
+ nop
+ d.mm12ttpm.sd %f29,%f30,%f31
+ nop
+ d.mm12ttpm.dd %f22,%f24,%f26
+ nop
+
+ d.mimt1p2.ss %f20,%f21,%f22
+ nop
+ d.mimt1p2.sd %f0,%f1,%f2
+ nop
+ d.mimt1p2.dd %f24,%f26,%f28
+ nop
+
+ d.mm12tpm.ss %f21,%f22,%f23
+ nop
+ d.mm12tpm.sd %f3,%f4,%f5
+ nop
+ d.mm12tpm.dd %f30,%f0,%f2
+ nop
+
+ d.mim1p2.ss %f22,%f23,%f24
+ nop
+ d.mim1p2.sd %f6,%f7,%f8
+ nop
+ d.mim1p2.dd %f4,%f6,%f8
+ nop
+
+ d.m12tpa.ss %f23,%f24,%f25
+ nop
+ d.m12tpa.sd %f9,%f10,%f11
+ nop
+ d.m12tpa.dd %f6,%f8,%f10
+ nop
+
diff --git a/gas/testsuite/gas/i860/pfmsm.d b/gas/testsuite/gas/i860/pfmsm.d
new file mode 100644
index 0000000..33befa0
--- /dev/null
+++ b/gas/testsuite/gas/i860/pfmsm.d
@@ -0,0 +1,153 @@
+#as:
+#objdump: -dr
+#name: pfmsm
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 10 00 22 48 mr2s1.ss %f0,%f1,%f2
+ 4: 90 18 85 48 mr2s1.sd %f3,%f4,%f5
+ 8: 90 01 44 48 mr2s1.dd %f0,%f2,%f4
+ c: 11 08 43 48 mr2st.ss %f1,%f2,%f3
+ 10: 91 20 a6 48 mr2st.sd %f4,%f5,%f6
+ 14: 91 11 86 48 mr2st.dd %f2,%f4,%f6
+ 18: 12 10 64 48 mr2ms1.ss %f2,%f3,%f4
+ 1c: 92 30 e8 48 mr2ms1.sd %f6,%f7,%f8
+ 20: 92 21 c8 48 mr2ms1.dd %f4,%f6,%f8
+ 24: 13 18 85 48 mr2mst.ss %f3,%f4,%f5
+ 28: 93 38 09 49 mr2mst.sd %f7,%f8,%f9
+ 2c: 93 31 0a 49 mr2mst.dd %f6,%f8,%f10
+ 30: 14 20 a6 48 mi2s1.ss %f4,%f5,%f6
+ 34: 94 40 2a 49 mi2s1.sd %f8,%f9,%f10
+ 38: 94 61 d0 49 mi2s1.dd %f12,%f14,%f16
+ 3c: 15 38 09 49 mi2st.ss %f7,%f8,%f9
+ 40: 95 58 8d 49 mi2st.sd %f11,%f12,%f13
+ 44: 95 71 12 4a mi2st.dd %f14,%f16,%f18
+ 48: 16 50 6c 49 mi2ms1.ss %f10,%f11,%f12
+ 4c: 96 70 f0 49 mi2ms1.sd %f14,%f15,%f16
+ 50: 96 81 54 4a mi2ms1.dd %f16,%f18,%f20
+ 54: 17 68 cf 49 mi2mst.ss %f13,%f14,%f15
+ 58: 97 88 53 4a mi2mst.sd %f17,%f18,%f19
+ 5c: 97 91 96 4a mi2mst.dd %f18,%f20,%f22
+ 60: 18 70 f0 49 mrmt1s2.ss %f14,%f15,%f16
+ 64: 98 a0 b6 4a mrmt1s2.sd %f20,%f21,%f22
+ 68: 98 a1 d8 4a mrmt1s2.dd %f20,%f22,%f24
+ 6c: 19 78 11 4a mm12msm.ss %f15,%f16,%f17
+ 70: 99 b8 19 4b mm12msm.sd %f23,%f24,%f25
+ 74: 99 b1 1a 4b mm12msm.dd %f22,%f24,%f26
+ 78: 1a 90 74 4a mrm1s2.ss %f18,%f19,%f20
+ 7c: 9a d0 7c 4b mrm1s2.sd %f26,%f27,%f28
+ 80: 9a a1 d8 4a mrm1s2.dd %f20,%f22,%f24
+ 84: 1b 98 95 4a mm12ttsm.ss %f19,%f20,%f21
+ 88: 9b e8 df 4b mm12ttsm.sd %f29,%f30,%f31
+ 8c: 9b b1 1a 4b mm12ttsm.dd %f22,%f24,%f26
+ 90: 1c a0 b6 4a mimt1s2.ss %f20,%f21,%f22
+ 94: 9c 00 22 48 mimt1s2.sd %f0,%f1,%f2
+ 98: 9c c1 5c 4b mimt1s2.dd %f24,%f26,%f28
+ 9c: 1d a8 d7 4a mm12tsm.ss %f21,%f22,%f23
+ a0: 9d 18 85 48 mm12tsm.sd %f3,%f4,%f5
+ a4: 9d f1 02 48 mm12tsm.dd %f30,%f0,%f2
+ a8: 1e b0 f8 4a mim1s2.ss %f22,%f23,%f24
+ ac: 9e 30 e8 48 mim1s2.sd %f6,%f7,%f8
+ b0: 9e 21 c8 48 mim1s2.dd %f4,%f6,%f8
+ b4: 1f bc 19 4b m12tsa.ss %f23,%f24,%f25
+ b8: 9f 4c 4b 49 m12tsa.sd %f9,%f10,%f11
+ bc: 9f 35 0a 49 m12tsa.dd %f6,%f8,%f10
+ c0: 10 02 22 48 d.mr2s1.ss %f0,%f1,%f2
+ c4: 00 00 00 a0 shl %r0,%r0,%r0
+ c8: 90 1a 85 48 d.mr2s1.sd %f3,%f4,%f5
+ cc: 00 00 00 a0 shl %r0,%r0,%r0
+ d0: 90 03 44 48 d.mr2s1.dd %f0,%f2,%f4
+ d4: 00 00 00 a0 shl %r0,%r0,%r0
+ d8: 11 0a 43 48 d.mr2st.ss %f1,%f2,%f3
+ dc: 00 00 00 a0 shl %r0,%r0,%r0
+ e0: 91 22 a6 48 d.mr2st.sd %f4,%f5,%f6
+ e4: 00 00 00 a0 shl %r0,%r0,%r0
+ e8: 91 13 86 48 d.mr2st.dd %f2,%f4,%f6
+ ec: 00 00 00 a0 shl %r0,%r0,%r0
+ f0: 12 12 64 48 d.mr2ms1.ss %f2,%f3,%f4
+ f4: 00 00 00 a0 shl %r0,%r0,%r0
+ f8: 92 32 e8 48 d.mr2ms1.sd %f6,%f7,%f8
+ fc: 00 00 00 a0 shl %r0,%r0,%r0
+ 100: 92 23 c8 48 d.mr2ms1.dd %f4,%f6,%f8
+ 104: 00 00 00 a0 shl %r0,%r0,%r0
+ 108: 13 1a 85 48 d.mr2mst.ss %f3,%f4,%f5
+ 10c: 00 00 00 a0 shl %r0,%r0,%r0
+ 110: 93 3a 09 49 d.mr2mst.sd %f7,%f8,%f9
+ 114: 00 00 00 a0 shl %r0,%r0,%r0
+ 118: 93 33 0a 49 d.mr2mst.dd %f6,%f8,%f10
+ 11c: 00 00 00 a0 shl %r0,%r0,%r0
+ 120: 14 22 a6 48 d.mi2s1.ss %f4,%f5,%f6
+ 124: 00 00 00 a0 shl %r0,%r0,%r0
+ 128: 94 42 2a 49 d.mi2s1.sd %f8,%f9,%f10
+ 12c: 00 00 00 a0 shl %r0,%r0,%r0
+ 130: 94 63 d0 49 d.mi2s1.dd %f12,%f14,%f16
+ 134: 00 00 00 a0 shl %r0,%r0,%r0
+ 138: 15 3a 09 49 d.mi2st.ss %f7,%f8,%f9
+ 13c: 00 00 00 a0 shl %r0,%r0,%r0
+ 140: 95 5a 8d 49 d.mi2st.sd %f11,%f12,%f13
+ 144: 00 00 00 a0 shl %r0,%r0,%r0
+ 148: 95 73 12 4a d.mi2st.dd %f14,%f16,%f18
+ 14c: 00 00 00 a0 shl %r0,%r0,%r0
+ 150: 16 52 6c 49 d.mi2ms1.ss %f10,%f11,%f12
+ 154: 00 00 00 a0 shl %r0,%r0,%r0
+ 158: 96 72 f0 49 d.mi2ms1.sd %f14,%f15,%f16
+ 15c: 00 00 00 a0 shl %r0,%r0,%r0
+ 160: 96 83 54 4a d.mi2ms1.dd %f16,%f18,%f20
+ 164: 00 00 00 a0 shl %r0,%r0,%r0
+ 168: 17 6a cf 49 d.mi2mst.ss %f13,%f14,%f15
+ 16c: 00 00 00 a0 shl %r0,%r0,%r0
+ 170: 97 8a 53 4a d.mi2mst.sd %f17,%f18,%f19
+ 174: 00 00 00 a0 shl %r0,%r0,%r0
+ 178: 97 93 96 4a d.mi2mst.dd %f18,%f20,%f22
+ 17c: 00 00 00 a0 shl %r0,%r0,%r0
+ 180: 18 72 f0 49 d.mrmt1s2.ss %f14,%f15,%f16
+ 184: 00 00 00 a0 shl %r0,%r0,%r0
+ 188: 98 a2 b6 4a d.mrmt1s2.sd %f20,%f21,%f22
+ 18c: 00 00 00 a0 shl %r0,%r0,%r0
+ 190: 98 a3 d8 4a d.mrmt1s2.dd %f20,%f22,%f24
+ 194: 00 00 00 a0 shl %r0,%r0,%r0
+ 198: 19 7a 11 4a d.mm12msm.ss %f15,%f16,%f17
+ 19c: 00 00 00 a0 shl %r0,%r0,%r0
+ 1a0: 99 ba 19 4b d.mm12msm.sd %f23,%f24,%f25
+ 1a4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1a8: 99 b3 1a 4b d.mm12msm.dd %f22,%f24,%f26
+ 1ac: 00 00 00 a0 shl %r0,%r0,%r0
+ 1b0: 1a 92 74 4a d.mrm1s2.ss %f18,%f19,%f20
+ 1b4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1b8: 9a d2 7c 4b d.mrm1s2.sd %f26,%f27,%f28
+ 1bc: 00 00 00 a0 shl %r0,%r0,%r0
+ 1c0: 9a a3 d8 4a d.mrm1s2.dd %f20,%f22,%f24
+ 1c4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1c8: 1b 9a 95 4a d.mm12ttsm.ss %f19,%f20,%f21
+ 1cc: 00 00 00 a0 shl %r0,%r0,%r0
+ 1d0: 9b ea df 4b d.mm12ttsm.sd %f29,%f30,%f31
+ 1d4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1d8: 9b b3 1a 4b d.mm12ttsm.dd %f22,%f24,%f26
+ 1dc: 00 00 00 a0 shl %r0,%r0,%r0
+ 1e0: 1c a2 b6 4a d.mimt1s2.ss %f20,%f21,%f22
+ 1e4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1e8: 9c 02 22 48 d.mimt1s2.sd %f0,%f1,%f2
+ 1ec: 00 00 00 a0 shl %r0,%r0,%r0
+ 1f0: 9c c3 5c 4b d.mimt1s2.dd %f24,%f26,%f28
+ 1f4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1f8: 1d aa d7 4a d.mm12tsm.ss %f21,%f22,%f23
+ 1fc: 00 00 00 a0 shl %r0,%r0,%r0
+ 200: 9d 1a 85 48 d.mm12tsm.sd %f3,%f4,%f5
+ 204: 00 00 00 a0 shl %r0,%r0,%r0
+ 208: 9d f3 02 48 d.mm12tsm.dd %f30,%f0,%f2
+ 20c: 00 00 00 a0 shl %r0,%r0,%r0
+ 210: 1e b2 f8 4a d.mim1s2.ss %f22,%f23,%f24
+ 214: 00 00 00 a0 shl %r0,%r0,%r0
+ 218: 9e 32 e8 48 d.mim1s2.sd %f6,%f7,%f8
+ 21c: 00 00 00 a0 shl %r0,%r0,%r0
+ 220: 9e 23 c8 48 d.mim1s2.dd %f4,%f6,%f8
+ 224: 00 00 00 a0 shl %r0,%r0,%r0
+ 228: 1f be 19 4b d.m12tsa.ss %f23,%f24,%f25
+ 22c: 00 00 00 a0 shl %r0,%r0,%r0
+ 230: 9f 4e 4b 49 d.m12tsa.sd %f9,%f10,%f11
+ 234: 00 00 00 a0 shl %r0,%r0,%r0
+ 238: 9f 37 0a 49 d.m12tsa.dd %f6,%f8,%f10
+ 23c: 00 00 00 a0 shl %r0,%r0,%r0
diff --git a/gas/testsuite/gas/i860/pfmsm.s b/gas/testsuite/gas/i860/pfmsm.s
new file mode 100644
index 0000000..26c9166
--- /dev/null
+++ b/gas/testsuite/gas/i860/pfmsm.s
@@ -0,0 +1,182 @@
+# pfmsm.p family (p={ss,sd,dd})
+
+ .text
+
+ # pfmsm without dual bit
+ mr2s1.ss %f0,%f1,%f2
+ mr2s1.sd %f3,%f4,%f5
+ mr2s1.dd %f0,%f2,%f4
+
+ mr2st.ss %f1,%f2,%f3
+ mr2st.sd %f4,%f5,%f6
+ mr2st.dd %f2,%f4,%f6
+
+ mr2ms1.ss %f2,%f3,%f4
+ mr2ms1.sd %f6,%f7,%f8
+ mr2ms1.dd %f4,%f6,%f8
+
+ mr2mst.ss %f3,%f4,%f5
+ mr2mst.sd %f7,%f8,%f9
+ mr2mst.dd %f6,%f8,%f10
+
+ mi2s1.ss %f4,%f5,%f6
+ mi2s1.sd %f8,%f9,%f10
+ mi2s1.dd %f12,%f14,%f16
+
+ mi2st.ss %f7,%f8,%f9
+ mi2st.sd %f11,%f12,%f13
+ mi2st.dd %f14,%f16,%f18
+
+ mi2ms1.ss %f10,%f11,%f12
+ mi2ms1.sd %f14,%f15,%f16
+ mi2ms1.dd %f16,%f18,%f20
+
+ mi2mst.ss %f13,%f14,%f15
+ mi2mst.sd %f17,%f18,%f19
+ mi2mst.dd %f18,%f20,%f22
+
+ mrmt1s2.ss %f14,%f15,%f16
+ mrmt1s2.sd %f20,%f21,%f22
+ mrmt1s2.dd %f20,%f22,%f24
+
+ mm12msm.ss %f15,%f16,%f17
+ mm12msm.sd %f23,%f24,%f25
+ mm12msm.dd %f22,%f24,%f26
+
+ mrm1s2.ss %f18,%f19,%f20
+ mrm1s2.sd %f26,%f27,%f28
+ mrm1s2.dd %f20,%f22,%f24
+
+ mm12ttsm.ss %f19,%f20,%f21
+ mm12ttsm.sd %f29,%f30,%f31
+ mm12ttsm.dd %f22,%f24,%f26
+
+ mimt1s2.ss %f20,%f21,%f22
+ mimt1s2.sd %f0,%f1,%f2
+ mimt1s2.dd %f24,%f26,%f28
+
+ mm12tsm.ss %f21,%f22,%f23
+ mm12tsm.sd %f3,%f4,%f5
+ mm12tsm.dd %f30,%f0,%f2
+
+ mim1s2.ss %f22,%f23,%f24
+ mim1s2.sd %f6,%f7,%f8
+ mim1s2.dd %f4,%f6,%f8
+
+ m12tsa.ss %f23,%f24,%f25
+ m12tsa.sd %f9,%f10,%f11
+ m12tsa.dd %f6,%f8,%f10
+
+ # pfmsm with dual bit
+ d.mr2s1.ss %f0,%f1,%f2
+ nop
+ d.mr2s1.sd %f3,%f4,%f5
+ nop
+ d.mr2s1.dd %f0,%f2,%f4
+ nop
+
+ d.mr2st.ss %f1,%f2,%f3
+ nop
+ d.mr2st.sd %f4,%f5,%f6
+ nop
+ d.mr2st.dd %f2,%f4,%f6
+ nop
+
+ d.mr2ms1.ss %f2,%f3,%f4
+ nop
+ d.mr2ms1.sd %f6,%f7,%f8
+ nop
+ d.mr2ms1.dd %f4,%f6,%f8
+ nop
+
+ d.mr2mst.ss %f3,%f4,%f5
+ nop
+ d.mr2mst.sd %f7,%f8,%f9
+ nop
+ d.mr2mst.dd %f6,%f8,%f10
+ nop
+
+ d.mi2s1.ss %f4,%f5,%f6
+ nop
+ d.mi2s1.sd %f8,%f9,%f10
+ nop
+ d.mi2s1.dd %f12,%f14,%f16
+ nop
+
+ d.mi2st.ss %f7,%f8,%f9
+ nop
+ d.mi2st.sd %f11,%f12,%f13
+ nop
+ d.mi2st.dd %f14,%f16,%f18
+ nop
+
+ d.mi2ms1.ss %f10,%f11,%f12
+ nop
+ d.mi2ms1.sd %f14,%f15,%f16
+ nop
+ d.mi2ms1.dd %f16,%f18,%f20
+ nop
+
+ d.mi2mst.ss %f13,%f14,%f15
+ nop
+ d.mi2mst.sd %f17,%f18,%f19
+ nop
+ d.mi2mst.dd %f18,%f20,%f22
+ nop
+
+ d.mrmt1s2.ss %f14,%f15,%f16
+ nop
+ d.mrmt1s2.sd %f20,%f21,%f22
+ nop
+ d.mrmt1s2.dd %f20,%f22,%f24
+ nop
+
+ d.mm12msm.ss %f15,%f16,%f17
+ nop
+ d.mm12msm.sd %f23,%f24,%f25
+ nop
+ d.mm12msm.dd %f22,%f24,%f26
+ nop
+
+ d.mrm1s2.ss %f18,%f19,%f20
+ nop
+ d.mrm1s2.sd %f26,%f27,%f28
+ nop
+ d.mrm1s2.dd %f20,%f22,%f24
+ nop
+
+ d.mm12ttsm.ss %f19,%f20,%f21
+ nop
+ d.mm12ttsm.sd %f29,%f30,%f31
+ nop
+ d.mm12ttsm.dd %f22,%f24,%f26
+ nop
+
+ d.mimt1s2.ss %f20,%f21,%f22
+ nop
+ d.mimt1s2.sd %f0,%f1,%f2
+ nop
+ d.mimt1s2.dd %f24,%f26,%f28
+ nop
+
+ d.mm12tsm.ss %f21,%f22,%f23
+ nop
+ d.mm12tsm.sd %f3,%f4,%f5
+ nop
+ d.mm12tsm.dd %f30,%f0,%f2
+ nop
+
+ d.mim1s2.ss %f22,%f23,%f24
+ nop
+ d.mim1s2.sd %f6,%f7,%f8
+ nop
+ d.mim1s2.dd %f4,%f6,%f8
+ nop
+
+ d.m12tsa.ss %f23,%f24,%f25
+ nop
+ d.m12tsa.sd %f9,%f10,%f11
+ nop
+ d.m12tsa.dd %f6,%f8,%f10
+ nop
+
diff --git a/gas/testsuite/gas/i860/pfsm.d b/gas/testsuite/gas/i860/pfsm.d
new file mode 100644
index 0000000..bcd7a01
--- /dev/null
+++ b/gas/testsuite/gas/i860/pfsm.d
@@ -0,0 +1,153 @@
+#as:
+#objdump: -dr
+#name: pfsm
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 10 04 22 48 r2s1.ss %f0,%f1,%f2
+ 4: 90 1c 85 48 r2s1.sd %f3,%f4,%f5
+ 8: 90 05 44 48 r2s1.dd %f0,%f2,%f4
+ c: 11 0c 43 48 r2st.ss %f1,%f2,%f3
+ 10: 91 24 a6 48 r2st.sd %f4,%f5,%f6
+ 14: 91 15 86 48 r2st.dd %f2,%f4,%f6
+ 18: 12 14 64 48 r2as1.ss %f2,%f3,%f4
+ 1c: 92 34 e8 48 r2as1.sd %f6,%f7,%f8
+ 20: 92 25 c8 48 r2as1.dd %f4,%f6,%f8
+ 24: 13 1c 85 48 r2ast.ss %f3,%f4,%f5
+ 28: 93 3c 09 49 r2ast.sd %f7,%f8,%f9
+ 2c: 93 35 0a 49 r2ast.dd %f6,%f8,%f10
+ 30: 14 24 a6 48 i2s1.ss %f4,%f5,%f6
+ 34: 94 44 2a 49 i2s1.sd %f8,%f9,%f10
+ 38: 94 65 d0 49 i2s1.dd %f12,%f14,%f16
+ 3c: 15 3c 09 49 i2st.ss %f7,%f8,%f9
+ 40: 95 5c 8d 49 i2st.sd %f11,%f12,%f13
+ 44: 95 75 12 4a i2st.dd %f14,%f16,%f18
+ 48: 16 54 6c 49 i2as1.ss %f10,%f11,%f12
+ 4c: 96 74 f0 49 i2as1.sd %f14,%f15,%f16
+ 50: 96 85 54 4a i2as1.dd %f16,%f18,%f20
+ 54: 17 6c cf 49 i2ast.ss %f13,%f14,%f15
+ 58: 97 8c 53 4a i2ast.sd %f17,%f18,%f19
+ 5c: 97 95 96 4a i2ast.dd %f18,%f20,%f22
+ 60: 18 74 f0 49 rat1s2.ss %f14,%f15,%f16
+ 64: 98 a4 b6 4a rat1s2.sd %f20,%f21,%f22
+ 68: 98 a5 d8 4a rat1s2.dd %f20,%f22,%f24
+ 6c: 19 7c 11 4a m12asm.ss %f15,%f16,%f17
+ 70: 99 bc 19 4b m12asm.sd %f23,%f24,%f25
+ 74: 99 b5 1a 4b m12asm.dd %f22,%f24,%f26
+ 78: 1a 94 74 4a ra1s2.ss %f18,%f19,%f20
+ 7c: 9a d4 7c 4b ra1s2.sd %f26,%f27,%f28
+ 80: 9a a5 d8 4a ra1s2.dd %f20,%f22,%f24
+ 84: 1b 9c 95 4a m12ttsa.ss %f19,%f20,%f21
+ 88: 9b ec df 4b m12ttsa.sd %f29,%f30,%f31
+ 8c: 9b b5 1a 4b m12ttsa.dd %f22,%f24,%f26
+ 90: 1c a4 b6 4a iat1s2.ss %f20,%f21,%f22
+ 94: 9c 04 22 48 iat1s2.sd %f0,%f1,%f2
+ 98: 9c c5 5c 4b iat1s2.dd %f24,%f26,%f28
+ 9c: 1d ac d7 4a m12tsm.ss %f21,%f22,%f23
+ a0: 9d 1c 85 48 m12tsm.sd %f3,%f4,%f5
+ a4: 9d f5 02 48 m12tsm.dd %f30,%f0,%f2
+ a8: 1e b4 f8 4a ia1s2.ss %f22,%f23,%f24
+ ac: 9e 34 e8 48 ia1s2.sd %f6,%f7,%f8
+ b0: 9e 25 c8 48 ia1s2.dd %f4,%f6,%f8
+ b4: 1f bc 19 4b m12tsa.ss %f23,%f24,%f25
+ b8: 9f 4c 4b 49 m12tsa.sd %f9,%f10,%f11
+ bc: 9f 35 0a 49 m12tsa.dd %f6,%f8,%f10
+ c0: 10 06 22 48 d.r2s1.ss %f0,%f1,%f2
+ c4: 00 00 00 a0 shl %r0,%r0,%r0
+ c8: 90 1e 85 48 d.r2s1.sd %f3,%f4,%f5
+ cc: 00 00 00 a0 shl %r0,%r0,%r0
+ d0: 90 07 44 48 d.r2s1.dd %f0,%f2,%f4
+ d4: 00 00 00 a0 shl %r0,%r0,%r0
+ d8: 11 0e 43 48 d.r2st.ss %f1,%f2,%f3
+ dc: 00 00 00 a0 shl %r0,%r0,%r0
+ e0: 91 26 a6 48 d.r2st.sd %f4,%f5,%f6
+ e4: 00 00 00 a0 shl %r0,%r0,%r0
+ e8: 91 17 86 48 d.r2st.dd %f2,%f4,%f6
+ ec: 00 00 00 a0 shl %r0,%r0,%r0
+ f0: 12 16 64 48 d.r2as1.ss %f2,%f3,%f4
+ f4: 00 00 00 a0 shl %r0,%r0,%r0
+ f8: 92 36 e8 48 d.r2as1.sd %f6,%f7,%f8
+ fc: 00 00 00 a0 shl %r0,%r0,%r0
+ 100: 92 27 c8 48 d.r2as1.dd %f4,%f6,%f8
+ 104: 00 00 00 a0 shl %r0,%r0,%r0
+ 108: 13 1e 85 48 d.r2ast.ss %f3,%f4,%f5
+ 10c: 00 00 00 a0 shl %r0,%r0,%r0
+ 110: 93 3e 09 49 d.r2ast.sd %f7,%f8,%f9
+ 114: 00 00 00 a0 shl %r0,%r0,%r0
+ 118: 93 37 0a 49 d.r2ast.dd %f6,%f8,%f10
+ 11c: 00 00 00 a0 shl %r0,%r0,%r0
+ 120: 14 26 a6 48 d.i2s1.ss %f4,%f5,%f6
+ 124: 00 00 00 a0 shl %r0,%r0,%r0
+ 128: 94 46 2a 49 d.i2s1.sd %f8,%f9,%f10
+ 12c: 00 00 00 a0 shl %r0,%r0,%r0
+ 130: 94 67 d0 49 d.i2s1.dd %f12,%f14,%f16
+ 134: 00 00 00 a0 shl %r0,%r0,%r0
+ 138: 15 3e 09 49 d.i2st.ss %f7,%f8,%f9
+ 13c: 00 00 00 a0 shl %r0,%r0,%r0
+ 140: 95 5e 8d 49 d.i2st.sd %f11,%f12,%f13
+ 144: 00 00 00 a0 shl %r0,%r0,%r0
+ 148: 95 77 12 4a d.i2st.dd %f14,%f16,%f18
+ 14c: 00 00 00 a0 shl %r0,%r0,%r0
+ 150: 16 56 6c 49 d.i2as1.ss %f10,%f11,%f12
+ 154: 00 00 00 a0 shl %r0,%r0,%r0
+ 158: 96 76 f0 49 d.i2as1.sd %f14,%f15,%f16
+ 15c: 00 00 00 a0 shl %r0,%r0,%r0
+ 160: 96 87 54 4a d.i2as1.dd %f16,%f18,%f20
+ 164: 00 00 00 a0 shl %r0,%r0,%r0
+ 168: 17 6e cf 49 d.i2ast.ss %f13,%f14,%f15
+ 16c: 00 00 00 a0 shl %r0,%r0,%r0
+ 170: 97 8e 53 4a d.i2ast.sd %f17,%f18,%f19
+ 174: 00 00 00 a0 shl %r0,%r0,%r0
+ 178: 97 97 96 4a d.i2ast.dd %f18,%f20,%f22
+ 17c: 00 00 00 a0 shl %r0,%r0,%r0
+ 180: 18 76 f0 49 d.rat1s2.ss %f14,%f15,%f16
+ 184: 00 00 00 a0 shl %r0,%r0,%r0
+ 188: 98 a6 b6 4a d.rat1s2.sd %f20,%f21,%f22
+ 18c: 00 00 00 a0 shl %r0,%r0,%r0
+ 190: 98 a7 d8 4a d.rat1s2.dd %f20,%f22,%f24
+ 194: 00 00 00 a0 shl %r0,%r0,%r0
+ 198: 19 7e 11 4a d.m12asm.ss %f15,%f16,%f17
+ 19c: 00 00 00 a0 shl %r0,%r0,%r0
+ 1a0: 99 be 19 4b d.m12asm.sd %f23,%f24,%f25
+ 1a4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1a8: 99 b7 1a 4b d.m12asm.dd %f22,%f24,%f26
+ 1ac: 00 00 00 a0 shl %r0,%r0,%r0
+ 1b0: 1a 96 74 4a d.ra1s2.ss %f18,%f19,%f20
+ 1b4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1b8: 9a d6 7c 4b d.ra1s2.sd %f26,%f27,%f28
+ 1bc: 00 00 00 a0 shl %r0,%r0,%r0
+ 1c0: 9a a7 d8 4a d.ra1s2.dd %f20,%f22,%f24
+ 1c4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1c8: 1b 9e 95 4a d.m12ttsa.ss %f19,%f20,%f21
+ 1cc: 00 00 00 a0 shl %r0,%r0,%r0
+ 1d0: 9b ee df 4b d.m12ttsa.sd %f29,%f30,%f31
+ 1d4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1d8: 9b b7 1a 4b d.m12ttsa.dd %f22,%f24,%f26
+ 1dc: 00 00 00 a0 shl %r0,%r0,%r0
+ 1e0: 1c a6 b6 4a d.iat1s2.ss %f20,%f21,%f22
+ 1e4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1e8: 9c 06 22 48 d.iat1s2.sd %f0,%f1,%f2
+ 1ec: 00 00 00 a0 shl %r0,%r0,%r0
+ 1f0: 9c c7 5c 4b d.iat1s2.dd %f24,%f26,%f28
+ 1f4: 00 00 00 a0 shl %r0,%r0,%r0
+ 1f8: 1d ae d7 4a d.m12tsm.ss %f21,%f22,%f23
+ 1fc: 00 00 00 a0 shl %r0,%r0,%r0
+ 200: 9d 1e 85 48 d.m12tsm.sd %f3,%f4,%f5
+ 204: 00 00 00 a0 shl %r0,%r0,%r0
+ 208: 9d f7 02 48 d.m12tsm.dd %f30,%f0,%f2
+ 20c: 00 00 00 a0 shl %r0,%r0,%r0
+ 210: 1e b6 f8 4a d.ia1s2.ss %f22,%f23,%f24
+ 214: 00 00 00 a0 shl %r0,%r0,%r0
+ 218: 9e 36 e8 48 d.ia1s2.sd %f6,%f7,%f8
+ 21c: 00 00 00 a0 shl %r0,%r0,%r0
+ 220: 9e 27 c8 48 d.ia1s2.dd %f4,%f6,%f8
+ 224: 00 00 00 a0 shl %r0,%r0,%r0
+ 228: 1f be 19 4b d.m12tsa.ss %f23,%f24,%f25
+ 22c: 00 00 00 a0 shl %r0,%r0,%r0
+ 230: 9f 4e 4b 49 d.m12tsa.sd %f9,%f10,%f11
+ 234: 00 00 00 a0 shl %r0,%r0,%r0
+ 238: 9f 37 0a 49 d.m12tsa.dd %f6,%f8,%f10
+ 23c: 00 00 00 a0 shl %r0,%r0,%r0
diff --git a/gas/testsuite/gas/i860/pfsm.s b/gas/testsuite/gas/i860/pfsm.s
new file mode 100644
index 0000000..16ecd97
--- /dev/null
+++ b/gas/testsuite/gas/i860/pfsm.s
@@ -0,0 +1,182 @@
+# pfsm.p family (p={ss,sd,dd})
+
+ .text
+
+ # pfsm without dual bit
+ r2s1.ss %f0,%f1,%f2
+ r2s1.sd %f3,%f4,%f5
+ r2s1.dd %f0,%f2,%f4
+
+ r2st.ss %f1,%f2,%f3
+ r2st.sd %f4,%f5,%f6
+ r2st.dd %f2,%f4,%f6
+
+ r2as1.ss %f2,%f3,%f4
+ r2as1.sd %f6,%f7,%f8
+ r2as1.dd %f4,%f6,%f8
+
+ r2ast.ss %f3,%f4,%f5
+ r2ast.sd %f7,%f8,%f9
+ r2ast.dd %f6,%f8,%f10
+
+ i2s1.ss %f4,%f5,%f6
+ i2s1.sd %f8,%f9,%f10
+ i2s1.dd %f12,%f14,%f16
+
+ i2st.ss %f7,%f8,%f9
+ i2st.sd %f11,%f12,%f13
+ i2st.dd %f14,%f16,%f18
+
+ i2as1.ss %f10,%f11,%f12
+ i2as1.sd %f14,%f15,%f16
+ i2as1.dd %f16,%f18,%f20
+
+ i2ast.ss %f13,%f14,%f15
+ i2ast.sd %f17,%f18,%f19
+ i2ast.dd %f18,%f20,%f22
+
+ rat1s2.ss %f14,%f15,%f16
+ rat1s2.sd %f20,%f21,%f22
+ rat1s2.dd %f20,%f22,%f24
+
+ m12asm.ss %f15,%f16,%f17
+ m12asm.sd %f23,%f24,%f25
+ m12asm.dd %f22,%f24,%f26
+
+ ra1s2.ss %f18,%f19,%f20
+ ra1s2.sd %f26,%f27,%f28
+ ra1s2.dd %f20,%f22,%f24
+
+ m12ttsa.ss %f19,%f20,%f21
+ m12ttsa.sd %f29,%f30,%f31
+ m12ttsa.dd %f22,%f24,%f26
+
+ iat1s2.ss %f20,%f21,%f22
+ iat1s2.sd %f0,%f1,%f2
+ iat1s2.dd %f24,%f26,%f28
+
+ m12tsm.ss %f21,%f22,%f23
+ m12tsm.sd %f3,%f4,%f5
+ m12tsm.dd %f30,%f0,%f2
+
+ ia1s2.ss %f22,%f23,%f24
+ ia1s2.sd %f6,%f7,%f8
+ ia1s2.dd %f4,%f6,%f8
+
+ m12tsa.ss %f23,%f24,%f25
+ m12tsa.sd %f9,%f10,%f11
+ m12tsa.dd %f6,%f8,%f10
+
+ # pfsm with dual bit
+ d.r2s1.ss %f0,%f1,%f2
+ nop
+ d.r2s1.sd %f3,%f4,%f5
+ nop
+ d.r2s1.dd %f0,%f2,%f4
+ nop
+
+ d.r2st.ss %f1,%f2,%f3
+ nop
+ d.r2st.sd %f4,%f5,%f6
+ nop
+ d.r2st.dd %f2,%f4,%f6
+ nop
+
+ d.r2as1.ss %f2,%f3,%f4
+ nop
+ d.r2as1.sd %f6,%f7,%f8
+ nop
+ d.r2as1.dd %f4,%f6,%f8
+ nop
+
+ d.r2ast.ss %f3,%f4,%f5
+ nop
+ d.r2ast.sd %f7,%f8,%f9
+ nop
+ d.r2ast.dd %f6,%f8,%f10
+ nop
+
+ d.i2s1.ss %f4,%f5,%f6
+ nop
+ d.i2s1.sd %f8,%f9,%f10
+ nop
+ d.i2s1.dd %f12,%f14,%f16
+ nop
+
+ d.i2st.ss %f7,%f8,%f9
+ nop
+ d.i2st.sd %f11,%f12,%f13
+ nop
+ d.i2st.dd %f14,%f16,%f18
+ nop
+
+ d.i2as1.ss %f10,%f11,%f12
+ nop
+ d.i2as1.sd %f14,%f15,%f16
+ nop
+ d.i2as1.dd %f16,%f18,%f20
+ nop
+
+ d.i2ast.ss %f13,%f14,%f15
+ nop
+ d.i2ast.sd %f17,%f18,%f19
+ nop
+ d.i2ast.dd %f18,%f20,%f22
+ nop
+
+ d.rat1s2.ss %f14,%f15,%f16
+ nop
+ d.rat1s2.sd %f20,%f21,%f22
+ nop
+ d.rat1s2.dd %f20,%f22,%f24
+ nop
+
+ d.m12asm.ss %f15,%f16,%f17
+ nop
+ d.m12asm.sd %f23,%f24,%f25
+ nop
+ d.m12asm.dd %f22,%f24,%f26
+ nop
+
+ d.ra1s2.ss %f18,%f19,%f20
+ nop
+ d.ra1s2.sd %f26,%f27,%f28
+ nop
+ d.ra1s2.dd %f20,%f22,%f24
+ nop
+
+ d.m12ttsa.ss %f19,%f20,%f21
+ nop
+ d.m12ttsa.sd %f29,%f30,%f31
+ nop
+ d.m12ttsa.dd %f22,%f24,%f26
+ nop
+
+ d.iat1s2.ss %f20,%f21,%f22
+ nop
+ d.iat1s2.sd %f0,%f1,%f2
+ nop
+ d.iat1s2.dd %f24,%f26,%f28
+ nop
+
+ d.m12tsm.ss %f21,%f22,%f23
+ nop
+ d.m12tsm.sd %f3,%f4,%f5
+ nop
+ d.m12tsm.dd %f30,%f0,%f2
+ nop
+
+ d.ia1s2.ss %f22,%f23,%f24
+ nop
+ d.ia1s2.sd %f6,%f7,%f8
+ nop
+ d.ia1s2.dd %f4,%f6,%f8
+ nop
+
+ d.m12tsa.ss %f23,%f24,%f25
+ nop
+ d.m12tsa.sd %f9,%f10,%f11
+ nop
+ d.m12tsa.dd %f6,%f8,%f10
+ nop
+
diff --git a/gas/testsuite/gas/i860/regress01.d b/gas/testsuite/gas/i860/regress01.d
new file mode 100644
index 0000000..1e4d947
--- /dev/null
+++ b/gas/testsuite/gas/i860/regress01.d
@@ -0,0 +1,21 @@
+#as:
+#objdump: -dr
+#name: regress01
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: f2 ff 50 2c fst.l %f16,-16\(%sp\)
+ 4: f2 ff 54 2c fst.l %f20,-16\(%sp\)
+ 8: f2 ff 58 2c fst.l %f24,-16\(%sp\)
+ c: f3 ff 50 2c fst.l %f16,-16\(%sp\)\+\+
+ 10: f3 ff 54 2c fst.l %f20,-16\(%sp\)\+\+
+ 14: f3 ff 58 2c fst.l %f24,-16\(%sp\)\+\+
+ 18: f4 ff 50 2c fst.q %f16,-16\(%sp\)
+ 1c: f4 ff 54 2c fst.q %f20,-16\(%sp\)
+ 20: f4 ff 58 2c fst.q %f24,-16\(%sp\)
+ 24: f5 ff 50 2c fst.q %f16,-16\(%sp\)\+\+
+ 28: f5 ff 54 2c fst.q %f20,-16\(%sp\)\+\+
+ 2c: f5 ff 58 2c fst.q %f24,-16\(%sp\)\+\+
diff --git a/gas/testsuite/gas/i860/regress01.s b/gas/testsuite/gas/i860/regress01.s
new file mode 100644
index 0000000..002c3bd
--- /dev/null
+++ b/gas/testsuite/gas/i860/regress01.s
@@ -0,0 +1,19 @@
+# Test fst.* with and without auto-increment.
+
+ .text
+
+ fst.l %f16,-16(%sp)
+ fst.l %f20,-16(%sp)
+ fst.l %f24,-16(%sp)
+
+ fst.l %f16,-16(%sp)++
+ fst.l %f20,-16(%sp)++
+ fst.l %f24,-16(%sp)++
+
+ fst.q %f16,-16(%sp)
+ fst.q %f20,-16(%sp)
+ fst.q %f24,-16(%sp)
+
+ fst.q %f16,-16(%sp)++
+ fst.q %f20,-16(%sp)++
+ fst.q %f24,-16(%sp)++
diff --git a/gas/testsuite/gas/i860/shift.d b/gas/testsuite/gas/i860/shift.d
new file mode 100644
index 0000000..23821b0
--- /dev/null
+++ b/gas/testsuite/gas/i860/shift.d
@@ -0,0 +1,86 @@
+#as:
+#objdump: -dr
+#name: shift
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: 00 00 22 a0 shl %r0,%r1,%sp
+ 4: 00 18 85 a0 shl %fp,%r4,%r5
+ 8: 00 30 e8 a0 shl %r6,%r7,%r8
+ c: 00 48 4b a1 shl %r9,%r10,%r11
+ 10: 00 f8 ae a1 shl %r31,%r13,%r14
+ 14: 00 78 11 a2 shl %r15,%r16,%r17
+ 18: 00 90 74 a2 shl %r18,%r19,%r20
+ 1c: 00 a8 d7 a2 shl %r21,%r22,%r23
+ 20: 00 c0 3f a3 shl %r24,%r25,%r31
+ 24: 00 d8 9d a3 shl %r27,%r28,%r29
+ 28: 00 f0 e0 a3 shl %r30,%r31,%r0
+ 2c: 00 00 22 a8 shr %r0,%r1,%sp
+ 30: 00 18 85 a8 shr %fp,%r4,%r5
+ 34: 00 30 e8 a8 shr %r6,%r7,%r8
+ 38: 00 48 4b a9 shr %r9,%r10,%r11
+ 3c: 00 f8 ae a9 shr %r31,%r13,%r14
+ 40: 00 78 11 aa shr %r15,%r16,%r17
+ 44: 00 90 74 aa shr %r18,%r19,%r20
+ 48: 00 a8 d7 aa shr %r21,%r22,%r23
+ 4c: 00 c0 3f ab shr %r24,%r25,%r31
+ 50: 00 d8 9d ab shr %r27,%r28,%r29
+ 54: 00 f0 e0 ab shr %r30,%r31,%r0
+ 58: 00 00 22 b8 shra %r0,%r1,%sp
+ 5c: 00 18 85 b8 shra %fp,%r4,%r5
+ 60: 00 30 e8 b8 shra %r6,%r7,%r8
+ 64: 00 48 4b b9 shra %r9,%r10,%r11
+ 68: 00 f8 ae b9 shra %r31,%r13,%r14
+ 6c: 00 78 11 ba shra %r15,%r16,%r17
+ 70: 00 90 74 ba shra %r18,%r19,%r20
+ 74: 00 a8 d7 ba shra %r21,%r22,%r23
+ 78: 00 c0 3f bb shra %r24,%r25,%r31
+ 7c: 00 d8 9d bb shra %r27,%r28,%r29
+ 80: 00 f0 e0 bb shra %r30,%r31,%r0
+ 84: 00 00 22 b0 shrd %r0,%r1,%sp
+ 88: 00 18 85 b0 shrd %fp,%r4,%r5
+ 8c: 00 30 e8 b0 shrd %r6,%r7,%r8
+ 90: 00 48 4b b1 shrd %r9,%r10,%r11
+ 94: 00 f8 ae b1 shrd %r31,%r13,%r14
+ 98: 00 78 11 b2 shrd %r15,%r16,%r17
+ 9c: 00 90 74 b2 shrd %r18,%r19,%r20
+ a0: 00 a8 d7 b2 shrd %r21,%r22,%r23
+ a4: 00 c0 3f b3 shrd %r24,%r25,%r31
+ a8: 00 d8 9d b3 shrd %r27,%r28,%r29
+ ac: 00 f0 e0 b3 shrd %r30,%r31,%r0
+ b0: 00 00 22 a4 shl 0,%r1,%sp
+ b4: 00 20 85 a4 shl 8192,%r4,%r5
+ b8: f5 13 e8 a4 shl 5109,%r7,%r8
+ bc: ff 7f 4b a5 shl 32767,%r10,%r11
+ c0: 00 80 ae a5 shl -32768,%r13,%r14
+ c4: 00 e0 11 a6 shl -8192,%r16,%r17
+ c8: ff ff 74 a6 shl -1,%r19,%r20
+ cc: cd ab d7 a6 shl -21555,%r22,%r23
+ d0: 34 12 3a a7 shl 4660,%r25,%r26
+ d4: 00 00 9d a7 shl 0,%r28,%r29
+ d8: 03 00 e0 a7 shl 3,%r31,%r0
+ dc: 00 00 22 ac shr 0,%r1,%sp
+ e0: 00 20 85 ac shr 8192,%r4,%r5
+ e4: f5 13 e8 ac shr 5109,%r7,%r8
+ e8: ff 7f 4b ad shr 32767,%r10,%r11
+ ec: 00 80 ae ad shr -32768,%r13,%r14
+ f0: 00 e0 11 ae shr -8192,%r16,%r17
+ f4: ff ff 74 ae shr -1,%r19,%r20
+ f8: cd ab d7 ae shr -21555,%r22,%r23
+ fc: 34 12 3a af shr 4660,%r25,%r26
+ 100: 00 00 9d af shr 0,%r28,%r29
+ 104: 03 00 e0 af shr 3,%r31,%r0
+ 108: 01 00 22 bc shra 1,%r1,%sp
+ 10c: 01 20 85 bc shra 8193,%r4,%r5
+ 110: f6 13 e8 bc shra 5110,%r7,%r8
+ 114: ff 7f 4b bd shra 32767,%r10,%r11
+ 118: 00 80 ae bd shra -32768,%r13,%r14
+ 11c: 00 e0 11 be shra -8192,%r16,%r17
+ 120: ff ff 74 be shra -1,%r19,%r20
+ 124: cd ab d7 be shra -21555,%r22,%r23
+ 128: 34 12 3a bf shra 4660,%r25,%r26
+ 12c: 00 00 9d bf shra 0,%r28,%r29
+ 130: 03 00 e0 bf shra 3,%r31,%r0
diff --git a/gas/testsuite/gas/i860/shift.s b/gas/testsuite/gas/i860/shift.s
new file mode 100644
index 0000000..0d0d189
--- /dev/null
+++ b/gas/testsuite/gas/i860/shift.s
@@ -0,0 +1,90 @@
+# shl, shr, shra, shrd
+
+ .text
+
+ # Register forms (all)
+ shl %r0,%r1,%r2
+ shl %r3,%r4,%r5
+ shl %r6,%r7,%r8
+ shl %r9,%r10,%r11
+ shl %r31,%r13,%r14
+ shl %r15,%r16,%r17
+ shl %r18,%r19,%r20
+ shl %r21,%r22,%r23
+ shl %r24,%r25,%r31
+ shl %r27,%r28,%r29
+ shl %r30,%r31,%r0
+
+ shr %r0,%r1,%r2
+ shr %r3,%r4,%r5
+ shr %r6,%r7,%r8
+ shr %r9,%r10,%r11
+ shr %r31,%r13,%r14
+ shr %r15,%r16,%r17
+ shr %r18,%r19,%r20
+ shr %r21,%r22,%r23
+ shr %r24,%r25,%r31
+ shr %r27,%r28,%r29
+ shr %r30,%r31,%r0
+
+ shra %r0,%r1,%r2
+ shra %r3,%r4,%r5
+ shra %r6,%r7,%r8
+ shra %r9,%r10,%r11
+ shra %r31,%r13,%r14
+ shra %r15,%r16,%r17
+ shra %r18,%r19,%r20
+ shra %r21,%r22,%r23
+ shra %r24,%r25,%r31
+ shra %r27,%r28,%r29
+ shra %r30,%r31,%r0
+
+ shrd %r0,%r1,%r2
+ shrd %r3,%r4,%r5
+ shrd %r6,%r7,%r8
+ shrd %r9,%r10,%r11
+ shrd %r31,%r13,%r14
+ shrd %r15,%r16,%r17
+ shrd %r18,%r19,%r20
+ shrd %r21,%r22,%r23
+ shrd %r24,%r25,%r31
+ shrd %r27,%r28,%r29
+ shrd %r30,%r31,%r0
+
+ # Immediate forms (shrd does not have an immediate form)
+ shl 0,%r1,%r2
+ shl 8192,%r4,%r5
+ shl 5109,%r7,%r8
+ shl 32767,%r10,%r11
+ shl -32768,%r13,%r14
+ shl -8192,%r16,%r17
+ shl -1,%r19,%r20
+ shl -21555,%r22,%r23
+ shl 0x1234,%r25,%r26
+ shl 0x0,%r28,%r29
+ shl 0x3,%r31,%r0
+
+ shr 0,%r1,%r2
+ shr 8192,%r4,%r5
+ shr 5109,%r7,%r8
+ shr 32767,%r10,%r11
+ shr -32768,%r13,%r14
+ shr -8192,%r16,%r17
+ shr -1,%r19,%r20
+ shr -21555,%r22,%r23
+ shr 0x1234,%r25,%r26
+ shr 0x0,%r28,%r29
+ shr 0x3,%r31,%r0
+
+ shra 1,%r1,%r2
+ shra 8193,%r4,%r5
+ shra 5110,%r7,%r8
+ shra 32767,%r10,%r11
+ shra -32768,%r13,%r14
+ shra -8192,%r16,%r17
+ shra -1,%r19,%r20
+ shra -21555,%r22,%r23
+ shra 0x1234,%r25,%r26
+ shra 0x0,%r28,%r29
+ shra 0x3,%r31,%r0
+
diff --git a/gas/testsuite/gas/i860/simd.d b/gas/testsuite/gas/i860/simd.d
new file mode 100644
index 0000000..7795ac8
--- /dev/null
+++ b/gas/testsuite/gas/i860/simd.d
@@ -0,0 +1,105 @@
+#as:
+#objdump: -dr
+#name: simd
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+ 0: d7 05 48 48 pfzchkl %f0,%f2,%f8
+ 4: d7 15 90 48 pfzchkl %f2,%f4,%f16
+ 8: d7 25 cd 48 pfzchkl %f4,%f6,%f13
+ c: d7 45 52 49 pfzchkl %f8,%f10,%f18
+ 10: df 65 de 49 pfzchks %f12,%f14,%f30
+ 14: df 85 54 4a pfzchks %f16,%f18,%f20
+ 18: df a5 dc 4a pfzchks %f20,%f22,%f28
+ 1c: df c5 5e 4b pfzchks %f24,%f26,%f30
+ 20: d0 05 48 48 pfaddp %f0,%f2,%f8
+ 24: d0 15 90 48 pfaddp %f2,%f4,%f16
+ 28: d0 25 cd 48 pfaddp %f4,%f6,%f13
+ 2c: d0 45 52 49 pfaddp %f8,%f10,%f18
+ 30: d1 65 de 49 pfaddz %f12,%f14,%f30
+ 34: d1 85 54 4a pfaddz %f16,%f18,%f20
+ 38: d1 a5 dc 4a pfaddz %f20,%f22,%f28
+ 3c: d1 c5 5e 4b pfaddz %f24,%f26,%f30
+ 40: d7 61 44 48 fzchkl %f12,%f2,%f4
+ 44: d7 b1 82 48 fzchkl %f22,%f4,%f2
+ 48: d7 21 d2 48 fzchkl %f4,%f6,%f18
+ 4c: d7 41 5c 49 fzchkl %f8,%f10,%f28
+ 50: df 61 c6 49 fzchks %f12,%f14,%f6
+ 54: df 81 54 4a fzchks %f16,%f18,%f20
+ 58: df a1 dc 4a fzchks %f20,%f22,%f28
+ 5c: df c1 5e 4b fzchks %f24,%f26,%f30
+ 60: d0 61 44 48 faddp %f12,%f2,%f4
+ 64: d0 b1 82 48 faddp %f22,%f4,%f2
+ 68: d0 21 d2 48 faddp %f4,%f6,%f18
+ 6c: d0 41 5c 49 faddp %f8,%f10,%f28
+ 70: d1 61 c6 49 faddz %f12,%f14,%f6
+ 74: d1 81 54 4a faddz %f16,%f18,%f20
+ 78: d1 a1 dc 4a faddz %f20,%f22,%f28
+ 7c: d1 c1 5e 4b faddz %f24,%f26,%f30
+ 80: d7 07 52 48 d.pfzchkl %f0,%f2,%f18
+ 84: 00 00 00 a0 shl %r0,%r0,%r0
+ 88: d7 17 8c 48 d.pfzchkl %f2,%f4,%f12
+ 8c: 00 00 00 a0 shl %r0,%r0,%r0
+ 90: d7 27 de 48 d.pfzchkl %f4,%f6,%f30
+ 94: 00 00 00 a0 shl %r0,%r0,%r0
+ 98: d7 47 44 49 d.pfzchkl %f8,%f10,%f4
+ 9c: 00 00 00 a0 shl %r0,%r0,%r0
+ a0: df 67 ce 49 d.pfzchks %f12,%f14,%f14
+ a4: 00 00 00 a0 shl %r0,%r0,%r0
+ a8: df 87 46 4a d.pfzchks %f16,%f18,%f6
+ ac: 00 00 00 a0 shl %r0,%r0,%r0
+ b0: df a7 ca 4a d.pfzchks %f20,%f22,%f10
+ b4: 00 00 00 a0 shl %r0,%r0,%r0
+ b8: df c7 48 4b d.pfzchks %f24,%f26,%f8
+ bc: 00 00 00 a0 shl %r0,%r0,%r0
+ c0: d0 07 52 48 d.pfaddp %f0,%f2,%f18
+ c4: 00 00 00 a0 shl %r0,%r0,%r0
+ c8: d0 17 80 48 d.pfaddp %f2,%f4,%f0
+ cc: 00 00 00 a0 shl %r0,%r0,%r0
+ d0: d0 27 de 48 d.pfaddp %f4,%f6,%f30
+ d4: 00 00 00 a0 shl %r0,%r0,%r0
+ d8: d0 47 44 49 d.pfaddp %f8,%f10,%f4
+ dc: 00 00 00 a0 shl %r0,%r0,%r0
+ e0: d1 67 ce 49 d.pfaddz %f12,%f14,%f14
+ e4: 00 00 00 a0 shl %r0,%r0,%r0
+ e8: d1 87 46 4a d.pfaddz %f16,%f18,%f6
+ ec: 00 00 00 a0 shl %r0,%r0,%r0
+ f0: d1 a7 ca 4a d.pfaddz %f20,%f22,%f10
+ f4: 00 00 00 a0 shl %r0,%r0,%r0
+ f8: d1 c7 48 4b d.pfaddz %f24,%f26,%f8
+ fc: 00 00 00 a0 shl %r0,%r0,%r0
+ 100: d7 03 4a 48 d.fzchkl %f0,%f2,%f10
+ 104: 00 00 00 a0 shl %r0,%r0,%r0
+ 108: d7 13 92 48 d.fzchkl %f2,%f4,%f18
+ 10c: 00 00 00 a0 shl %r0,%r0,%r0
+ 110: d7 23 cc 48 d.fzchkl %f4,%f6,%f12
+ 114: 00 00 00 a0 shl %r0,%r0,%r0
+ 118: d7 43 4e 49 d.fzchkl %f8,%f10,%f14
+ 11c: 00 00 00 a0 shl %r0,%r0,%r0
+ 120: df 63 d0 49 d.fzchks %f12,%f14,%f16
+ 124: 00 00 00 a0 shl %r0,%r0,%r0
+ 128: df 83 4c 4a d.fzchks %f16,%f18,%f12
+ 12c: 00 00 00 a0 shl %r0,%r0,%r0
+ 130: df a3 d0 4a d.fzchks %f20,%f22,%f16
+ 134: 00 00 00 a0 shl %r0,%r0,%r0
+ 138: df c3 5e 4b d.fzchks %f24,%f26,%f30
+ 13c: 00 00 00 a0 shl %r0,%r0,%r0
+ 140: d0 03 4a 48 d.faddp %f0,%f2,%f10
+ 144: 00 00 00 a0 shl %r0,%r0,%r0
+ 148: d0 13 92 48 d.faddp %f2,%f4,%f18
+ 14c: 00 00 00 a0 shl %r0,%r0,%r0
+ 150: d0 23 cc 48 d.faddp %f4,%f6,%f12
+ 154: 00 00 00 a0 shl %r0,%r0,%r0
+ 158: d0 43 4e 49 d.faddp %f8,%f10,%f14
+ 15c: 00 00 00 a0 shl %r0,%r0,%r0
+ 160: d1 63 d0 49 d.faddz %f12,%f14,%f16
+ 164: 00 00 00 a0 shl %r0,%r0,%r0
+ 168: d1 83 4c 4a d.faddz %f16,%f18,%f12
+ 16c: 00 00 00 a0 shl %r0,%r0,%r0
+ 170: d1 a3 d0 4a d.faddz %f20,%f22,%f16
+ 174: 00 00 00 a0 shl %r0,%r0,%r0
+ 178: d1 c3 5e 4b d.faddz %f24,%f26,%f30
+ 17c: 00 00 00 a0 shl %r0,%r0,%r0
diff --git a/gas/testsuite/gas/i860/simd.s b/gas/testsuite/gas/i860/simd.s
new file mode 100644
index 0000000..4f252dd
--- /dev/null
+++ b/gas/testsuite/gas/i860/simd.s
@@ -0,0 +1,119 @@
+# fzchkl, fzchks, faddp, faddz
+
+ .text
+
+ # Pipelined, without dual bit
+ pfzchkl %f0,%f2,%f8
+ pfzchkl %f2,%f4,%f16
+ pfzchkl %f4,%f6,%f13
+ pfzchkl %f8,%f10,%f18
+
+ pfzchks %f12,%f14,%f30
+ pfzchks %f16,%f18,%f20
+ pfzchks %f20,%f22,%f28
+ pfzchks %f24,%f26,%f30
+
+ pfaddp %f0,%f2,%f8
+ pfaddp %f2,%f4,%f16
+ pfaddp %f4,%f6,%f13
+ pfaddp %f8,%f10,%f18
+
+ pfaddz %f12,%f14,%f30
+ pfaddz %f16,%f18,%f20
+ pfaddz %f20,%f22,%f28
+ pfaddz %f24,%f26,%f30
+
+ # Non-pipelined, without dual bit
+ fzchkl %f12,%f2,%f4
+ fzchkl %f22,%f4,%f2
+ fzchkl %f4,%f6,%f18
+ fzchkl %f8,%f10,%f28
+
+ fzchks %f12,%f14,%f6
+ fzchks %f16,%f18,%f20
+ fzchks %f20,%f22,%f28
+ fzchks %f24,%f26,%f30
+
+ faddp %f12,%f2,%f4
+ faddp %f22,%f4,%f2
+ faddp %f4,%f6,%f18
+ faddp %f8,%f10,%f28
+
+ faddz %f12,%f14,%f6
+ faddz %f16,%f18,%f20
+ faddz %f20,%f22,%f28
+ faddz %f24,%f26,%f30
+
+ # Pipelined, with dual bit
+ d.pfzchkl %f0,%f2,%f18
+ nop
+ d.pfzchkl %f2,%f4,%f12
+ nop
+ d.pfzchkl %f4,%f6,%f30
+ nop
+ d.pfzchkl %f8,%f10,%f4
+ nop
+
+ d.pfzchks %f12,%f14,%f14
+ nop
+ d.pfzchks %f16,%f18,%f6
+ nop
+ d.pfzchks %f20,%f22,%f10
+ nop
+ d.pfzchks %f24,%f26,%f8
+ nop
+
+ d.pfaddp %f0,%f2,%f18
+ nop
+ d.pfaddp %f2,%f4,%f0
+ nop
+ d.pfaddp %f4,%f6,%f30
+ nop
+ d.pfaddp %f8,%f10,%f4
+ nop
+
+ d.pfaddz %f12,%f14,%f14
+ nop
+ d.pfaddz %f16,%f18,%f6
+ nop
+ d.pfaddz %f20,%f22,%f10
+ nop
+ d.pfaddz %f24,%f26,%f8
+ nop
+
+ # Non-pipelined, with dual bit
+ d.fzchkl %f0,%f2,%f10
+ nop
+ d.fzchkl %f2,%f4,%f18
+ nop
+ d.fzchkl %f4,%f6,%f12
+ nop
+ d.fzchkl %f8,%f10,%f14
+ nop
+
+ d.fzchks %f12,%f14,%f16
+ nop
+ d.fzchks %f16,%f18,%f12
+ nop
+ d.fzchks %f20,%f22,%f16
+ nop
+ d.fzchks %f24,%f26,%f30
+ nop
+
+ d.faddp %f0,%f2,%f10
+ nop
+ d.faddp %f2,%f4,%f18
+ nop
+ d.faddp %f4,%f6,%f12
+ nop
+ d.faddp %f8,%f10,%f14
+ nop
+
+ d.faddz %f12,%f14,%f16
+ nop
+ d.faddz %f16,%f18,%f12
+ nop
+ d.faddz %f20,%f22,%f16
+ nop
+ d.faddz %f24,%f26,%f30
+ nop