xref: /openbsd-src/gnu/usr.bin/binutils/gdb/testsuite/gdb.disasm/t12_bit.exp (revision b725ae7711052a2233e31a66fefb8a752c388d7a)
1# Copyright (C) 2003 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 2 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, write to the Free Software
15# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16
17# Please email any bugs, comments, and/or additions to this file to:
18# bug-gdb@prep.ai.mit.edu
19
20# This file was written by Michael Snyder (msnyder@redhat.com)
21
22if $tracelevel then {
23	strace $tracelevel
24}
25
26if ![istarget "h8300*-*-*"] {
27    verbose "Tests ignored for all but h8300s based targets."
28    return
29}
30
31set prms_id 0
32set bug_id 0
33
34set testfile "t12_bit"
35set srcfile ${srcdir}/${subdir}/${testfile}.s
36set objfile ${objdir}/${subdir}/${testfile}.o
37set binfile ${objdir}/${subdir}/${testfile}.x
38
39set asm-flags "";
40set link-flags "-m h8300sxelf";
41
42
43if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
44     gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
45}
46
47if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
48     gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
49}
50
51gdb_start
52gdb_reinitialize_dir $srcdir/$subdir
53gdb_load $binfile
54
55gdb_test "x /i _start" "bset\t#0x7,r1h" \
56	"bset #0x7,r1h"
57gdb_test "x" "bset\t#0x7,@er1" \
58	"bset #0x7,@er1"
59gdb_test "x" "bset\t#0x7,@0x12(:8|)" \
60	"bset #0x7,@0x12:8"
61gdb_test "x" "bset\t#0x7,@0x1234(:16|)" \
62	"bset #0x7,@0x1234:16"
63gdb_test "x" "bset\t#0x7,@0x12345678(:32|)" \
64	"bset #0x7,@0x12345678:32"
65gdb_test "x" "bset\tr3h,r1h" \
66	"bset r3h,r1h"
67gdb_test "x" "bset\tr3h,@er1" \
68	"bset r3h,@er1"
69gdb_test "x" "bset\tr3h,@0x12(:8|)" \
70	"bset r3h,@0x12:8"
71gdb_test "x" "bset\tr3h,@0x1234(:16|)" \
72	"bset r3h,@0x1234:16"
73gdb_test "x" "bset\tr3h,@0x12345678(:32|)" \
74	"bset r3h,@0x12345678:32"
75gdb_test "x" "bset/eq\t#0x7,@er1" \
76	"bset/eq #0x7,@er1"
77gdb_test "x" "bset/eq\t#0x7,@0x12(:8|)" \
78	"bset/eq #0x7,@0x12:8"
79gdb_test "x" "bset/eq\t#0x7,@0x1234(:16|)" \
80	"bset/eq #0x7,@0x1234:16"
81gdb_test "x" "bset/eq\t#0x7,@0x12345678(:32|)" \
82	"bset/eq #0x7,@0x12345678:32"
83gdb_test "x" "bset/eq\tr3h,@er1" \
84	"bset/eq r3h,@er1"
85gdb_test "x" "bset/eq\tr3h,@0x12(:8|)" \
86	"bset/eq r3h,@0x12:8"
87gdb_test "x" "bset/eq\tr3h,@0x1234(:16|)" \
88	"bset/eq r3h,@0x1234:16"
89gdb_test "x" "bset/eq\tr3h,@0x12345678(:32|)" \
90	"bset/eq r3h,@0x12345678:32"
91gdb_test "x" "bset/ne\t#0x7,@er1" \
92	"bset/ne #0x7,@er1"
93gdb_test "x" "bset/ne\t#0x7,@0x12(:8|)" \
94	"bset/ne #0x7,@0x12:8"
95gdb_test "x" "bset/ne\t#0x7,@0x1234(:16|)" \
96	"bset/ne #0x7,@0x1234:16"
97gdb_test "x" "bset/ne\t#0x7,@0x12345678(:32|)" \
98	"bset/ne #0x7,@0x12345678:32"
99gdb_test "x" "bset/ne\tr3h,@er1" \
100	"bset/ne r3h,@er1"
101gdb_test "x" "bset/ne\tr3h,@0x12(:8|)" \
102	"bset/ne r3h,@0x12:8"
103gdb_test "x" "bset/ne\tr3h,@0x1234(:16|)" \
104	"bset/ne r3h,@0x1234:16"
105gdb_test "x" "bset/ne\tr3h,@0x12345678(:32|)" \
106	"bset/ne r3h,@0x12345678:32"
107gdb_test "x" "bnot\t#0x7,r1h" \
108	"bnot #0x7,r1h"
109gdb_test "x" "bnot\t#0x7,@er1" \
110	"bnot #0x7,@er1"
111gdb_test "x" "bnot\t#0x7,@0x12(:8|)" \
112	"bnot #0x7,@0x12:8"
113gdb_test "x" "bnot\t#0x7,@0x1234(:16|)" \
114	"bnot #0x7,@0x1234:16"
115gdb_test "x" "bnot\t#0x7,@0x12345678(:32|)" \
116	"bnot #0x7,@0x12345678:32"
117gdb_test "x" "bnot\tr3h,r1h" \
118	"bnot r3h,r1h"
119gdb_test "x" "bnot\tr3h,@er1" \
120	"bnot r3h,@er1"
121gdb_test "x" "bnot\tr3h,@0x12(:8|)" \
122	"bnot r3h,@0x12:8"
123gdb_test "x" "bnot\tr3h,@0x1234(:16|)" \
124	"bnot r3h,@0x1234:16"
125gdb_test "x" "bnot\tr3h,@0x12345678(:32|)" \
126	"bnot r3h,@0x12345678:32"
127gdb_test "x" "bclr\t#0x7,r1h" \
128	"bclr #0x7,r1h"
129gdb_test "x" "bclr\t#0x7,@er1" \
130	"bclr #0x7,@er1"
131gdb_test "x" "bclr\t#0x7,@0x12(:8|)" \
132	"bclr #0x7,@0x12:8"
133gdb_test "x" "bclr\t#0x7,@0x1234(:16|)" \
134	"bclr #0x7,@0x1234:16"
135gdb_test "x" "bclr\t#0x7,@0x12345678(:32|)" \
136	"bclr #0x7,@0x12345678:32"
137gdb_test "x" "bclr\tr3h,r1h" \
138	"bclr r3h,r1h"
139gdb_test "x" "bclr\tr3h,@er1" \
140	"bclr r3h,@er1"
141gdb_test "x" "bclr\tr3h,@0x12(:8|)" \
142	"bclr r3h,@0x12:8"
143gdb_test "x" "bclr\tr3h,@0x1234(:16|)" \
144	"bclr r3h,@0x1234:16"
145gdb_test "x" "bclr\tr3h,@0x12345678(:32|)" \
146	"bclr r3h,@0x12345678:32"
147gdb_test "x" "bclr/eq\t#0x7,@er1" \
148	"bclr/eq #0x7,@er1"
149gdb_test "x" "bclr/eq\t#0x7,@0x12(:8|)" \
150	"bclr/eq #0x7,@0x12:8"
151gdb_test "x" "bclr/eq\t#0x7,@0x1234(:16|)" \
152	"bclr/eq #0x7,@0x1234:16"
153gdb_test "x" "bclr/eq\t#0x7,@0x12345678(:32|)" \
154	"bclr/eq #0x7,@0x12345678:32"
155gdb_test "x" "bclr/eq\tr3h,@er1" \
156	"bclr/eq r3h,@er1"
157gdb_test "x" "bclr/eq\tr3h,@0x12(:8|)" \
158	"bclr/eq r3h,@0x12:8"
159gdb_test "x" "bclr/eq\tr3h,@0x1234(:16|)" \
160	"bclr/eq r3h,@0x1234:16"
161gdb_test "x" "bclr/eq\tr3h,@0x12345678(:32|)" \
162	"bclr/eq r3h,@0x12345678:32"
163gdb_test "x" "bclr/ne\t#0x7,@er1" \
164	"bclr/ne #0x7,@er1"
165gdb_test "x" "bclr/ne\t#0x7,@0x12(:8|)" \
166	"bclr/ne #0x7,@0x12:8"
167gdb_test "x" "bclr/ne\t#0x7,@0x1234(:16|)" \
168	"bclr/ne #0x7,@0x1234:16"
169gdb_test "x" "bclr/ne\t#0x7,@0x12345678(:32|)" \
170	"bclr/ne #0x7,@0x12345678:32"
171gdb_test "x" "bclr/ne\tr3h,@er1" \
172	"bclr/ne r3h,@er1"
173gdb_test "x" "bclr/ne\tr3h,@0x12(:8|)" \
174	"bclr/ne r3h,@0x12:8"
175gdb_test "x" "bclr/ne\tr3h,@0x1234(:16|)" \
176	"bclr/ne r3h,@0x1234:16"
177gdb_test "x" "bclr/ne\tr3h,@0x12345678(:32|)" \
178	"bclr/ne r3h,@0x12345678:32"
179gdb_test "x" "btst\t#0x7,r1h" \
180	"btst #0x7,r1h"
181gdb_test "x" "btst\t#0x7,@er1" \
182	"btst #0x7,@er1"
183gdb_test "x" "btst\t#0x7,@0x12(:8|)" \
184	"btst #0x7,@0x12:8"
185gdb_test "x" "btst\t#0x7,@0x1234(:16|)" \
186	"btst #0x7,@0x1234:16"
187gdb_test "x" "btst\t#0x7,@0x12345678(:32|)" \
188	"btst #0x7,@0x12345678:32"
189gdb_test "x" "btst\tr3h,r1h" \
190	"btst r3h,r1h"
191gdb_test "x" "btst\tr3h,@er1" \
192	"btst r3h,@er1"
193gdb_test "x" "btst\tr3h,@0x12(:8|)" \
194	"btst r3h,@0x12:8"
195gdb_test "x" "btst\tr3h,@0x1234(:16|)" \
196	"btst r3h,@0x1234:16"
197gdb_test "x" "btst\tr3h,@0x12345678(:32|)" \
198	"btst r3h,@0x12345678:32"
199gdb_test "x" "bor\t#0x7,r1h" \
200	"bor #0x7,r1h"
201gdb_test "x" "bor\t#0x7,@er1" \
202	"bor #0x7,@er1"
203gdb_test "x" "bor\t#0x7,@0x12(:8|)" \
204	"bor #0x7,@0x12:8"
205gdb_test "x" "bor\t#0x7,@0x1234(:16|)" \
206	"bor #0x7,@0x1234:16"
207gdb_test "x" "bor\t#0x7,@0x12345678(:32|)" \
208	"bor #0x7,@0x12345678:32"
209gdb_test "x" "bior\t#0x7,r1h" \
210	"bior #0x7,r1h"
211gdb_test "x" "bior\t#0x7,@er1" \
212	"bior #0x7,@er1"
213gdb_test "x" "bior\t#0x7,@0x12(:8|)" \
214	"bior #0x7,@0x12:8"
215gdb_test "x" "bior\t#0x7,@0x1234(:16|)" \
216	"bior #0x7,@0x1234:16"
217gdb_test "x" "bior\t#0x7,@0x12345678(:32|)" \
218	"bior #0x7,@0x12345678:32"
219gdb_test "x" "bxor\t#0x7,r1h" \
220	"bxor #0x7,r1h"
221gdb_test "x" "bxor\t#0x7,@er1" \
222	"bxor #0x7,@er1"
223gdb_test "x" "bxor\t#0x7,@0x12(:8|)" \
224	"bxor #0x7,@0x12:8"
225gdb_test "x" "bxor\t#0x7,@0x1234(:16|)" \
226	"bxor #0x7,@0x1234:16"
227gdb_test "x" "bxor\t#0x7,@0x12345678(:32|)" \
228	"bxor #0x7,@0x12345678:32"
229gdb_test "x" "bixor\t#0x7,r1h" \
230	"bixor #0x7,r1h"
231gdb_test "x" "bixor\t#0x7,@er1" \
232	"bixor #0x7,@er1"
233gdb_test "x" "bixor\t#0x7,@0x12(:8|)" \
234	"bixor #0x7,@0x12:8"
235gdb_test "x" "bixor\t#0x7,@0x1234(:16|)" \
236	"bixor #0x7,@0x1234:16"
237gdb_test "x" "bixor\t#0x7,@0x12345678(:32|)" \
238	"bixor #0x7,@0x12345678:32"
239gdb_test "x" "band\t#0x7,r1h" \
240	"band #0x7,r1h"
241gdb_test "x" "band\t#0x7,@er1" \
242	"band #0x7,@er1"
243gdb_test "x" "band\t#0x7,@0x12(:8|)" \
244	"band #0x7,@0x12:8"
245gdb_test "x" "band\t#0x7,@0x1234(:16|)" \
246	"band #0x7,@0x1234:16"
247gdb_test "x" "band\t#0x7,@0x12345678(:32|)" \
248	"band #0x7,@0x12345678:32"
249gdb_test "x" "biand\t#0x7,r1h" \
250	"biand #0x7,r1h"
251gdb_test "x" "biand\t#0x7,@er1" \
252	"biand #0x7,@er1"
253gdb_test "x" "biand\t#0x7,@0x12(:8|)" \
254	"biand #0x7,@0x12:8"
255gdb_test "x" "biand\t#0x7,@0x1234(:16|)" \
256	"biand #0x7,@0x1234:16"
257gdb_test "x" "biand\t#0x7,@0x12345678(:32|)" \
258	"biand #0x7,@0x12345678:32"
259gdb_test "x" "bld\t#0x7,r1h" \
260	"bld #0x7,r1h"
261gdb_test "x" "bld\t#0x7,@er1" \
262	"bld #0x7,@er1"
263gdb_test "x" "bld\t#0x7,@0x12(:8|)" \
264	"bld #0x7,@0x12:8"
265gdb_test "x" "bld\t#0x7,@0x1234(:16|)" \
266	"bld #0x7,@0x1234:16"
267gdb_test "x" "bld\t#0x7,@0x12345678(:32|)" \
268	"bld #0x7,@0x12345678:32"
269gdb_test "x" "bild\t#0x7,r1h" \
270	"bild #0x7,r1h"
271gdb_test "x" "bild\t#0x7,@er1" \
272	"bild #0x7,@er1"
273gdb_test "x" "bild\t#0x7,@0x12(:8|)" \
274	"bild #0x7,@0x12:8"
275gdb_test "x" "bild\t#0x7,@0x1234(:16|)" \
276	"bild #0x7,@0x1234:16"
277gdb_test "x" "bild\t#0x7,@0x12345678(:32|)" \
278	"bild #0x7,@0x12345678:32"
279gdb_test "x" "bst\t#0x7,r1h" \
280	"bst #0x7,r1h"
281gdb_test "x" "bst\t#0x7,@er1" \
282	"bst #0x7,@er1"
283gdb_test "x" "bst\t#0x7,@0x12(:8|)" \
284	"bst #0x7,@0x12:8"
285gdb_test "x" "bst\t#0x7,@0x1234(:16|)" \
286	"bst #0x7,@0x1234:16"
287gdb_test "x" "bst\t#0x7,@0x12345678(:32|)" \
288	"bst #0x7,@0x12345678:32"
289gdb_test "x" "bstz\t#0x7,@er1" \
290	"bstz #0x7,@er1"
291gdb_test "x" "bstz\t#0x7,@0x12(:8|)" \
292	"bstz #0x7,@0x12:8"
293gdb_test "x" "bstz\t#0x7,@0x1234(:16|)" \
294	"bstz #0x7,@0x1234:16"
295gdb_test "x" "bstz\t#0x7,@0x12345678(:32|)" \
296	"bstz #0x7,@0x12345678:32"
297gdb_test "x" "bist\t#0x7,r1h" \
298	"bist #0x7,r1h"
299gdb_test "x" "bist\t#0x7,@er1" \
300	"bist #0x7,@er1"
301gdb_test "x" "bist\t#0x7,@0x12(:8|)" \
302	"bist #0x7,@0x12:8"
303gdb_test "x" "bist\t#0x7,@0x1234(:16|)" \
304	"bist #0x7,@0x1234:16"
305gdb_test "x" "bist\t#0x7,@0x12345678(:32|)" \
306	"bist #0x7,@0x12345678:32"
307gdb_test "x" "bistz\t#0x7,@er1" \
308	"bistz #0x7,@er1"
309gdb_test "x" "bistz\t#0x7,@0x12(:8|)" \
310	"bistz #0x7,@0x12:8"
311gdb_test "x" "bistz\t#0x7,@0x1234(:16|)" \
312	"bistz #0x7,@0x1234:16"
313gdb_test "x" "bistz\t#0x7,@0x12345678(:32|)" \
314	"bistz #0x7,@0x12345678:32"
315gdb_test "x" "bfld\t#0x34(:8|),@er1,r3h" \
316	"bfld #0x34:8,@er1,r3h"
317gdb_test "x" "bfld\t#0x34(:8|),@0x12(:8|),r3h" \
318	"bfld #0x34:8,@0x12:8,r3h"
319gdb_test "x" "bfld\t#0x34(:8|),@0x1234(:16|),r3h" \
320	"bfld #0x34:8,@0x1234:16,r3h"
321gdb_test "x" "bfld\t#0x34(:8|),@0x12345678(:32|),r3h" \
322	"bfld #0x34:8,@0x12345678:32,r3h"
323gdb_test "x" "bfst\tr3h,#0x34(:8|),@er1" \
324	"bfst r3h,#0x34:8,@er1"
325gdb_test "x" "bfst\tr3h,#0x34(:8|),@0x12(:8|)" \
326	"bfst r3h,#0x34:8,@0x12:8"
327gdb_test "x" "bfst\tr3h,#0x34(:8|),@0x1234(:16|)" \
328	"bfst r3h,#0x34:8,@0x1234:16"
329gdb_test "x" "bfst\tr3h,#0x34(:8|),@0x12345678(:32|)" \
330	"bfst r3h,#0x34:8,@0x12345678:32"
331