xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/testsuite/gdb.disasm/t07_ari3.exp (revision e6c7e151de239c49d2e38720a061ed9d1fa99309)
1# Copyright (C) 2003-2017 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 was written by Michael Snyder (msnyder@redhat.com)
17
18if ![istarget "h8300*-*-*"] {
19    verbose "Tests ignored for all but h8300s based targets."
20    return
21}
22
23
24set testfile "t07_ari3"
25set srcfile ${srcdir}/${subdir}/${testfile}.s
26set objfile ${objdir}/${subdir}/${testfile}.o
27set binfile ${objdir}/${subdir}/${testfile}.x
28
29set asm-flags ""
30set link-flags "-m h8300sxelf"
31
32
33if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
34     untested "failed to assemble"
35     return -1
36}
37
38if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
39     untested "failed to link"
40     return -1
41}
42
43gdb_start
44gdb_reinitialize_dir $srcdir/$subdir
45gdb_load $binfile
46
47gdb_test "x /i start" "neg.b\tr1h" \
48	"neg.b r1h"
49gdb_test "x" "neg.b\t@er1" \
50	"neg.b @er1"
51gdb_test "x" "neg.b\t@\\(0x3(:2|),er1\\)" \
52	"neg.b @(0x3:2,er1)"
53gdb_test "x" "neg.b\t@er1\\+" \
54	"neg.b @er1+"
55gdb_test "x" "neg.b\t@-er1" \
56	"neg.b @-er1"
57gdb_test "x" "neg.b\t@\\+er1" \
58	"neg.b @+er1"
59gdb_test "x" "neg.b\t@er1-" \
60	"neg.b @er1-"
61gdb_test "x" "neg.b\t@\\(0x1234(:16|),er1\\)" \
62	"neg.b @(0x1234:16,er1)"
63gdb_test "x" "neg.b\t@\\(0x12345678(:32|),er1\\)" \
64	"neg.b @(0x12345678:32,er1)"
65gdb_test "x" "neg.b\t@\\(0x1234(:16|),r2l.b\\)" \
66	"neg.b @(0x1234:16,r2l.b)"
67gdb_test "x" "neg.b\t@\\(0x1234(:16|),r2.w\\)" \
68	"neg.b @(0x1234:16,r2.w)"
69gdb_test "x" "neg.b\t@\\(0x1234(:16|),er2.l\\)" \
70	"neg.b @(0x1234:16,er2.l)"
71gdb_test "x" "neg.b\t@\\(0x12345678(:32|),r2l.b\\)" \
72	"neg.b @(0x12345678:32,r2l.b)"
73gdb_test "x" "neg.b\t@\\(0x12345678(:32|),r2.w\\)" \
74	"neg.b @(0x12345678:32,r2.w)"
75gdb_test "x" "neg.b\t@\\(0x12345678(:32|),er2.l\\)" \
76	"neg.b @(0x12345678:32,er2.l)"
77gdb_test "x" "neg.b\t@0x12(:8|)" \
78	"neg.b @0x12:8"
79gdb_test "x" "neg.b\t@0x1234(:16|)" \
80	"neg.b @0x1234:16"
81gdb_test "x" "neg.b\t@0x12345678(:32|)" \
82	"neg.b @0x12345678:32"
83gdb_test "x" "neg.w\tr1" \
84	"neg.w r1"
85gdb_test "x" "neg.w\t@er1" \
86	"neg.w @er1"
87gdb_test "x" "neg.w\t@\\(0x6(:2|),er1\\)" \
88	"neg.w @(0x6:2,er1)"
89gdb_test "x" "neg.w\t@er1\\+" \
90	"neg.w @er1+"
91gdb_test "x" "neg.w\t@-er1" \
92	"neg.w @-er1"
93gdb_test "x" "neg.w\t@\\+er1" \
94	"neg.w @+er1"
95gdb_test "x" "neg.w\t@er1-" \
96	"neg.w @er1-"
97gdb_test "x" "neg.w\t@\\(0x1234(:16|),er1\\)" \
98	"neg.w @(0x1234:16,er1)"
99gdb_test "x" "neg.w\t@\\(0x12345678(:32|),er1\\)" \
100	"neg.w @(0x12345678:32,er1)"
101gdb_test "x" "neg.w\t@\\(0x1234(:16|),r2l.b\\)" \
102	"neg.w @(0x1234:16,r2l.b)"
103gdb_test "x" "neg.w\t@\\(0x1234(:16|),r2.w\\)" \
104	"neg.w @(0x1234:16,r2.w)"
105gdb_test "x" "neg.w\t@\\(0x1234(:16|),er2.l\\)" \
106	"neg.w @(0x1234:16,er2.l)"
107gdb_test "x" "neg.w\t@\\(0x12345678(:32|),r2l.b\\)" \
108	"neg.w @(0x12345678:32,r2l.b)"
109gdb_test "x" "neg.w\t@\\(0x12345678(:32|),r2.w\\)" \
110	"neg.w @(0x12345678:32,r2.w)"
111gdb_test "x" "neg.w\t@\\(0x12345678(:32|),er2.l\\)" \
112	"neg.w @(0x12345678:32,er2.l)"
113gdb_test "x" "neg.w\t@0x1234(:16|)" \
114	"neg.w @0x1234:16"
115gdb_test "x" "neg.w\t@0x12345678(:32|)" \
116	"neg.w @0x12345678:32"
117gdb_test "x" "neg.l\ter1" \
118	"neg.l er1"
119gdb_test "x" "neg.l\t@er1" \
120	"neg.l @er1"
121gdb_test "x" "neg.l\t@\\(0xc(:2|),er1\\)" \
122	"neg.l @(0xc:2,er1)"
123gdb_test "x" "neg.l\t@er1\\+" \
124	"neg.l @er1+"
125gdb_test "x" "neg.l\t@-er1" \
126	"neg.l @-er1"
127gdb_test "x" "neg.l\t@\\+er1" \
128	"neg.l @+er1"
129gdb_test "x" "neg.l\t@er1-" \
130	"neg.l @er1-"
131gdb_test "x" "neg.l\t@\\(0x1234(:16|),er1\\)" \
132	"neg.l @(0x1234:16,er1)"
133gdb_test "x" "neg.l\t@\\(0x12345678(:32|),er1\\)" \
134	"neg.l @(0x12345678:32,er1)"
135gdb_test "x" "neg.l\t@\\(0x1234(:16|),r2l.b\\)" \
136	"neg.l @(0x1234:16,r2l.b)"
137gdb_test "x" "neg.l\t@\\(0x1234(:16|),r2.w\\)" \
138	"neg.l @(0x1234:16,r2.w)"
139gdb_test "x" "neg.l\t@\\(0x1234(:16|),er2.l\\)" \
140	"neg.l @(0x1234:16,er2.l)"
141gdb_test "x" "neg.l\t@\\(0x12345678(:32|),r2l.b\\)" \
142	"neg.l @(0x12345678:32,r2l.b)"
143gdb_test "x" "neg.l\t@\\(0x12345678(:32|),r2.w\\)" \
144	"neg.l @(0x12345678:32,r2.w)"
145gdb_test "x" "neg.l\t@\\(0x12345678(:32|),er2.l\\)" \
146	"neg.l @(0x12345678:32,er2.l)"
147gdb_test "x" "neg.l\t@0x1234(:16|)" \
148	"neg.l @0x1234:16"
149gdb_test "x" "neg.l\t@0x12345678(:32|)" \
150	"neg.l @0x12345678:32"
151gdb_test "x" "tas\t@er1" \
152	"tas @er1"
153gdb_test "x" "extu.w\tr1" \
154	"extu.w r1"
155gdb_test "x" "extu.w\t@er1" \
156	"extu.w @er1"
157gdb_test "x" "extu.w\t@\\(0x6(:2|),er1\\)" \
158	"extu.w @(0x6:2,er1)"
159gdb_test "x" "extu.w\t@er1\\+" \
160	"extu.w @er1+"
161gdb_test "x" "extu.w\t@-er1" \
162	"extu.w @-er1"
163gdb_test "x" "extu.w\t@\\+er1" \
164	"extu.w @+er1"
165gdb_test "x" "extu.w\t@er1-" \
166	"extu.w @er1-"
167gdb_test "x" "extu.w\t@\\(0x1234(:16|),er1\\)" \
168	"extu.w @(0x1234:16,er1)"
169gdb_test "x" "extu.w\t@\\(0x12345678(:32|),er1\\)" \
170	"extu.w @(0x12345678:32,er1)"
171gdb_test "x" "extu.w\t@\\(0x1234(:16|),r2l.b\\)" \
172	"extu.w @(0x1234:16,r2l.b)"
173gdb_test "x" "extu.w\t@\\(0x1234(:16|),r2.w\\)" \
174	"extu.w @(0x1234:16,r2.w)"
175gdb_test "x" "extu.w\t@\\(0x1234(:16|),er2.l\\)" \
176	"extu.w @(0x1234:16,er2.l)"
177gdb_test "x" "extu.w\t@\\(0x12345678(:32|),r2l.b\\)" \
178	"extu.w @(0x12345678:32,r2l.b)"
179gdb_test "x" "extu.w\t@\\(0x12345678(:32|),r2.w\\)" \
180	"extu.w @(0x12345678:32,r2.w)"
181gdb_test "x" "extu.w\t@\\(0x12345678(:32|),er2.l\\)" \
182	"extu.w @(0x12345678:32,er2.l)"
183gdb_test "x" "extu.w\t@0x1234(:16|)" \
184	"extu.w @0x1234:16"
185gdb_test "x" "extu.w\t@0x12345678(:32|)" \
186	"extu.w @0x12345678:32"
187gdb_test "x" "extu.l\ter1" \
188	"extu.l er1"
189gdb_test "x" "extu.l\t@er1" \
190	"extu.l @er1"
191gdb_test "x" "extu.l\t@\\(0xc(:2|),er1\\)" \
192	"extu.l @(0xc:2,er1)"
193gdb_test "x" "extu.l\t@er1\\+" \
194	"extu.l @er1+"
195gdb_test "x" "extu.l\t@-er1" \
196	"extu.l @-er1"
197gdb_test "x" "extu.l\t@\\+er1" \
198	"extu.l @+er1"
199gdb_test "x" "extu.l\t@er1-" \
200	"extu.l @er1-"
201gdb_test "x" "extu.l\t@\\(0x1234(:16|),er1\\)" \
202	"extu.l @(0x1234:16,er1)"
203gdb_test "x" "extu.l\t@\\(0x12345678(:32|),er1\\)" \
204	"extu.l @(0x12345678:32,er1)"
205gdb_test "x" "extu.l\t@\\(0x1234(:16|),r2l.b\\)" \
206	"extu.l @(0x1234:16,r2l.b)"
207gdb_test "x" "extu.l\t@\\(0x1234(:16|),r2.w\\)" \
208	"extu.l @(0x1234:16,r2.w)"
209gdb_test "x" "extu.l\t@\\(0x1234(:16|),er2.l\\)" \
210	"extu.l @(0x1234:16,er2.l)"
211gdb_test "x" "extu.l\t@\\(0x12345678(:32|),r2l.b\\)" \
212	"extu.l @(0x12345678:32,r2l.b)"
213gdb_test "x" "extu.l\t@\\(0x12345678(:32|),r2.w\\)" \
214	"extu.l @(0x12345678:32,r2.w)"
215gdb_test "x" "extu.l\t@\\(0x12345678(:32|),er2.l\\)" \
216	"extu.l @(0x12345678:32,er2.l)"
217gdb_test "x" "extu.l\t@0x1234(:16|)" \
218	"extu.l @0x1234:16"
219gdb_test "x" "extu.l\t@0x12345678(:32|)" \
220	"extu.l @0x12345678:32"
221gdb_test "x" "extu.l\t#2,er1" \
222	"extu.l #2,er1"
223gdb_test "x" "extu.l\t#2,@er1" \
224	"extu.l #2,@er1"
225gdb_test "x" "extu.l\t#2,@\\(0xc(:2|),er1\\)" \
226	"extu.l #2,@(0xc:2,er1)"
227gdb_test "x" "extu.l\t#2,@er1\\+" \
228	"extu.l #2,@er1+"
229gdb_test "x" "extu.l\t#2,@-er1" \
230	"extu.l #2,@-er1"
231gdb_test "x" "extu.l\t#2,@\\+er1" \
232	"extu.l #2,@+er1"
233gdb_test "x" "extu.l\t#2,@er1-" \
234	"extu.l #2,@er1-"
235gdb_test "x" "extu.l\t#2,@\\(0x1234(:16|),er1\\)" \
236	"extu.l #2,@(0x1234:16,er1)"
237gdb_test "x" "extu.l\t#2,@\\(0x12345678(:32|),er1\\)" \
238	"extu.l #2,@(0x12345678:32,er1)"
239gdb_test "x" "extu.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \
240	"extu.l #2,@(0x1234:16,r2l.b)"
241gdb_test "x" "extu.l\t#2,@\\(0x1234(:16|),r2.w\\)" \
242	"extu.l #2,@(0x1234:16,r2.w)"
243gdb_test "x" "extu.l\t#2,@\\(0x1234(:16|),er2.l\\)" \
244	"extu.l #2,@(0x1234:16,er2.l)"
245gdb_test "x" "extu.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
246	"extu.l #2,@(0x12345678:32,r2l.b)"
247gdb_test "x" "extu.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \
248	"extu.l #2,@(0x12345678:32,r2.w)"
249gdb_test "x" "extu.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \
250	"extu.l #2,@(0x12345678:32,er2.l)"
251gdb_test "x" "extu.l\t#2,@0x1234(:16|)" \
252	"extu.l #2,@0x1234:16"
253gdb_test "x" "extu.l\t#2,@0x12345678(:32|)" \
254	"extu.l #2,@0x12345678:32"
255gdb_test "x" "exts.w\tr1" \
256	"exts.w r1"
257gdb_test "x" "exts.w\t@er1" \
258	"exts.w @er1"
259gdb_test "x" "exts.w\t@\\(0x6(:2|),er1\\)" \
260	"exts.w @(0x6:2,er1)"
261gdb_test "x" "exts.w\t@er1\\+" \
262	"exts.w @er1+"
263gdb_test "x" "exts.w\t@-er1" \
264	"exts.w @-er1"
265gdb_test "x" "exts.w\t@\\+er1" \
266	"exts.w @+er1"
267gdb_test "x" "exts.w\t@er1-" \
268	"exts.w @er1-"
269gdb_test "x" "exts.w\t@\\(0x1234(:16|),er1\\)" \
270	"exts.w @(0x1234:16,er1)"
271gdb_test "x" "exts.w\t@\\(0x12345678(:32|),er1\\)" \
272	"exts.w @(0x12345678:32,er1)"
273gdb_test "x" "exts.w\t@\\(0x1234(:16|),r2l.b\\)" \
274	"exts.w @(0x1234:16,r2l.b)"
275gdb_test "x" "exts.w\t@\\(0x1234(:16|),r2.w\\)" \
276	"exts.w @(0x1234:16,r2.w)"
277gdb_test "x" "exts.w\t@\\(0x1234(:16|),er2.l\\)" \
278	"exts.w @(0x1234:16,er2.l)"
279gdb_test "x" "exts.w\t@\\(0x12345678(:32|),r2l.b\\)" \
280	"exts.w @(0x12345678:32,r2l.b)"
281gdb_test "x" "exts.w\t@\\(0x12345678(:32|),r2.w\\)" \
282	"exts.w @(0x12345678:32,r2.w)"
283gdb_test "x" "exts.w\t@\\(0x12345678(:32|),er2.l\\)" \
284	"exts.w @(0x12345678:32,er2.l)"
285gdb_test "x" "exts.w\t@0x1234(:16|)" \
286	"exts.w @0x1234:16"
287gdb_test "x" "exts.w\t@0x12345678(:32|)" \
288	"exts.w @0x12345678:32"
289gdb_test "x" "exts.l\ter1" \
290	"exts.l er1"
291gdb_test "x" "exts.l\t@er1" \
292	"exts.l @er1"
293gdb_test "x" "exts.l\t@\\(0xc(:2|),er1\\)" \
294	"exts.l @(0xc:2,er1)"
295gdb_test "x" "exts.l\t@er1\\+" \
296	"exts.l @er1+"
297gdb_test "x" "exts.l\t@-er1" \
298	"exts.l @-er1"
299gdb_test "x" "exts.l\t@\\+er1" \
300	"exts.l @+er1"
301gdb_test "x" "exts.l\t@er1-" \
302	"exts.l @er1-"
303gdb_test "x" "exts.l\t@\\(0x1234(:16|),er1\\)" \
304	"exts.l @(0x1234:16,er1)"
305gdb_test "x" "exts.l\t@\\(0x12345678(:32|),er1\\)" \
306	"exts.l @(0x12345678:32,er1)"
307gdb_test "x" "exts.l\t@\\(0x1234(:16|),r2l.b\\)" \
308	"exts.l @(0x1234:16,r2l.b)"
309gdb_test "x" "exts.l\t@\\(0x1234(:16|),r2.w\\)" \
310	"exts.l @(0x1234:16,r2.w)"
311gdb_test "x" "exts.l\t@\\(0x1234(:16|),er2.l\\)" \
312	"exts.l @(0x1234:16,er2.l)"
313gdb_test "x" "exts.l\t@\\(0x12345678(:32|),r2l.b\\)" \
314	"exts.l @(0x12345678:32,r2l.b)"
315gdb_test "x" "exts.l\t@\\(0x12345678(:32|),r2.w\\)" \
316	"exts.l @(0x12345678:32,r2.w)"
317gdb_test "x" "exts.l\t@\\(0x12345678(:32|),er2.l\\)" \
318	"exts.l @(0x12345678:32,er2.l)"
319gdb_test "x" "exts.l\t@0x1234(:16|)" \
320	"exts.l @0x1234:16"
321gdb_test "x" "exts.l\t@0x12345678(:32|)" \
322	"exts.l @0x12345678:32"
323gdb_test "x" "exts.l\t#2,er1" \
324	"exts.l #2,er1"
325gdb_test "x" "exts.l\t#2,@er1" \
326	"exts.l #2,@er1"
327gdb_test "x" "exts.l\t#2,@\\(0xc(:2|),er1\\)" \
328	"exts.l #2,@(0xc:2,er1)"
329gdb_test "x" "exts.l\t#2,@er1\\+" \
330	"exts.l #2,@er1+"
331gdb_test "x" "exts.l\t#2,@-er1" \
332	"exts.l #2,@-er1"
333gdb_test "x" "exts.l\t#2,@\\+er1" \
334	"exts.l #2,@+er1"
335gdb_test "x" "exts.l\t#2,@er1-" \
336	"exts.l #2,@er1-"
337gdb_test "x" "exts.l\t#2,@\\(0x1234(:16|),er1\\)" \
338	"exts.l #2,@(0x1234:16,er1)"
339gdb_test "x" "exts.l\t#2,@\\(0x12345678(:32|),er1\\)" \
340	"exts.l #2,@(0x12345678:32,er1)"
341gdb_test "x" "exts.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \
342	"exts.l #2,@(0x1234:16,r2l.b)"
343gdb_test "x" "exts.l\t#2,@\\(0x1234(:16|),r2.w\\)" \
344	"exts.l #2,@(0x1234:16,r2.w)"
345gdb_test "x" "exts.l\t#2,@\\(0x1234(:16|),er2.l\\)" \
346	"exts.l #2,@(0x1234:16,er2.l)"
347gdb_test "x" "exts.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
348	"exts.l #2,@(0x12345678:32,r2l.b)"
349gdb_test "x" "exts.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \
350	"exts.l #2,@(0x12345678:32,r2.w)"
351gdb_test "x" "exts.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \
352	"exts.l #2,@(0x12345678:32,er2.l)"
353gdb_test "x" "exts.l\t#2,@0x1234(:16|)" \
354	"exts.l #2,@0x1234:16"
355gdb_test "x" "exts.l\t#2,@0x12345678(:32|)" \
356	"exts.l #2,@0x12345678:32"
357