]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/testsuite/gdb.arch/powerpc-power9.exp
Make tui_register_info::highlight private
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.arch / powerpc-power9.exp
1 # Copyright 2014-2024 Free Software Foundation, Inc.
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 3 of the License, or
6 # (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16 # This file is part of the gdb testsuite.
17
18 # Test PowerPC instructions disassembly.
19
20 standard_testfile .s
21 set objfile [standard_output_file ${testfile}.o]
22
23 require {istarget "powerpc*-*-*"}
24
25 if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}] != "" } {
26 untested "PowerPC instructions disassembly"
27 return -1
28 }
29
30 clean_restart ${objfile}
31
32 # Disassemble the function.
33 set func ""
34
35 gdb_test "set disassembler-options power9"
36 set test "disass func"
37 gdb_test_multiple $test $test {
38 -re "\r\nDump of assembler code for function func:(\r\n.*\r\n)End of assembler dump.\r\n$gdb_prompt $" {
39 set func $expect_out(1,string)
40 pass $test
41 }
42 }
43
44 proc instr_to_patt {instr} {
45 global decimal hex
46 # 0x0000000000000018 <+24>: stxvd2x vs43,r4,r5
47 return "\[ \t\]*$hex <\\+$decimal>:\[ \t\]*[string_to_regexp $instr]"
48 }
49
50 proc func_check {instr} {
51 global func
52
53 set test "found: $instr"
54 if [regexp -nocase -line [instr_to_patt $instr] $func] {
55 pass $test
56 } else {
57 fail $test
58 }
59 }
60
61 func_check "cnttzd r3,r13"
62 func_check "cnttzd. r4,r14"
63 func_check "cnttzw r5,r15"
64 func_check "cnttzw. r6,r16"
65 func_check "modsd r10,r20,r21"
66 func_check "modsw r11,r21,r22"
67 func_check "modud r12,r22,r23"
68 func_check "moduw r13,r23,r24"
69 func_check "bcdcfn. v3,v4,0"
70 func_check "bcdcfn. v3,v4,1"
71 func_check "bcdcfsq. v4,v5,0"
72 func_check "bcdcfsq. v4,v5,1"
73 func_check "bcdcfz. v5,v6,0"
74 func_check "bcdcfz. v5,v6,1"
75 func_check "bcdcpsgn. v6,v7,v8"
76 func_check "bcdctn. v7,v8"
77 func_check "bcdctsq. v8,v9"
78 func_check "bcdctz. v9,v10,0"
79 func_check "bcdctz. v9,v10,1"
80 func_check "bcdsetsgn. v10,v11,0"
81 func_check "bcdsetsgn. v10,v11,1"
82 func_check "bcdsr. v11,v12,v13,0"
83 func_check "bcdsr. v11,v12,v13,1"
84 func_check "bcds. v12,v13,v14,0"
85 func_check "bcds. v12,v13,v14,1"
86 func_check "bcdtrunc. v13,v14,v15,0"
87 func_check "bcdtrunc. v13,v14,v15,1"
88 func_check "bcdus. v14,v15,v16"
89 func_check "bcdutrunc. v15,v16,v17"
90 func_check "lxvll vs20,0,r21"
91 func_check "lxvll vs20,r10,r21"
92 func_check "stxvll vs21,0,r11"
93 func_check "stxvll vs21,r10,r11"
94 func_check "vmul10cuq v22,v23"
95 func_check "vmul10ecuq v23,v24,v25"
96 func_check "vmul10euq v24,v25,v26"
97 func_check "vmul10uq v25,v26"
98 func_check "xsaddqp v10,v11,v12"
99 func_check "xsaddqpo v11,v12,v12"
100 func_check "xsrqpi 0,v20,v30,0"
101 func_check "xsrqpi 1,v20,v30,0"
102 func_check "xsrqpi 0,v20,v30,3"
103 func_check "xsrqpi 1,v20,v30,3"
104 func_check "xsrqpix 0,v21,v31,0"
105 func_check "xsrqpix 1,v21,v31,0"
106 func_check "xsrqpix 0,v21,v31,3"
107 func_check "xsrqpix 1,v21,v31,3"
108 func_check "xsmulqp v12,v13,v14"
109 func_check "xsmulqpo v13,v14,v15"
110 func_check "xsrqpxp 0,v22,v23,0"
111 func_check "xsrqpxp 1,v22,v23,0"
112 func_check "xsrqpxp 0,v22,v23,3"
113 func_check "xsrqpxp 1,v22,v23,3"
114 func_check "xscpsgnqp v14,v15,v16"
115 func_check "xscmpoqp cr0,v15,v16"
116 func_check "xscmpoqp cr7,v15,v16"
117 func_check "xscmpexpqp cr0,v16,v17"
118 func_check "xscmpexpqp cr7,v16,v17"
119 func_check "xsmaddqp v17,v18,v19"
120 func_check "xsmaddqpo v18,v19,v20"
121 func_check "xsmsubqp v19,v20,v21"
122 func_check "xsmsubqpo v20,v21,v22"
123 func_check "xsnmaddqp v21,v22,v23"
124 func_check "xsnmaddqpo v22,v23,v24"
125 func_check "xsnmsubqp v23,v24,v25"
126 func_check "xsnmsubqpo v24,v25,v26"
127 func_check "xssubqp v25,v26,v27"
128 func_check "xssubqpo v26,v27,v28"
129 func_check "xsdivqp v27,v28,v29"
130 func_check "xsdivqpo v28,v29,v30"
131 func_check "xscmpuqp cr0,v29,v30"
132 func_check "xscmpuqp cr7,v29,v30"
133 func_check "xststdcqp cr0,v30,0"
134 func_check "xststdcqp cr7,v30,0"
135 func_check "xststdcqp cr0,v31,127"
136 func_check "xststdcqp cr7,v31,127"
137 func_check "xsabsqp v10,v11"
138 func_check "xsxexpqp v11,v12"
139 func_check "xsnabsqp v12,v13"
140 func_check "xsnegqp v13,v14"
141 func_check "xsxsigqp v14,v15"
142 func_check "xssqrtqp v15,v16"
143 func_check "xssqrtqpo v16,v17"
144 func_check "xscvqpuwz v17,v18"
145 func_check "xscvudqp v18,v19"
146 func_check "xscvqpswz v19,v20"
147 func_check "xscvsdqp v20,v21"
148 func_check "xscvqpudz v21,v22"
149 func_check "xscvqpdp v22,v23"
150 func_check "xscvqpdpo v23,v24"
151 func_check "xscvdpqp v24,v25"
152 func_check "xscvqpsdz v25,v26"
153 func_check "xsiexpqp v26,v27,v28"
154 func_check "vpermr v4,v5,v6,v7"
155 func_check "vextractub v5,v6,0"
156 func_check "vextractub v5,v6,15"
157 func_check "vextractuh v6,v7,0"
158 func_check "vextractuh v6,v7,15"
159 func_check "vextractuw v7,v8,0"
160 func_check "vextractuw v7,v8,15"
161 func_check "vextractd v8,v9,0"
162 func_check "vextractd v8,v9,15"
163 func_check "vinsertb v9,v10,0"
164 func_check "vinsertb v9,v10,15"
165 func_check "vinserth v10,v11,0"
166 func_check "vinserth v10,v11,15"
167 func_check "vinsertw v11,v12,0"
168 func_check "vinsertw v11,v12,15"
169 func_check "vinsertd v12,v13,0"
170 func_check "vinsertd v12,v13,15"
171 func_check "mfvsrld r20,vs45"
172 func_check "mtvsrws vs46,r21"
173 func_check "mtvsrdd vs47,0,r23"
174 func_check "mtvsrdd vs47,r22,r23"
175 func_check "lxvx vs50,0,r11"
176 func_check "lxvx vs0,r10,r11"
177 func_check "lxvwsx vs51,0,r12"
178 func_check "lxvwsx vs1,r10,r12"
179 func_check "lxvh8x vs52,0,r13"
180 func_check "lxvh8x vs2,r10,r13"
181 func_check "lxvb16x vs53,0,r14"
182 func_check "lxvb16x vs3,r10,r14"
183 func_check "stxvx vs54,0,r15"
184 func_check "stxvx vs4,r20,r15"
185 func_check "stxvh8x vs55,0,r16"
186 func_check "stxvh8x vs5,r20,r16"
187 func_check "stxvb16x vs56,0,r17"
188 func_check "stxvb16x vs6,r20,r17"
189 func_check "xxextractuw vs4,vs5,0"
190 func_check "xxextractuw vs40,vs50,15"
191 func_check "xxspltib vs4,0"
192 func_check "xxspltib vs4,128"
193 func_check "xxspltib vs41,255"
194 func_check "xxinsertw vs5,vs6,0"
195 func_check "xxinsertw vs50,vs60,15"
196 func_check "xxbrh vs6,vs7"
197 func_check "xxbrh vs56,vs57"
198 func_check "xxbrw vs7,vs8"
199 func_check "xxbrw vs57,vs58"
200 func_check "xxbrd vs8,vs9"
201 func_check "xxbrd vs58,vs59"
202 func_check "xxbrq vs9,vs10"
203 func_check "xxbrq vs59,vs60"
204 func_check "lxsd v20,0(0)"
205 func_check "lxsd v20,0(r10)"
206 func_check "lxsd v20,8(0)"
207 func_check "lxsd v20,8(r10)"
208 func_check "lxsd v20,-8(0)"
209 func_check "lxsd v20,-8(r10)"
210 func_check "lxsd v20,32764(0)"
211 func_check "lxsd v20,32764(r10)"
212 func_check "lxsd v20,-32768(0)"
213 func_check "lxsd v20,-32768(r10)"
214 func_check "lxssp v30,0(0)"
215 func_check "lxssp v30,0(r11)"
216 func_check "lxssp v30,8(0)"
217 func_check "lxssp v30,8(r11)"
218 func_check "lxssp v30,-8(0)"
219 func_check "lxssp v30,-8(r11)"
220 func_check "lxssp v30,32764(0)"
221 func_check "lxssp v30,32764(r11)"
222 func_check "lxssp v30,-32768(0)"
223 func_check "lxssp v30,-32768(r11)"
224 func_check "lxv vs40,0(0)"
225 func_check "lxv vs40,0(r12)"
226 func_check "lxv vs40,16(0)"
227 func_check "lxv vs40,16(r12)"
228 func_check "lxv vs40,-16(0)"
229 func_check "lxv vs10,-16(r12)"
230 func_check "lxv vs10,32752(0)"
231 func_check "lxv vs10,32752(r12)"
232 func_check "lxv vs10,-32768(0)"
233 func_check "lxv vs10,-32768(r12)"
234 func_check "stxsd v21,0(0)"
235 func_check "stxsd v21,0(r10)"
236 func_check "stxsd v21,8(0)"
237 func_check "stxsd v21,8(r10)"
238 func_check "stxsd v21,-8(0)"
239 func_check "stxsd v21,-8(r10)"
240 func_check "stxsd v21,32764(0)"
241 func_check "stxsd v21,32764(r10)"
242 func_check "stxsd v21,-32768(0)"
243 func_check "stxsd v21,-32768(r10)"
244 func_check "stxssp v31,0(0)"
245 func_check "stxssp v31,0(r11)"
246 func_check "stxssp v31,8(0)"
247 func_check "stxssp v31,8(r11)"
248 func_check "stxssp v31,-8(0)"
249 func_check "stxssp v31,-8(r11)"
250 func_check "stxssp v31,32764(0)"
251 func_check "stxssp v31,32764(r11)"
252 func_check "stxssp v31,-32768(0)"
253 func_check "stxssp v31,-32768(r11)"
254 func_check "stxv vs41,0(0)"
255 func_check "stxv vs41,0(r12)"
256 func_check "stxv vs41,16(0)"
257 func_check "stxv vs41,16(r12)"
258 func_check "stxv vs41,-16(0)"
259 func_check "stxv vs11,-16(r12)"
260 func_check "stxv vs11,32752(0)"
261 func_check "stxv vs11,32752(r12)"
262 func_check "stxv vs11,-32768(0)"
263 func_check "stxv vs11,-32768(r12)"
264 func_check "xxperm vs20,vs22,vs24"
265 func_check "xxperm vs40,vs42,vs44"
266 func_check "xxpermr vs21,vs23,vs25"
267 func_check "xxpermr vs41,vs43,vs45"
268 func_check "extswsli r12,r20,0"
269 func_check "extswsli r12,r20,1"
270 func_check "extswsli r12,r20,63"
271 func_check "extswsli. r13,r21,0"
272 func_check "extswsli. r13,r21,1"
273 func_check "extswsli. r13,r21,63"
274 func_check "vrlwmi v14,v22,v23"
275 func_check "vrldmi v15,v23,v24"
276 func_check "vrlwnm v16,v24,v25"
277 func_check "vrldnm v17,v25,v26"
278 func_check "vbpermd v18,v26,v27"
279 func_check "vnegw v19,v20"
280 func_check "vnegd v20,v21"
281 func_check "vprtybw v21,v22"
282 func_check "vprtybd v22,v23"
283 func_check "vprtybq v23,v24"
284 func_check "vextsb2w v24,v25"
285 func_check "vextsh2w v25,v26"
286 func_check "vextsb2d v26,v27"
287 func_check "vextsh2d v27,v28"
288 func_check "vextsw2d v28,v29"
289 func_check "vctzb v29,v30"
290 func_check "vctzh v30,v31"
291 func_check "vctzw v31,v30"
292 func_check "vctzd v30,v29"
293 func_check "lxsibzx vs10,0,r20"
294 func_check "lxsibzx vs50,r10,r20"
295 func_check "lxsihzx vs11,0,r21"
296 func_check "lxsihzx vs51,r11,r21"
297 func_check "stxsibx vs12,0,r22"
298 func_check "stxsibx vs52,r12,r22"
299 func_check "stxsihx vs13,0,r23"
300 func_check "stxsihx vs53,r13,r23"
301 func_check "maddhd r10,r11,r12,r13"
302 func_check "maddhdu r20,r21,r22,r23"
303 func_check "maddld r2,r3,r4,r5"
304 func_check "xscmpexpdp cr0,vs10,vs20"
305 func_check "xscmpexpdp cr7,vs40,vs50"
306 func_check "xsiexpdp vs41,r11,r21"
307 func_check "xststdcdp cr0,vs11,127"
308 func_check "xststdcdp cr7,vs41,127"
309 func_check "xststdcsp cr0,vs11,127"
310 func_check "xststdcsp cr7,vs41,127"
311 func_check "xsxexpdp r13,vs43"
312 func_check "xsxsigdp r14,vs44"
313 func_check "xviexpdp vs45,vs46,vs47"
314 func_check "xviexpsp vs46,vs47,vs48"
315 func_check "xvtstdcdp vs54,vs55,0"
316 func_check "xvtstdcdp vs54,vs55,127"
317 func_check "xvtstdcsp vs55,vs56,0"
318 func_check "xvtstdcsp vs55,vs56,127"
319 func_check "xvxexpdp vs57,vs58"
320 func_check "xvxexpsp vs58,vs59"
321 func_check "xvxsigdp vs59,vs60"
322 func_check "xvxsigsp vs60,vs61"
323 func_check "cmpeqb cr0,r6,r7"
324 func_check "cmpeqb cr7,r6,r7"
325 func_check "cmprb cr0,0,r8,r9"
326 func_check "cmprb cr7,0,r8,r9"
327 func_check "cmprb cr0,1,r8,r9"
328 func_check "cmprb cr7,1,r8,r9"
329 func_check "setb r15,cr0"
330 func_check "setb r15,cr7"
331 func_check "lxvl vs26,0,r10"
332 func_check "lxvl vs56,r20,r10"
333 func_check "stxvl vs27,0,r11"
334 func_check "stxvl vs57,r21,r11"
335 func_check "vclzlsbb r20,v30"
336 func_check "vctzlsbb r21,v31"
337 func_check "vcmpneb v10,v11,v12"
338 func_check "vcmpneb. v20,v21,v22"
339 func_check "vcmpneh v11,v12,v13"
340 func_check "vcmpneh. v21,v22,v23"
341 func_check "vcmpnew v12,v13,v14"
342 func_check "vcmpnew. v22,v23,v24"
343 func_check "vcmpnezb v13,v14,v15"
344 func_check "vcmpnezb. v23,v24,v25"
345 func_check "vcmpnezh v14,v15,v16"
346 func_check "vcmpnezh. v24,v25,v26"
347 func_check "vcmpnezw v15,v16,v17"
348 func_check "vcmpnezw. v25,v26,v27"
349 func_check "vextublx r16,r17,v10"
350 func_check "vextubrx r17,r18,v11"
351 func_check "vextuhlx r18,r19,v12"
352 func_check "vextuhrx r19,r20,v13"
353 func_check "vextuwlx r20,r21,v14"
354 func_check "vextuwrx r21,r22,v15"
355 func_check "dtstsfi cr0,0,f3"
356 func_check "dtstsfi cr7,63,f3"
357 func_check "dtstsfiq cr0,0,f4"
358 func_check "dtstsfiq cr7,63,f4"
359 func_check "xscvhpdp vs40,vs50"
360 func_check "xscvdphp vs41,vs51"
361 func_check "xvcvhpsp vs42,vs52"
362 func_check "xvcvsphp vs43,vs53"
363 func_check "lnia r3"
364 func_check "addpcis r4,1"
365 func_check "addpcis r5,-2"
366 func_check "addpcis r6,32767"
367 func_check "addpcis r7,-32768"
368 func_check "slbsync"
369 func_check "slbiag r10"
370 func_check "slbieg r10,r11"
371 func_check "slbmfee r3,r4"
372 func_check "slbmfee r3,r4,1"
373 func_check "slbmfev r4,r5"
374 func_check "slbmfev r4,r5,1"
375 func_check "tlbie r3,r4"
376 func_check "tlbie r3,r4,3,1,1"
377 func_check "tlbiel r3"
378 func_check "tlbiel r3,r4,3,1,1"
379 func_check "copy r12,r13"
380 func_check "paste. r10,r11"
381 func_check "cpabort"
382 func_check "hwsync"
383 func_check "lwsync"
384 func_check "ptesync"
385 func_check "ldat r20,0,0"
386 func_check "ldat r20,r10,28"
387 func_check "lwat r21,0,0"
388 func_check "lwat r21,r11,28"
389 func_check "stdat r22,0,0"
390 func_check "stdat r22,r12,28"
391 func_check "stwat r23,0,0"
392 func_check "stwat r23,r13,28"
393 func_check "urfid"
394 func_check "rmieg r30"
395 func_check "stop"
396 func_check "wait"
397 func_check "darn r3,0"
398 func_check "darn r3,1"
399 func_check "darn r3,2"
400 func_check "mcrxrx cr0"
401 func_check "mcrxrx cr7"
402 func_check "vslv v20,v21,v22"
403 func_check "vsrv v23,v24,v25"
404 func_check "msgsync"
405 func_check "xscmpeqdp vs30,vs40,vs50"
406 func_check "xscmpgtdp vs31,vs41,vs51"
407 func_check "xscmpgedp vs32,vs42,vs52"
408 func_check "xsmincdp vs34,vs44,vs54"
409 func_check "xsmaxcdp vs35,vs45,vs55"
410 func_check "xsminjdp vs36,vs46,vs56"
411 func_check "xsmaxjdp vs37,vs47,vs57"
412 func_check "vmsumudm v20,v21,v22,v23"
413 func_check "addex r11,r12,r13,0"
414 func_check "addex r11,r12,r13,1"
415 func_check "addex r11,r12,r13,2"
416 func_check "mffs f25"
417 func_check "mffs. f25"
418 func_check "mffsce f26"
419 func_check "mffscdrn f27,f20"
420 func_check "mffscdrni f28,0"
421 func_check "mffscdrni f28,7"
422 func_check "mffscrn f29,f21"
423 func_check "mffscrni f30,0"
424 func_check "mffscrni f30,3"
425 func_check "mffsl f31"