public inbox for binutils-cvs@sourceware.org
 help / color / mirror / Atom feed
* [binutils-gdb] gas/ppc: Additional tests for DFP instructions
@ 2023-01-31  9:33 Andrew Burgess
  0 siblings, 0 replies; only message in thread
From: Andrew Burgess @ 2023-01-31  9:33 UTC (permalink / raw)
  To: bfd-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0fcf99b8ab5ccbde30fa7d36742e670cd4df48ef

commit 0fcf99b8ab5ccbde30fa7d36742e670cd4df48ef
Author: Andrew Burgess <aburgess@redhat.com>
Date:   Mon Jan 30 11:47:31 2023 +0000

    gas/ppc: Additional tests for DFP instructions
    
    I noticed that some of the Power6 DFP instructions were not covered by
    the assembler tests.  I've added a new test file which I believe
    covers all the DFP Power6 instructions.
    
    The existing gas/testsuite/gas/ppc/power6.d test is called:
    
      POWER6 tests (includes DFP and Altivec)
    
    And does cover some of the DFP instructions.  But, given the number of
    additional instructions I'm adding I opted to add a whole new test
    file.  I've left the original power6.d unchanged, so there is now some
    overlap, but I don't think that should hurt much.

Diff:
---
 gas/testsuite/gas/ppc/power6-dfp.d | 95 ++++++++++++++++++++++++++++++++++++++
 gas/testsuite/gas/ppc/power6-dfp.s | 90 ++++++++++++++++++++++++++++++++++++
 gas/testsuite/gas/ppc/ppc.exp      |  1 +
 3 files changed, 186 insertions(+)

diff --git a/gas/testsuite/gas/ppc/power6-dfp.d b/gas/testsuite/gas/ppc/power6-dfp.d
new file mode 100644
index 00000000000..d3594b65e5d
--- /dev/null
+++ b/gas/testsuite/gas/ppc/power6-dfp.d
@@ -0,0 +1,95 @@
+#as: -a32 -mpower6
+#objdump: -dr -Mpower6
+#name: POWER6 all DFP instructions
+
+.*
+
+Disassembly of section \.text:
+
+0+00 <start>:
+   0:	(ee 11 90 04|04 90 11 ee) 	dadd    f16,f17,f18
+   4:	(ee 11 90 05|05 90 11 ee) 	dadd\.   f16,f17,f18
+   8:	(fe 96 c0 04|04 c0 96 fe) 	daddq   f20,f22,f24
+   c:	(fe 96 c0 05|05 c0 96 fe) 	daddq\.  f20,f22,f24
+  10:	(ee 11 94 04|04 94 11 ee) 	dsub    f16,f17,f18
+  14:	(ee 11 94 05|05 94 11 ee) 	dsub\.   f16,f17,f18
+  18:	(fe 96 c4 04|04 c4 96 fe) 	dsubq   f20,f22,f24
+  1c:	(fe 96 c4 05|05 c4 96 fe) 	dsubq\.  f20,f22,f24
+  20:	(ee 11 90 44|44 90 11 ee) 	dmul    f16,f17,f18
+  24:	(ee 11 90 45|45 90 11 ee) 	dmul\.   f16,f17,f18
+  28:	(fe 96 c0 44|44 c0 96 fe) 	dmulq   f20,f22,f24
+  2c:	(fe 96 c0 45|45 c0 96 fe) 	dmulq\.  f20,f22,f24
+  30:	(ee 11 94 44|44 94 11 ee) 	ddiv    f16,f17,f18
+  34:	(ee 11 94 45|45 94 11 ee) 	ddiv\.   f16,f17,f18
+  38:	(fe 96 c4 44|44 c4 96 fe) 	ddivq   f20,f22,f24
+  3c:	(fe 96 c4 45|45 c4 96 fe) 	ddivq\.  f20,f22,f24
+  40:	(ec 83 29 04|04 29 83 ec) 	dcmpo   cr1,f3,f5
+  44:	(fd 86 21 04|04 21 86 fd) 	dcmpoq  cr3,f6,f4
+  48:	(ed 03 2d 04|04 2d 03 ed) 	dcmpu   cr2,f3,f5
+  4c:	(fd 06 25 04|04 25 06 fd) 	dcmpuq  cr2,f6,f4
+  50:	(ec 01 fd 84|84 fd 01 ec) 	dtstdc  cr0,f1,63
+  54:	(fc 02 01 84|84 01 02 fc) 	dtstdcq cr0,f2,0
+  58:	(ec 03 81 c4|c4 81 03 ec) 	dtstdg  cr0,f3,32
+  5c:	(fc 04 05 c4|c4 05 04 fc) 	dtstdgq cr0,f4,1
+  60:	(ef 81 29 44|44 29 81 ef) 	dtstex  cr7,f1,f5
+  64:	(ff 02 31 44|44 31 02 ff) 	dtstexq cr6,f2,f6
+  68:	(ee 83 3d 44|44 3d 83 ee) 	dtstsf  cr5,f3,f7
+  6c:	(fe 04 45 44|44 45 04 fe) 	dtstsfq cr4,f4,f8
+  70:	(ec 10 22 86|86 22 10 ec) 	dquai   -16,f0,f4,1
+  74:	(ec 10 22 87|87 22 10 ec) 	dquai\.  -16,f0,f4,1
+  78:	(fc 4f 36 86|86 36 4f fc) 	dquaiq  15,f2,f6,3
+  7c:	(fc 4f 36 87|87 36 4f fc) 	dquaiq\. 15,f2,f6,3
+  80:	(ec 22 28 06|06 28 22 ec) 	dqua    f1,f2,f5,0
+  84:	(ec 64 32 07|07 32 64 ec) 	dqua\.   f3,f4,f6,1
+  88:	(fc 46 24 06|06 24 46 fc) 	dquaq   f2,f6,f4,2
+  8c:	(fc 88 16 07|07 16 88 fc) 	dquaq\.  f4,f8,f2,3
+  90:	(ec 22 1a 46|46 1a 22 ec) 	drrnd   f1,f2,f3,1
+  94:	(ec 44 32 47|47 32 44 ec) 	drrnd\.  f2,f4,f6,1
+  98:	(fc 02 24 46|46 24 02 fc) 	drrndq  f0,f2,f4,2
+  9c:	(fc 86 44 47|47 44 86 fc) 	drrndq\. f4,f6,f8,2
+  a0:	(ec 20 10 c6|c6 10 20 ec) 	drintx  0,f1,f2,0
+  a4:	(ec 41 0a c7|c7 0a 41 ec) 	drintx\. 1,f2,f1,1
+  a8:	(fc 40 24 c6|c6 24 40 fc) 	drintxq 0,f2,f4,2
+  ac:	(fc 81 36 c7|c7 36 81 fc) 	drintxq\. 1,f4,f6,3
+  b0:	(ec 21 19 c6|c6 19 21 ec) 	drintn  1,f1,f3,0
+  b4:	(ec 80 13 c7|c7 13 80 ec) 	drintn\. 0,f4,f2,1
+  b8:	(fc 01 15 c6|c6 15 01 fc) 	drintnq 1,f0,f2,2
+  bc:	(fc 80 17 c7|c7 17 80 fc) 	drintnq\. 0,f4,f2,3
+  c0:	(ec 40 22 04|04 22 40 ec) 	dctdp   f2,f4
+  c4:	(ec 40 22 05|05 22 40 ec) 	dctdp\.  f2,f4
+  c8:	(fc 40 22 04|04 22 40 fc) 	dctqpq  f2,f4
+  cc:	(fc 40 22 05|05 22 40 fc) 	dctqpq\. f2,f4
+  d0:	(ec 40 26 04|04 26 40 ec) 	drsp    f2,f4
+  d4:	(ec 40 26 05|05 26 40 ec) 	drsp\.   f2,f4
+  d8:	(fc 40 26 04|04 26 40 fc) 	drdpq   f2,f4
+  dc:	(fc 40 26 05|05 26 40 fc) 	drdpq\.  f2,f4
+  e0:	(fc 40 26 44|44 26 40 fc) 	dcffixq f2,f4
+  e4:	(fc 40 26 45|45 26 40 fc) 	dcffixq\. f2,f4
+  e8:	(ec 40 22 44|44 22 40 ec) 	dctfix  f2,f4
+  ec:	(ec 40 22 45|45 22 40 ec) 	dctfix\. f2,f4
+  f0:	(fc 40 22 44|44 22 40 fc) 	dctfixq f2,f4
+  f4:	(fc 40 22 45|45 22 40 fc) 	dctfixq\. f2,f4
+  f8:	(ec 20 12 84|84 12 20 ec) 	ddedpd  0,f1,f2
+  fc:	(ec 08 0a 85|85 0a 08 ec) 	ddedpd\. 1,f0,f1
+ 100:	(fc 48 22 84|84 22 48 fc) 	ddedpdq 1,f2,f4
+ 104:	(fc 80 12 85|85 12 80 fc) 	ddedpdq\. 0,f4,f2
+ 108:	(ec 20 16 84|84 16 20 ec) 	denbcd  0,f1,f2
+ 10c:	(ec 10 0e 85|85 0e 10 ec) 	denbcd\. 1,f0,f1
+ 110:	(fc 10 16 84|84 16 10 fc) 	denbcdq 1,f0,f2
+ 114:	(fc 40 26 85|85 26 40 fc) 	denbcdq\. 0,f2,f4
+ 118:	(ec 00 0a c4|c4 0a 00 ec) 	dxex    f0,f1
+ 11c:	(ec 40 1a c5|c5 1a 40 ec) 	dxex\.   f2,f3
+ 120:	(fc 80 32 c4|c4 32 80 fc) 	dxexq   f4,f6
+ 124:	(fc 40 02 c5|c5 02 40 fc) 	dxexq\.  f2,f0
+ 128:	(ec 01 16 c4|c4 16 01 ec) 	diex    f0,f1,f2
+ 12c:	(ec 64 2e c5|c5 2e 64 ec) 	diex\.   f3,f4,f5
+ 130:	(fc 02 26 c4|c4 26 02 fc) 	diexq   f0,f2,f4
+ 134:	(fc c4 16 c5|c5 16 c4 fc) 	diexq\.  f6,f4,f2
+ 138:	(ec 22 00 84|84 00 22 ec) 	dscli   f1,f2,0
+ 13c:	(ec 03 fc 85|85 fc 03 ec) 	dscli\.  f0,f3,63
+ 140:	(fc 48 04 84|84 04 48 fc) 	dscliq  f2,f8,1
+ 144:	(fc 86 80 85|85 80 86 fc) 	dscliq\. f4,f6,32
+ 148:	(ec 20 40 c4|c4 40 20 ec) 	dscri   f1,f0,16
+ 14c:	(ec 62 3c c5|c5 3c 62 ec) 	dscri\.  f3,f2,15
+ 150:	(fd 00 a8 c4|c4 a8 00 fd) 	dscriq  f8,f0,42
+ 154:	(fc 86 54 c5|c5 54 86 fc) 	dscriq\. f4,f6,21
diff --git a/gas/testsuite/gas/ppc/power6-dfp.s b/gas/testsuite/gas/ppc/power6-dfp.s
new file mode 100644
index 00000000000..e3432e5e555
--- /dev/null
+++ b/gas/testsuite/gas/ppc/power6-dfp.s
@@ -0,0 +1,90 @@
+# POWER6 DFP Instructions
+#as: -mpower6
+	.text
+start:
+	dadd     16,17,18
+	dadd.    16,17,18
+	daddq    20,22,24
+	daddq.   20,22,24
+	dsub     16,17,18
+	dsub.    16,17,18
+	dsubq    20,22,24
+	dsubq.   20,22,24
+	dmul     16,17,18
+	dmul.    16,17,18
+	dmulq    20,22,24
+	dmulq.   20,22,24
+	ddiv     16,17,18
+	ddiv.    16,17,18
+	ddivq    20,22,24
+	ddivq.   20,22,24
+	dcmpo    1,3,5
+	dcmpoq   3,6,4
+	dcmpu    2,3,5
+	dcmpuq   2,6,4
+	dtstdc   0,1,0x3f
+	dtstdcq  0,2,0x00
+	dtstdg   0,3,0x20
+	dtstdgq  0,4,0x01
+	dtstex   7,1,5
+	dtstexq  6,2,6
+	dtstsf   5,3,7
+	dtstsfq  4,4,8
+	dquai    -16,0,4,1
+	dquai.   -16,0,4,1
+	dquaiq   15,2,6,3
+	dquaiq.  15,2,6,3
+	dqua     1,2,5,0
+	dqua.    3,4,6,1
+	dquaq    2,6,4,2
+	dquaq.   4,8,2,3
+	drrnd    1,2,3,1
+	drrnd.   2,4,6,1
+	drrndq   0,2,4,2
+	drrndq.	 4,6,8,2
+	drintx	 0,1,2,0
+	drintx.	 1,2,1,1
+	drintxq	 0,2,4,2
+	drintxq. 1,4,6,3
+	drintn	 1,1,3,0
+	drintn.	 0,4,2,1
+	drintnq	 1,0,2,2
+	drintnq. 0,4,2,3
+	dctdp    2,4
+	dctdp.   2,4
+	dctqpq   2,4
+	dctqpq.	 2,4
+	drsp	 2,4
+	drsp.	 2,4
+	drdpq	 2,4
+	drdpq.	 2,4
+	dcffixq	 2,4
+	dcffixq. 2,4
+	dctfix	 2,4
+	dctfix.	 2,4
+	dctfixq	 2,4
+	dctfixq. 2,4
+	ddedpd   0,1,2
+	ddedpd.	 1,0,1
+	ddedpdq  1,2,4
+	ddedpdq. 0,4,2
+	denbcd   0,1,2
+	denbcd.  1,0,1
+	denbcdq  1,0,2
+	denbcdq. 0,2,4
+	dxex     0,1
+	dxex.    2,3
+	dxexq    4,6
+	dxexq.   2,0
+	diex     0,1,2
+	diex.    3,4,5
+	diexq    0,2,4
+	diexq.   6,4,2
+	dscli    1,2,0x00
+	dscli.   0,3,0x3f
+	dscliq   2,8,0x01
+	dscliq.  4,6,0x20
+	dscri    1,0,0x10
+	dscri.   3,2,0x0f
+	dscriq   8,0,0x2a
+	dscriq.  4,6,0x15
diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp
index 2041429bd67..689503d7c20 100644
--- a/gas/testsuite/gas/ppc/ppc.exp
+++ b/gas/testsuite/gas/ppc/ppc.exp
@@ -114,6 +114,7 @@ run_dump_test "e6500_nop"
 run_dump_test "power4_32"
 run_dump_test "power5"
 run_dump_test "power6"
+run_dump_test "power6-dfp"
 run_dump_test "power7"
 run_dump_test "power8"
 run_dump_test "power9"

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-01-31  9:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-31  9:33 [binutils-gdb] gas/ppc: Additional tests for DFP instructions Andrew Burgess

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).