Commit | Line | Data |
---|---|---|
800eeca4 JW |
1 | $AT = '@'; |
2 | print <<END | |
3 | .text | |
4 | .type _start,${AT}function | |
5 | _start: | |
6 | ||
7 | pmpyshr2 r4 = r5, r6, 0 | |
8 | pmpyshr2.u r4 = r5, r6, 16 | |
9 | ||
10 | pmpy2.r r4 = r5, r6 | |
11 | pmpy2.l r4 = r5, r6 | |
12 | ||
13 | mix1.r r4 = r5, r6 | |
14 | mix2.r r4 = r5, r6 | |
15 | mix4.r r4 = r5, r6 | |
16 | mix1.l r4 = r5, r6 | |
17 | mix2.l r4 = r5, r6 | |
18 | mix4.l r4 = r5, r6 | |
19 | ||
20 | pack2.uss r4 = r5, r6 | |
21 | pack2.sss r4 = r5, r6 | |
22 | pack4.sss r4 = r5, r6 | |
23 | ||
24 | unpack1.h r4 = r5, r6 | |
25 | unpack2.h r4 = r5, r6 | |
26 | unpack4.h r4 = r5, r6 | |
27 | unpack1.l r4 = r5, r6 | |
28 | unpack2.l r4 = r5, r6 | |
29 | unpack4.l r4 = r5, r6 | |
30 | ||
31 | pmin1.u r4 = r5, r6 | |
32 | pmax1.u r4 = r5, r6 | |
33 | ||
34 | pmin2 r4 = r5, r6 | |
35 | pmax2 r4 = r5, r6 | |
36 | ||
37 | psad1 r4 = r5, r6 | |
38 | ||
39 | mux1 r4 = r5, ${AT}rev | |
40 | mux1 r4 = r5, ${AT}mix | |
41 | mux1 r4 = r5, ${AT}shuf | |
42 | mux1 r4 = r5, ${AT}alt | |
43 | mux1 r4 = r5, ${AT}brcst | |
44 | ||
45 | mux2 r4 = r5, 0 | |
46 | mux2 r4 = r5, 0xff | |
47 | mux2 r4 = r5, 0xaa | |
48 | ||
49 | pshr2 r4 = r5, r6 | |
50 | pshr2 r4 = r5, 0 | |
51 | pshr2 r4 = r5, 8 | |
52 | pshr2 r4 = r5, 31 | |
53 | ||
54 | pshr4 r4 = r5, r6 | |
55 | pshr4 r4 = r5, 0 | |
56 | pshr4 r4 = r5, 8 | |
57 | pshr4 r4 = r5, 31 | |
58 | ||
59 | pshr2.u r4 = r5, r6 | |
60 | pshr2.u r4 = r5, 0 | |
61 | pshr2.u r4 = r5, 8 | |
62 | pshr2.u r4 = r5, 31 | |
63 | ||
64 | pshr4.u r4 = r5, r6 | |
65 | pshr4.u r4 = r5, 0 | |
66 | pshr4.u r4 = r5, 8 | |
67 | pshr4.u r4 = r5, 31 | |
68 | ||
69 | shr r4 = r5, r6 | |
70 | shr.u r4 = r5, r6 | |
71 | ||
72 | pshl2 r4 = r5, r6 | |
73 | pshl2 r4 = r5, 0 | |
74 | pshl2 r4 = r5, 8 | |
75 | pshl2 r4 = r5, 31 | |
76 | ||
77 | pshl4 r4 = r5, r6 | |
78 | pshl4 r4 = r5, 0 | |
79 | pshl4 r4 = r5, 8 | |
80 | pshl4 r4 = r5, 31 | |
81 | ||
82 | shl r4 = r5, r6 | |
83 | ||
84 | popcnt r4 = r5 | |
85 | ||
86 | shrp r4 = r5, r6, 0 | |
87 | shrp r4 = r5, r6, 12 | |
88 | shrp r4 = r5, r6, 63 | |
89 | ||
90 | extr r4 = r5, 0, 16 | |
91 | extr r4 = r5, 0, 63 | |
92 | extr r4 = r5, 10, 40 | |
93 | ||
94 | extr.u r4 = r5, 0, 16 | |
95 | extr.u r4 = r5, 0, 63 | |
96 | extr.u r4 = r5, 10, 40 | |
97 | ||
98 | dep.z r4 = r5, 0, 16 | |
99 | dep.z r4 = r5, 0, 63 | |
100 | dep.z r4 = r5, 10, 40 | |
101 | dep.z r4 = 0, 0, 16 | |
102 | dep.z r4 = 127, 0, 63 | |
103 | dep.z r4 = -128, 5, 50 | |
104 | dep.z r4 = 0x55, 10, 40 | |
105 | ||
106 | dep r4 = 0, r5, 0, 16 | |
107 | dep r4 = -1, r5, 0, 63 | |
8d82e76a JW |
108 | // Insert padding NOPs to force the same template selection as IAS. |
109 | nop.m 0 | |
110 | nop.f 0 | |
800eeca4 JW |
111 | dep r4 = r5, r6, 10, 7 |
112 | ||
113 | movl r4 = 0 | |
114 | movl r4 = 0xffffffffffffffff | |
115 | movl r4 = 0x1234567890abcdef | |
116 | ||
117 | break.i 0 | |
118 | break.i 0x1fffff | |
119 | ||
120 | nop.i 0 | |
121 | nop.i 0x1fffff | |
122 | ||
123 | chk.s.i r4, _start | |
124 | ||
125 | mov r4 = b0 | |
126 | mov b0 = r4 | |
127 | ||
128 | mov pr = r4, 0 | |
129 | mov pr = r4, 0x1234 | |
130 | mov pr = r4, 0x1ffff | |
131 | ||
132 | mov pr.rot = 0 | |
133 | // ??? This was originally 0x3ffffff, but that generates an assembler warning | |
134 | // that the testsuite infrastructure isn't set up to ignore. | |
135 | mov pr.rot = 0x3ff0000 | |
136 | mov pr.rot = -0x4000000 | |
137 | ||
138 | zxt1 r4 = r5 | |
139 | zxt2 r4 = r5 | |
140 | zxt4 r4 = r5 | |
141 | ||
142 | sxt1 r4 = r5 | |
143 | sxt2 r4 = r5 | |
144 | sxt4 r4 = r5 | |
145 | ||
146 | czx1.l r4 = r5 | |
147 | czx2.l r4 = r5 | |
148 | czx1.r r4 = r5 | |
149 | czx2.r r4 = r5 | |
150 | ||
151 | END | |
152 | ; | |
153 | ||
154 | @ctype = ( "", ".unc", ".and", ".or", ".or.andcm", ".orcm", | |
155 | ".andcm", ".and.orcm" ); | |
156 | ||
157 | $i = 0; | |
158 | foreach $z ( ".z", ".nz" ) { | |
159 | foreach $c (@ctype) { | |
160 | print "\ttbit${z}${c} p2, p3 = r4, $i\n"; | |
161 | ++$i; | |
162 | } | |
163 | } | |
164 | print "\n"; | |
165 | ||
166 | foreach $z ( ".z", ".nz" ) { | |
167 | foreach $c (@ctype) { | |
168 | print "\ttnat${z}${c} p2, p3 = r4\n"; | |
169 | } | |
170 | } | |
171 | print "\n"; | |
172 | ||
173 | ||
174 | @mwh = ( "", ".sptk", ".dptk" ); | |
175 | @ih = ( "", ".imp" ); | |
176 | ||
177 | $LAB = 1; | |
178 | ||
179 | foreach $b ("", ".ret") { | |
180 | foreach $w (@mwh) { | |
181 | foreach $i (@ih) { | |
182 | print "\tmov${b}${w}${i} b3 = r4, .L${LAB}\n"; | |
183 | } | |
184 | print ".space 240\n"; | |
185 | print ".L${LAB}:\n"; | |
186 | ++$LAB; | |
187 | } | |
188 | print "\n"; | |
189 | } |