xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/pushpopreg_1.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1# mach: bfin
2
3.include "testutils.inc"
4	start
5
6
7	r0.l = 0x1111;
8	r0.h = 0x0011;
9	r1.l = 0x2222;
10	r1.h = 0x0022;
11	r2.l = 0x3333;
12	r2.h = 0x0033;
13	r3.l = 0x4444;
14	r3.h = 0x0044;
15	r4.l = 0x5555;
16	r4.h = 0x0055;
17	r5.l = 0x6666;
18	r5.h = 0x0066;
19	r6.l = 0x7777;
20	r6.h = 0x0077;
21	r7.l = 0x8888;
22	r7.h = 0x0088;
23	p1.l = 0x5a5a;
24	p1.h = 0x005a;
25	p2.l = 0x6363;
26	p2.h = 0x0063;
27	p3.l = 0x7777;
28	p3.h = 0x0077;
29	p4.l = 0x7878;
30	p4.h = 0x0078;
31	p5.l = 0x3e3e;
32	p5.h = 0x003e;
33	sp = 0x4000(x);
34
35	jump.s prog_start;
36
37	nop;
38	nop;	// ADD reg update to roll back
39	nop;
40
41prog_start:
42	nop;
43	[--sp] = r0;
44	[--sp] = r1;
45	[--sp] = r2;
46	[--sp] = r3;
47	[--sp] = r4;
48	[--sp] = r5;
49	[--sp] = r6;
50	[--sp] = r7;
51	[--sp] = p0;
52	[--sp] = p1;
53	[--sp] = p2;
54	[--sp] = p3;
55	[--sp] = p4;
56	[--sp] = p5;
57
58	nop;
59	nop;
60	nop;
61	nop;
62	r0.l = 0xdead;
63	r0.h = 0xdead;
64	r1.l = 0xdead;
65	r1.h = 0xdead;
66	r2.l = 0xdead;
67	r2.h = 0xdead;
68	r3.l = 0xdead;
69	r3.h = 0xdead;
70	r4.l = 0xdead;
71	r4.h = 0xdead;
72	r5.l = 0xdead;
73	r5.h = 0xdead;
74	r6.l = 0xdead;
75	r6.h = 0xdead;
76	r7.l = 0xdead;
77	r7.h = 0xdead;
78	p1.l = 0xdead;
79	p1.h = 0xdead;
80	p2.l = 0xdead;
81	p2.h = 0xdead;
82	p3.l = 0xdead;
83	p3.h = 0xdead;
84	p4.l = 0xdead;
85	p4.h = 0xdead;
86	p5.l = 0xdead;
87	p5.h = 0xdead;
88	nop;
89	nop;
90	nop;
91	r0 = [sp++];
92	r1 = [sp++];
93	r2 = [sp++];
94	r3 = [sp++];
95	r4 = [sp++];
96	r5 = [sp++];
97	r6 = [sp++];
98	r7 = [sp++];
99	p0 = [sp++];
100	p1 = [sp++];
101	p2 = [sp++];
102	p3 = [sp++];
103	p4 = [sp++];
104	p5 = [sp++];
105
106	nop;
107	nop;
108	nop;
109	nop;
110	nop;
111	nop;
112	nop;
113_tp1:
114	nop;
115	nop;
116	nop;
117	nop;
118	nop;
119	nop;
120	nop;
121	[--sp] = r0;
122	[--sp] = r1;
123	[--sp] = r2;
124	[--sp] = r3;
125	[--sp] = r4;
126	[--sp] = r5;
127	[--sp] = r6;
128	[--sp] = r7;
129	[--sp] = p0;
130	[--sp] = p1;
131	[--sp] = p2;
132	[--sp] = p3;
133	[--sp] = p4;
134	[--sp] = p5;
135
136	nop;
137	nop;
138	nop;
139	nop;
140	r0.l = 0xdead;
141	r0.h = 0xdead;
142	r1.l = 0xdead;
143	r1.h = 0xdead;
144	r2.l = 0xdead;
145	r2.h = 0xdead;
146	r3.l = 0xdead;
147	r3.h = 0xdead;
148	r4.l = 0xdead;
149	r4.h = 0xdead;
150	r5.l = 0xdead;
151	r5.h = 0xdead;
152	r6.l = 0xdead;
153	r6.h = 0xdead;
154	r7.l = 0xdead;
155	r7.h = 0xdead;
156	p1.l = 0xdead;
157	p1.h = 0xdead;
158	p2.l = 0xdead;
159	p2.h = 0xdead;
160	p3.l = 0xdead;
161	p3.h = 0xdead;
162	p4.l = 0xdead;
163	p4.h = 0xdead;
164	p5.l = 0xdead;
165	p5.h = 0xdead;
166	nop;
167	nop;
168	nop;
169	r0 = [sp++];
170	r1 = [sp++];
171	r2 = [sp++];
172	r3 = [sp++];
173	r4 = [sp++];
174	r5 = [sp++];
175	r6 = [sp++];
176	r7 = [sp++];
177	p0 = [sp++];
178	p1 = [sp++];
179	a0.x = [sp++];
180
181	a1.w = r0;	//preserve r0
182
183	r0 = a0.x;
184	DBGA(r0.l,0x0063);
185
186	a0.w = [sp++];
187	r0 = a0.w;
188	DBGA(r0.l,0x7777);
189	DBGA(r0.h,0x0077);
190
191	a0 = a1;	//perserver r0, still
192
193	a1.x = [sp++];
194	r0 = a1.x;
195	DBGA(r0.l,0x0078);
196
197	a1.w = [sp++];
198	r0 = a1.w;
199	DBGA(r0.l,0x3e3e);
200	DBGA(r0.h,0x003e);
201
202	r0 = a0.w;	//restore r0
203
204	nop;
205	nop;
206	nop;
207	nop;
208	nop;
209	nop;
210	nop;
211_tp2:
212	nop;
213	nop;
214	nop;
215	[--sp] = r0;
216	[--sp] = r1;
217	[--sp] = r2;
218	[--sp] = r3;
219	[--sp] = a0.x;
220	[--sp] = a0.w;
221	[--sp] = a1.x;
222	[--sp] = a1.w;
223	[--sp] = p0;
224	[--sp] = p1;
225	[--sp] = p2;
226	[--sp] = p3;
227	[--sp] = p4;
228	[--sp] = p5;
229
230	nop;
231	nop;
232	nop;
233	nop;
234	r0.l = 0xdead;
235	r0.h = 0xdead;
236	r1.l = 0xdead;
237	r1.h = 0xdead;
238	r2.l = 0xdead;
239	r2.h = 0xdead;
240	r3.l = 0xdead;
241	r3.h = 0xdead;
242	r4.l = 0xdead;
243	r4.h = 0xdead;
244	r5.l = 0xdead;
245	r5.h = 0xdead;
246	r6.l = 0xdead;
247	r6.h = 0xdead;
248	r7.l = 0xdead;
249	r7.h = 0xdead;
250	p1.l = 0xdead;
251	p1.h = 0xdead;
252	p2.l = 0xdead;
253	p2.h = 0xdead;
254	p3.l = 0xdead;
255	p3.h = 0xdead;
256	p4.l = 0xdead;
257	p4.h = 0xdead;
258	p5.l = 0xdead;
259	p5.h = 0xdead;
260	nop;
261	nop;
262	nop;
263	r0 = [sp++];
264	r1 = [sp++];
265	r2 = [sp++];
266	r3 = [sp++];
267	r4 = [sp++];
268	r5 = [sp++];
269	r6 = [sp++];
270	r7 = [sp++];
271	p0 = [sp++];
272	p1 = [sp++];
273	p2 = [sp++];
274	p3 = [sp++];
275	p4 = [sp++];
276	p5 = [sp++];
277
278	nop;
279	nop;
280	nop;
281	nop;
282	nop;
283	nop;
284	nop;
285_tp3:
286	nop;
287	nop;
288	nop;
289	nop;
290	nop;
291_halt:
292	pass;
293