xref: /netbsd-src/external/gpl3/gdb/dist/gdb/testsuite/gdb.disasm/t06_ari2.exp (revision e39ef1d61eee3ccba837ee281f1e098c864487aa)
1# Copyright (C) 2003, 2007, 2008, 2009, 2010, 2011
2# Free Software Foundation, Inc.
3
4# This program is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation; either version 3 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17# This file was written by Michael Snyder (msnyder@redhat.com)
18
19if $tracelevel then {
20	strace $tracelevel
21}
22
23if ![istarget "h8300*-*-*"] {
24    verbose "Tests ignored for all but h8300s based targets."
25    return
26}
27
28
29set testfile "t06_ari2"
30set srcfile ${srcdir}/${subdir}/${testfile}.s
31set objfile ${objdir}/${subdir}/${testfile}.o
32set binfile ${objdir}/${subdir}/${testfile}.x
33
34set asm-flags "";
35set link-flags "-m h8300sxelf";
36
37
38if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
39     untested t06_ari2.exp
40     return -1
41}
42
43if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
44     untested t06_ari2.exp
45     return -1
46}
47
48gdb_start
49gdb_reinitialize_dir $srcdir/$subdir
50gdb_load $binfile
51
52gdb_test "x /i start" "addx(.b|)\t#0x12(:8|),r1h" \
53	"addx.b #0x12:8,r1h"
54gdb_test "x" "addx(.b|)\t#0x12(:8|),@er1" \
55	"addx.b #0x12:8,@er1"
56gdb_test "x" "addx(.b|)\t#0x12(:8|),@er1-" \
57	"addx.b #0x12:8,@er1-"
58gdb_test "x" "addx(.b|)\tr3h,r1h" \
59	"addx.b r3h,r1h"
60gdb_test "x" "addx(.b|)\tr3h,@er1" \
61	"addx.b r3h,@er1"
62gdb_test "x" "addx(.b|)\tr3h,@er1-" \
63	"addx.b r3h,@er1-"
64gdb_test "x" "addx(.b|)\t@er3,r1h" \
65	"addx.b @er3,r1h"
66gdb_test "x" "addx(.b|)\t@er3,@er1" \
67	"addx.b @er3,@er1"
68gdb_test "x" "addx(.b|)\t@er3-,r1h" \
69	"addx.b @er3-,r1h"
70gdb_test "x" "addx(.b|)\t@er3-,@er1-" \
71	"addx.b @er3-,@er1-"
72gdb_test "x" "addx.w\t#0x1234(:16|),r1" \
73	"addx.w #0x1234:16,r1"
74gdb_test "x" "addx.w\t#0x1234(:16|),@er1" \
75	"addx.w #0x1234:16,@er1"
76gdb_test "x" "addx.w\t#0x1234(:16|),@er1-" \
77	"addx.w #0x1234:16,@er1-"
78gdb_test "x" "addx.w\tr3,r1" \
79	"addx.w r3,r1"
80gdb_test "x" "addx.w\tr3,@er1" \
81	"addx.w r3,@er1"
82gdb_test "x" "addx.w\tr3,@er1-" \
83	"addx.w r3,@er1-"
84gdb_test "x" "addx.w\t@er3,r1" \
85	"addx.w @er3,r1"
86gdb_test "x" "addx.w\t@er3,@er1" \
87	"addx.w @er3,@er1"
88gdb_test "x" "addx.w\t@er3-,r1" \
89	"addx.w @er3-,r1"
90gdb_test "x" "addx.w\t@er3-,@er1-" \
91	"addx.w @er3-,@er1-"
92gdb_test "x" "addx.l\t#0x12345678(:32|),er1" \
93	"addx.l #0x12345678:32,er1"
94gdb_test "x" "addx.l\t#0x12345678(:32|),@er1" \
95	"addx.l #0x12345678:32,@er1"
96gdb_test "x" "addx.l\t#0x12345678(:32|),@er1-" \
97	"addx.l #0x12345678:32,@er1-"
98gdb_test "x" "addx.l\ter3,er1" \
99	"addx.l er3,er1"
100gdb_test "x" "addx.l\ter3,@er1" \
101	"addx.l er3,@er1"
102gdb_test "x" "addx.l\ter3,@er1-" \
103	"addx.l er3,@er1-"
104gdb_test "x" "addx.l\t@er3,er1" \
105	"addx.l @er3,er1"
106gdb_test "x" "addx.l\t@er3,@er1" \
107	"addx.l @er3,@er1"
108gdb_test "x" "addx.l\t@er3-,er1" \
109	"addx.l @er3-,er1"
110gdb_test "x" "addx.l\t@er3-,@er1-" \
111	"addx.l @er3-,@er1-"
112gdb_test "x" "subx(.b|)\t#0x12(:8|),r1h" \
113	"subx.b #0x12:8,r1h"
114gdb_test "x" "subx(.b|)\t#0x12(:8|),@er1" \
115	"subx.b #0x12:8,@er1"
116gdb_test "x" "subx(.b|)\t#0x12(:8|),@er1-" \
117	"subx.b #0x12:8,@er1-"
118gdb_test "x" "subx(.b|)\tr3h,r1h" \
119	"subx.b r3h,r1h"
120gdb_test "x" "subx(.b|)\tr3h,@er1" \
121	"subx.b r3h,@er1"
122gdb_test "x" "subx(.b|)\tr3h,@er1-" \
123	"subx.b r3h,@er1-"
124gdb_test "x" "subx(.b|)\t@er3,r1h" \
125	"subx.b @er3,r1h"
126gdb_test "x" "subx(.b|)\t@er3,@er1" \
127	"subx.b @er3,@er1"
128gdb_test "x" "subx(.b|)\t@er3-,r1h" \
129	"subx.b @er3-,r1h"
130gdb_test "x" "subx(.b|)\t@er3-,@er1-" \
131	"subx.b @er3-,@er1-"
132gdb_test "x" "subx.w\t#0x1234(:16|),r1" \
133	"subx.w #0x1234:16,r1"
134gdb_test "x" "subx.w\t#0x1234(:16|),@er1" \
135	"subx.w #0x1234:16,@er1"
136gdb_test "x" "subx.w\t#0x1234(:16|),@er1-" \
137	"subx.w #0x1234:16,@er1-"
138gdb_test "x" "subx.w\tr3,r1" \
139	"subx.w r3,r1"
140gdb_test "x" "subx.w\tr3,@er1" \
141	"subx.w r3,@er1"
142gdb_test "x" "subx.w\tr3,@er1-" \
143	"subx.w r3,@er1-"
144gdb_test "x" "subx.w\t@er3,r1" \
145	"subx.w @er3,r1"
146gdb_test "x" "subx.w\t@er3,@er1" \
147	"subx.w @er3,@er1"
148gdb_test "x" "subx.w\t@er3-,r1" \
149	"subx.w @er3-,r1"
150gdb_test "x" "subx.w\t@er3-,@er1-" \
151	"subx.w @er3-,@er1-"
152gdb_test "x" "subx.l\t#0x12345678(:32|),er1" \
153	"subx.l #0x12345678:32,er1"
154gdb_test "x" "subx.l\t#0x12345678(:32|),@er1" \
155	"subx.l #0x12345678:32,@er1"
156gdb_test "x" "subx.l\t#0x12345678(:32|),@er1-" \
157	"subx.l #0x12345678:32,@er1-"
158gdb_test "x" "subx.l\ter3,er1" \
159	"subx.l er3,er1"
160gdb_test "x" "subx.l\ter3,@er1" \
161	"subx.l er3,@er1"
162gdb_test "x" "subx.l\ter3,@er1-" \
163	"subx.l er3,@er1-"
164gdb_test "x" "subx.l\t@er3,er1" \
165	"subx.l @er3,er1"
166gdb_test "x" "subx.l\t@er3,@er1" \
167	"subx.l @er3,@er1"
168gdb_test "x" "subx.l\t@er3-,er1" \
169	"subx.l @er3-,er1"
170gdb_test "x" "subx.l\t@er3-,@er1-" \
171	"subx.l @er3-,@er1-"
172gdb_test "x" "inc(.b|)\tr1h" \
173	"inc.b r1h"
174gdb_test "x" "inc(.w|)\t#1,r1" \
175	"inc.w #1,r1"
176gdb_test "x" "inc(.w|)\t#2,r1" \
177	"inc.w #2,r1"
178gdb_test "x" "inc(.l|)\t#1,er1" \
179	"inc.l #1,er1"
180gdb_test "x" "inc(.l|)\t#2,er1" \
181	"inc.l #2,er1"
182gdb_test "x" "dec(.b|)\tr1h" \
183	"dec.b r1h"
184gdb_test "x" "dec(.w|)\t#1,r1" \
185	"dec.w #1,r1"
186gdb_test "x" "dec(.w|)\t#2,r1" \
187	"dec.w #2,r1"
188gdb_test "x" "dec(.l|)\t#1,er1" \
189	"dec.l #1,er1"
190gdb_test "x" "dec(.l|)\t#2,er1" \
191	"dec.l #2,er1"
192gdb_test "x" "adds(.l|)\t#1,er1" \
193	"adds.l #1,er1"
194gdb_test "x" "adds(.l|)\t#2,er1" \
195	"adds.l #2,er1"
196gdb_test "x" "adds(.l|)\t#4,er1" \
197	"adds.l #4,er1"
198gdb_test "x" "subs(.l|)\t#1,er1" \
199	"subs.l #1,er1"
200gdb_test "x" "subs(.l|)\t#2,er1" \
201	"subs.l #2,er1"
202gdb_test "x" "subs(.l|)\t#4,er1" \
203	"subs.l #4,er1"
204gdb_test "x" "daa(.b|)\tr1h" \
205	"daa.b r1h"
206gdb_test "x" "das(.b|)\tr1h" \
207	"das.b r1h"
208gdb_test "x" "mulxu.b\t#0xf(:4|),r1" \
209	"mulxu.b #0xf:4,r1"
210gdb_test "x" "mulxu.b\tr3h,r1" \
211	"mulxu.b r3h,r1"
212gdb_test "x" "mulxu.w\t#0xf(:4|),er1" \
213	"mulxu.w #0xf:4,er1"
214gdb_test "x" "mulxu.w\tr3,er1" \
215	"mulxu.w r3,er1"
216gdb_test "x" "divxu.b\t#0xf(:4|),r1" \
217	"divxu.b #0xf:4,r1"
218gdb_test "x" "divxu.b\tr3h,r1" \
219	"divxu.b r3h,r1"
220gdb_test "x" "divxu.w\t#0xf(:4|),er1" \
221	"divxu.w #0xf:4,er1"
222gdb_test "x" "divxu.w\tr3,er1" \
223	"divxu.w r3,er1"
224gdb_test "x" "mulxs.b\t#0xf(:4|),r1" \
225	"mulxs.b #0xf:4,r1"
226gdb_test "x" "mulxs.b\tr3h,r1" \
227	"mulxs.b r3h,r1"
228gdb_test "x" "mulxs.w\t#0xf(:4|),er1" \
229	"mulxs.w #0xf:4,er1"
230gdb_test "x" "mulxs.w\tr3,er1" \
231	"mulxs.w r3,er1"
232gdb_test "x" "divxs.b\t#0xf(:4|),r1" \
233	"divxs.b #0xf:4,r1"
234gdb_test "x" "divxs.b\tr3h,r1" \
235	"divxs.b r3h,r1"
236gdb_test "x" "divxs.w\t#0xf(:4|),er1" \
237	"divxs.w #0xf:4,er1"
238gdb_test "x" "divxs.w\tr3,er1" \
239	"divxs.w r3,er1"
240gdb_test "x" "mulu.w\t#0xf(:4|),r1" \
241	"mulu.w #0xf:4,r1"
242gdb_test "x" "mulu.w\tr3,r1" \
243	"mulu.w r3,r1"
244gdb_test "x" "mulu.l\t#0xf(:4|),er1" \
245	"mulu.l #0xf:4,er1"
246gdb_test "x" "mulu.l\ter3,er1" \
247	"mulu.l er3,er1"
248gdb_test "x" "mulu/u.l\t#0xf(:4|),er1" \
249	"mulu/u.l #0xf:4,er1"
250gdb_test "x" "mulu/u.l\ter3,er1" \
251	"mulu/u.l er3,er1"
252gdb_test "x" "muls.w\t#0xf(:4|),r1" \
253	"muls.w #0xf:4,r1"
254gdb_test "x" "muls.w\tr3,r1" \
255	"muls.w r3,r1"
256gdb_test "x" "muls.l\t#0xf(:4|),er1" \
257	"muls.l #0xf:4,er1"
258gdb_test "x" "muls.l\ter3,er1" \
259	"muls.l er3,er1"
260gdb_test "x" "muls/u.l\t#0xf(:4|),er1" \
261	"muls/u.l #0xf:4,er1"
262gdb_test "x" "muls/u.l\ter3,er1" \
263	"muls/u.l er3,er1"
264gdb_test "x" "divu.w\t#0xf(:4|),r1" \
265	"divu.w #0xf:4,r1"
266gdb_test "x" "divu.w\tr3,r1" \
267	"divu.w r3,r1"
268gdb_test "x" "divu.l\t#0xf(:4|),er1" \
269	"divu.l #0xf:4,er1"
270gdb_test "x" "divu.l\ter3,er1" \
271	"divu.l er3,er1"
272gdb_test "x" "divs.w\t#0xf(:4|),r1" \
273	"divs.w #0xf:4,r1"
274gdb_test "x" "divs.w\tr3,r1" \
275	"divs.w r3,r1"
276gdb_test "x" "divs.l\t#0xf(:4|),er1" \
277	"divs.l #0xf:4,er1"
278gdb_test "x" "divs.l\ter3,er1" \
279	"divs.l er3,er1"
280