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.
This commit is contained in:
Andrew Burgess 2023-01-30 11:47:31 +00:00
parent a3c2d24868
commit 0fcf99b8ab
3 changed files with 186 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -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"