2003-05-20 Jason Eckhardt <jle@rice.edu>
authorJason Eckhardt <jle@rice.edu>
Wed, 21 May 2003 01:42:40 +0000 (01:42 +0000)
committerJason Eckhardt <jle@rice.edu>
Wed, 21 May 2003 01:42:40 +0000 (01:42 +0000)
* 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.

59 files changed:
gas/testsuite/ChangeLog
gas/testsuite/gas/i860/bitwise.d [new file with mode: 0644]
gas/testsuite/gas/i860/bitwise.s [new file with mode: 0644]
gas/testsuite/gas/i860/bte.d [new file with mode: 0644]
gas/testsuite/gas/i860/bte.s [new file with mode: 0644]
gas/testsuite/gas/i860/fldst01.d [new file with mode: 0644]
gas/testsuite/gas/i860/fldst01.s [new file with mode: 0644]
gas/testsuite/gas/i860/fldst02.d [new file with mode: 0644]
gas/testsuite/gas/i860/fldst02.s [new file with mode: 0644]
gas/testsuite/gas/i860/fldst03.d [new file with mode: 0644]
gas/testsuite/gas/i860/fldst03.s [new file with mode: 0644]
gas/testsuite/gas/i860/fldst04.d [new file with mode: 0644]
gas/testsuite/gas/i860/fldst04.s [new file with mode: 0644]
gas/testsuite/gas/i860/fldst05.d [new file with mode: 0644]
gas/testsuite/gas/i860/fldst05.s [new file with mode: 0644]
gas/testsuite/gas/i860/fldst06.d [new file with mode: 0644]
gas/testsuite/gas/i860/fldst06.s [new file with mode: 0644]
gas/testsuite/gas/i860/fldst07.d [new file with mode: 0644]
gas/testsuite/gas/i860/fldst07.s [new file with mode: 0644]
gas/testsuite/gas/i860/fldst08.d [new file with mode: 0644]
gas/testsuite/gas/i860/fldst08.s [new file with mode: 0644]
gas/testsuite/gas/i860/float01.d [new file with mode: 0644]
gas/testsuite/gas/i860/float01.s [new file with mode: 0644]
gas/testsuite/gas/i860/float02.d [new file with mode: 0644]
gas/testsuite/gas/i860/float02.s [new file with mode: 0644]
gas/testsuite/gas/i860/float03.d [new file with mode: 0644]
gas/testsuite/gas/i860/float03.s [new file with mode: 0644]
gas/testsuite/gas/i860/float04.d [new file with mode: 0644]
gas/testsuite/gas/i860/float04.s [new file with mode: 0644]
gas/testsuite/gas/i860/form.d [new file with mode: 0644]
gas/testsuite/gas/i860/form.s [new file with mode: 0644]
gas/testsuite/gas/i860/iarith.d [new file with mode: 0644]
gas/testsuite/gas/i860/iarith.s [new file with mode: 0644]
gas/testsuite/gas/i860/ldst01.d [new file with mode: 0644]
gas/testsuite/gas/i860/ldst01.s [new file with mode: 0644]
gas/testsuite/gas/i860/ldst02.d [new file with mode: 0644]
gas/testsuite/gas/i860/ldst02.s [new file with mode: 0644]
gas/testsuite/gas/i860/ldst03.d [new file with mode: 0644]
gas/testsuite/gas/i860/ldst03.s [new file with mode: 0644]
gas/testsuite/gas/i860/ldst04.d [new file with mode: 0644]
gas/testsuite/gas/i860/ldst04.s [new file with mode: 0644]
gas/testsuite/gas/i860/ldst05.d [new file with mode: 0644]
gas/testsuite/gas/i860/ldst05.s [new file with mode: 0644]
gas/testsuite/gas/i860/ldst06.d [new file with mode: 0644]
gas/testsuite/gas/i860/ldst06.s [new file with mode: 0644]
gas/testsuite/gas/i860/pfam.d [new file with mode: 0644]
gas/testsuite/gas/i860/pfam.s [new file with mode: 0644]
gas/testsuite/gas/i860/pfmam.d [new file with mode: 0644]
gas/testsuite/gas/i860/pfmam.s [new file with mode: 0644]
gas/testsuite/gas/i860/pfmsm.d [new file with mode: 0644]
gas/testsuite/gas/i860/pfmsm.s [new file with mode: 0644]
gas/testsuite/gas/i860/pfsm.d [new file with mode: 0644]
gas/testsuite/gas/i860/pfsm.s [new file with mode: 0644]
gas/testsuite/gas/i860/regress01.d [new file with mode: 0644]
gas/testsuite/gas/i860/regress01.s [new file with mode: 0644]
gas/testsuite/gas/i860/shift.d [new file with mode: 0644]
gas/testsuite/gas/i860/shift.s [new file with mode: 0644]
gas/testsuite/gas/i860/simd.d [new file with mode: 0644]
gas/testsuite/gas/i860/simd.s [new file with mode: 0644]

index 7f425db..4417b80 100644 (file)
@@ -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 (file)
index 0000000..12daf1f
--- /dev/null
@@ -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 (file)
index 0000000..531c787
--- /dev/null
@@ -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 (file)
index 0000000..5c5cd26
--- /dev/null
@@ -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 (file)
index 0000000..cc6e576
--- /dev/null
@@ -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 (file)
index 0000000..00bbd53
--- /dev/null
@@ -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 (file)
index 0000000..109cba8
--- /dev/null
@@ -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 (file)
index 0000000..9a208c5
--- /dev/null
@@ -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 (file)
index 0000000..50b612b
--- /dev/null
@@ -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 (file)
index 0000000..5b2483d
--- /dev/null
@@ -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 (file)
index 0000000..7259925
--- /dev/null
@@ -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 (file)
index 0000000..7042bb0
--- /dev/null
@@ -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 (file)
index 0000000..7136614
--- /dev/null
@@ -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 (file)
index 0000000..df2f03a
--- /dev/null
@@ -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 (file)
index 0000000..97032aa
--- /dev/null
@@ -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 (file)
index 0000000..2fc7ffd
--- /dev/null
@@ -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 (file)
index 0000000..0bb1476
--- /dev/null
@@ -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 (file)
index 0000000..86e803e
--- /dev/null
@@ -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 (file)
index 0000000..410b256
--- /dev/null
@@ -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 (file)
index 0000000..34b4247
--- /dev/null
@@ -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 (file)
index 0000000..7ae6cf5
--- /dev/null
@@ -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 (file)
index 0000000..03dad16
--- /dev/null
@@ -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 (file)
index 0000000..88e3769
--- /dev/null
@@ -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 (file)
index 0000000..0166b14
--- /dev/null
@@ -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 (file)
index 0000000..d4a475d
--- /dev/null
@@ -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 (file)
index 0000000..6bf184f
--- /dev/null
@@ -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 (file)
index 0000000..8fd626c
--- /dev/null
@@ -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 (file)
index 0000000..e590d89
--- /dev/null
@@ -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 (file)
index 0000000..5a4aae5
--- /dev/null
@@ -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 (file)
index 0000000..5ca3b25
--- /dev/null
@@ -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 (file)
index 0000000..e73dde6
--- /dev/null
@@ -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 (file)
index 0000000..cdcecad
--- /dev/null
@@ -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 (file)
index 0000000..98a360e
--- /dev/null
@@ -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 (file)
index 0000000..b2fa0d1
--- /dev/null
@@ -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 (file)
index 0000000..498f346
--- /dev/null
@@ -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 (file)
index 0000000..9ad9b09
--- /dev/null
@@ -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 (file)
index 0000000..52c0e1a
--- /dev/null
@@ -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 (file)
index 0000000..f6e0e67
--- /dev/null
@@ -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 (file)
index 0000000..055a3b8
--- /dev/null
@@ -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 (file)
index 0000000..3b9bfbf
--- /dev/null
@@ -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 (file)
index 0000000..8e22b6f
--- /dev/null
@@ -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 (file)
index 0000000..b9295c7
--- /dev/null
@@ -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 (file)
index 0000000..7f253f4
--- /dev/null
@@ -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 (file)
index 0000000..0e8d93e
--- /dev/null
@@ -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 (file)
index 0000000..bb817ab
--- /dev/null
@@ -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 (file)
index 0000000..2d700d3
--- /dev/null
@@ -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 (file)
index 0000000..4afc28d
--- /dev/null
@@ -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 (file)
index 0000000..2cc1485
--- /dev/null
@@ -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 (file)
index 0000000..ac6a1af
--- /dev/null
@@ -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 (file)
index 0000000..33befa0
--- /dev/null
@@ -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 (file)
index 0000000..26c9166
--- /dev/null
@@ -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 (file)
index 0000000..bcd7a01
--- /dev/null
@@ -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 (file)
index 0000000..16ecd97
--- /dev/null
@@ -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 (file)
index 0000000..1e4d947
--- /dev/null
@@ -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 (file)
index 0000000..002c3bd
--- /dev/null
@@ -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 (file)
index 0000000..23821b0
--- /dev/null
@@ -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 (file)
index 0000000..0d0d189
--- /dev/null
@@ -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 (file)
index 0000000..7795ac8
--- /dev/null
@@ -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 (file)
index 0000000..4f252dd
--- /dev/null
@@ -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