1 # Copyright
2014-2019 Free Software Foundation
, Inc.
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.
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.
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
/>.
16 # This file is part of the gdb testsuite.
18 # Test PowerPC instructions disassembly.
21 set objfile
[standard_output_file $
{testfile
}.o
]
23 if {![istarget
"powerpc*-*-*"]} then {
24 verbose
"Skipping PowerPC instructions disassembly."
28 if { [gdb_compile
"${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}] != "" } {
29 untested
"PowerPC instructions disassembly"
33 clean_restart $
{objfile
}
35 # Disassemble the function.
38 gdb_test
"set disassembler-options vsx"
39 set test
"disass func"
40 gdb_test_multiple $test $test
{
41 -re
"\r\nDump of assembler code for function func:(\r\n.*\r\n)End of assembler dump.\r\n$gdb_prompt $" {
42 set func $expect_out
(1,string
)
47 proc instr_to_patt
{instr
} {
49 #
0x0000000000000018 <+24>: stxvd2x vs43
,r4
,r5
50 return "\[ \t\]*$hex <\\+$decimal>:\[ \t\]*[string_to_regexp $instr]"
53 proc func_check
{instr
} {
56 set test
"found: $instr"
57 if [regexp
-nocase
-line
[instr_to_patt $instr
] $func
] {
64 func_check
"lxsiwzx vs62,r14,r26"
65 func_check
"lxsiwzx vs40,0,r25"
66 func_check
"lxsiwax vs25,0,r26"
67 func_check
"lxsiwax vs3,0,r3"
68 func_check
"mfvsrd r12,vs30"
69 func_check
"mfvsrd r12,vs30"
70 func_check
"mfvsrd r12,vs62"
71 func_check
"mfvsrd r12,vs62"
72 func_check
"mffprwz r20,f12"
73 func_check
"mffprwz r20,f12"
74 func_check
"mfvrwz r21,v12"
75 func_check
"mfvrwz r21,v12"
76 func_check
"stxsiwx vs14,r9,r14"
77 func_check
"stxsiwx vs21,0,r8"
78 func_check
"mtvsrd vs11,r28"
79 func_check
"mtvsrd vs11,r28"
80 func_check
"mtvsrd vs43,r29"
81 func_check
"mtvsrd vs43,r29"
82 func_check
"mtfprwa f24,r22"
83 func_check
"mtfprwa f24,r22"
84 func_check
"mtvrwa v25,r23"
85 func_check
"mtvrwa v25,r23"
86 func_check
"mtfprwz f26,r27"
87 func_check
"mtfprwz f26,r27"
88 func_check
"mtvrwz v27,r28"
89 func_check
"mtvrwz v27,r28"
90 func_check
"lxsspx vs13,r19,r13"
91 func_check
"lxsspx vs18,0,r13"
92 func_check
"stxsspx vs43,r2,r4"
93 func_check
"stxsspx vs55,0,r11"
94 func_check
"xsaddsp vs54,vs48,vs25"
95 func_check
"xsmaddasp vs14,vs50,vs1"
96 func_check
"xssubsp vs26,vs22,vs42"
97 func_check
"xsmaddmsp vs27,vs53,vs52"
98 func_check
"xsrsqrtesp vs8,vs59"
99 func_check
"xssqrtsp vs12,vs41"
100 func_check
"xsmulsp vs57,vs11,vs32"
101 func_check
"xsmsubasp vs38,vs20,vs26"
102 func_check
"xsdivsp vs26,vs19,vs6"
103 func_check
"xsmsubmsp vs35,vs37,vs55"
104 func_check
"xsresp vs59,vs8"
105 func_check
"xsnmaddasp vs44,vs33,vs33"
106 func_check
"xsnmaddmsp vs17,vs62,vs30"
107 func_check
"xsnmsubasp vs54,vs52,vs31"
108 func_check
"xsnmsubmsp vs37,vs5,vs58"
109 func_check
"xxlorc vs30,vs54,vs44"
110 func_check
"xxlnand vs49,vs14,vs29"
111 func_check
"xxleqv vs62,vs22,vs30"
112 func_check
"xscvdpspn vs60,vs54"
113 func_check
"xsrsp vs22,vs45"
114 func_check
"xscvuxdsp vs26,vs59"
115 func_check
"xscvsxdsp vs38,vs49"
116 func_check
"xscvspdpn vs59,vs26"
117 func_check
"fmrgow f24,f14,f2"
118 func_check
"fmrgew f22,f7,f5"